From minios-devel-bounces@lists.xenproject.org Sat Feb 01 08:25:43 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 01 Feb 2020 08:25:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ixo60-0003dY-Vp; Sat, 01 Feb 2020 08:25:40 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=9gp1=3V=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1ixo60-0003dT-6q
 for minios-devel@lists.xenproject.org; Sat, 01 Feb 2020 08:25:40 +0000
X-Inumbo-ID: 6cbd8878-44cc-11ea-b211-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6cbd8878-44cc-11ea-b211-bc764e2007e4;
 Sat, 01 Feb 2020 08:25:38 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 01A1AF201B;
 Sat,  1 Feb 2020 09:25:37 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id oEEd4li83PVh; Sat,  1 Feb 2020 09:25:36 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id BD5AFF2007;
 Sat,  1 Feb 2020 09:25:32 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sat, 1 Feb 2020
 09:25:32 +0100
To: Gaulthier Gain <gaulthier.gain@uliege.be>,
 <minios-devel@lists.xenproject.org>
References: <20200131222343.31972-1-gaulthier.gain@uliege.be>
 <20200131222343.31972-2-gaulthier.gain@uliege.be>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <f5ede9db-7989-a508-2147-b17ecaa3509c@neclab.eu>
Date: Sat, 1 Feb 2020 09:25:30 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200131222343.31972-2-gaulthier.gain@uliege.be>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/MUSL PATCH V3 26/28] Update COPYING.md
 with musl specifications
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgoKT24g
MzEuMDEuMjAgMjM6MjMsIEdhdWx0aGllciBHYWluIHdyb3RlOgo+IFdlIHVwZGF0ZWQgdGhlIGxp
Y2Vuc2UgcGFydCBieSBjb25zaWRlcmluZyBtdXNsIE1JVCBsaWNlbnNlLgo+IAo+IFNpZ25lZC1v
ZmYtYnk6IEdhdWx0aGllciBHYWluIDxnYXVsdGhpZXIuZ2FpbkB1bGllZ2UuYmU+Cj4gLS0tCj4g
ICBDT1BZSU5HLm1kIHwgMTQgKysrKysrKy0tLS0tLS0KPiAgIDEgZmlsZSBjaGFuZ2VkLCA3IGlu
c2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL0NPUFlJTkcubWQg
Yi9DT1BZSU5HLm1kCj4gaW5kZXggYmY4YmExZS4uYzliZDI3NSAxMDA2NDQKPiAtLS0gYS9DT1BZ
SU5HLm1kCj4gKysrIGIvQ09QWUlORy5tZAo+IEBAIC0xLDEwICsxLDEwIEBACj4gICBMaWNlbnNl
Cj4gICA9PT09PT09Cj4gICAKPiAtVW5pa3JhZnQgbmV3bGliIHdyYXBwZXJzCj4gK1VuaWtyYWZ0
IG11c2wgd3JhcHBlcnMKPiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgCj4gLVRoaXMg
cmVwb3NpdG9yeSBjb250YWlucyB3cmFwcGVyIGNvZGUgdG8gYnVpbGQgbmV3bGliIHdpdGggVW5p
a3JhZnQuICBUaGUgY29kZQo+ICtUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgd3JhcHBlciBjb2Rl
IHRvIGJ1aWxkIG11c2wgd2l0aCBVbmlrcmFmdC4gVGhlIGNvZGUKPiAgIGlzIHB1Ymxpc2hlZCBh
cyBhIG1peHR1cmUgb2YgQlNEIGFuZCBNSVQgbGljZW5jZXM7IGVhY2ggQyBjb2RlIGZpbGUgaW4K
PiAgIHRoaXMgcmVwb3NpdG9yeSBzaG91bGQgZGVjbGFyZSB3aG8gaXMgdGhlIGNvcHlyaWdodCBv
d25lciBhbmQgdW5kZXIgd2hpY2ggdGVybXMKPiAgIGFuZCBjb25kaXRpb25zIHRoZSBjb2RlIGlz
IGxpY2Vuc2VkLiBJZiBzdWNoIGEgbGljZW5jZSBub3RlIGlzIG1pc3NpbmcsIHRoZQo+IEBAIC0z
NywxMCArMzcsMTAgQEAgZm9sbG93aW5nIGNvcHlyaWdodCBub3RpY2Ugd2lsbCBhcHBseToKPiAg
IAlBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRQo+ICAgCVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgo+ICAg
Cj4gLW5ld2xpYiBzb3VyY2UgY29kZQo+ICttdXNsIHNvdXJjZSBjb2RlCj4gICAtLS0tLS0tLS0t
LS0tLS0tLS0KPiAgIAo+IC1EdXJpbmcgYnVpbGRpbmcsIHRoZSBidWlsZCBzeXN0ZW0gd2lsbCBk
b3dubG9hZCB0aGUgbmV3bGliIHNvdXJjZSBjb2RlIGFuZAo+IC1idWlsZCBzb3VyY2UgY29kZSBm
cm9tIHRoZSBgbmV3bGliL2xpYmNgIGFuZCBgbmV3bGliL2xpYm1gIGRpcmVjdG9yaWVzLiBUaGUK
PiAtY29kZSBpbiB0aGlzIGRpcmVjdG9yaWVzIGhhcyBhIHZhcmlldHkgb2YgbGljZW5jZXMsIHRo
ZSBkZXRhaWxzIG9mIHdoaWNoIGFyZQo+IC1leHBsYWluZWQgaW4gdGhlIGBSRUFETUUubmV3bGli
YCBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgbmV3bGliIGNvZGUuCj4gK0R1cmlu
ZyBidWlsZGluZywgdGhlIGJ1aWxkIHN5c3RlbSB3aWxsIGRvd25sb2FkIHRoZSBtdXNsIHNvdXJj
ZSBjb2RlIGFuZAo+ICtidWlsZCBzb3VyY2UgY29kZSBmcm9tIHRoZSBgbXVzbGAgZGlyZWN0b3J5
LiBtdXNsIGFzIGEgd2hvbGUgaXMgbGljZW5zZWQKPiArdW5kZXIgdGhlIGZvbGxvd2luZyBzdGFu
ZGFyZCBNSVQgbGljZW5zZS4gRnVydGhlciBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQKPiAraW4g
dGhlIGBDT1BZUklHSFRgIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBtdXNsIGNv
ZGUuCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpN
aW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRl
dmVs

From minios-devel-bounces@lists.xenproject.org Sat Feb 01 08:26:02 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 01 Feb 2020 08:26:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ixo6M-0003eU-39; Sat, 01 Feb 2020 08:26:02 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=9gp1=3V=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1ixo6L-0003eP-3W
 for minios-devel@lists.xenproject.org; Sat, 01 Feb 2020 08:26:01 +0000
X-Inumbo-ID: 7974c70c-44cc-11ea-ad98-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 7974c70c-44cc-11ea-ad98-bc764e2007e4;
 Sat, 01 Feb 2020 08:25:59 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id BD70410103A;
 Sat,  1 Feb 2020 09:25:58 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id kXl8hyWDp6te; Sat,  1 Feb 2020 09:25:58 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 90B4B100230;
 Sat,  1 Feb 2020 09:25:58 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sat, 1 Feb 2020
 09:25:57 +0100
To: Gaulthier Gain <gaulthier.gain@uliege.be>,
 <minios-devel@lists.xenproject.org>
References: <20200131222343.31972-1-gaulthier.gain@uliege.be>
 <20200131222343.31972-3-gaulthier.gain@uliege.be>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <25a53b49-e6f2-722f-82bf-5dd4179daa63@neclab.eu>
Date: Sat, 1 Feb 2020 09:25:55 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200131222343.31972-3-gaulthier.gain@uliege.be>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/MUSL PATCH V3 28/28] Update README.md
 with current status
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzLCBmb3IgdGhlIGNoYW5nZXMhCgpSZXZpZXdlZC1ieTogU2ltb24gS3VlbnplciA8c2lt
b24ua3VlbnplckBuZWNsYWIuZXU+CgpPbiAzMS4wMS4yMCAyMzoyMywgR2F1bHRoaWVyIEdhaW4g
d3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogR2F1bHRoaWVyIEdhaW4gPGdhdWx0aGllci5nYWluQHVs
aWVnZS5iZT4KPiAtLS0KPiAgIFJFQURNRS5tZCB8IDI1ICsrKysrKysrKysrKysrKysrKysrKysr
KysKPiAgIDEgZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBh
L1JFQURNRS5tZCBiL1JFQURNRS5tZAo+IGluZGV4IDNkOGYwZjIuLjNjZWI0ZTAgMTAwNjQ0Cj4g
LS0tIGEvUkVBRE1FLm1kCj4gKysrIGIvUkVBRE1FLm1kCj4gQEAgLTEsNSArMSwzMCBAQAo+ICAg
bXVzbCBmb3IgVW5pa3JhZnQKPiAgID09PT09PT09PT09PT09PT09PT0KPiAgIAo+ICtUaGlzIGZp
cnN0IHJlbGVhc2UgcHJvdmlkZXMgYSBmdW5jdGlvbmFsIHZlcnNpb24gb2YgbXVzbCAoY29tcGls
ZXMgYW5kCj4gK2xpbmtzKSBvbiBVbmlrcmFmdCBidXQgc29tZSBmdW5jdGlvbnMgYXJlIG5vdCBz
dXBwb3J0ZWQgKGVzcGVjaWFsbHkKPiArdGhlIG9uZXMgcmVsYXRlZCB0byB0aHJlYWRzIGFuZCBu
ZXR3b3JrKS4gRnVydGhlcm1vcmUsIHNvbWUgZnVuY3Rpb25zCj4gK2NhbiBoYXZlIHVuZXhwZWN0
ZWQgYmVoYXZpb3VyIHNpbmNlIHRoZXkgdXNlIG11c2wgaW50ZXJuYWwgdGhyZWFkCj4gK3N1cHBv
cnQuCj4gKwo+ICsjIyBCdWlsZAo+ICsKPiArSW4gb3JkZXIgdG8gYXZvaWQgbXVsdGlwbGUgZGVm
aW5pdGlvbnMgZXJyb3JzLCB0aGUgZm9sbG93aW5nIGxpYnJhcmllcwo+ICtNVVNUIE5PVCBCRSBJ
TkNMVURFRCB3aXRoIG11c2w6Cj4gKwo+ICsqIGBQT1NJWC11c2VyYAo+ICsqIGBsd2lwYAo+ICsq
IGBwdGhyZWFkLWVtYmVkZGVkYAo+ICsKPiArIyMgS25vd24gSXNzdWVzCj4gKwo+ICsqIEF0IHRo
aXMgc3RhZ2UsIHdlIG5vdGljZWQgdGhhdCB0aGVyZSBhcmUgc29tZSBpc3N1ZXMgd2l0aCBidWZm
ZXJpbmcKPiArb24gc3Rkb3V0LiBXZSBhcmUgY3VycmVudGx5IGludmVzdGlnYXRpbmcgdGhpcyBp
c3N1ZSBidXQgYSB0ZW1wb3JhcnkKPiArZml4IGlzIHRvIGNhbGwgYGZmbHVzaCgpYCBhZnRlciBl
YWNoIG91dHB1dCBvbiB0aGUgY29uc29sZS4KPiArCj4gK0FzIHRoaW5ncyBzdGFiaWxpemUsIHdl
IHdpbGwgdXBkYXRlIHRoaXMgZmlsZSB0byByZWZsZWN0IHRoaXMuCj4gKwo+ICsjIyBGdXJ0aGVy
IGluZm9ybWF0aW9uCj4gKwo+ICAgUGxlYXNlIHJlZmVyIHRvIHRoZSBgUkVBRE1FLm1kYCBhcyB3
ZWxsIGFzIHRoZSBkb2N1bWVudGF0aW9uIGluIHRoZSBgZG9jL2AKPiAgIHN1YmRpcmVjdG9yeSBv
ZiB0aGUgbWFpbiB1bmlrcmFmdCByZXBvc2l0b3J5Lgo+IAoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5p
b3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Sat Feb 01 12:03:36 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 01 Feb 2020 12:03:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ixrUr-0004nU-Ol; Sat, 01 Feb 2020 12:03:33 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=48j7=3V=gmail.com=julien.grall.oss@srs-us1.protection.inumbo.net>)
 id 1ixrUr-0004mb-3g
 for minios-devel@lists.xenproject.org; Sat, 01 Feb 2020 12:03:33 +0000
X-Inumbo-ID: dd441b52-44ea-11ea-8c7d-12813bfff9fa
Received: from mail-wr1-f68.google.com (unknown [209.85.221.68])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id dd441b52-44ea-11ea-8c7d-12813bfff9fa;
 Sat, 01 Feb 2020 12:03:31 +0000 (UTC)
Received: by mail-wr1-f68.google.com with SMTP id k11so11783090wrd.9
 for <minios-devel@lists.xenproject.org>; Sat, 01 Feb 2020 04:03:31 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:subject:to:cc:references:from:message-id:date
 :user-agent:mime-version:in-reply-to:content-language
 :content-transfer-encoding;
 bh=VL91ntZGTRxanKaAeRlauXjhMBy/IlKGWZlEs7Vc/Tc=;
 b=REqeKseCrax8PgIUlCazCExf/dJKIfJ3SLCAGt7ZSJQeiv9IvRNnGhf3yJA9eOx15r
 bOFI1ofhyn+D7zBvdTBRbJGlkQzzDzYPsskI9gS2o9JzyosK2uHBb3CjvoejumFP1hj8
 Vdmv53sZrCgHAefUi+jLgVAEjjECY5yUSCDB7ey13Vr+YF4H2UuP27uwE0z15VwLj/+u
 sDAJoAZO1lTJDmBCSW6YPjPEVe1iA81nXOojNZXqlNjQ0uAuDgrrgLBXRBKjYQpT4FvU
 7TX260rwjIRA0cNo/YCqNcJer8ZiJJ29qITcsdCQVU+WtL2PdRxpdyHlTfFFywIDtYw8
 t5rQ==
X-Gm-Message-State: APjAAAU4hDmdXvuYWYH+liqvvdjRnt77nafIJY3a3DG937Avo4vmhTb7
 iHUN6/t+J6bhnEfeBU3jfXU=
X-Google-Smtp-Source: APXvYqwtIs71XQLGPgQR3vVUcY+lfc0Yb1lR4zH4LpViiTt+32c5VjNXJia0wihd2dN4un6W4v4axg==
X-Received: by 2002:a05:6000:1251:: with SMTP id
 j17mr4640237wrx.210.1580558611057; 
 Sat, 01 Feb 2020 04:03:31 -0800 (PST)
Received: from a483e7b01a66.ant.amazon.com (54-240-197-225.amazon.com.
 [54.240.197.225])
 by smtp.gmail.com with ESMTPSA id z4sm14534926wma.2.2020.02.01.04.03.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 01 Feb 2020 04:03:30 -0800 (PST)
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, Jia He <justin.he@arm.com>,
 minios-devel@lists.xenproject.org, Santiago.Pagani@neclab.eu
References: <20191219142722.134251-1-justin.he@arm.com>
 <20191219142722.134251-4-justin.he@arm.com>
 <5f1a4c66-d112-1b20-c17d-aba17ceee72e@xen.org>
 <520b19ef-128c-5850-f2e1-15060b36f30a@neclab.eu>
From: Julien Grall <julien@xen.org>
Message-ID: <50b0d98d-5c6c-0280-c5a7-bab1bd341b64@xen.org>
Date: Sat, 1 Feb 2020 12:03:29 +0000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <520b19ef-128c-5850-f2e1-15060b36f30a@neclab.eu>
Content-Language: en-GB
Subject: Re: [Minios-devel] [UNIKRAFT RFC PATCH 3/5] arch/arm64: Don't pass
 -mgeneral-regs-only when CONFIG_FLOAT_POINT is y
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, Kaly Xin <Kaly.Xin@arm.com>,
 Julien Grall <julien.grall@arm.com>, Sharan.Santhanam@neclab.eu
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sCgpPbiAyMy8wMS8yMDIwIDIxOjQ3LCBTaW1vbiBLdWVuemVyIHdyb3RlOgo+IE9u
IDE5LjEyLjE5IDE1OjQ2LCBKdWxpZW4gR3JhbGwgd3JvdGU6Cj4gSSBhbSBub3Qgc3VyZSBpZiB0
aGVyZSBleGlzdHMgYSBtb3JlIGVsZWdhbnQgd2F5IHRoYW4gYXBwbHlpbmcgZGlmZmVyZW50IAo+
IGVuYWJsZWQgZmVhdHVyZXMgc2V0IGJ5IGNvbXBpbGF0aW9uIHVuaXRzLiBJIHdvdWxkIGxvdmUg
dG8gaGF2ZSAKPiBzb21ldGhpbmcgbGlrZSBmdW5jdGlvbiBhdHRyaWJ1dGVzIG9yIGZ1bmN0aW9u
IGRlY2xhcmF0aW9uIG1hY3JvcyB0byBzZXQgCj4gYW5kIGV2ZW4gY2hlY2sgdGhlIHByb3BlcnR5
IGF0IGNvbXBpbGUgdGltZS4gTWF5YmUgeW91IGhhdmUgYW4gaWRlYT8KClRoZSBwcm9ibGVtIHlv
dSBhcmUgdHJ5aW5nIHRvIHNvbHZlIGxvb2tzIHNpbWlsYXIgdG8gd2hhdCBMaW51eCBmYWNlcyAK
d2l0aCB0aGUgRUZJIHN0dWIgb24gQXJtLiBXaGlsZSB0aGUgRUZJIHN0dWIgaXMgcGFydCBvZiB0
aGUgZmluYWwga2VybmVsIApiaW5hcnksIHRoZSBzdHViIG5lZWRzIHRvIGJlIGZ1bGx5IHJlbG9j
YXRhYmxlIHdoaWxlIHRoZSBrZXJuZWwgaXRzZWxmIAppcyBwb3NpdGlvbiBkZXBlbmRlbnQuIFRo
aXMgbWVhbnMgdGhleSBjb3VsZG4ndCBub3Qgc2hhcmUgZnVuY3Rpb24gCmJldHdlZW4gdGhlIHR3
by4KCkFGQUlVLCB0aGV5IGFyZSB1c2luZyBvYmpjb3B5IHRvIHByZWZpeCBhbGwgdGhlIHN5bWJv
bHMgdXNlZCBieSB0aGUgCnN0dWIuIFNvIHRoZSBzdHViIGNhbm5vdCBjYWxsIGZ1bmN0aW9uIHRo
YXQgYXJlIG5vdCBwcmVmaXhlZCB3aXRoIApfX2VmaXN0dWJfLgoKSSBndWVzcyB5b3UgY291bGQg
cmUtdXNlIGEgc2ltaWxhciB0cmljayBmb3IgVW5pa3JhZnQuCgpOb3RlIHRoYXQgdGhpcyBpcyBM
aW51eCwgc28gSSBhbSBub3Qgc3VyZSBob3cgbXVjaCB5b3UgY291bGQgcmUtdXNlIApoZXJlLiBJ
ZiB5b3Ugc3RpbGwgd2FudCB0byBoYXZlIGEgbG9vaywgdGhlIGludGVyZXN0aW5nIGNvbW1pdCBp
czoKZThmMzAxMGY3MzI2YzAwMzY4ZGJjMDU3YmQwNTJiZWM4MGRmYzA3MiAiYXJtNjQvZWZpOiBp
c29sYXRlIEVGSSBzdHViIApmcm9tIHRoZSBrZXJuZWwgcHJvcGVyIi4KCkNoZWVycywKCi0tIApK
dWxpZW4gR3JhbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5p
b3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Sat Feb 01 12:32:05 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 01 Feb 2020 12:32:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ixrwR-0007YT-Q5; Sat, 01 Feb 2020 12:32:03 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=S7P7=3V=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1ixrwQ-0007YO-RT
 for minios-devel@lists.xen.org; Sat, 01 Feb 2020 12:32:02 +0000
X-Inumbo-ID: d8369c8a-44ee-11ea-b211-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id d8369c8a-44ee-11ea-b211-bc764e2007e4;
 Sat, 01 Feb 2020 12:32:01 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 3C4FC40337;
 Sat,  1 Feb 2020 13:32:00 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Sat,  1 Feb 2020 13:31:58 +0100
Message-Id: <20200201123158.2967-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBPYTHON3 PATCH] Fix broken dependency
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Q2huYWdlIGRlcGVuZGVuY3kgdG8gdGhlIHJlbmFtZWQgTElCUE9TSVhfU1lTSU5GTyAuCgpTaWdu
ZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Ci0tLQogQ29u
ZmlnLnVrIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u
KC0pCgpkaWZmIC0tZ2l0IGEvQ29uZmlnLnVrIGIvQ29uZmlnLnVrCmluZGV4IDg3NzBjMjMuLjVk
MjY4M2UgMTAwNjQ0Ci0tLSBhL0NvbmZpZy51aworKysgYi9Db25maWcudWsKQEAgLTcsNyArNyw3
IEBAIG1lbnVjb25maWcgTElCUFlUSE9OMwogCXNlbGVjdCBMSUJVS0RFQlVHCiAJc2VsZWN0IExJ
QlVLQUxMT0MKIAlzZWxlY3QgTElCVUtTQ0hFRAotCXNlbGVjdCBVS1NZU0lORk8KKwlzZWxlY3Qg
TElCUE9TSVhfU1lTSU5GTwogCXNlbGVjdCBMSUJQT1NJWF9VU0VSCiAJc2VsZWN0IExJQlBPU0lY
X0xJQkRMCiAJc2VsZWN0IExJQlNZU0NBTExfU0hJTQotLSAKMi4yMC4xCgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcg
bGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Sat Feb 01 13:16:55 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 01 Feb 2020 13:16:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ixsdn-0002QI-Ft; Sat, 01 Feb 2020 13:16:51 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=9gp1=3V=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1ixsdm-0002QD-EG
 for minios-devel@lists.xen.org; Sat, 01 Feb 2020 13:16:50 +0000
X-Inumbo-ID: 1a144264-44f5-11ea-a933-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 1a144264-44f5-11ea-a933-bc764e2007e4;
 Sat, 01 Feb 2020 13:16:48 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id B0D89100230;
 Sat,  1 Feb 2020 14:16:47 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id VQX39aAbf4wy; Sat,  1 Feb 2020 14:16:47 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 7FECAFFB89
 for <minios-devel@lists.xen.org>; Sat,  1 Feb 2020 14:16:47 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sat, 1 Feb 2020
 14:16:47 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200201123158.2967-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <ba13b02d-e6fa-573a-85aa-0adf278f50d5@neclab.eu>
Date: Sat, 1 Feb 2020 14:16:46 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200201123158.2967-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBPYTHON3 PATCH] Fix broken dependency
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFi
LmV1PgoKT24gMDEuMDIuMjAgMTM6MzEsIEZlbGlwZSBIdWljaSB3cm90ZToKPiBDaG5hZ2UgZGVw
ZW5kZW5jeSB0byB0aGUgcmVuYW1lZCBMSUJQT1NJWF9TWVNJTkZPIC4KPiAKPiBTaWduZWQtb2Zm
LWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Cj4gLS0tCj4gICBDb25m
aWcudWsgfCAyICstCj4gICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp
b24oLSkKPiAKPiBkaWZmIC0tZ2l0IGEvQ29uZmlnLnVrIGIvQ29uZmlnLnVrCj4gaW5kZXggODc3
MGMyMy4uNWQyNjgzZSAxMDA2NDQKPiAtLS0gYS9Db25maWcudWsKPiArKysgYi9Db25maWcudWsK
PiBAQCAtNyw3ICs3LDcgQEAgbWVudWNvbmZpZyBMSUJQWVRIT04zCj4gICAJc2VsZWN0IExJQlVL
REVCVUcKPiAgIAlzZWxlY3QgTElCVUtBTExPQwo+ICAgCXNlbGVjdCBMSUJVS1NDSEVECj4gLQlz
ZWxlY3QgVUtTWVNJTkZPCj4gKwlzZWxlY3QgTElCUE9TSVhfU1lTSU5GTwo+ICAgCXNlbGVjdCBM
SUJQT1NJWF9VU0VSCj4gICAJc2VsZWN0IExJQlBPU0lYX0xJQkRMCj4gICAJc2VsZWN0IExJQlNZ
U0NBTExfU0hJTQo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21p
bmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Sat Feb 01 13:17:08 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 01 Feb 2020 13:17:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ixse4-0002R4-IB; Sat, 01 Feb 2020 13:17:08 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=TVHn=3V=lancaster.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1ixsN7-0000n2-Co
 for minios-devel@lists.xen.org; Sat, 01 Feb 2020 12:59:37 +0000
X-Inumbo-ID: b1dc240c-44f2-11ea-8c8e-12813bfff9fa
Received: from GBR01-CWL-obe.outbound.protection.outlook.com (unknown
 [40.107.11.118]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id b1dc240c-44f2-11ea-8c8e-12813bfff9fa;
 Sat, 01 Feb 2020 12:59:35 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=PXvaxafAaJgwfBirn0H+arPqnrq6HQuxND8d0PlkvkkghpMg+cz6+cimFhTAK6/rqVJsFzRtxRg4nZwFGgSGghli/OUytKocZCoC4fz6n9wLEh1IvBF4PQb1TojxlNkcBXsNc6FwIDi7CbUHkNyj2LOhJBflBZU82rtoXJhQYRHwoHM6kNqY/H8jmzm7pBwCPZVToRlpsyYyitk2NiBc2l0dBHr2ak1Ft3QvaIKxlgJzkguC7RjkXLvqeUnSS29j7jHYY4TF2tv9KHM4tvK+cj/jclkA9LhhZNkVt4ZTbteIL16uivlnt7IdXc0ARL8dmZXKcsYD07ZdVl31/386Wg==
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=GKnfD2ZEGtfoFgDP/rgintBZPw7Jep8dSxWzlJTFONc=;
 b=Bs0AWLrWCh9NitZ7Iz4zUwKJsTzGfraPb5MrwcNcJihFG6xUou677kC5+dW2T9TdJtFkE2iRaOgdn1kefFCcY3YEr6Tzj0ozTiYDBpfuEoBiXGdOYBi1BRgRI7WjzvxMjlrttdSHAM8ZfZol3fOHi4i/4ttprs4RguYAtaqKTaBxceXvbr4B/iiJM/FqCV1KN5Hfl8JjSyl3zBN79cXA9YWPQoFZJR+yRMTzX96ORXvz3g28ankEtwFnUAvE8ZlXTzY7H1NTWnRqYRZ/wl0B+HwQP2CKJDtWT++F92pjVTWgWypxhGvTHg+vUABkIB9C9ol4sWc6u24fhMDds8OZqQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=lancaster.ac.uk; dmarc=pass action=none
 header.from=lancaster.ac.uk; dkim=pass header.d=lancaster.ac.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=livelancsac.onmicrosoft.com; s=selector2-livelancsac-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GKnfD2ZEGtfoFgDP/rgintBZPw7Jep8dSxWzlJTFONc=;
 b=DdDyxLEUOIurtCvsJUATNUuGEWlEvnxqAgI+O7b4++j+FUpB7f7W4AHZeEkqrUyRDvROuQQBRwnzeSP69TM179Y8GMQ/QvoT6olbXG4H11EjySgX5TleAvFxhsys1ry9YTk9fFOjEorRZdUWb9Jmm55guOOc2beqc76PX3pUMrA=
Received: from LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM (20.176.134.21) by
 LNXP265MB0476.GBRP265.PROD.OUTLOOK.COM (10.166.179.139) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2665.24; Sat, 1 Feb 2020 12:59:32 +0000
Received: from LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM
 ([fe80::79ac:67a5:15cd:8e8d]) by LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM
 ([fe80::79ac:67a5:15cd:8e8d%7]) with mapi id 15.20.2665.032; Sat, 1 Feb 2020
 12:59:32 +0000
From: "Jung, Alexander" <a.jung@lancaster.ac.uk>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBPYTHON3 PATCH] Fix broken dependency
Thread-Index: AQHV2P9xjimKwLVO/kaxmVNSthRXXg==
Date: Sat, 1 Feb 2020 12:59:31 +0000
Message-ID: <99C845F3-B838-4535-A809-FA7C52A935E4@lancaster.ac.uk>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=a.jung@lancaster.ac.uk; 
x-originating-ip: [77.190.169.101]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3b4ff9e5-dc71-442a-3ca0-08d7a71694f2
x-ms-traffictypediagnostic: LNXP265MB0476:
x-microsoft-antispam-prvs: <LNXP265MB047686E90D2FF6AD01C3CC9DCE060@LNXP265MB0476.GBRP265.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:1824;
x-forefront-prvs: 03008837BD
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10019020)(4636009)(346002)(39860400002)(136003)(366004)(396003)(376002)(199004)(189003)(81156014)(8676002)(81166006)(6916009)(478600001)(5660300002)(4744005)(8936002)(71200400001)(6486002)(4326008)(6512007)(66446008)(64756008)(66556008)(66476007)(66946007)(76116006)(91956017)(26005)(186003)(786003)(316002)(36756003)(2616005)(53546011)(2906002)(6506007)(86362001)(33656002);
 DIR:OUT; SFP:1102; SCL:1; SRVR:LNXP265MB0476;
 H:LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: lancaster.ac.uk does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: VjwPC1mO7lLdn2b7PHtGEnRVOqtsrp8F/zaW6jsErQdz076PUtm/2eV+rDaoDr9UWsIeJAb4C7SyWQ3FmoUfsrl6gtKLbm1lOd6ec/OjyIfszVX2BnXw5g/ZlAT4kRg4pjid9Q1UvNRfmBMr7s9UMh4F3uRVP0I8jHMeJJ4W1Qa72ZhVgTCTse1sVBMIdZ8pzb0scE4OAwBVcGGgLkR7fMXpGaFp/nLk9w6AjC4cjXadsz9X3LIupQ+QwDg7Fsv2DnLowD2xJceg/I5Fd0mprRFznTnhga1LWPLi/EsSGU5p4SruLufKT6dV8BeP6RyhIxz36gRB0q4YL3PaAqaka1qpNE7O4udgKh8Tvd6zVZmU8m+4JDYrWWCYNSwJLwak+t0jE5wkqcFBdCxuMNUBRRgujlHJSoOiB9CHskleXdNl552xl4dQFJ0uSBk8hQnA
x-ms-exchange-antispam-messagedata: 3mGDcPFGi7IC025pdiIPoFy7NOJgahqB3oee/2O8LvZbrQV1uG2vRBoaFRvaV878R9JkbYxvpD8xp3og9McTuv1wpQc0WMR+GrNPFzxiyEoPm7sIqRqOtzvUPtfpC8hNcEthvgWzyi5OB68x+e7neQ==
x-ms-exchange-transport-forked: True
Content-ID: <24B4DCDEB081974BB5AB360B48EA74C8@GBRP265.PROD.OUTLOOK.COM>
MIME-Version: 1.0
X-OriginatorOrg: lancaster.ac.uk
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b4ff9e5-dc71-442a-3ca0-08d7a71694f2
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2020 12:59:32.1839 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 9c9bcd11-977a-4e9c-a9a0-bc734090164a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: SOypMoDQCB8HKE5zk6ibGbvcbz2iDVfYK8aYpT+fhITmu5fxVX1Z48CNID0BUF8s558MnfavCBQ3AgBPcQwoYg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LNXP265MB0476
X-Mailman-Approved-At: Sat, 01 Feb 2020 13:17:07 +0000
Subject: Re: [Minios-devel] [UNIKRAFT/LIBPYTHON3 PATCH] Fix broken dependency
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmVjZWl2ZWQgYSBmYXRhbCBlcnJvcjogc3lzL3V0c25hbWUuaDogTm8gc3VjaCBmaWxlIG9yIGRp
cmVjdG9yeSBkdXJpbmcNCnRoZSBhcHAtcHl0aG9uMyBidWlsZCBhbmQgdGhpcyBwYXRjaCByZXNv
bHZlcyB0aGlzLg0KDQpSZXZpZXdlZC1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5h
Yy51az4NCg0KT24gMDEuMDIuMjAsIDEzOjMyLCAiTWluaW9zLWRldmVsIG9uIGJlaGFsZiBvZiBG
ZWxpcGUgSHVpY2kiIDxtaW5pb3MtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZyBv
biBiZWhhbGYgb2YgZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4gd3JvdGU6DQo+IENoYW5nZSBkZXBl
bmRlbmN5IHRvIHRoZSByZW5hbWVkIExJQlBPU0lYX1NZU0lORk8uDQo+IA0KPiBTaWduZWQtb2Zm
LWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQo+IC0tLQ0KPiAgIENv
bmZpZy51ayB8IDIgKy0NCj4gICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs
ZXRpb24oLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9Db25maWcudWsgYi9Db25maWcudWsNCj4gaW5k
ZXggODc3MGMyMy4uNWQyNjgzZSAxMDA2NDQNCj4gLS0tIGEvQ29uZmlnLnVrDQo+ICsrKyBiL0Nv
bmZpZy51aw0KPiBAQCAtNyw3ICs3LDcgQEAgbWVudWNvbmZpZyBMSUJQWVRIT04zDQo+ICAgICAg
ICAgc2VsZWN0IExJQlVLREVCVUcNCj4gICAgICAgICBzZWxlY3QgTElCVUtBTExPQw0KPiAgICAg
ICAgIHNlbGVjdCBMSUJVS1NDSEVEDQo+IC0gICAgICAgc2VsZWN0IFVLU1lTSU5GTw0KPiArICAg
ICAgIHNlbGVjdCBMSUJQT1NJWF9TWVNJTkZPDQo+ICAgICAgICAgc2VsZWN0IExJQlBPU0lYX1VT
RVINCj4gICAgICAgICBzZWxlY3QgTElCUE9TSVhfTElCREwNCj4gICAgICAgICBzZWxlY3QgTElC
U1lTQ0FMTF9TSElNDQo+IC0tDQo+IDIuMjAuMQ0KDQpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Sat Feb 01 19:26:01 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 01 Feb 2020 19:26:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ixyOz-0006y4-2P; Sat, 01 Feb 2020 19:25:57 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PPDB=3V=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1ixyOx-0006xX-NV
 for minios-devel@lists.xen.org; Sat, 01 Feb 2020 19:25:55 +0000
X-Inumbo-ID: a8a1974c-4528-11ea-a933-bc764e2007e4
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id a8a1974c-4528-11ea-a933-bc764e2007e4;
 Sat, 01 Feb 2020 19:25:52 +0000 (UTC)
Received: from x4dbea965.dyn.telefonica.de ([77.190.169.101]
 helo=localhost.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1ixyOr-0009L8-2I; Sat, 01 Feb 2020 19:25:51 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Sat,  1 Feb 2020 20:25:34 +0100
Message-Id: <20200201192534.64843-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT PATCH] Update docs for `kraft` and User
 guides
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhpcyBzZXJpZXMgY29tbWl0IHVwZGF0ZXMgdGhlIGRvY3VtZW50YXRpb24gd2l0aCBkZXRhaWxz
IG9mIHRoZSBuZXcKY29tbWFuZC1saW5lIHV0aWxpdHkgYGtyYWZ0YC4KClNpZ25lZC1vZmYtYnk6
IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+Ci0tLQogZG9jL2d1aWRlcy9rcmFm
dC5yc3QgICAgICAgICAgfCAyMTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog
ZG9jL2d1aWRlcy91c2Vycy1hZHZhbmNlZC5yc3QgfCAxMDIgKysrKysrKysrKysrKysrKwogZG9j
L2d1aWRlcy91c2Vycy5yc3QgICAgICAgICAgfCAgMTkgKystCiAzIGZpbGVzIGNoYW5nZWQsIDMz
MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL2d1
aWRlcy9rcmFmdC5yc3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2MvZ3VpZGVzL3VzZXJzLWFkdmFu
Y2VkLnJzdAoKZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMva3JhZnQucnN0IGIvZG9jL2d1aWRlcy9r
cmFmdC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU1MzI3NgotLS0g
L2Rldi9udWxsCisrKyBiL2RvYy9ndWlkZXMva3JhZnQucnN0CkBAIC0wLDAgKzEsMjExIEBACis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0dldHRpbmcgc3RhcnRlZCB3aXRoIGBga3Jh
ZnRgYAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RvIGJlZ2luIHVzaW5nIGBV
bmlrcmFmdCA8aHR0cHM6Ly91bmlrcmFmdC5vcmc+YF8geW91IGNhbiB1c2UgdGhlIGNvbW1hbmQt
bGluZQordXRpbGl0eSBgYGtyYWZ0YGAgIHdoaWNoIGlzIGEgY29tcGFuaW9uIHRvb2wgdXNlZCBm
b3IgZGVmaW5pbmcsIGNvbmZpZ3VyaW5nLAorYnVpbGRpbmcsIGFuZCBydW5uaW5nIFVuaWtyYWZ0
IHVuaWtlcm5lbCBhcHBsaWNhdGlvbnMuICBXaXRoIGBga3JhZnRgYCwgeW91IGNhbgorY3JlYXRl
IGEgYnVpbGQgZW52aXJvbm1lbnQgZm9yIHlvdXIgdW5pa2VybmVsIGFuZCBtYW5hZ2UgZGVwZW5k
ZW5jaWVzIGZvciBpdHMKK2J1aWxkLiAgV2hpbHN0IGBga3JhZnRgYCBpdHNlbGYgaXMgYW4gYWJz
dHJhY3Rpb24gbGF5ZXIgdG8gdGhlIFVuaWtyYWZ0IGJ1aWxkCitzeXN0ZW0sIGl0IHByb3ZlcyBh
cyBhIHVzZWZ1bCBtZWNoYW5pYyBhbmQgc3RhcnRpbmcgZ3JvdW5kIGZvciBkZXZlbG9waW5nCit1
bmlrZXJuZWwgYXBwbGljYXRpb25zLgorCitRdWljayBzdGFydAorPT09PT09PT09PT0KKworYGBr
cmFmdGBgIGNhbiBiZSBpbnN0YWxsZWQgYnkgZGlyZWN0bHkgY2xvbmluZyBpdHMgc291cmNlIGZy
b20gYEdpdEh1YiA8aHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L3Rvb2xzLmdpdD5gXzogOjoK
KworICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L3Rvb2xzLmdpdAorICBj
ZCB0b29scyAmJiBweXRob24gc2V0dXAucHkgaW5zdGFsbAorCisuLiBub3RlOjoKKyAgQWRkaXRp
b25hbCBkZXBlbmRlbmNpZXMgaW5jbHVkZSBgZ2l0YCwgYG1ha2VgLCBuY3Vyc2VzLCBgZmxleGAs
IGB3Z2V0YCwKKyAgYHVuemlwYCwgYHRhcmAsIGBweXRob24zYCBhbmQgYGdjY2AuICBEZXRhaWxz
IG9uIGhvdyB0byBjb25maWd1cmUgaG93CisgIGBga3JhZnRgYCBpbnRlcmFjdHMgd2l0aCBnY2Mg
YW5kIHRoZSBVbmlrcmFmdCBidWlsZCBzeXN0ZW0gaW4gYWRkaXRpb24gb24gaG93CisgIHRvIHVz
ZSBgYGtyYWZ0YGAgd2l0aCBEb2NrZXIgaXMgY292ZXJlZCBpbiA6cmVmOmBhZHZhbmNlZF91c2Fn
ZWAuCisKK09uY2UgYGBrcmFmdGBgIGl0IGluc3RhbGxlZCB5b3UgY2FuIGJlZ2luIGJ5IGluaXRp
YWxpemluZyBhIG5ldyB1bmlrZXJuZWwKK3JlcG9zaXRvcnkgdXNpbmcgYGBrcmFmdCBpbml0YGAu
ICBBcyBhbiBleGFtcGxlLCB5b3UgY2FuIGJ1aWxkIGEgUHl0aG9uIDMKK3VuaWtlcm5lbCBhcHBs
aWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmc6IDo6CisKKyAga3JhZnQgaW5pdCAtYSBw
eXRob24zIC4vbXktZmlyc3QtdW5pa2VybmVsCisKKy4uIG5vdGU6OgorICBJZiB0aGlzIGlzIHRo
ZSBmaXJzdCB0aW1lIHlvdSBhcmUgcnVubmluZyBgYGtyYWZ0YGAsIHlvdSB3aWxsIGJlIHByb21w
dGVkIHRvIAorICBydW4gYW4gdXBkYXRlIHdoaWNoIHdpbGwgZG93bmxvYWQgVW5pa3JhZnQgY29y
ZSBhbmQgYWRkaXRpb25hbCBsaWJyYXJ5IHBvb2wKKyAgc291cmNlcy4gIFRoZXNlIHNvdXJjZXMg
YXJlIHNhdmVkIHRvIGRpcmVjdG9yeSBzZXQgYXQgdGhlIGVudmlyb25tZW50YWwKKyAgdmFyaWFi
bGUgYGBVS19XT1JLRElSYGAgd2hpY2ggZGVmYXVsdHMgdG8gYGB+Ly51bmlrcmFmdGBgLgorCitX
aXRoIGEgbmV3bHkgaW5pdGlhbGl6ZWQgdW5pa2VybmVsIGFwcGxpY2F0aW9uLCB0aGUgYGAuL215
LWZpcnN0LXVuaWtlcm5lbGBgCitkaXJlY3RvcnkgIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggYSBg
YGRlcHMuanNvbmBgIGZpbGUgd2hpY2ggY29udGFpbnMgcmVmZXJlbmNlcwordG8gdGhlIHRoZSBy
ZWxldmFudCBsaWJyYXJ5IGRlcGVuZGVuY2llcyB3aGljaCBhcmUgcmVxdWlyZWQgdG8gYnVpbGQg
YSB1bmlrZXJuZWwKK3dpdGggc3VwcG9ydCBmb3IgUHl0aG9uIDMuICBUaGlzIGZpbGUgaXMgdXNl
ZCBieSBgYGtyYWZ0YGAgdG8gY29uZmlndXJlIGFuZAorYnVpbGQgIGFnYWluc3QgY2VydGFpbiBV
bmlrcmFmdCBsaWJyYXJ5IHZlcnNpb25zLiAgSW4gYWRkaXRpb24gdG8gdGhpcyBmaWxlLCBhCitu
ZXcgYGAuY29uZmlnYGAgZmlsZSB3aWxsIGFsc28gYmUgcGxhY2VkIGludG8gdGhlIGRpcmVjdG9y
eS4gIFRoaXMgZmlsZSBpcyB1c2VkCitieSBVbmlrcmFmdCdzIGJ1aWxkIHN5c3RlbSB0byBzd2l0
Y2ggb24gb3Igb2ZmIGZlYXR1cmVzIGRlcGVuZGluZyBvbiB5b3VyCithcHBsaWNhdGlvbidzIHVz
ZSBjYXNlLgorCitUaGUgdW5pa2VybmVsIGFwcGxpY2F0aW9uIG11c3Qgbm93IGJlIGNvbmZpZ3Vy
ZWQgYWdhaW5zdCB0aGUgVW5pa3JhZnQgYnVpbGQKK3N5c3RlbSBzbyB0aGF0IHlvdSBhbmQgaXQg
Y2FuIHJlc29sdmUgYW55IGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzOiA6OgorCisgIGtyYWZ0IGNv
bmZpZ3VyZSAuL215LWZpcnN0LXVuaWtlcm5lbAorCisuLiBub3RlOjoKKyAgVGhpcyBzdGVwIGNh
biBiZSBtYWRlIG1vcmUgaW50ZXJhY3RpdmUgYnkgbGF1bmNoaW5nIGludG8gVW5pa3JhZnQncyBL
Y29uZmlnCisgIGNvbmZpZ3VyYXRpb24gc3lzdGVtLiAgTGF1bmNoIGFuIG5jdXJzZXMgd2luZG93
IGluIHlvdXIgdGVybWluYWwgd2l0aAorICBgYGtyYWZ0IGNvbmZpZ3VyZSAtLW1lbnVjb25maWdg
YC4KKworVGhlIGNvbmZpZ3VyYXRpb24gc3RlcCB1c2VkIGluIGBga3JhZnRgYCB3aWxsIHBlcmZv
cm0gbmVjZXNzYXJ5IGNoZWNrcworcGVydGFpbmluZyB0byBjb21wYXRpYmlsaXR5IGFuZCBhdmFp
bGFiaWxpdHkgb2Ygc291cmNlIGNvZGUgYW5kIHdpbGwgcG9wdWxhdGUKK3lvdXIgYXBwbGljYXRp
b24gZGlyZWN0b3J5IHdpdGggbmV3IGZpbGVzIGFuZCBmb2xkZXJzLCBpbmNsdWRpbmc6CisKKyAg
KiBgYGRlcHMuanNvbmBgIC0tIFRoaXMgZmlsZSBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCB3aGlj
aCB2ZXJzaW9uIG9mIHRoZQorICAgIFVuaWtyYWZ0IGNvcmUgYW5kIGFkZGl0aW9uYWwgbGlicmFy
aWVzIHRvIHVzZSBmb3IgdGhlIGJ1aWxkLgorICAqIGBgTWFrZWZpbGUudWtgYCAtLSBBIEtjb25m
aWcgdGFyZ2V0IGZpbGUgeW91IGNhbiB1c2UgdG8gY3JlYXRlIGNvbXBpbGUtdGltZQorICAgIHRv
Z2dsZXMgZm9yIHlvdXIgYXBwbGljYXRpb24uIAorICAqIGBgYnVpbGQvYGAgLS0gQWxsIGJ1aWxk
IGFydGlmYWN0cyBhcmUgcGxhY2VkIGluIHRoaXMgZGlyZWN0b3J5IGluY2x1ZGluZyAKKyAgICBp
bnRlcm1lZGlhdGUgb2JqZWN0IGZpbGVzIGFuZCB1bmlrZXJuZWwgaW1hZ2VzLgorICAqIGBgLmNv
bmZpZ2BgIC0tIFRoZSBzZWxlY3Rpb24gb2Ygb3B0aW9ucyBmb3IgYXJjaGl0ZWN0dXJlLCBwbGF0
Zm9ybSwKKyAgICBsaWJyYXJpZXMgYW5kIHlvdXIgYXBwbGljYXRpb24gKHNwZWNpZmllZCBpbiBg
YE1ha2VmaWxlLnVrYGApIHRvIHVzZSB3aXRoCisgICAgVW5pa3JhZnQuCisKK1doZW4geW91ciB1
bmlrZXJuZWwgaGFzIGJlZW4gY29uZmlndXJlZCB0byB5b3VyIG5lZWRzLCB5b3UgY2FuIGJ1aWxk
IHRoZQordGhlIHVuaWtlcm5lbCB0byBhbGwgcmVsZXZhbnQgYXJjaGl0ZWN0dXJlcyBhbmQgcGxh
dGZvcm1zIHVzaW5nOiA6OgorCisgIGtyYWZ0IGJ1aWxkIC4vbXktZmlyc3QtdW5pa2VybmVsCisK
K1RoaXMgc3RlcCB3aWxsIGJlZ2luIHRoZSBidWlsZCBwcm9jZXNzLiAgQWxsIGFydGlmYWN0cyBj
cmVhdGVkIGR1cmluZyB0aGlzIHN0ZXAKK3dpbGwgYmUgbG9jYXRlZCB1bmRlciBgYC4vbXktZmly
c3QtdW5pa2VybmVsL2J1aWxkYGAuCisKKy4uIF9rcmFmdF9jbGk6CisKK092ZXJ2aWV3IG9mIGNv
bW1hbmRzCis9PT09PT09PT09PT09PT09PT09PQorCis6OgorCisgIFVzYWdlOiBrcmFmdCBbT1BU
SU9OU10gQ09NTUFORCBbQVJHU10uLi4KKworICBPcHRpb25zOgorICAgIC12LCAtLXZlcmJvc2Ug
IEVuYWJsZXMgdmVyYm9zZSBtb2RlLgorICAgIC1WLCAtLXZlcnNpb24gIFByaW50IHRoZSB2ZXJz
aW9uIGFuZCBleGl0LgorICAgIC0taGVscCAgICAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBl
eGl0LgorCisgIENvbW1hbmRzOgorICAgIGJ1aWxkICAgICAgQnVpbGQgdGhlIHVuaWtyYWZ0IGFw
cGxpYW5jZS4KKyAgICBjb25maWd1cmUgIFNldHMgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBm
b3IgYW4gYXBwbGlhbmNlLgorICAgIGNyZWF0ZWZzICAgR2VuZXJhdGUgYSBzdGF0aWMgZmlsZXN5
c3RlbSBmb3IgdGhlIHVuaWtyYWZ0IGFwcGxpYW5jZS4KKyAgICBpbml0ICAgICAgIEluaXRpYWxp
emUgYSBuZXcgdW5pa3JhZnQgcHJvamVjdC4KKyAgICBsaXN0ICAgICAgIExpc3Qgc3VwcG9ydGVk
IHVuaWtyYWZ0IGFyY2hpdGVjdHVyZXMsIHBsYXRmb3JtcywgbGlicmFyaWVzIG9yCisgICAgICAg
ICAgICAgICBhcHBsaWNhdGlvbnMgdmlhIHJlbW90ZSByZXBvc2l0b3JpZXMuCisgICAgcnVuICAg
ICAgICBSdW4gdGhlIHVuaWtyYWZ0IGFwcGxpYW5jZS4KKyAgICB1cGRhdGUgICAgIExpc3Qgc3Vw
cG9ydGVkIHVuaWtyYWZ0IGFyY2hpdGVjdHVyZXMsIHBsYXRmb3JtcywgbGlicmFyaWVzIG9yCisg
ICAgICAgICAgICAgICBhcHBsaWNhdGlvbnMgdmlhIHJlbW90ZSByZXBvc2l0b3JpZXMuCisKKwor
Li4gX2tyYWZ0X3VwZGF0ZToKKworVXBkYXRpbmcgVW5pa3JhZnQgbGlicmFyeSBwb29scworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCis6OgorCisgIFVzYWdlOiBrcmFmdCB1cGRh
dGUgW09QVElPTlNdCisKKyAgICBUaGlzIHN1YmNvbW1hbmQgcmV0cmlldmVzIGxpc3RzIG9mIGF2
YWlsYWJsZSBhcmNoaXRlY3R1cmVzLCBwbGF0Zm9ybXMsCisgICAgbGlicmFyaWVzIGFuZCBhcHBs
aWNhdGlvbnMgc3VwcG9ydGVkIGJ5IHVuaWtyYWZ0LgorCisgIE9wdGlvbnM6CisgICAgLXMsIC0t
c3RhZ2luZyAgVXNlIHN0YWdpbmcgYnJhbmNoIChoZXJlIGJlIGRyYWdvbnMpLgorICAgIC0taGVs
cCAgICAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgorCisKKy4uIF9rcmFmdF9pbml0
OgorCitJbml0aWFsaXppbmcgYSBVbmlrcmFmdCBwcm9qZWN0CistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKzo6CisKKyAgVXNhZ2U6IGtyYWZ0IGluaXQgW09QVElPTlNdIFtQQVRI
XSBbTkFNRV0KKworICAgIFRoaXMgc3ViY29tbWFuZCBpbml0aWFsaXplcyBhIG5ldyB1bmlrcmFm
dCBhcHBsaWNhdGlvbiBhdCBhIHNlbGVjdGVkIHBhdGguCisKKyAgICBTdGFydCBoZXJlIGlmIHRo
aXMgaXMgeW91ciBmaXJzdCB0aW1lIHVzaW5nICh1bmkpa3JhZnQuCisKKyAgT3B0aW9uczoKKyAg
ICAtbSwgLS1hcmNoIFRFWFQgIFRhcmdldCBhcmNoaXRlY3R1cmUgIFtkZWZhdWx0OiAoZHluYW1p
YyldCisgICAgLXAsIC0tcGxhdCBURVhUICBUYXJnZXQgcGxhdGZvcm0gIFtkZWZhdWx0OiBsaW51
eHVdCisgICAgLWwsIC0tbGliIFRFWFQgICBUYXJnZXQgcGxhdGZvcm0KKyAgICAtYSwgLS1hcHAg
VEVYVCAgIFRhcmdldCBhcHBsaWNhdGlvbgorICAgIC1GLCAtLWZvcmNlICAgICAgT3ZlcndyaXRl
IGFueSBleGlzdGluZyBmaWxlcy4KKyAgICAtLWhlbHAgICAgICAgICAgIFNob3cgdGhpcyBtZXNz
YWdlIGFuZCBleGl0LgorCisKKy4uIF9rcmFmdF9jb25maWd1cmU6CisKK0NvbmZpZ3VyaW5nIGEg
VW5pa3JhZnQgYXBwbGljYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworOjoKKworICBVc2FnZToga3JhZnQgY29uZmlndXJlIFtPUFRJT05TXSBbUEFUSF0KKworICAg
IFRoaXMgc3ViY29tbWFuZCBwb3B1bGF0ZXMgdGhlIGxvY2FsIC5jb25maWcgZm9yIHRoZSB1bmlr
cmFmdCBhcHBsaWFuY2UKKyAgICB3aXRoIHdpdGggdGhlIGRlZmF1bHQgdmFsdWVzIGZvdW5kIGZv
ciB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uLgorCisgIE9wdGlvbnM6CisgICAgLW4sIC0tbWVudWNv
bmZpZyAgICAgVXNlIFVuaWtyYWZ0J3MgbmN1cnNlcyBLY29uZmlnIGVkaXRvci4KKyAgICAtZCwg
LS1kdW1wLW1ha2VmaWxlICBXcml0ZSBhIE1ha2VmaWxlIGNvbXBhdGlibGUgVW5pa3JhZnQncyBi
dWlsZCBzeXN0ZW0uCisgICAgLXUsIC0tZHVtcC11bmlrcmFmdCAgQ29weSBVbmlrcmFmdCBhbmQg
c291cmNlIGxpYnJhcmllcyBpbnRvIHRoZSBwYXRoLgorICAgIC0taGVscCAgICAgICAgICAgICAg
IFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgorCisKKworLi4gX2tyYWZ0X2J1aWxkOgorCitC
dWlsZGluZyBhIFVuaWtyYWZ0IGFwcGxpY2F0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKzo6CisKKyAgVXNhZ2U6IGtyYWZ0IGJ1aWxkIFtPUFRJT05TXSBbUEFUSF0KKwor
ICAgIFRoaXMgYnVpbGRzIHRoZSB1bmlrcmFmdCBhcHBsaWFuY2UgZm9yIHRoZSB0YXJnZXQgYXJj
aGl0ZWN0dXJlLCBwbGF0Zm9ybQorICAgIGFuZCB3aXRoIGFsbCBhZGRpdGlvbmFsIGxpYnJhcmll
cyBhbmQgY29uZmlndXJhdGlvbnMuCisKKyAgT3B0aW9uczoKKyAgICAtaiwgLS1mYXN0ICBVc2Ug
YWxsIENQVSBjb3JlcyB0byBidWlsZCB0aGUgYXBwbGljYXRpb24uCisgICAgLS1oZWxwICAgICAg
U2hvdyB0aGlzIG1lc3NhZ2UgYW5kIGV4aXQuCisKKworLi4gX2FkdmFuY2VkX3VzYWdlOgorCitB
ZHZhbmNlZCBVc2FnZQorPT09PT09PT09PT09PT0KKworYGBrcmFmdGBgIGl0c2VsZiBjYW4gYmUg
Y29uZmlndXJlZCB0byBtZWV0IHRoZSBuZWVkcyBvZiB5b3VyIGRldmVsb3BtZW50Cit3b3JrZmxv
dy4gIElmIHlvdSBhcmUgd29ya2luZyBkaXJlY3RseSB0aGUgVW5pa3JhZnQgc291cmNlIGNvZGUg
b3IgYSBsaWJyYXJ5Cit0aGVuIHlvdSBjYW4gY2hhbmdlIGBga3JhZnRgYCdzIGJlaGF2aW9yIHNv
IHRoYXQgaXQgcmVjb2duaXplcyBjaGFuZ2VzIHdoaWNoCit5b3UgbWFrZS4KKworCisuLiBfZW52
X3ZhcnM6CisKK0luZmx1ZW50aWFsIGVudmlyb25tZW50YWwgdmFyaWFibGVzCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitgYGtyYWZ0YGAgdXNlcyBlbnZpcm9ubWVudGFs
IHZhcmlhYmxlcyB0byBkZXRlcm1pbmUgdGhlIGxvY2F0aW9uIG9mIHRoZSBVbmlrcmFmdAorY29y
ZSBzb3VyY2UgY29kZSBhbmQgYWxsIGxpYnJhcnkgcG9vbHMuICBUaGlzIGlzIHNldCB1c2luZyB0
aGUgZm9sbG93aW5nOgorCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgRW52
aXJvbm1lbnRhbCB2YXJpYWJsZSB8IERlZmF1bHQgdmFsdWUgICAgICAgICAgICB8IFVzYWdlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorKz09PT09PT09PT09PT09PT09PT09PT09PSs9
PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0rCit8IGBgVUtfV09SS0RJUmBgICAgICAgICAgfCBgYH4vLnVuaWtyYWZ0YGAgICAgICAg
ICAgfCBUaGUgcm9vdCBkaXJlY3RvcnkgZm9yIGFsbCBzb3VyY2VzIHwKKystLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYFVLX1JPT1RgYCAgICAgICAgICAgIHwgYGAkVUtfV09S
S0RJUi91bmlrcmFmdGBgIHwgVGhlIFVuaWtyYWZ0IGNvcmUgc291cmNlIGNvZGUgICAgICB8Cisr
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBVS19MSUJTYGAgICAgICAgICAg
ICB8IGBgJFVLX1dPUktESVIvbGlic2BgICAgICB8IExpYnJhcnkgcG9vbCBzb3VyY2VzICAgICAg
ICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgVUtfQVBQ
U2BgICAgICAgICAgICAgfCBgYCRVS19XT1JLRElSL2FwcHNgYCAgICAgfCBBcHBsaWNhdGlvbnMg
YW5kIHRlbXBsYXRlcyAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KwpkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy91c2Vycy1hZHZhbmNlZC5yc3QgYi9kb2MvZ3VpZGVz
L3VzZXJzLWFkdmFuY2VkLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
MGRiYjU0Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL2d1aWRlcy91c2Vycy1hZHZhbmNlZC5yc3QK
QEAgLTAsMCArMSwxMDIgQEAKKz09PT09PT09PT09PT09PT09PT0KK1VuaWtyYWZ0IEludHJpbnNp
Y3MKKz09PT09PT09PT09PT09PT09PT0KKworVGhlIFVuaWtyYWZ0IGJ1aWxkIHN5c3RlbSByZWxp
ZXMgb24ga25vd2luZyB0aGUgc2VhcmNoIHBhdGhzIG9yIGJvdGggdGhlIAorVW5pa3JhZnQgY29y
ZSBzb3VyY2UgY29kZSBhbmQgYW55IGFkZGl0aW9uYWwgbGlicmFyaWVzLiAgIEJ5IHNldHRpbmcg
dGhlc2UgCitkaXJlY3RvcmllcywgeW91IGNhbiBjcmVhdGUgYSBzaW1wbGUgYGBNYWtlZmlsZWBg
IHdoaWNoIGFjdHMgYXMgcHJveHkgaW50byB0aGUKK21haW4gYnVpbGQgc3lzdGVtLgorCitUbyBi
ZWdpbiB1c2luZyBVbmlrcmFmdCB5b3UnbGwgbmVlZCB0byBoYXZlIHRoZSBmb2xsb3dpbmcgZGVw
ZW5kZW5jaWVzCitpbnN0YWxsZWQ6IDo6CisKKyAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5z
dGFsbC1yZWNvbW1lbmRzIGJ1aWxkLWVzc2VudGlhbCBsaWJuY3Vyc2VzLWRldiBmbGV4IGdpdCB3
Z2V0IGJpc29uIHVuemlwCisKK09uY2UgdGhlc2UgYXJlIGluc3RhbGxlZCwgeW91IGNhbiBjbG9u
ZSB0aGUgVW5pa3JhZnQgbWFpbiByZXBvOiA6OgorCisgIGdpdCBjbG9uZSBodHRwOi8vZ2l0aHVi
LmNvbS91bmlrcmFmdC91bmlrcmFmdC5naXQKKworSWYgeW91J2xsIGJlIHVzaW5nIFVuaWtyYWZ0
IGV4dGVybmFsIGxpYnJhcmllcywgdGhpcyB3b3VsZCBiZSB0aGUgdGltZQordG8gY2xvbmUgdGhv
c2UgdG9vLiAgWW91IGNhbiBzZWUgYSBsaXN0IG9mIGF2YWlsYWJsZSBsaWJyYXJpZXMgb24gYEdp
dGh1YiA8aHR0cHM6Ly9naXRodWIuY29tL3VuaXJrYWZ0PmBfCit3aXRoIHRoZSBwcmVmaXggYGBs
aWItYGAuICBZb3Ugd2lsbCBuZWVkIHRvIGNsb25lIGVhY2ggb25lIHNlcGFyYXRlbHkuCisKK1dl
IHJlY29tbWVuZCB0aGUgZm9sbG93aW5nIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgZm9yIHRoZSBVbmlr
cmFmdCBzb3VyY2UgY29kZSBhbmQKK2FueSBhZGRpdGlvbmFsIGxpYnJhcmllczogIDo6CisKKyAg
4pSc4pSA4pSAIHVuaWtyYWZ0LworICDilJzilIDilIAgYXBwcy8KKyAg4pSCICDilJzilIDilIAg
YXBwLTEvCisgIOKUgiAg4pSc4pSA4pSAIC4uLgorICDilIIgIOKUlOKUgOKUgCBhcHAtMi8KKyAg
4pSU4pSA4pSAIGxpYnMvCisgICAgIOKUnOKUgOKUgCBsaWItMS8KKyAgICAg4pSc4pSA4pSAIC4u
LgorICAgICDilJTilIDilIAgbGliLU4vCisKK09uY2UgdGhpcyBpcyBpbiBwbGFjZSwgeW91IGNh
biBjcmVhdGUgYSBgYE1ha2VmaWxlYGAgaW5zaWRlIHlvdXIgYXBwbGljYXRpb24KK2RpcmVjdG9y
eSB3aGljaCB1c2VzIHRoZXNlIGxvY2F0aW9ucyBhbmQgdXNlcyB0aGUgc3BlY2lhbCBNYWtlIHRh
cmdldCAKK2BgJChNQUtFQ01ER09BTFMpYGAgd2hpY2ggcmV0dXJucyB0aGUgdGFyZ2V0IHVzZWQg
d2hlbiBjYWxsaW5nIGBgbWFrZWBgOiA6OgorCisgIFVLX1JPT1QgPz0gJChQV0QpLy4uLy4uL3Vu
aWtyYWZ0CisgIFVLX0xJQlMgPz0gJChQV0QpLy4uLy4uL2xpYnMKKyAgTElCUyA6PQorCisgIGFs
bDoKKyAgICAgIEAkKE1BS0UpIC1DICQoVUtfUk9PVCkgQT0kKFBXRCkgTD0kKExJQlMpCisKKyAg
JChNQUtFQ01ER09BTFMpOgorICAgICAgQCQoTUFLRSkgLUMgJChVS19ST09UKSBBPSQoUFdEKSBM
PSQoTElCUykgJChNQUtFQ01ER09BTFMpCisKK05vdyBlZGl0IHRoZSBNYWtlZmlsZSBpbiB5b3Vy
IGFwcGxpY2F0aW9uIGRpcmVjdG9yeS4gIEluIHBhcnRpY3VsYXIsIHNldCB0aGUKK2BgVUtfUk9P
VGBgIGFuZCBgYFVLX0xJQlNgYCB2YXJpYWJsZXMgdG8gcG9pbnQgdG8gdGhlIGRpcmVjdG9yaWVz
IHdoZXJlIHlvdQorY2xvbmVkIHRoZSByZXBvcyBhYm92ZS4KKworQXBwbGljYXRpb24gc3RydWN0
dXJlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVG8gZ2V0IHF1aWNrbHkgc3RhcnRlZCwgdGhl
IGVhc2llc3QgaXMgdG8gY2xvbmUgdGhlIGhlbGxvIHdvcmxkIGFwcCAob25jZSBhZ2FpbiwKK2Vh
Y2ggVW5pa3JhZnQgYXBwIGhhcyBpdHMgb3duIHJlcG8pOiA6OgorCisgIGdpdCBjbG9uZSBodHRw
Oi8vZ2l0aHViLmNvbS91bmlrcmFmdC9hcHAtaGVsbG93b3JsZC5naXQKKword2hlcmUgeW91ciBh
cHAgaXMgbG9jYXRlZCBhdCBgYGFwcHMvaGVsbG93b3JsZGBgLCB5b3Ugd291bGQgc2V0Cit0aG9z
ZSB2YXJpYWJsZXMgYXMgZm9sbG93czogOjoKKworICBVS19ST09UID89ICQoUFdEKS8uLi8uLi91
bmlrcmFmdAorICBVS19MSUJTID89ICQoUFdEKS8uLi8uLi9saWJzCisKK0ZpbmFsbHksIGlmIHlv
dXIgYXBwIHdpbGwgYmUgdXNpbmcgZXh0ZXJuYWwgbGlicmFyaWVzLCBzZXQgdGhlIGBgTElCU2Bg
Cit2YXJpYWJsZSB0byByZWZsZWN0IHRoaXMuIEZvciBpbnN0YW5jZSA6IDo6CisKKyAgTElCUyA6
PSAkKFVLX0xJQlMpL2xpYi0xOiQoVUtfTElCUykvbGliLTI6JChVS19MSUJTKS9saWItTgorCisu
LiBub3RlOjoKKyAgCisgIFRoZSBsaXN0IG9mIGxpYnJhcmllcyBtdXN0IGJlIGNvbG9uLXNlcGFy
YXRlZCAoYGA6YGApLgorCitXaXRoIGFsbCBvZiB0aGlzIGluIHBsYWNlLCB3ZSdyZSBub3cgcmVh
ZHkgdG8gc3RhcnQgY29uZmlndXJpbmcgdGhlCithcHBsaWNhdGlvbiBpbWFnZSB2aWEgVW5pa3Jh
ZnQncyBtZW51LiAgVG8gYWNjZXNzIGl0LCBmcm9tIHdpdGhpbiB0aGUKK2FwcCdzIGRpcmVjdG9y
eSBzaW1wbHkgdHlwZSA6OgorCisgIG1ha2UgbWVudWNvbmZpZworCitUaGUgbWVudSBzeXN0ZW0g
aXMgZmFpcmx5IHNlbGYtZXhwbGFuYXRvcnkgYW5kIHdpbGwgYmUgZmFtaWxpYXIgdG8KK2FueW9u
ZSB3aG8gaGFzIGNvbmZpZ3VyZWQgYSBMaW51eCBrZXJuZWwgYmVmb3JlLiBTZWxlY3QgdGhlIG9w
dGlvbnMKK3lvdSB3YW50LCB0aGUgbGlicmFyaWVzIHlvdSdsbCBsaWtlIHRvIGluY2x1ZGUgYW5k
IGRvbid0IGZvcmdldCB0bworc2VsZWN0IGF0IGxlYXN0IG9uZSBwbGF0Zm9ybSAoZS5nLiwgS1ZN
LCBYZW4gb3IgTGludXggdXNlci1zcGFjZSAtLQordGhlIGxhdHRlciBpcyBxdWl0ZSB1c2VmdWwg
Zm9yIHF1aWNrIHRlc3RpbmcgYW5kIGRlYnVnZ2luZykuCisKK0ZpbmFsbHksIHF1aXQgdGhlIG1l
bnUgd2hpbGUgc2F2aW5nIHRoZSBjb25maWd1cmF0aW9uIGNoYW5nZXMgeW91J3ZlCittYWRlIGFu
ZCBidWlsZCB5b3VyIGFwcGxpY2F0aW9uIGJ5IGp1c3QgdHlwaW5nIGBgbWFrZWBgLiBVbmlrcmFm
dCB3aWxsCit0aGVuIGJ1aWxkIGVhY2ggbGlicmFyeSBpbiB0dXJuIGFzIHdlbGwgYXMgdGhlIHNv
dXJjZSBmaWxlcyBmb3IgeW91cgorYXBwbGljYXRpb24sIHByb2R1Y2luZyBvbmUgaW1hZ2UgaW4g
dGhlIGBgLi9idWlsZGBgIGRpcmVjdG9yeSBmb3IgZWFjaAorcGxhdGZvcm0gdHlwZSB5b3Ugc2Vs
ZWN0ZWQuCisKK1J1bm5pbmcgdGhlIGltYWdlIHdpbGwgZGVwZW5kIG9uIHdoaWNoIHBsYXRmb3Jt
IHlvdSB0YXJnZXRlZC4gRm9yCitMaW51eCB1c2VyLXNwYWNlLCBmb3IgaW5zdGFuY2UsIHRoZSBp
bWFnZSBpcyBqdXN0IGEgc3RhbmRhcmQgRUxGLCBzbworeW91IGNhbiBzaW1wbHkgcnVuIGl0IHdp
dGggOjoKKworICAuL2J1aWxkL2hlbGxvd29ybGRfbGludXh1LXg4Nl82NAorCitGb3IgbW9yZSBp
bmZvcm1hdGlvbiByZWdhcmRpbmcgcG9ydGluZyBhbmQgZGV2ZWxvcGluZyBhcHBzIChhbmQKK2xp
YnJhcmllcykgaW4gVW5pa3JhZnQgcGxlYXNlIHJlYWQgdGhlIGRldmVsb3BlcidzIGd1aWRlLgpk
aWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy91c2Vycy5yc3QgYi9kb2MvZ3VpZGVzL3VzZXJzLnJzdApp
bmRleCAwNTAwYjhmLi5mOTVhZDcyIDEwMDY0NAotLS0gYS9kb2MvZ3VpZGVzL3VzZXJzLnJzdAor
KysgYi9kb2MvZ3VpZGVzL3VzZXJzLnJzdApAQCAtMSw1ICsxLDYgQEAKLSMjIyMjIyMjIyMjIyMj
IyMjIyMjCis9PT09PT09PT09PT0KIFVzZXIncyBHdWlkZQorPDw8PDw8PCBVcGRhdGVkIHVwc3Ry
ZWFtCiAjIyMjIyMjIyMjIyMjIyMjIyMjIwogVGhpcyBzZWN0aW9uIG9mIHRoZSBndWlkZSBwcm92
aWRlcyBhbGwgdGhlIGluZm9ybWF0aW9uIHlvdSBzaG91bGQgbmVlZAogdG8gIGdldCBzdGFydGVk
ICB3aXRoIGFuZCAgdG8gIHVzZSBVbmlrcmFmdC4gIElmIHlvdSAgaGF2ZSBuZXZlciAgdXNlZApA
QCAtMTMsMyArMTQsMTkgQEAgdGhyb3VnaCB0aGUgdHV0b3JpYWxzLgogICAgdXNlcnMtdHV0b3Jp
YWwKICAgIHVzZXJzLWRvd25sb2FkcwogICAgdXNlcnMtcmVzb3VyY2VzCis9PT09PT09Cis9PT09
PT09PT09PT0KKworVW5pa3JhZnQgaXMgYW4gZXh0ZW5zaXZlIGJ1aWxkIHN5c3RlbSBpbiBhZGRp
dGlvbiB0byB0aGUgY29yZSBhbmQgZXh0ZXJuYWwKK2xpYnJhcmllcyB3aGljaCBmYWNpbGl0YXRl
IHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uYWxpdHkgb2YgYSB1bmlrZXJuZWwuICBEZXRhaWxzCitv
biBob3cgdG8gYmVnaW4gdXNpbmcgVW5pa3JhZnQgZm9yIHlvdXIgYXBwbGljYXRpb25zIGhhdmUg
YmVlbiBicm9rZW4gZG93biBpbnRvCit0d28gZ3VpZGVzLiAgIEluIHRoZSBmaXJzdCBndWlkZSwg
d2UgaW50cm9kdWNlIGBga3JhZnRgYCwgYSBjb21tYW5kLWxpbmUgdXRpbGl0eQord2hpY2ggYWlk
cyBpbiBhYnN0cmFjdGluZyBtYW55IG9mIFVuaWtyYWZ0LXNwZWNpZmljIGludGVybmFscy4gIFdl
IGxhdGVyIGNvdmVyCitob3cgdG8gdXNlIHRoZXNlIGxldmVyYWdlIHRoaXMgZnVuY3Rpb25hbGl0
eSBmb3IgYWR2YW5jZWQgdXNhZ2UuCisKKy4uIHRvY3RyZWU6OgorICAgOm1heGRlcHRoOiAzCisK
KyAgIGtyYWZ0CisgICB1c2Vycy1hZHZhbmNlZAorPj4+Pj4+PiBTdGFzaGVkIGNoYW5nZXMKLS0g
CjIuMjQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3Mt
ZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Sat Feb 01 19:33:51 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 01 Feb 2020 19:33:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ixyWc-0007jQ-Ot; Sat, 01 Feb 2020 19:33:50 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PPDB=3V=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1ixyWb-0007jL-Ri
 for minios-devel@lists.xen.org; Sat, 01 Feb 2020 19:33:49 +0000
X-Inumbo-ID: c4a6bfca-4529-11ea-8d03-12813bfff9fa
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id c4a6bfca-4529-11ea-8d03-12813bfff9fa;
 Sat, 01 Feb 2020 19:33:49 +0000 (UTC)
Received: from x4dbea965.dyn.telefonica.de ([77.190.169.101]
 helo=localhost.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1ixyWZ-0009p0-0g; Sat, 01 Feb 2020 19:33:48 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Sat,  1 Feb 2020 20:33:31 +0100
Message-Id: <20200201193331.69014-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-HELLOWORLD] Introduce a `kraft`
 compatible dependency file.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhpcyBjb21taXQgaW50cm9kdWNlcyB0aGUgbmV3IGZpbGUgZGVwcy5qc29uIHdoaWNoIGlzIHVz
ZWQgYXMKcGFydCBvZiB0aGUgYGtyYWZ0YCBjb21tYW5kLWxpbmUgdXRpbGl0eSB0byBtYW5hZ2Ug
ZGVwZW5kZW5jaWVzCmFnYWluc3QgdGhlIFVuaWtyYWZ0IGNvcmUgYnVpbGQgc3lzdGVtLgoKSW4g
ZGVwcy5qc29uIGlzIHRoZSBjdXJyZW50IChhcyBvZiB0b2RheSkgdmVyc2lvbiBvZiBVbmlrcmFm
dApvbiBzdGFnaW5nIGJyYW5jaC4KClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1
bmdAbGFuY3MuYWMudWs+Ci0tLQogZGVwcy5qc29uIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAz
IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkZXBzLmpzb24KCmRpZmYgLS1naXQg
YS9kZXBzLmpzb24gYi9kZXBzLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYjVmNjhhNgotLS0gL2Rldi9udWxsCisrKyBiL2RlcHMuanNvbgpAQCAtMCwwICsxLDMgQEAK
K3sKKyAgICAiY29yZSI6ICIzM2NjMDJiYSIKK30KLS0gCjIuMjQuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Sat Feb 01 19:37:25 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 01 Feb 2020 19:37:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ixya5-0007mu-3Q; Sat, 01 Feb 2020 19:37:25 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PPDB=3V=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1ixya4-0007mp-5P
 for minios-devel@lists.xen.org; Sat, 01 Feb 2020 19:37:24 +0000
X-Inumbo-ID: 43f20dac-452a-11ea-8d03-12813bfff9fa
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 43f20dac-452a-11ea-8d03-12813bfff9fa;
 Sat, 01 Feb 2020 19:37:22 +0000 (UTC)
Received: from x4dbea965.dyn.telefonica.de ([77.190.169.101]
 helo=localhost.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1ixya0-000A47-1z; Sat, 01 Feb 2020 19:37:21 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Sat,  1 Feb 2020 20:37:13 +0100
Message-Id: <20200201193713.70883-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-PYTHON3] Update deps.json formatting.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhpcyBjb21taXQgdXBkYXRlcyB0aGUgZm9ybWF0IG9mIHRoZSBkZXBzLmpzb24gZmlsZSBzdWNo
IHRoYXQKdGhlICJjb3JlIiBjb21wb25lbnQgaXMgbm90IGFuIG9iamVjdCBhbmQgc29sZWx5IHJl
ZmxlY3RzIHRoZQpjb21taXQgb2YgdGhlIG1haW4gVW5pa3JhZnQgcmVwc29zaXRvcnkgaXRzZWxm
LgoKQWRkaXRpb25hbCB3aGl0ZXNwYWNlIHdhcyByZWR1Y2VkLgoKU2lnbmVkLW9mZi1ieTogQWxl
eGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBkZXBzLmpzb24gfCAyNCArKysr
KysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDE1
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RlcHMuanNvbiBiL2RlcHMuanNvbgppbmRleCAx
MmU4M2Q3Li5lYWIxY2ZiIDEwMDY0NAotLS0gYS9kZXBzLmpzb24KKysrIGIvZGVwcy5qc29uCkBA
IC0xLDE4ICsxLDEyIEBACiAgewotICAgICAiY29yZSI6Ci0gICAgIHsgIAotICAgICAgICAgInVu
aWtyYWZ0IiAgICAgICAgIDogImQ4YWRhMTE2IiAKLSAgICAgfSwgCi0gICAgICJsaWJzIjoKLSAg
ICAgeyAgCi0gICAgICAgICAicHRocmVhZC1lbWJlZGRlZCIgOiAiYjUwZGVkYyIsCi0gICAgICAg
ICAibHdpcCIgICAgICAgICAgICAgOiAiMDZiZDAyMyIsCi0gICAgICAgICAiemxpYiIgICAgICAg
ICAgICAgOiAiZGRjZjQzZiIsCi0gICAgICAgICAibGlidXVpZCIgICAgICAgICAgOiAiNTFkZDdi
ZiIsCi0gICAgICAgICAicHl0aG9uMyIgICAgICAgICAgOiAiZjhmMzcwNSIsCi0gICAgICAgICAi
bmV3bGliIiAgICAgICAgICAgOiAiNzg0NjliNSIKLSAgICAgfSwgCi0gICAgICJwbGF0cyI6Ci0g
ICAgIHsgfQorICAgICAiY29yZSI6ICJkOGFkYTExNiIsIAorICAgICAibGlicyI6IHsgIAorICAg
ICAgICAgInB0aHJlYWQtZW1iZWRkZWQiOiAiYjUwZGVkYyIsCisgICAgICAgICAibHdpcCI6ICIw
NmJkMDIzIiwKKyAgICAgICAgICJ6bGliIjogImRkY2Y0M2YiLAorICAgICAgICAgImxpYnV1aWQi
OiAiNTFkZDdiZiIsCisgICAgICAgICAicHl0aG9uMyI6ICJmOGYzNzA1IiwKKyAgICAgICAgICJu
ZXdsaWIiOiAiNzg0NjliNSIKKyAgICAgfSAKICB9CiAKLS0gCjIuMjQuMQoKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5n
IGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Sun Feb 02 09:29:04 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 02 Feb 2020 09:29:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyBYr-0000VL-K3; Sun, 02 Feb 2020 09:29:01 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=jSXD=3W=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1iyBYq-0000VG-7T
 for minios-devel@lists.xen.org; Sun, 02 Feb 2020 09:29:00 +0000
X-Inumbo-ID: 6fcfa3d4-459e-11ea-a933-bc764e2007e4
Received: from mh-is-1.lancs.ac.uk (unknown [148.88.65.129])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6fcfa3d4-459e-11ea-a933-bc764e2007e4;
 Sun, 02 Feb 2020 09:28:57 +0000 (UTC)
Received: from x4db49d2f.dyn.telefonica.de ([77.180.157.47]
 helo=localhost.localdomain)
 by mh-is-1.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1iyBYl-000GYy-66; Sun, 02 Feb 2020 09:28:56 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Sun,  2 Feb 2020 10:28:44 +0100
Message-Id: <20200202092844.34051-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-1.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT PATCH] Fix broken user guide with
 malformed commit.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBk
b2MvZ3VpZGVzL3VzZXJzLnJzdCB8IDE3IC0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl
ZCwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy91c2Vycy5yc3QgYi9k
b2MvZ3VpZGVzL3VzZXJzLnJzdAppbmRleCBmOTVhZDcyLi41ZDE1N2JmIDEwMDY0NAotLS0gYS9k
b2MvZ3VpZGVzL3VzZXJzLnJzdAorKysgYi9kb2MvZ3VpZGVzL3VzZXJzLnJzdApAQCAtMSwyMSAr
MSw1IEBACiA9PT09PT09PT09PT0KIFVzZXIncyBHdWlkZQotPDw8PDw8PCBVcGRhdGVkIHVwc3Ry
ZWFtCi0jIyMjIyMjIyMjIyMjIyMjIyMjIwotVGhpcyBzZWN0aW9uIG9mIHRoZSBndWlkZSBwcm92
aWRlcyBhbGwgdGhlIGluZm9ybWF0aW9uIHlvdSBzaG91bGQgbmVlZAotdG8gIGdldCBzdGFydGVk
ICB3aXRoIGFuZCAgdG8gIHVzZSBVbmlrcmFmdC4gIElmIHlvdSAgaGF2ZSBuZXZlciAgdXNlZAot
VW5pa3JhZnQgIGJlZm9yZSwgcmVhZCAgdGhlIGdldHRpbmcgIHN0YXJ0ZWQgcGFnZSAgYW5kIG9w
dGlvbmFsbHkgIHJ1bgotdGhyb3VnaCB0aGUgdHV0b3JpYWxzLgotCi0uLiB0b2N0cmVlOjoKLSAg
IDptYXhkZXB0aDogMgotCi0gICB1c2Vycy1nZXR0aW5nc3RhcnRlZAotICAgdXNlcnMtdHV0b3Jp
YWwKLSAgIHVzZXJzLWRvd25sb2FkcwotICAgdXNlcnMtcmVzb3VyY2VzCi09PT09PT09Ci09PT09
PT09PT09PT0KIAogVW5pa3JhZnQgaXMgYW4gZXh0ZW5zaXZlIGJ1aWxkIHN5c3RlbSBpbiBhZGRp
dGlvbiB0byB0aGUgY29yZSBhbmQgZXh0ZXJuYWwKIGxpYnJhcmllcyB3aGljaCBmYWNpbGl0YXRl
IHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uYWxpdHkgb2YgYSB1bmlrZXJuZWwuICBEZXRhaWxzCkBA
IC0yOSw0ICsxMywzIEBAIGhvdyB0byB1c2UgdGhlc2UgbGV2ZXJhZ2UgdGhpcyBmdW5jdGlvbmFs
aXR5IGZvciBhZHZhbmNlZCB1c2FnZS4KIAogICAga3JhZnQKICAgIHVzZXJzLWFkdmFuY2VkCi0+
Pj4+Pj4+IFN0YXNoZWQgY2hhbmdlcwotLSAKMi4yNC4xCgoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5p
b3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Sun Feb 02 10:07:06 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 02 Feb 2020 10:07:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyC9g-0003he-RO; Sun, 02 Feb 2020 10:07:04 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=jSXD=3W=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1iyC9f-0003hZ-L9
 for minios-devel@lists.xen.org; Sun, 02 Feb 2020 10:07:03 +0000
X-Inumbo-ID: c0034752-45a3-11ea-b211-bc764e2007e4
Received: from mh-is-1.lancs.ac.uk (unknown [148.88.65.129])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c0034752-45a3-11ea-b211-bc764e2007e4;
 Sun, 02 Feb 2020 10:06:59 +0000 (UTC)
Received: from x4db49d2f.dyn.telefonica.de ([77.180.157.47]
 helo=localhost.localdomain)
 by mh-is-1.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1iyC9Y-000Iaz-4b; Sun, 02 Feb 2020 10:06:58 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Sun,  2 Feb 2020 11:06:48 +0100
Message-Id: <20200202100648.46344-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-1.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT PATCH v2] Re-organize advanced user's
 guide into a single tutrial.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhpcyBjb21taXQgbW92ZXMgdGhlIHR1dG9yaWFsIGFuZCBnZXR0aW5nIHN0YXJ0ZWQgcGFnZXMg
aW50bwpvbmUgInVuaWtyYWZ0IGludHJpbnNpYyIgcGFnZSBhcyB0aGVyZSB3YXMgcGxlbnR5IG9m
IG92ZXJsYXAuCgpUaGlzIGNvbW1pdCBhbHNvIGZpeGVzIGEgYnJva2VuIHVzZXIgZ3VpZGUgd2l0
aCBhIHByZXZpb3VzbHkKbWFsZm9ybWVkIGNvbW1pdC4KClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRl
ciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+Ci0tLQogZG9jL2d1aWRlcy91c2Vycy1hZHZhbmNl
ZC5yc3QgICAgICAgfCAzMjIgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogZG9jL2d1aWRl
cy91c2Vycy1nZXR0aW5nc3RhcnRlZC5yc3QgfCAxMzUgLS0tLS0tLS0tLS0tCiBkb2MvZ3VpZGVz
L3VzZXJzLXR1dG9yaWFsLnJzdCAgICAgICB8IDI4NiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IGRvYy9ndWlkZXMvdXNlcnMucnN0ICAgICAgICAgICAgICAgIHwgIDE3ICstCiA0IGZpbGVzIGNo
YW5nZWQsIDI5MSBpbnNlcnRpb25zKCspLCA0NjkgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAx
MDA2NDQgZG9jL2d1aWRlcy91c2Vycy1nZXR0aW5nc3RhcnRlZC5yc3QKIGRlbGV0ZSBtb2RlIDEw
MDY0NCBkb2MvZ3VpZGVzL3VzZXJzLXR1dG9yaWFsLnJzdAoKZGlmZiAtLWdpdCBhL2RvYy9ndWlk
ZXMvdXNlcnMtYWR2YW5jZWQucnN0IGIvZG9jL2d1aWRlcy91c2Vycy1hZHZhbmNlZC5yc3QKaW5k
ZXggZTBkYmI1NC4uZWM1ODcwMSAxMDA2NDQKLS0tIGEvZG9jL2d1aWRlcy91c2Vycy1hZHZhbmNl
ZC5yc3QKKysrIGIvZG9jL2d1aWRlcy91c2Vycy1hZHZhbmNlZC5yc3QKQEAgLTEsMjcgKzEsNDEg
QEAKLT09PT09PT09PT09PT09PT09PT0KKyoqKioqKioqKioqKioqKioqKioKIFVuaWtyYWZ0IElu
dHJpbnNpY3MKLT09PT09PT09PT09PT09PT09PT0KKyoqKioqKioqKioqKioqKioqKioKIAogVGhl
IFVuaWtyYWZ0IGJ1aWxkIHN5c3RlbSByZWxpZXMgb24ga25vd2luZyB0aGUgc2VhcmNoIHBhdGhz
IG9yIGJvdGggdGhlIAogVW5pa3JhZnQgY29yZSBzb3VyY2UgY29kZSBhbmQgYW55IGFkZGl0aW9u
YWwgbGlicmFyaWVzLiAgIEJ5IHNldHRpbmcgdGhlc2UgCiBkaXJlY3RvcmllcywgeW91IGNhbiBj
cmVhdGUgYSBzaW1wbGUgYGBNYWtlZmlsZWBgIHdoaWNoIGFjdHMgYXMgcHJveHkgaW50byB0aGUK
IG1haW4gYnVpbGQgc3lzdGVtLgogCitGb3IgdGhpcyB0dXRvcmlhbCB5b3Ugd2lsbCBuZWVkIGEg
TGludXggaG9zdCBydW5uaW5nIFhlbiBhbmQvb3IgS1ZNIGluCitvcmRlciB0byBydW4gVW5pa3Jh
ZnQgaW1hZ2VzLiBQbGVhc2UgY2hlY2sgdGhlIG1hbnVhbCBvZiB5b3VyIExpbnV4CitkaXN0cmli
dXRpb24gcmVnYXJkaW5nIGhvdyB0byBpbnN0YWxsIHRoZXNlIGVudmlyb25tZW50cy4gVGhpcwor
dHV0b3JpYWwgZXhwZWN0cyB0aGF0IHlvdSBoYXZlIHRoZSBlc3NlbnRpYWwgYnVpbGQgYW5kIGRl
YnVnZ2luZyB0b29scworaW5zdGFsbGVkLiBJbiBhZGRpdGlvbiwgZm9yIFhlbiB5b3Ugd2lsbCBu
ZWVkIHRvIGhhdmUgdGhlIGBgeGxgYCB0b29sc3RhY2sgCitpbnN0YWxsZWQgYW5kIHJ1bm5pbmcs
IGFuZCBmb3IgS1ZNIGBgcWVtdWBgLgorCiBUbyBiZWdpbiB1c2luZyBVbmlrcmFmdCB5b3UnbGwg
bmVlZCB0byBoYXZlIHRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jaWVzCiBpbnN0YWxsZWQ6IDo6CiAK
ICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIGJ1aWxkLWVzc2Vu
dGlhbCBsaWJuY3Vyc2VzLWRldiBmbGV4IGdpdCB3Z2V0IGJpc29uIHVuemlwCiAKLU9uY2UgdGhl
c2UgYXJlIGluc3RhbGxlZCwgeW91IGNhbiBjbG9uZSB0aGUgVW5pa3JhZnQgbWFpbiByZXBvOiA6
OgorT3B0aW9uYWxseSwgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBQeXRob24gZnJvbnQtZW5kIHRv
IFVuaWtyYWZ0J3MKK21lbnUsIHBsZWFzZSBhbHNvIHJ1biA6OgogCi0gIGdpdCBjbG9uZSBodHRw
Oi8vZ2l0aHViLmNvbS91bmlrcmFmdC91bmlrcmFmdC5naXQKKyAgYXB0LWdldCBpbnN0YWxsIGd0
aystMi4wIGdtb2R1bGUtMi4wIGxpYmdsYWRlLTIuMAogCi1JZiB5b3UnbGwgYmUgdXNpbmcgVW5p
a3JhZnQgZXh0ZXJuYWwgbGlicmFyaWVzLCB0aGlzIHdvdWxkIGJlIHRoZSB0aW1lCi10byBjbG9u
ZSB0aG9zZSB0b28uICBZb3UgY2FuIHNlZSBhIGxpc3Qgb2YgYXZhaWxhYmxlIGxpYnJhcmllcyBv
biBgR2l0aHViIDxodHRwczovL2dpdGh1Yi5jb20vdW5pcmthZnQ+YF8KLXdpdGggdGhlIHByZWZp
eCBgYGxpYi1gYC4gIFlvdSB3aWxsIG5lZWQgdG8gY2xvbmUgZWFjaCBvbmUgc2VwYXJhdGVseS4K
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ2xvbmluZyBSZXBvc2l0b3JpZXMKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PQogCi1XZSByZWNvbW1lbmQgdGhlIGZvbGxvd2luZyBkaXJl
Y3Rvcnkgc3RydWN0dXJlIGZvciB0aGUgVW5pa3JhZnQgc291cmNlIGNvZGUgYW5kCi1hbnkgYWRk
aXRpb25hbCBsaWJyYXJpZXM6ICA6OgorWW91IGNhbiBlYXNpbHkgYnVpbGQgVW5pa3JhZnQgdW5p
a2VybmVscyBvbiB5b3VyIExpbnV4IGhvc3QuIElmIHlvdQoraGF2ZSBhbGwgdG9vbHMgYW5kIGxp
YnJhcmllcyBpbnN0YWxsZWQgdG8gY29tcGlsZSBhIExpbnV4IGtlcm5lbCB5b3UKK2FyZSByZWFk
eSB0byBkbyB0aGlzIHdpdGggVW5pa3JhZnQgdG9vLgorCitBIFVuaWtyYWZ0IGJ1aWxkIGNvbnNp
c3RzIG1vc3RseSBvZiBhIGNvbWJpbmF0aW9uIG9mIG11bHRpcGxlCityZXBvc2l0b3JpZXMuIFdl
IGRpZmZlcmVudGlhdGUgdGhlbSBpbnRvOiAoMSkgVW5pa3JhZnQsICgyKSBleHRlcm5hbAorbGli
cmFyaWVzLCAoMykgYXBwbGljYXRpb24uICBUaGUgYnVpbGQgc3lzdGVtIGFzc3VtZXMgdGhlc2Ug
dG8gYmUKK3N0cnVjdHVyZWQgYXMgZm9sbG93czogOjoKIAogICDilJzilIDilIAgdW5pa3JhZnQv
CiAgIOKUnOKUgOKUgCBhcHBzLwpAQCAtMzMsNiArNDcsMzEgQEAgYW55IGFkZGl0aW9uYWwgbGli
cmFyaWVzOiAgOjoKICAgICAg4pSc4pSA4pSAIC4uLgogICAgICDilJTilIDilIAgbGliLU4vCiAK
K09uY2UgeW91ciBkZXBlbmRlbmNpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBhbmQgdGhlIGRpcmVj
dG9yeSBzdHJ1Y3R1cmUgc2V0LCB5b3UKK2NhbiBjbG9uZSB0aGUgVW5pa3JhZnQgbWFpbiByZXBv
OiA6OgorCisgIGdpdCBjbG9uZSBodHRwOi8vZ2l0aHViLmNvbS91bmlrcmFmdC91bmlrcmFmdC5n
aXQKKworSWYgeW91J2xsIGJlIHVzaW5nIFVuaWtyYWZ0IGV4dGVybmFsIGxpYnJhcmllcywgdGhp
cyB3b3VsZCBiZSB0aGUgdGltZQordG8gY2xvbmUgdGhvc2UgdG9vLiAgWW91IGNhbiBzZWUgYSBs
aXN0IG9mIGF2YWlsYWJsZSBsaWJyYXJpZXMgb24gYEdpdGh1YiA8aHR0cHM6Ly9naXRodWIuY29t
L3VuaXJrYWZ0PmBfCit3aXRoIHRoZSBwcmVmaXggYGBsaWItYGAuICBZb3Ugd2lsbCBuZWVkIHRv
IGNsb25lIGVhY2ggb25lIHNlcGFyYXRlbHkuCisKKyogVW5pa3JhZnQgYmFzZSByZXBvc2l0b3J5
IGRpcmVjdGx5IHVuZGVyIHlvdXIgd29ya3NwYWNlIHJvb3QKKyAgICogYFVuaWtyYWZ0IHJlcG8g
PGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC91bmlrcmFmdC5naXQ+YF8KKyogRXh0ZXJuYWwg
bGlicmFyaWVzIGludG8gYSBgbGlic2Agc3ViZGlyZWN0b3J5OgorCSogYG5ld2xpYiByZXBvIDxo
dHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQvbGliLW5ld2xpYi5naXQ+YF8KKwkqIGBsd2lwIHJl
cG8gPGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC9saWItbHdpcC5naXQ+YF8KKyogQXBwbGlj
YXRpb25zIGludG8gYW4gYGFwcHNgIHN1YmRpcmVjdG9yeToKKwkqIGBoZWxsb3dvcmxkIHJlcG8g
PGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC9hcHAtaGVsbG93b3JsZC5naXQ+YF8KKwkqIGBo
dHRwcmVwbHkgcmVwbyA8aHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L2FwcC1odHRwcmVwbHku
Z2l0PmBfCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PQorWW91ciBGaXJzdCBVbmlrZXJu
ZWwKKz09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitNYWtlZmlsZSBlbnRyeXBvaW50Cist
LS0tLS0tLS0tLS0tLS0tLS0tCisKIE9uY2UgdGhpcyBpcyBpbiBwbGFjZSwgeW91IGNhbiBjcmVh
dGUgYSBgYE1ha2VmaWxlYGAgaW5zaWRlIHlvdXIgYXBwbGljYXRpb24KIGRpcmVjdG9yeSB3aGlj
aCB1c2VzIHRoZXNlIGxvY2F0aW9ucyBhbmQgdXNlcyB0aGUgc3BlY2lhbCBNYWtlIHRhcmdldCAK
IGBgJChNQUtFQ01ER09BTFMpYGAgd2hpY2ggcmV0dXJucyB0aGUgdGFyZ2V0IHVzZWQgd2hlbiBj
YWxsaW5nIGBgbWFrZWBgOiA6OgpAQCAtNTEsNDAgKzkwLDUxIEBAIE5vdyBlZGl0IHRoZSBNYWtl
ZmlsZSBpbiB5b3VyIGFwcGxpY2F0aW9uIGRpcmVjdG9yeS4gIEluIHBhcnRpY3VsYXIsIHNldCB0
aGUKIGBgVUtfUk9PVGBgIGFuZCBgYFVLX0xJQlNgYCB2YXJpYWJsZXMgdG8gcG9pbnQgdG8gdGhl
IGRpcmVjdG9yaWVzIHdoZXJlIHlvdQogY2xvbmVkIHRoZSByZXBvcyBhYm92ZS4KIAotQXBwbGlj
YXRpb24gc3RydWN0dXJlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVG8gZ2V0IHF1aWNrbHkg
c3RhcnRlZCwgdGhlIGVhc2llc3QgaXMgdG8gY2xvbmUgdGhlIGhlbGxvIHdvcmxkIGFwcCAob25j
ZSBhZ2FpbiwKLWVhY2ggVW5pa3JhZnQgYXBwIGhhcyBpdHMgb3duIHJlcG8pOiA6OgotCi0gIGdp
dCBjbG9uZSBodHRwOi8vZ2l0aHViLmNvbS91bmlrcmFmdC9hcHAtaGVsbG93b3JsZC5naXQKK0lm
IHlvdXIgYXBwIHVzZXMgZXh0ZXJuYWwgbGlicmFyaWVzLCBzZXQgdGhlIGBgTElCU2BgIHZhcmlh
YmxlIHRvCityZWZsZWN0IHRoaXMuIEZvciBpbnN0YW5jZSA6IDo6CiAKLXdoZXJlIHlvdXIgYXBw
IGlzIGxvY2F0ZWQgYXQgYGBhcHBzL2hlbGxvd29ybGRgYCwgeW91IHdvdWxkIHNldAotdGhvc2Ug
dmFyaWFibGVzIGFzIGZvbGxvd3M6IDo6Ci0KLSAgVUtfUk9PVCA/PSAkKFBXRCkvLi4vLi4vdW5p
a3JhZnQKLSAgVUtfTElCUyA/PSAkKFBXRCkvLi4vLi4vbGlicworICBMSUJTIDo9ICQoVUtfTElC
UykvbGliMTokKFVLX0xJQlMpL2xpYjI6JChVS19MSUJTKS9saWJOCiAKLUZpbmFsbHksIGlmIHlv
dXIgYXBwIHdpbGwgYmUgdXNpbmcgZXh0ZXJuYWwgbGlicmFyaWVzLCBzZXQgdGhlIGBgTElCU2Bg
Ci12YXJpYWJsZSB0byByZWZsZWN0IHRoaXMuIEZvciBpbnN0YW5jZSA6IDo6CitGaW5hbGx5LCBp
ZiB5b3VyIGFwcCB1c2VzIGV4dGVybmFsIHBsYXRmb3Jtcywgc2V0IHRoZSBgYFBMQVRTYGAKK3Zh
cmlhYmxlOiA6OgogCi0gIExJQlMgOj0gJChVS19MSUJTKS9saWItMTokKFVLX0xJQlMpL2xpYi0y
OiQoVUtfTElCUykvbGliLU4KKyAgUExBVFMgPz0gJChVS19QTEFUUykvcGxhdDE6JChVS19QTEFU
UykvcGxhdDI6JChVS19QTEFUUykvcGxhdE4KIAogLi4gbm90ZTo6CiAgIAotICBUaGUgbGlzdCBv
ZiBsaWJyYXJpZXMgbXVzdCBiZSBjb2xvbi1zZXBhcmF0ZWQgKGBgOmBgKS4KKyAgVGhlIGxpc3Qg
b2YgbGlicmFyaWVzIGFuZCBwbGF0Zm9ybXMgbXVzdCBiZSBjb2xvbi1zZXBhcmF0ZWQgKGBgOmBg
KS4KKworQWxzbyBtYWtlIHN1cmUgdGhhdCB5b3UgaGFuZC1vdmVyIHRoZXNlIHBsYXRmb3JtcyB3
aXRoIHRoZQorYGBQPWBgIHBhcmFtZXRlciB0byB0aGUgc3ViIG1ha2UgY2FsbCBpbiB5b3VyIG1h
aW4gYGBNYWtlZmlsZWBgOiA6OgorCisgIEBtYWtlIC1DICQoVUtfUk9PVCkgQT0kKFBXRCkgTD0k
KExJQlMpIFA9JChQTEFUUykgZmV0Y2gKKyAgQG1ha2UgLUMgJChVS19ST09UKSBBPSQoUFdEKSBM
PSQoTElCUykgUD0kKFBMQVRTKSBwcmVwYXJlCisgIEBtYWtlIC1DICQoVUtfUk9PVCkgQT0kKFBX
RCkgTD0kKExJQlMpIFA9JChQTEFUUykKIAogV2l0aCBhbGwgb2YgdGhpcyBpbiBwbGFjZSwgd2Un
cmUgbm93IHJlYWR5IHRvIHN0YXJ0IGNvbmZpZ3VyaW5nIHRoZQotYXBwbGljYXRpb24gaW1hZ2Ug
dmlhIFVuaWtyYWZ0J3MgbWVudS4gIFRvIGFjY2VzcyBpdCwgZnJvbSB3aXRoaW4gdGhlCithcHBs
aWNhdGlvbiBpbWFnZSB2aWEgVW5pa3JhZnQncyBtZW51LiBUbyBhY2Nlc3MgaXQsIGZyb20gd2l0
aGluIHRoZQogYXBwJ3MgZGlyZWN0b3J5IHNpbXBseSB0eXBlIDo6CiAKICAgbWFrZSBtZW51Y29u
ZmlnCiAKKworQXBwbGljYXRpb24gY29uZmlndXJhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCiBUaGUgbWVudSBzeXN0ZW0gaXMgZmFpcmx5IHNlbGYtZXhwbGFuYXRvcnkgYW5kIHdp
bGwgYmUgZmFtaWxpYXIgdG8KIGFueW9uZSB3aG8gaGFzIGNvbmZpZ3VyZWQgYSBMaW51eCBrZXJu
ZWwgYmVmb3JlLiBTZWxlY3QgdGhlIG9wdGlvbnMKIHlvdSB3YW50LCB0aGUgbGlicmFyaWVzIHlv
dSdsbCBsaWtlIHRvIGluY2x1ZGUgYW5kIGRvbid0IGZvcmdldCB0bwotc2VsZWN0IGF0IGxlYXN0
IG9uZSBwbGF0Zm9ybSAoZS5nLiwgS1ZNLCBYZW4gb3IgTGludXggdXNlci1zcGFjZSAtLQotdGhl
IGxhdHRlciBpcyBxdWl0ZSB1c2VmdWwgZm9yIHF1aWNrIHRlc3RpbmcgYW5kIGRlYnVnZ2luZyku
CitzZWxlY3QgYXQgbGVhc3Qgb25lIHBsYXRmb3JtIChlLmcuLCBhbiBleHRlcm5hbCBvbmUsIEtW
TSwgWGVuLCBvcgorTGludXggdXNlci1zcGFjZSAtLSB0aGUgbGF0dGVyIGlzIHF1aXRlIHVzZWZ1
bCBmb3IgcXVpY2sgdGVzdGluZyBhbmQKK2RlYnVnZ2luZykuICBVbmRlciBgYFBsYXRmb3JtIENv
bmZpZ3VyYXRpb25gYCBvcHRpb24sIHlvdSBjYW4gbWFrZSB0aGUKK2ZvbGxvd2luZyBjaGFuZ2Vz
OgorCisqIHNlbGVjdCBgYFhlbiBndWVzdCBpbWFnZWBgCisqIHNlbGVjdCBgYEtWTSBndWVzdGBg
CisqIHNlbGVjdCBgYExpbnV4IHVzZXIgc3BhY2VgYAorICAKK1VuZGVyIGBgTGlicmFyeSBjb25m
aWd1cmF0aW9uYGAgd2UgYWxzbyBuZWVkIHRvIGNob29zZSBhIHNjaGVkdWxlcjoKK3NlbGVjdCBg
YHVrc2NoZWRjb29wYGAuCiAKIEZpbmFsbHksIHF1aXQgdGhlIG1lbnUgd2hpbGUgc2F2aW5nIHRo
ZSBjb25maWd1cmF0aW9uIGNoYW5nZXMgeW91J3ZlCiBtYWRlIGFuZCBidWlsZCB5b3VyIGFwcGxp
Y2F0aW9uIGJ5IGp1c3QgdHlwaW5nIGBgbWFrZWBgLiBVbmlrcmFmdCB3aWxsCkBAIC05MiwxMSAr
MTQyLDIxOSBAQCB0aGVuIGJ1aWxkIGVhY2ggbGlicmFyeSBpbiB0dXJuIGFzIHdlbGwgYXMgdGhl
IHNvdXJjZSBmaWxlcyBmb3IgeW91cgogYXBwbGljYXRpb24sIHByb2R1Y2luZyBvbmUgaW1hZ2Ug
aW4gdGhlIGBgLi9idWlsZGBgIGRpcmVjdG9yeSBmb3IgZWFjaAogcGxhdGZvcm0gdHlwZSB5b3Ug
c2VsZWN0ZWQuCiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KK0J1aWxkaW5nCistLS0tLS0tLS0tLS0t
LS0tLS0tCitTYXZlIHlvdXIgY29uZmlndXJhdGlvbiBhbmQgYnVpbGQgdGhlIGltYWdlIGJ5IHR5
cGluZyBgYG1ha2VgYC4gVGhlCitidWlsZCBzeXN0ZW0gd2lsbCBjcmVhdGUgdGhyZWUgYmluYXJp
ZXMsIG9uZSBmb3IgZWFjaCBwbGF0Zm9ybTogOjoKKworICAkIGxzIC1zaCBidWlsZC8KKyAgIFsu
Li5dCisgICA4OEsgaGVsbG93b3JsZF9rdm0teDg2XzY0CisgICA0MEsgaGVsbG93b3JsZF9saW51
eHUteDg2XzY0CisgICA3MksgaGVsbG93b3JsZF94ZW4teDg2XzY0CisgICBbLi4uXQorCistLS0t
LS0tLS0tCitSdW5uaW5nCistLS0tLS0tLS0tCisKIFJ1bm5pbmcgdGhlIGltYWdlIHdpbGwgZGVw
ZW5kIG9uIHdoaWNoIHBsYXRmb3JtIHlvdSB0YXJnZXRlZC4gRm9yCiBMaW51eCB1c2VyLXNwYWNl
LCBmb3IgaW5zdGFuY2UsIHRoZSBpbWFnZSBpcyBqdXN0IGEgc3RhbmRhcmQgRUxGLCBzbwoteW91
IGNhbiBzaW1wbHkgcnVuIGl0IHdpdGggOjoKK3lvdSBjYW4gc2ltcGx5IGV4ZWN1dGUgb24gYW55
IExpbnV4IGVudmlyb25tZW50OiA6OgorCisgICQgLi9idWlsZC9oZWxsb3dvcmxkX2xpbnV4dS14
ODZfNjQKKyAgV2VsY29tZSB0byAgXyBfXyAgICAgICAgICAgICBfX19fXworICBfXyBfX19fXyAg
KF8pIC9fXyBfX19fX19fIF8vIF8vIC9fCisgIC8gLy8gLyBfIFwvIC8gICdfLy8gX18vIF8gYC8g
Xy8gX18vCisgIFxfLF8vXy8vXy9fL18vXF9cL18vICBcXyxfL18vIFxfXy8KKyAgICAgICAgICAg
ICAgICAgICAgVGl0YW4gMC4yfjEwY2UzZjIKKyAgSGVsbG8gd29ybGQhCisKK1lvdSBjYW4gZXhl
Y3V0ZSB0aGUgS1ZNIGltYWdlIChgYGhlbGxvd29ybGRfa3ZtLXg4Nl82NGBgKSBvbiB0aGUgS1ZN
IGhvc3Q6IDo6CisKKyAgJCBxZW11LXN5c3RlbS14ODZfNjQgLW5vZ3JhcGhpYyAtdmdhIG5vbmUg
LWRldmljZSBzZ2EgLW0gNCAta2VybmVsCisgIGJ1aWxkL2hlbGxvd29ybGRfa3ZtLXg4Nl82NAor
CitGb3IgWGVuIHlvdSBmaXJzdCBuZWVkIHRvIGNyZWF0ZSBhIFZNIGNvbmZpZ3VyYXRpb24gKHNh
dmUgaXQgdW5kZXIKK2BgaGVsbG93b3JsZC5jZmdgYCk6IDo6CisgIAorICBuYW1lICAgICAgICAg
ID0gJ2hlbGxvd29ybGQnCisgIHZjcHVzICAgICAgICAgPSAnMScKKyAgbWVtb3J5ICAgICAgICA9
ICc0JworICBrZXJuZWwgICAgICAgID0gJ2J1aWxkL2hlbGxvd29ybGRfeGVuLXg4Nl82NCcKKwor
U3RhcnQgdGhlIHZpcnR1YWwgbWFjaGluZSB3aXRoOiA6OgorCisgICQgeGwgY3JlYXRlIC1jIGhl
bGxvd29ybGQuY2ZnCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTW9kaWZ5
aW5nIHRoZSBBcHBsaWNhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K0FmdGVyIGBgSGVsbG8gd29ybGQhYGAgaXMgcHJpbnRlZCwgdGhlIHVuaWtlcm5lbCBzaHV0cyBk
b3duIHJpZ2h0Cithd2F5LiBXZSBkbyBub3QgaGF2ZSBhIGNoYW5jZSB0byBzZWUgdGhhdCBhIFZN
IHdhcyBhY3R1YWxseSBjcmVhdGVkLAorc28gbGV0J3MgbW9kaWZ5IHRoZSBzb3VyY2UgY29kZS4g
T3BlbiBgYG1haW4uY2BgIGluIHlvdXIgZmF2b3JpdGUKK2VkaXRvciAoYGBuYW5vYGAsIGBgdmlt
YGAsIGBgZW1hY3NgYCkgYW5kIGFkZCB0aGUgZm9sbG93aW5nIGJ1c3kgbG9vcAoraW5zaWRlIHRo
ZSBgYG1haW5gYCBmdW5jdGlvbjogCisKKy4uIGNvZGUtYmxvY2s6OiBjCisJCQorICAgZm9yICg7
Oyk7CisKK1JlYnVpbGQgdGhlIGltYWdlcyB3aXRoIGBgbWFrZWBgIGFuZCBleGVjdXRlIHRoZW0u
IFRoZSBzaGVsbCBwcm9tcHQKK3Nob3VsZCBub3QgcmV0dXJuLiBXaXRoIGEgc2Vjb25kIHNoZWxs
IHlvdSBjYW4gY2hlY2sgdGhhdCB0aGUKK3VuaWtlcm5lbCBpcyBzdGlsbCBleGVjdXRpbmc6CisK
KyogVXNlIGBgdG9wYGAgb3IgYGBodG9wYGAgZm9yIExpbnV4IGFuZCBLVk0uCisqIFVzZSBgYHhs
IHRvcGBgIGluIFhlbi4KKworKipOb3RlKio6IFlvdSBjYW4gdGVybWluYXRlIHRoZSBLVk0gYW5k
IExpbnV4IHVuaWtlcm5lbCB3aXRoCisgYGBDVFJMYGAgKyBgYENgYCwgYW5kIG9uIFhlbiB3aXRo
IGBgQ1RSTGBgICsgYGBdYGAuCisKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09CitFeHRl
cm5hbCBMaWJyYXJpZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgYGBoZWxs
b3dvcmxkYGAgYXBwbGljYXRpb24gdXNlcyBhIHZlcnkgbWluaW1hbGlzdGljIGBgbGliY2BgCitp
bXBsZW1lbnRhdGlvbiBvZiBsaWJjIGZ1bmN0aW9uYWxpdHkgY2FsbGVkIGBgbm9saWJjYGAgd2hp
Y2ggaXMgcGFydAorb2YgdGhlIFVuaWtyYWZ0IGJhc2UsIGFuZCBzbyBpdCBpcyBhbiAiaW50ZXJu
YWwiIGxpYnJhcnkuIEludGVybmFsCitsaWJyYXJpZXMgYXJlIGxvY2F0ZWQgd2l0aGluIHRoZSBg
YGxpYmBgIGRpcmVjdG9yeSBvZiBVbmlrcmFmdC4KKworSW4gb3JkZXIgdG8gZW5oYW5jZSB0aGUg
ZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSBVbmlrcmFmdCwgImV4dGVybmFsIgorbGlicmFyaWVz
IGNhbiBiZSBhZGRlZCB0byB0aGUgYnVpbGQuIEluIHRoZSBmb2xsb3dpbmcgd2Ugd2FudCB0byBz
d2FwCitgYG5vbGliY2BgIHdpdGggYG5ld2xpYiA8aHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0
L2xpYi1uZXdsaWI+YF8sIGEKK3N0YW5kYXJkIGxpYmMgaW1wbGVtZW50YXRpb24gdGhhdCB5b3Ug
Y2FuIGZpbmQgaW4gdmFyaW91cyBMaW51eAorZGlzdHJpYnV0aW9ucyBhbmQgZW1iZWRkZWQgZW52
aXJvbm1lbnRzLgorCitXZSBuZWVkIHRvIGFkZCBuZXdsaWIgdG8gdGhlIGxpYnJhcnkgaW5jbHVk
ZXMuIEVkaXQgdGhlIGBgTWFrZWZpbGVgYAorb2YgdGhlIGBgaGVsbG93b3JsZGBgIGFwcGxpY2F0
aW9uIGFuZCBwdXQgdGhlIHRleHQgYmVsb3cgaW4gaXQuIFBsZWFzZQordHlwZSBgYG1ha2UgcHJv
cGVyY2xlYW5gYCBiZWZvcmU7IHRoaXMgd2lsbCBkZWxldGUgdGhlIGJ1aWxkIGRpcmVjdG9yeQor
KGJ1dCBub3QgeW91ciBjb25maWd1cmF0aW9uKSBhbmQgd2lsbCBmb3JjZSBhIGZ1bGwgcmVidWls
ZCBsYXRlci4gOjoKKworICBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQorICAtLS0g
YS9NYWtlZmlsZQorICArKysgYi9NYWtlZmlsZQorICBAQCAtMSw2ICsxLDYgQEAKKyAgIFVLX1JP
T1QgPz0gJChQV0QpLy4uLy4uL3VuaWtyYWZ0CisgICBVS19MSUJTID89ICQoUFdEKS8uLi8uLi9s
aWJzCisgIC1MSUJTIDo9CisgICtMSUJTIDo9ICQoVUtfTElCUykvbmV3bGliCisgIAorICAgYWxs
OgorICAgICAgICAgIEBtYWtlIC1DICQoVUtfUk9PVCkgQT0kKFBXRCkgTD0kKExJQlMpCisKK1J1
biBgYG1ha2UgbWVudWNvbmZpZ2BgOyBgYG5ld2xpYmBgIHNob3VsZCBub3cgYXBwZWFyIGluIHRo
ZSBgYExpYnJhcnkKK0NvbmZpZ3VyYXRpb25gYCBtZW51LiBTZWxlY3QgaXQsIHNhdmUgYW5kIGV4
aXQgdGhlIG1lbnUsIGFuZCB0eXBlCitgYG1ha2VgYC4gVW5pa3JhZnQncyBidWlsZCBzeXN0ZW0g
d2lsbCBkb3dubG9hZCBuZXdsaWIncyBzb3VyY2VzIGFuZAorYnVpbGQgaXQgdG9nZXRoZXIgd2l0
aCBhbGwgdGhlIG90aGVyIFVuaWtyYWZ0IGxpYnJhcmllcyBhbmQKK2FwcGxpY2F0aW9uLiBPdXIg
YGBuZXdsaWJgYCByZXBvc2l0b3J5IGNvbnNpc3RzIG9ubHkgb2YgZ2x1ZSBjb2RlIHRoYXQKK2lz
IG5lZWRlZCB0byBwb3J0IGBgbmV3bGliYGAgdG8gVW5pa3JhZnQuCisKK1lvdSB3aWxsIG5vdGlj
ZSB0aGF0IHRoZSB1bmlrZXJuZWxzIGFyZSBub3cgYmlnZ2VyIHRoYW4gYmVmb3JlLiBUcnkgdG8K
K3J1biB0aGVtIGFnYWluLgorCisKKz09PT09PT09PT09PT09PT09PT09PT09PT0KK0NvZGUgWW91
ciBPd24gTGlicmFyeQorPT09PT09PT09PT09PT09PT09PT09PT09PQorTGV0J3MgYWRkIHNvbWUg
ZnVuY3Rpb25hbGl0eSB0byBvdXIgdW5pa2VybmVsLiBDcmVhdGUgYSBkaXJlY3RvcnkKK2BgbGli
cy9teWxpYmBgLCB0aGlzIHdpbGwgYmUgdGhlIHJvb3QgZm9sZGVyIG9mIHlvdXIgbGlicmFyeS4K
KworQXMgbWVudGlvbmVkIGVhcmxpZXIsIFVuaWtyYWZ0IHVzZXMgTGludXgncyBrY29uZmlnIHN5
c3RlbS4gSW4gb3JkZXIKK3RvIG1ha2UgeW91ciBsaWJyYXJ5IHNlbGVjdGFibGUgaW4gdGhlICJt
ZW51Y29uZmlnIiwgY3JlYXRlIHRoZSBmaWxlCitgYENvbmZpZy51a2BgIHdpdGggdGhlIGZvbGxv
d2luZyBjb250ZW50OiA6OgorCisgIGNvbmZpZyBMSUJNWUxJQgorICAgICAgICAgICAgIGJvb2wg
Im15bGliOiBNeSBhd2Vzb21lIGxpYiIKKyAgICAgICAgICAgICBkZWZhdWx0IG4KKworVG8gdGVz
dCBpZiBpdCB3b3JrZWQsIHdlIG5lZWQgdG8gdGVsbCBVbmlrcmFmdCdzIGJ1aWxkIHN5c3RlbSB0
byBwaWNrCit0aGlzIGxpYnJhcnkuIEdvIGJhY2sgdG8geW91ciBgYGhlbGxvd29ybGRgYCBhcHBs
aWNhdGlvbiBhbmQgZWRpdCBpdAoraXRzIGBgTWFrZWZpbGVgYC4gRWFybGllciB3ZSBhZGRlZCBu
ZXdsaWIgdG8gdGhlIGBgTElCU2BgIHZhcmlhYmxlLAorbGV0J3Mgbm93IGFkZCB0aGUgbmV3IGxp
YnJhcnk6IDo6CisKKyAgTElCUyA6PSAkKFVLX0xJQlMpL25ld2xpYjokKFVLX0xJQlMpL215bGli
CisKK05vdyBpZiB5b3UgcnVuIGBgbWFrZSBtZW51Y29uZmlnYGAgeW91IHNob3VsZCBzZWUgeW91
ciBsaWJyYXJ5IHVuZGVyCit0aGUgIkxpYnJhcnkgQ29uZmlndXJhdGlvbiIgc3ViLW1lbnU6IDo6
CisKKyAgWyBdIG15bGliOiBNeSBhd2Vzb21lIGxpYgorCitTZWxlY3QgaXQsIGV4aXQgdGhlIGNv
bmZpZ3VyYXRpb24gbWVudSwgYW5kIHNhdmUgdGhlIGNoYW5nZXMuIElmIHlvdQorcnVuIGBgbWFr
ZWBgIHJpZ2h0IG5vdywgdGhlIGJ1aWxkIHdpbGwgcHJvZHVjZSBhbiBlcnJvciBhYm91dCBhCitt
aXNzaW5nIGBgTWFrZWZpbGUudWtgYDogOjoKKworICBtYWtlWzFdOiAqKiogTm8gcnVsZSB0byBt
YWtlIHRhcmdldCAnL3Jvb3QvZGVtby9saWJzL215bGliL01ha2VmaWxlLnVrJy4gIFN0b3AuCisK
K0dvIGJhY2sgdG8geW91ciBsaWJyYXJ5IGRpcmVjdG9yeSBhbmQgY3JlYXRlIG9uZSB3aXRoIHRo
ZSBmb2xsb3dpbmcKK2NvbnRlbnQ6IDo6CisKKyAgIyBSZWdpc3RlciB5b3VyIGxpYiB0byBVbmlr
cmFmdCdzIGJ1aWxkIHN5c3RlbQorICAkKGV2YWwgJChjYWxsIGFkZGxpYl9zLGxpYm15bGliLCQo
Q09ORklHX0xJQk1ZTElCKSkpCisKKyAgIyBBZGQgbGlicmFyeSBzb3VyY2UgY29kZSB0byBjb21w
aWxhdGlvbgorICBMSUJNWUxJQl9TUkNTLXkgKz0gJChMSUJNWUxJQl9CQVNFKS9teWxpYi5jCisK
KyAgIyBFeHRlbmQgdGhlIGdsb2JhbCBpbmNsdWRlIHBhdGhzIHdpdGggbGlicmFyeSdzIGZvbGRl
cgorICBDSU5DTFVERVMtJChDT05GSUdfTElCTVlMSUIpICs9IC1JJChMSUJNWUxJQl9CQVNFKS9p
bmNsdWRlCisKK0FuZCBmaW5hbGx5IHRoZSBsaWJyYXJ5IGNvZGUgYGBteWxpYi5jYGA6CisKKy4u
IGNvZGUtYmxvY2s6OiBjCisJCQorICAjaW5jbHVkZSA8c3RkaW8uaD4KKyAgCisgIHZvaWQgbGli
bXlsaWJfYXBpX2Z1bmModm9pZCkKKyAgeworICAgICAgICAgIHByaW50ZigiSGVsbG8gZnJvbSBt
eSBhd2Vzb21lIGxpYiFcbiIpOworICB9CisKK05vdyBpbiB5b3VyIGhlbGxvd29ybGQncyBgYG1h
aW4uY2BgIGFkZCBhIGNhbGwgdG8KK2BgbGlibXlsaWJfYXBpX2Z1bmMoKWBgLgorCisKKz09PT09
PT09PT09PT09PT09PT09PT09PT0KK1NvY2tldCBFeGFtcGxlCis9PT09PT09PT09PT09PT09PT09
PT09PT09CitBcyBhIGxhc3QgdGFzaywgd2UgYXJlIGdvaW5nIHRvIGJ1aWxkIGEgc21hbGwgd2Vi
c2VydmVyIHRoYXQgcmVwbGllcword2l0aCBhIHNpbmdsZSBwYWdlLiBUaGUgc2VydmVyIHVzZXMg
YGBsd2lwYGAgZm9yIGNyZWF0aW5nIGEgc29ja2V0IGFuZAordG8gYWNjZXB0IGluY29taW5nIGNv
bm5lY3Rpb25zLiBHbyB0byB0aGUgYGBodHRwcmVwbHlgYCBhcHBsaWNhdGlvbgorZGlyZWN0b3J5
LiBIYXZlIGEgbG9vayBhdCBgYG1haW4uY2BgOiBpdCBpcyBhIHJlYWxseSBzaG9ydCBwcm9ncmFt
IGFuZAorbG9va3Mgc2ltaWxhciB0byB3aGF0IHlvdSB3b3VsZCB3cml0ZSBhcyBhIHVzZXItc3Bh
Y2UgTGludXgKK3Byb2dyYW0uIEl0cyBkZXBlbmRlbmNpZXMgYXJlIGRlZmluZWQgd2l0aGluIGBg
Q29uZmlnLnVrYGAuIEhhdmluZwordGhpcywgdGhlcmUgaXMgYWN0dWFsbHkgbm90IG11Y2ggbGVm
dCB0byBjb25maWd1cmUuIEFueSBtYW5kYXRvcnkKK29wdGlvbnMgYXJlIGxvY2tlZCBpbiBgYG1h
a2UgbWVudWNvbmZpZ2BgLiBBbGwgd2UgbmVlZCB0byBkbyBpcyBzZWxlY3QKK291ciB0YXJnZXQg
cGxhdGZvcm1zLCBzZWxlY3QgbmV0d29yayBkcml2ZXJzLCBzYXZlIHRoZSBjb25maWcsIGFuZAor
dHlwZSBgYG1ha2VgYC4KKworRm9yIG5vdywgd2Ugc3VwcG9ydCB2aXJ0aW8gZm9yIG5ldHdvcmtp
bmcgb25seSAoYnV0IG1vcmUgZnVuY3Rpb25hbGl0eQoraXMgY29taW5nKS4gWW91IGNhbiBlbmFi
bGUgdGhlIGRyaXZlciBieSBnb2luZyB0byB0aGUgS1ZNIHBsYXRmb3JtCitjb25maWd1cmF0aW9u
IGFuZCBzZWxlY3RpbmcgYGBWaXJ0aW8gUENJIGRldmljZSBzdXBwb3J0YGAgYW5kIGBgVmlydGlv
CitOZXQgZGV2aWNlYGAuCisKK1RoZSBpbWFnZSBjYW4gYmUgc3RhcnRlZCBvbiB0aGUgS1ZNIGhv
c3QuIFJlcGxhY2UgYGBicjBgYCB3aXRoIHRoZQorbmFtZSBvZiB5b3VyIGxvY2FsIGJyaWRnZSBv
biB5b3VyIHN5c3RlbSBhbmQgbWFrZSBzdXJlIHlvdSBoYXZlIGEgREhDUAorc2VydmVyIGxpc3Rl
bmluZyB0aGVyZSAoZS5nLiwgYGBkbnNtYXNxYGApOiA6OgorCisgICQgcWVtdS1zeXN0ZW0teDg2
XzY0IC1ub2dyYXBoaWMgLXZnYSBub25lIC1kZXZpY2Ugc2dhIC1tIDggLW5ldGRldiBicmlkZ2Us
aWQ9ZW4wLGJyPWJyMCAtZGV2aWNlIHZpcnRpby1uZXQtcGNpLG5ldGRldj1lbjAgLWtlcm5lbCBi
dWlsZC9odHRwcmVwbHlfa3ZtLXg4Nl82NAorCitQbGVhc2UgYWxzbyBlbnN1cmUgdGhhdCB5b3Ug
aGF2ZSBidWlsdCB5b3VyIGltYWdlIHdpdGggdGhlIGx3aXAgbWVudQorb3B0aW9uICJESENQIGNs
aWVudCIgZW5hYmxlZC4gVGhpcyB1bmlrZXJuZWwgaXMgcmVxdWVzdGluZyBhbiBJUHY0CithZGRy
ZXNzIHZpYSBESENQLiBJbiBjYXNlIHlvdSBlbmFibGVkIGBgSUNNUGBgIGluIHRoZSBgYGx3aXBg
YAorY29uZmlndXJhdGlvbiwgeW91IHNob3VsZCBhbHNvIGJlIGFibGUgdG8gcGluZyB0aGUgaG9z
dCBmcm9tIGEgc2Vjb25kCit0ZXJtaW5hbCAocmVwbGFjZSB0aGUgSVAgd2l0aCB5b3Vycyk6IDo6
CisKKyAgJCBwaW5nIDE5Mi4xNjguMS4xMDAKKworRm9yIGRlYnVnZ2luZywgeW91IGNhbiBhbHNv
IHRyeSB0byBlbmFibGUgYGBEZWJ1ZyBtZXNzYWdlc2BgIGluCitgYGx3aXBgYC4gV2l0aCB0aGlz
IHlvdSBjYW4gbm93IGhhdmUgYSBkZWVwZXIgbG9vayBpbiB0aGUgbmV0d29yaworc3RhY2suCisK
K0lmIG5ldHdvcmtpbmcgaXMgd29ya2luZyB3ZWxsLCB5b3UgY2FuIHVzZSB0aGUgdGV4dC1iYXNl
ZCBicm93c2VyCitgYGx5bnhgYCAob3IgYW55IG90aGVyIHRoYXQgeW91IGxpa2UpIHRvIHNlZSB0
aGUgd2ViIHBhZ2Ugc2VydmVkIG9uIGEKK3NlY29uZCB0ZXJtaW5hbCAocmVwbGFjZSB0aGUgSVAg
d2l0aCB5b3Vycyk6IDo6CiAKLSAgLi9idWlsZC9oZWxsb3dvcmxkX2xpbnV4dS14ODZfNjQKKyAg
JCBseW54IDE5Mi4xNjguMS4xMDA6ODEyMwogCi1Gb3IgbW9yZSBpbmZvcm1hdGlvbiByZWdhcmRp
bmcgcG9ydGluZyBhbmQgZGV2ZWxvcGluZyBhcHBzIChhbmQKLWxpYnJhcmllcykgaW4gVW5pa3Jh
ZnQgcGxlYXNlIHJlYWQgdGhlIGRldmVsb3BlcidzIGd1aWRlLgpkaWZmIC0tZ2l0IGEvZG9jL2d1
aWRlcy91c2Vycy1nZXR0aW5nc3RhcnRlZC5yc3QgYi9kb2MvZ3VpZGVzL3VzZXJzLWdldHRpbmdz
dGFydGVkLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDRlMThjNS4uMDAwMDAw
MAotLS0gYS9kb2MvZ3VpZGVzL3VzZXJzLWdldHRpbmdzdGFydGVkLnJzdAorKysgL2Rldi9udWxs
CkBAIC0xLDEzNSArMCwwIEBACi0uLiBfcnN0X3VzZXJzX2dldHRpbmdfc3RhcnRlZDoKLQotKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1HZXR0aW5nIFN0YXJ0ZWQKLSoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotCi1UbyBiZWdpbiB1c2luZyBVbmlrcmFm
dCB5b3UnbGwgbmVlZCBhIGZldyBwYWNrYWdlcy4gT24gVWJ1bnR1L0RlYmlhbgotZGlzdHJpYnV0
aW9ucyBydW4gdGhlIGNvbW1hbmQgOjoKLQotICBhcHQtZ2V0IGluc3RhbGwgYmlzb24gZmxleCBi
dWlsZC1lc3NlbnRpYWwgcHl0aG9uMyBsaWJuY3Vyc2VzNS1kZXYgbGlibmN1cnNlc3c1Ci0KLU9w
dGlvbmFsbHksIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgUHl0aG9uIGZyb250LWVuZCB0byBVbmlr
cmFmdCdzCi1tZW51LCBwbGVhc2UgYWxzbyBydW4gOjoKLQotICBhcHQtZ2V0IGluc3RhbGwgZ3Rr
Ky0yLjAgZ21vZHVsZS0yLjAgbGliZ2xhZGUtMi4wCi0KLVdpdGggdGhpcyBpbiBwbGFjZSwgd2Ug
YXJlIHJlYWR5IHRvIGJlZ2luIGNsb25pbmcgVW5pa3JhZnQKLXJlcG9zLiBGaXJzdCwgc3RhcnQg
YnkgY2xvbmluZyB0aGUgbWFpbiBVbmlrcmFmdCByZXBvOiA6OgotCi0gIGdpdCBjbG9uZSBodHRw
czovL2dpdGh1Yi5jb20vdW5pa3JhZnQvdW5pa3JhZnQuZ2l0Ci0KLUlmIHlvdSBhcmUgdGhpbmtp
bmcgb2YgdXNpbmcgVW5pa3JhZnQgZXh0ZXJuYWwgbGlicmFyaWVzLCB0aGlzIHdvdWxkCi1iZSB0
aGUgdGltZSB0byBjbG9uZSB0aG9zZSB0b28uIFlvdSBjYW4gc2VlIGEgbGlzdCBvZiBhdmFpbGFi
bGUKLWxpYnJhcmllcyBhdCAoYW55IHJlcG8gd2hvc2UgbmFtZSBoYXMgYSBgYGxpYi1gYCBwcmVm
aXgpOiA6OgotCi0gIGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdAotCi1BcyB5b3UgY2FuIHNl
ZSwgRWFjaCBleHRlcm5hbCBsaWJyYXJ5IGhhcyBpdHMgb3duIHNlcGFyYXRlIHJlcG8sIHNvCi15
b3UnbGwgbmVlZCB0byBjbG9uZSBlYWNoIG9uZSBzZXBhcmF0ZWx5LiBMaWtld2lzZSwgaWYgeW91
IGFyZQotcGxhbm5pbmcgb24gdXNpbmcgYW55IGV4dGVybmFsIHBsYXRmb3JtcywgcGxlYXNlIGNs
b25lIHRob3NlIHRvby4gWW91Ci1jYW4gc2VlIGEgbGlzdCBvZiBhdmFpbGFibGUgZXh0ZXJuYWwg
cGxhdGZvcm1zIGF0IHRoZSBzYW1lIGxpbmsgYXMgZm9yCi10aGUgbGlicmFyaWVzOyB0aGUgcGxh
dGZvcm0gcmVwb3MgaGF2ZSBhIGBgcGxhdC1gYCBwcmVmaXguCi0KLUZpbmFsbHksIHlvdSdsbCBu
ZWVkIHRvIGNyZWF0ZSBhIFVuaWtyYWZ0IGFwcGxpY2F0aW9uLiBUbyBxdWlja2x5IGdldAotc3Rh
cnRlZCwgdGhlIGVhc2llc3QgaXMgdG8gY2xvbmUgdGhlIGhlbGxvIHdvcmxkIGFwcCAob25jZSBh
Z2FpbiwgZWFjaAotVW5pa3JhZnQgYXBwIGhhcyBpdHMgb3duIHJlcG8sIHRoaXMgdGltZSB3aXRo
IGEgYGBhcHAtYGAgcHJlZml4KTogOjoKLQotICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29t
L3VuaWtyYWZ0L2FwcC1oZWxsb3dvcmxkLmdpdAotCi1Ob3cgZWRpdCB0aGUgTWFrZWZpbGUgaW4g
dGhlIGFwcCBkaXJlY3RvcnkuIEluIHBhcnRpY3VsYXIsIHNldCB0aGUKLWBgVUtfUk9PVGBgLCBg
YFVLX0xJQlNgYCwgYW5kIGBgVUtfUExBVFNgYCB2YXJpYWJsZXMgdG8gcG9pbnQgdG8gdGhlCi1k
aXJlY3RvcmllcyB3aGVyZSB5b3UgY2xvbmVkIHRoZSByZXBvcyBhYm92ZS4gRm9yIGluc3RhbmNl
LCBhc3N1bWluZwotdGhlIGZvbGxvd2luZyBkaXJlY3Rvcnkgc3RydWN0dXJlIDo6Ci0KLSAg4pSc
4pSA4pSAIHVuaWtyYWZ0Ci0gIOKUnOKUgOKUgCBhcHBzCi0gIOKUgiAg4pSc4pSA4pSAIGhlbGxv
d29ybGQKLSAg4pSCICDilJzilIDilIAgYXBwMQotICDilIIgIOKUnOKUgOKUgCBhcHAyCi0gIOKU
giAgLi4uCi0gIOKUgiAg4pSc4pSA4pSAIGFwcE4KLSAg4pSc4pSA4pSAIGxpYnMKLSAg4pSCICDi
lJzilIDilIAgbGliMQotICDilIIgIOKUnOKUgOKUgCBsaWIyCi0gIOKUgiAgLi4uCi0gIOKUgiAg
4pSU4pSA4pSAIGxpYk4KLSAg4pSU4pSA4pSAIHBsYXRzCi0gICAgIOKUnOKUgOKUgCBwbGF0MQot
ICAgICDilJzilIDilIAgcGxhdDIKLSAgICAgLi4uCi0gICAgIOKUlOKUgOKUgCBwbGF0TgotCi13
aGVyZSB5b3VyIGFwcCBpcyBsb2NhdGVkIGF0IGBgYXBwcy9oZWxsb3dvcmxkYGAsIHlvdSB3b3Vs
ZCBzZXQKLXRoZSB2YXJpYWJsZXMgYXMgZm9sbG93czogOjoKLQotICBVS19ST09UICA/PSAkKFBX
RCkvLi4vLi4vdW5pa3JhZnQKLSAgVUtfTElCUyAgPz0gJChQV0QpLy4uLy4uL2xpYnMKLSAgVUtf
UExBVFMgPz0gJChQV0QpLy4uLy4uL3BsYXRzCi0KLUlmIHlvdXIgYXBwIHVzZXMgZXh0ZXJuYWwg
bGlicmFyaWVzLCBzZXQgdGhlIGBgTElCU2BgIHZhcmlhYmxlIHRvCi1yZWZsZWN0IHRoaXMuIEZv
ciBpbnN0YW5jZSA6IDo6Ci0KLSAgTElCUyA6PSAkKFVLX0xJQlMpL2xpYjE6JChVS19MSUJTKS9s
aWIyOiQoVUtfTElCUykvbGliTgotCi1Ob3RlIHRoYXQgdGhlIGxpc3QgaGFzIHRvIGJlIGNvbG9u
LXNlcGFyYXRlZC4KLQotRmluYWxseSwgaWYgeW91ciBhcHAgdXNlcyBleHRlcm5hbCBwbGF0Zm9y
bXMsIHNldCB0aGUgYGBQTEFUU2BgCi12YXJpYWJsZTogOjoKLQotICBQTEFUUyA/PSAkKFVLX1BM
QVRTKS9wbGF0MTokKFVLX1BMQVRTKS9wbGF0MjokKFVLX1BMQVRTKS9wbGF0TgotCi1BbHNvIG1h
a2Ugc3VyZSB0aGF0IHlvdSBoYW5kLW92ZXIgdGhlc2UgcGxhdGZvcm1zIHdpdGggdGhlCi1gYFA9
YGAgcGFyYW1ldGVyIHRvIHRoZSBzdWIgbWFrZSBjYWxsIGluIHlvdXIgbWFpbiBgYE1ha2VmaWxl
YGA6IDo6Ci0KLSAgQG1ha2UgLUMgJChVS19ST09UKSBBPSQoUFdEKSBMPSQoTElCUykgUD0kKFBM
QVRTKSBmZXRjaAotICBAbWFrZSAtQyAkKFVLX1JPT1QpIEE9JChQV0QpIEw9JChMSUJTKSBQPSQo
UExBVFMpIHByZXBhcmUKLSAgQG1ha2UgLUMgJChVS19ST09UKSBBPSQoUFdEKSBMPSQoTElCUykg
UD0kKFBMQVRTKQotCi1XaXRoIGFsbCBvZiB0aGlzIGluIHBsYWNlLCB3ZSdyZSBub3cgcmVhZHkg
dG8gc3RhcnQgY29uZmlndXJpbmcgdGhlCi1hcHBsaWNhdGlvbiBpbWFnZSB2aWEgVW5pa3JhZnQn
cyBtZW51LiBUbyBhY2Nlc3MgaXQsIGZyb20gd2l0aGluIHRoZQotYXBwJ3MgZGlyZWN0b3J5IHNp
bXBseSB0eXBlIDo6Ci0KLSAgbWFrZSBtZW51Y29uZmlnCi0KLVRoZSBtZW51IHN5c3RlbSBpcyBm
YWlybHkgc2VsZi1leHBsYW5hdG9yeSBhbmQgd2lsbCBiZSBmYW1pbGlhciB0bwotYW55b25lIHdo
byBoYXMgY29uZmlndXJlZCBhIExpbnV4IGtlcm5lbCBiZWZvcmUuIFNlbGVjdCB0aGUgb3B0aW9u
cwoteW91IHdhbnQsIHRoZSBsaWJyYXJpZXMgeW91J2xsIGxpa2UgdG8gaW5jbHVkZSBhbmQgZG9u
J3QgZm9yZ2V0IHRvCi1zZWxlY3QgYXQgbGVhc3Qgb25lIHBsYXRmb3JtIChlLmcuLCBhbiBleHRl
cm5hbCBvbmUsIEtWTSwgWGVuLCBvcgotTGludXggdXNlci1zcGFjZSAtLSB0aGUgbGF0dGVyIGlz
IHF1aXRlIHVzZWZ1bCBmb3IgcXVpY2sgdGVzdGluZyBhbmQKLWRlYnVnZ2luZykuCi0KLUZpbmFs
bHksIHF1aXQgdGhlIG1lbnUgd2hpbGUgc2F2aW5nIHRoZSBjb25maWd1cmF0aW9uIGNoYW5nZXMg
eW91J3ZlCi1tYWRlIGFuZCBidWlsZCB5b3VyIGFwcGxpY2F0aW9uIGJ5IGp1c3QgdHlwaW5nIGBg
bWFrZWBgLiBVbmlrcmFmdCB3aWxsCi10aGVuIGJ1aWxkIGVhY2ggbGlicmFyeSBpbiB0dXJuIGFz
IHdlbGwgYXMgdGhlIHNvdXJjZSBmaWxlcyBmb3IgeW91cgotYXBwbGljYXRpb24sIHByb2R1Y2lu
ZyBvbmUgaW1hZ2UgaW4gdGhlIGBgLi9idWlsZGBgIGRpcmVjdG9yeSBmb3IgZWFjaAotcGxhdGZv
cm0gdHlwZSB5b3Ugc2VsZWN0ZWQuCi0KLVJ1bm5pbmcgdGhlIGltYWdlIHdpbGwgZGVwZW5kIG9u
IHdoaWNoIHBsYXRmb3JtIHlvdSB0YXJnZXRlZC4gRm9yCi1MaW51eCB1c2VyLXNwYWNlLCBmb3Ig
aW5zdGFuY2UsIHRoZSBpbWFnZSBpcyBqdXN0IGEgc3RhbmRhcmQgRUxGLCBzbwoteW91IGNhbiBz
aW1wbHkgcnVuIGl0IHdpdGggOjoKLQotICAuL2J1aWxkL2hlbGxvd29ybGRfbGludXh1LXg4Nl82
NAotCi1Gb3IgS1ZNLCB0aGUgZm9sbG93aW5nIFFFTVUgbGluZSBzaG91bGQgZG8gdGhlIHRyaWNr
OiA6OgotCi0gIHFlbXUtc3lzdGVtLXg4Nl82NCAtY3B1IGhvc3QgLWVuYWJsZS1rdm0gLW0gMTI4
IC1ub2RlZmF1bHRzIC1uby1hY3BpIC1kaXNwbGF5IG5vbmUgLXNlcmlhbCBzdGRpbyAtZGV2aWNl
IGlzYS1kZWJ1Zy1leGl0IC1rZXJuZWwgYnVpbGQvaGVsbG93b3JsZF9rdm0teDg2XzY0Ci0KLUZv
ciBYZW4sIGNyZWF0ZSBhIGBgaGVsbG93b3JsZC54ZW5gYCBmaWxlIGFzIGZvbGxvd3M6OgotCi0g
IGtlcm5lbCA9ICJwYXRoX3RvX2J1aWxkX2Rpci9idWlsZC9oZWxsb3dvcmxkX3hlbi14ODZfNjQi
Ci0gIG1lbW9yeSA9ICI4IgotICB2Y3B1cyA9ICIxIgotICBuYW1lID0gImhlbGxvd29ybGQiCi0K
LSAgb25fcG93ZXJvZmYgPSAicHJlc2VydmUiCi0gIG9uX2NyYXNoID0gInByZXNlcnZlIgotICBv
bl9yZWJvb3QgPSAicHJlc2VydmUiCi0KLWFuZCBpbnN0YW50aWF0ZSB0aGUgWGVuIHZpcnR1YWwg
bWFjaGluZSB3aXRoOiA6OgotCi0gIHhsIGNyZWF0ZSAtYyBoZWxsb3dvcmxkLnhlbgotCi1UaGF0
J3MgaXQhIEZvciBtb3JlIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBwb3J0aW5nIGFuZCBkZXZlbG9w
aW5nCi1hcHBzIChhbmQgbGlicmFyaWVzIGFuZCBwbGF0Zm9ybXMpIGluIFVuaWtyYWZ0IHBsZWFz
ZSByZWFkIHRoZQotZGV2ZWxvcGVyJ3MgZ3VpZGUuCmRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3Vz
ZXJzLXR1dG9yaWFsLnJzdCBiL2RvYy9ndWlkZXMvdXNlcnMtdHV0b3JpYWwucnN0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTdjNjE1Li4wMDAwMDAwCi0tLSBhL2RvYy9ndWlkZXMv
dXNlcnMtdHV0b3JpYWwucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMjg2ICswLDAgQEAKLSoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotVHV0b3JpYWwKLSoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgotCi1Gb3IgdGhpcyB0dXRvcmlhbCB5b3Ugd2lsbCBuZWVk
IGEgTGludXggaG9zdCBydW5uaW5nIFhlbiBhbmQvb3IgS1ZNIGluCi1vcmRlciB0byBydW4gVW5p
a3JhZnQgaW1hZ2VzLiBQbGVhc2UgY2hlY2sgdGhlIG1hbnVhbCBvZiB5b3VyIExpbnV4Ci1kaXN0
cmlidXRpb24gcmVnYXJkaW5nIGhvdyB0byBpbnN0YWxsIHRoZXNlIGVudmlyb25tZW50cy4gVGhp
cwotdHV0b3JpYWwgZXhwZWN0cyB0aGF0IHlvdSBoYXZlIHRoZSBlc3NlbnRpYWwgYnVpbGQgYW5k
IGRlYnVnZ2luZyB0b29scwotaW5zdGFsbGVkIChzZWUgOnJlZjpgcnN0X3VzZXJzX2dldHRpbmdf
c3RhcnRlZGApLiBJbiBhZGRpdGlvbiwgZm9yCi1YZW4geW91IHdpbGwgbmVlZCB0byBoYXZlIHRo
ZSBgYHhsYGAgdG9vbHN0YWNrIGluc3RhbGxlZCBhbmQgcnVubmluZywKLWFuZCBmb3IgS1ZNIGBg
cWVtdWBgCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PQotQ2xvbmluZyBSZXBvc2l0b3Jp
ZXMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PQotWW91IGNhbiBlYXNpbHkgYnVpbGQgVW5p
a3JhZnQgVW5pa2VybmVscyBvbiB5b3VyIExpbnV4IGhvc3QuIElmIHlvdQotaGF2ZSBhbGwgdG9v
bHMgYW5kIGxpYnJhcmllcyBpbnN0YWxsZWQgdG8gY29tcGlsZSBhIExpbnV4IGtlcm5lbCB5b3UK
LWFyZSByZWFkeSB0byBkbyB0aGlzIHdpdGggVW5pa3JhZnQgdG9vLgotCi1BIFVuaWtyYWZ0IGJ1
aWxkIGNvbnNpc3RzIG1vc3RseSBvZiBhIGNvbWJpbmF0aW9uIG9mIG11bHRpcGxlCi1yZXBvc2l0
b3JpZXMuIFdlIGRpZmZlcmVudGlhdGUgdGhlbSBpbnRvOiAoMSkgVW5pa3JhZnQsICgyKSBleHRl
cm5hbAotbGlicmFyaWVzLCAoMykgYXBwbGljYXRpb24uICBUaGUgYnVpbGQgc3lzdGVtIGFzc3Vt
ZXMgdGhlc2UgdG8gYmUKLXN0cnVjdHVyZWQgYXMgZm9sbG93czogOjoKLQotICBteS13b3Jrc3Bh
Y2UvCi0gIOKUnOKUgOKUgCBhcHBzLwotICDilIIgICDilJTilIDilIAgaGVsbG93b3JsZC8KLSAg
4pSCICAg4pSU4pSA4pSAIGh0dHByZXBseS8KLSAg4pSc4pSA4pSAIGxpYnMvCi0gIOKUgiAgIOKU
nOKUgOKUgCBsd2lwLwotICDilIIgICDilJTilIDilIAgbmV3bGliLwotICDilJTilIDilIAgdW5p
a3JhZnQvCi0KLUNsb25lIHRoZSBmb2xsb3dpbmcgcmVwb3NpdG9yaWVzIHdpdGggZ2l0IDo6Ci0K
LSAgZ2l0IGNsb25lIFtVUkxdIFtERVNUSU5BVElPTiBQQVRIXQotCi0qIFVuaWtyYWZ0IGJhc2Ug
cmVwb3NpdG9yeSBkaXJlY3RseSB1bmRlciB5b3VyIHdvcmtzcGFjZSByb290Ci0gICAqIGBVbmlr
cmFmdCByZXBvIDxodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQvdW5pa3JhZnQuZ2l0PmBfCi0q
IEV4dGVybmFsIGxpYnJhcmllcyBpbnRvIGEgYGxpYnNgIHN1YmRpcmVjdG9yeToKLQkqIGBuZXds
aWIgcmVwbyA8aHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L2xpYi1uZXdsaWIuZ2l0PmBfCi0J
KiBgbHdpcCByZXBvIDxodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQvbGliLWx3aXAuZ2l0PmBf
Ci0qIEFwcGxpY2F0aW9ucyBpbnRvIGFuIGBhcHBzYCBzdWJkaXJlY3Rvcnk6Ci0JKiBgaGVsbG93
b3JsZCByZXBvIDxodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQvYXBwLWhlbGxvd29ybGQuZ2l0
PmBfCi0JKiBgaHR0cHJlcGx5IHJlcG8gPGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC9hcHAt
aHR0cHJlcGx5LmdpdD5gXwotCi1NYWtlIHN1cmUgdGhhdCB0aGUgZGlyZWN0b3J5IHN0cnVjdHVy
ZSB1bmRlciB5b3VyIHdvcmtzcGFjZSBpcyBleGFjdGx5Ci10aGUgc2FtZSBhcyBzaG93biBpbiB0
aGUgb3ZlcnZpZXcgYWhlYWQuCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PQotWW91ciBG
aXJzdCBVbmlrZXJuZWwKLT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Db25maWd1cmluZwotLS0tLS0tLS0tLS0tLS0tLS0tLQotQWZ0ZXIgeW91IGNs
b25lZCB0aGUgcmVwb3MsIGdvIHRvIHRoZSBgYGhlbGxvd29ybGRgYCBhcHBsaWNhdGlvbiBhbmQK
LXJ1biBgYG1ha2UgbWVudWNvbmZpZ2BgIHRvIGNvbmZpZ3VyZSB0aGUgYnVpbGQuIFVuaWtyYWZ0
IHVzZXMgdGhlIHNhbWUKLWNvbmZpZ3VyYXRpb24gc3lzdGVtIGFzIHRoZSBMaW51eCBrZXJuZWwg
KEtjb25maWcpLiBXZSB3aWxsIGJ1aWxkCi1VbmlrcmFmdCBpbWFnZXMgZm9yIFhlbiwgS1ZNLCBh
bmQgTGludXgsIHNvIHRoZSBmaXJzdCBzdGVwIGlzIHRvIGdvIHRvCi10aGUgYGBQbGF0Zm9ybSBD
b25maWd1cmF0aW9uYGAgb3B0aW9uIGFuZCBtYWtlIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKLQot
KiBzZWxlY3QgYGBYZW4gZ3Vlc3QgaW1hZ2VgYAotKiBzZWxlY3QgYGBLVk0gZ3Vlc3RgYAotKiBz
ZWxlY3QgYGBMaW51eCB1c2VyIHNwYWNlYGAKLSAgCi1VbmRlciBgYExpYnJhcnkgY29uZmlndXJh
dGlvbmBgIHdlIGFsc28gbmVlZCB0byBjaG9vc2UgYSBzY2hlZHVsZXI6Ci1zZWxlY3QgYGB1a3Nj
aGVkY29vcGBgLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi1CdWlsZGluZwotLS0tLS0tLS0tLS0t
LS0tLS0tLQotU2F2ZSB5b3VyIGNvbmZpZ3VyYXRpb24gYW5kIGJ1aWxkIHRoZSBpbWFnZSBieSB0
eXBpbmcgYGBtYWtlYGAuIFRoZQotYnVpbGQgc3lzdGVtIHdpbGwgY3JlYXRlIHRocmVlIGJpbmFy
aWVzLCBvbmUgZm9yIGVhY2ggcGxhdGZvcm06IDo6Ci0KLSAgJCBscyAtc2ggYnVpbGQvCi0gICBb
Li4uXQotICAgODhLIGhlbGxvd29ybGRfa3ZtLXg4Nl82NAotICAgNDBLIGhlbGxvd29ybGRfbGlu
dXh1LXg4Nl82NAotICAgNzJLIGhlbGxvd29ybGRfeGVuLXg4Nl82NAotICAgWy4uLl0KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLQotUnVubmluZwotLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1MZXQncyBl
eGVjdXRlIHRoZSB1bmlrZXJuZWwuCi0KLSogVGhlIGVhc2llc3QgaXMgdG8gcnVuIHRoZSBvbmUg
YnVpbHQgYXMgYSBMaW51eCB1c2VyIHNwYWNlCi0gIGFwcGxpY2F0aW9uLiBJdCBzaG91bGQgZXhl
Y3V0ZSBvbiBhbnkgTGludXggZW52aXJvbm1lbnQ6IDo6Ci0KLSAgICQgLi9idWlsZC9oZWxsb3dv
cmxkX2xpbnV4dS14ODZfNjQKLSAgIFdlbGNvbWUgdG8gIF8gX18gICAgICAgICAgICAgX19fX18K
LSAgICBfXyBfX19fXyAgKF8pIC9fXyBfX19fX19fIF8vIF8vIC9fCi0gICAvIC8vIC8gXyBcLyAv
ICAnXy8vIF9fLyBfIGAvIF8vIF9fLwotICAgXF8sXy9fLy9fL18vXy9cX1wvXy8gIFxfLF8vXy8g
XF9fLwotICAgICAgICAgICAgICAgICAgICAgVGl0YW4gMC4yfjEwY2UzZjIKLSAgIEhlbGxvIHdv
cmxkIQotCi0qIFlvdSBjYW4gZXhlY3V0ZSB0aGUgS1ZNIGltYWdlIChgYGhlbGxvd29ybGRfa3Zt
LXg4Nl82NGBgKSBvbiB0aGUgS1ZNCi0gIGhvc3Q6IDo6Ci0KLSAgICQgcWVtdS1zeXN0ZW0teDg2
XzY0IC1ub2dyYXBoaWMgLXZnYSBub25lIC1kZXZpY2Ugc2dhIC1tIDQgLWtlcm5lbAotICAgYnVp
bGQvaGVsbG93b3JsZF9rdm0teDg2XzY0Ci0KLSogRm9yIFhlbiB5b3UgZmlyc3QgbmVlZCB0byBj
cmVhdGUgYSBWTSBjb25maWd1cmF0aW9uIChzYXZlIGl0IHVuZGVyCi0gIGBgaGVsbG93b3JsZC5j
ZmdgYCk6IDo6Ci0gIAotICAgbmFtZSAgICAgICAgICA9ICdoZWxsb3dvcmxkJwotICAgdmNwdXMg
ICAgICAgICA9ICcxJwotICAgbWVtb3J5ICAgICAgICA9ICc0JwotICAga2VybmVsICAgICAgICA9
ICdidWlsZC9oZWxsb3dvcmxkX3hlbi14ODZfNjQnCi0KLVN0YXJ0IHRoZSB2aXJ0dWFsIG1hY2hp
bmUgd2l0aDogOjoKLQotICAkIHhsIGNyZWF0ZSAtYyBoZWxsb3dvcmxkLmNmZwotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLU1vZGlmeWluZyB0aGUgQXBwbGljYXRpb24KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQWZ0ZXIgYGBIZWxsbyB3b3JsZCFgYCBp
cyBwcmludGVkLCB0aGUgdW5pa2VybmVsIHNodXRzIGRvd24gcmlnaHQKLWF3YXkuIFdlIGRvIG5v
dCBoYXZlIGEgY2hhbmNlIHRvIHNlZSB0aGF0IGEgVk0gd2FzIGFjdHVhbGx5IGNyZWF0ZWQsCi1z
byBsZXQncyBtb2RpZnkgdGhlIHNvdXJjZSBjb2RlLiBPcGVuIGBgbWFpbi5jYGAgaW4geW91ciBm
YXZvcml0ZQotZWRpdG9yIChgYG5hbm9gYCwgYGB2aW1gYCwgYGBlbWFjc2BgKSBhbmQgYWRkIHRo
ZSBmb2xsb3dpbmcgYnVzeSBsb29wCi1pbnNpZGUgdGhlIGBgbWFpbmBgIGZ1bmN0aW9uOiAKLQot
Li4gY29kZS1ibG9jazo6IGMKLQkJCi0gICBmb3IgKDs7KTsKLQotUmVidWlsZCB0aGUgaW1hZ2Vz
IHdpdGggYGBtYWtlYGAgYW5kIGV4ZWN1dGUgdGhlbS4gVGhlIHNoZWxsIHByb21wdAotc2hvdWxk
IG5vdCByZXR1cm4uIFdpdGggYSBzZWNvbmQgc2hlbGwgeW91IGNhbiBjaGVjayB0aGF0IHRoZQot
dW5pa2VybmVsIGlzIHN0aWxsIGV4ZWN1dGluZzoKLQotKiBVc2UgYGB0b3BgYCBvciBgYGh0b3Bg
YCBmb3IgTGludXggYW5kIEtWTS4KLSogVXNlIGBgeGwgdG9wYGAgaW4gWGVuLgotCi0qKk5vdGUq
KjogWW91IGNhbiB0ZXJtaW5hdGUgdGhlIEtWTSBhbmQgTGludXggdW5pa2VybmVsIHdpdGgKLSBg
YENUUkxgYCArIGBgQ2BgLCBhbmQgb24gWGVuIHdpdGggYGBDVFJMYGAgKyBgYF1gYC4KLQotCi09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLUV4dGVybmFsIExpYnJhcmllcwotPT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0KLVRoZSBgYGhlbGxvd29ybGRgYCBhcHBsaWNhdGlvbiB1c2Vz
IGEgdmVyeSBtaW5pbWFsaXN0aWMgYGBsaWJjYGAKLWltcGxlbWVudGF0aW9uIG9mIGxpYmMgZnVu
Y3Rpb25hbGl0eSBjYWxsZWQgYGBub2xpYmNgYCB3aGljaCBpcyBwYXJ0Ci1vZiB0aGUgVW5pa3Jh
ZnQgYmFzZSwgYW5kIHNvIGl0IGlzIGFuICJpbnRlcm5hbCIgbGlicmFyeS4gSW50ZXJuYWwKLWxp
YnJhcmllcyBhcmUgbG9jYXRlZCB3aXRoaW4gdGhlIGBgbGliYGAgZGlyZWN0b3J5IG9mIFVuaWty
YWZ0LgotCi1JbiBvcmRlciB0byBlbmhhbmNlIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5
IFVuaWtyYWZ0LCAiZXh0ZXJuYWwiCi1saWJyYXJpZXMgY2FuIGJlIGFkZGVkIHRvIHRoZSBidWls
ZC4gSW4gdGhlIGZvbGxvd2luZyB3ZSB3YW50IHRvIHN3YXAKLWBgbm9saWJjYGAgd2l0aCBgbmV3
bGliIDxodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQvbGliLW5ld2xpYj5gXywgYQotc3RhbmRh
cmQgbGliYyBpbXBsZW1lbnRhdGlvbiB0aGF0IHlvdSBjYW4gZmluZCBpbiB2YXJpb3VzIExpbnV4
Ci1kaXN0cmlidXRpb25zIGFuZCBlbWJlZGRlZCBlbnZpcm9ubWVudHMuCi0KLVdlIG5lZWQgdG8g
YWRkIG5ld2xpYiB0byB0aGUgbGlicmFyeSBpbmNsdWRlcy4gRWRpdCB0aGUgYGBNYWtlZmlsZWBg
Ci1vZiB0aGUgYGBoZWxsb3dvcmxkYGAgYXBwbGljYXRpb24gYW5kIHB1dCB0aGUgdGV4dCBiZWxv
dyBpbiBpdC4gUGxlYXNlCi10eXBlIGBgbWFrZSBwcm9wZXJjbGVhbmBgIGJlZm9yZTsgdGhpcyB3
aWxsIGRlbGV0ZSB0aGUgYnVpbGQgZGlyZWN0b3J5Ci0oYnV0IG5vdCB5b3VyIGNvbmZpZ3VyYXRp
b24pIGFuZCB3aWxsIGZvcmNlIGEgZnVsbCByZWJ1aWxkIGxhdGVyLiA6OgotCi0gIGRpZmYgLS1n
aXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCi0gIC0tLSBhL01ha2VmaWxlCi0gICsrKyBiL01ha2Vm
aWxlCi0gIEBAIC0xLDYgKzEsNiBAQAotICAgVUtfUk9PVCA/PSAkKFBXRCkvLi4vLi4vdW5pa3Jh
ZnQKLSAgIFVLX0xJQlMgPz0gJChQV0QpLy4uLy4uL2xpYnMKLSAgLUxJQlMgOj0KLSAgK0xJQlMg
Oj0gJChVS19MSUJTKS9uZXdsaWIKLSAgCi0gICBhbGw6Ci0gICAgICAgICAgQG1ha2UgLUMgJChV
S19ST09UKSBBPSQoUFdEKSBMPSQoTElCUykKLQotUnVuIGBgbWFrZSBtZW51Y29uZmlnYGA7IGBg
bmV3bGliYGAgc2hvdWxkIG5vdyBhcHBlYXIgaW4gdGhlIGBgTGlicmFyeQotQ29uZmlndXJhdGlv
bmBgIG1lbnUuIFNlbGVjdCBpdCwgc2F2ZSBhbmQgZXhpdCB0aGUgbWVudSwgYW5kIHR5cGUKLWBg
bWFrZWBgLiBVbmlrcmFmdCdzIGJ1aWxkIHN5c3RlbSB3aWxsIGRvd25sb2FkIG5ld2xpYidzIHNv
dXJjZXMgYW5kCi1idWlsZCBpdCB0b2dldGhlciB3aXRoIGFsbCB0aGUgb3RoZXIgVW5pa3JhZnQg
bGlicmFyaWVzIGFuZAotYXBwbGljYXRpb24uIE91ciBgYG5ld2xpYmBgIHJlcG9zaXRvcnkgY29u
c2lzdHMgb25seSBvZiBnbHVlIGNvZGUgdGhhdAotaXMgbmVlZGVkIHRvIHBvcnQgYGBuZXdsaWJg
YCB0byBVbmlrcmFmdC4KLQotWW91IHdpbGwgbm90aWNlIHRoYXQgdGhlIHVuaWtlcm5lbHMgYXJl
IG5vdyBiaWdnZXIgdGhhbiBiZWZvcmUuIFRyeSB0bwotcnVuIHRoZW0gYWdhaW4uCi0KLQotPT09
PT09PT09PT09PT09PT09PT09PT09PQotQ29kZSBZb3VyIE93biBMaWJyYXJ5Ci09PT09PT09PT09
PT09PT09PT09PT09PT09Ci1MZXQncyBhZGQgc29tZSBmdW5jdGlvbmFsaXR5IHRvIG91ciB1bmlr
ZXJuZWwuIENyZWF0ZSBhIGRpcmVjdG9yeQotYGBsaWJzL215bGliYGAsIHRoaXMgd2lsbCBiZSB0
aGUgcm9vdCBmb2xkZXIgb2YgeW91ciBsaWJyYXJ5LgotCi1BcyBtZW50aW9uZWQgZWFybGllciwg
VW5pa3JhZnQgdXNlcyBMaW51eCdzIGtjb25maWcgc3lzdGVtLiBJbiBvcmRlcgotdG8gbWFrZSB5
b3VyIGxpYnJhcnkgc2VsZWN0YWJsZSBpbiB0aGUgIm1lbnVjb25maWciLCBjcmVhdGUgdGhlIGZp
bGUKLWBgQ29uZmlnLnVrYGAgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnRlbnQ6IDo6Ci0KLSAgY29u
ZmlnIExJQk1ZTElCCi0gICAgICAgICAgICAgYm9vbCAibXlsaWI6IE15IGF3ZXNvbWUgbGliIgot
ICAgICAgICAgICAgIGRlZmF1bHQgbgotCi1UbyB0ZXN0IGlmIGl0IHdvcmtlZCwgd2UgbmVlZCB0
byB0ZWxsIFVuaWtyYWZ0J3MgYnVpbGQgc3lzdGVtIHRvIHBpY2sKLXRoaXMgbGlicmFyeS4gR28g
YmFjayB0byB5b3VyIGBgaGVsbG93b3JsZGBgIGFwcGxpY2F0aW9uIGFuZCBlZGl0IGl0Ci1pdHMg
YGBNYWtlZmlsZWBgLiBFYXJsaWVyIHdlIGFkZGVkIG5ld2xpYiB0byB0aGUgYGBMSUJTYGAgdmFy
aWFibGUsCi1sZXQncyBub3cgYWRkIHRoZSBuZXcgbGlicmFyeTogOjoKLQotICBMSUJTIDo9ICQo
VUtfTElCUykvbmV3bGliOiQoVUtfTElCUykvbXlsaWIKLQotTm93IGlmIHlvdSBydW4gYGBtYWtl
IG1lbnVjb25maWdgYCB5b3Ugc2hvdWxkIHNlZSB5b3VyIGxpYnJhcnkgdW5kZXIKLXRoZSAiTGli
cmFyeSBDb25maWd1cmF0aW9uIiBzdWItbWVudTogOjoKLQotICBbIF0gbXlsaWI6IE15IGF3ZXNv
bWUgbGliCi0KLVNlbGVjdCBpdCwgZXhpdCB0aGUgY29uZmlndXJhdGlvbiBtZW51LCBhbmQgc2F2
ZSB0aGUgY2hhbmdlcy4gSWYgeW91Ci1ydW4gYGBtYWtlYGAgcmlnaHQgbm93LCB0aGUgYnVpbGQg
d2lsbCBwcm9kdWNlIGFuIGVycm9yIGFib3V0IGEKLW1pc3NpbmcgYGBNYWtlZmlsZS51a2BgOiA6
OgotCi0gIG1ha2VbMV06ICoqKiBObyBydWxlIHRvIG1ha2UgdGFyZ2V0ICcvcm9vdC9kZW1vL2xp
YnMvbXlsaWIvTWFrZWZpbGUudWsnLiAgU3RvcC4KLQotR28gYmFjayB0byB5b3VyIGxpYnJhcnkg
ZGlyZWN0b3J5IGFuZCBjcmVhdGUgb25lIHdpdGggdGhlIGZvbGxvd2luZwotY29udGVudDogOjoK
LQotICAjIFJlZ2lzdGVyIHlvdXIgbGliIHRvIFVuaWtyYWZ0J3MgYnVpbGQgc3lzdGVtCi0gICQo
ZXZhbCAkKGNhbGwgYWRkbGliX3MsbGlibXlsaWIsJChDT05GSUdfTElCTVlMSUIpKSkKLQotICAj
IEFkZCBsaWJyYXJ5IHNvdXJjZSBjb2RlIHRvIGNvbXBpbGF0aW9uCi0gIExJQk1ZTElCX1NSQ1Mt
eSArPSAkKExJQk1ZTElCX0JBU0UpL215bGliLmMKLQotICAjIEV4dGVuZCB0aGUgZ2xvYmFsIGlu
Y2x1ZGUgcGF0aHMgd2l0aCBsaWJyYXJ5J3MgZm9sZGVyCi0gIENJTkNMVURFUy0kKENPTkZJR19M
SUJNWUxJQikgKz0gLUkkKExJQk1ZTElCX0JBU0UpL2luY2x1ZGUKLQotQW5kIGZpbmFsbHkgdGhl
IGxpYnJhcnkgY29kZSBgYG15bGliLmNgYDoKLQotLi4gY29kZS1ibG9jazo6IGMKLQkJCi0gICNp
bmNsdWRlIDxzdGRpby5oPgotICAKLSAgdm9pZCBsaWJteWxpYl9hcGlfZnVuYyh2b2lkKQotICB7
Ci0gICAgICAgICAgcHJpbnRmKCJIZWxsbyBmcm9tIG15IGF3ZXNvbWUgbGliIVxuIik7Ci0gIH0K
LQotTm93IGluIHlvdXIgaGVsbG93b3JsZCdzIGBgbWFpbi5jYGAgYWRkIGEgY2FsbCB0bwotYGBs
aWJteWxpYl9hcGlfZnVuYygpYGAuCi0KLQotPT09PT09PT09PT09PT09PT09PT09PT09PQotU29j
a2V0IEV4YW1wbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT0KLUFzIGEgbGFzdCB0YXNrLCB3
ZSBhcmUgZ29pbmcgdG8gYnVpbGQgYSBzbWFsbCB3ZWJzZXJ2ZXIgdGhhdCByZXBsaWVzCi13aXRo
IGEgc2luZ2xlIHBhZ2UuIFRoZSBzZXJ2ZXIgdXNlcyBgYGx3aXBgYCBmb3IgY3JlYXRpbmcgYSBz
b2NrZXQgYW5kCi10byBhY2NlcHQgaW5jb21pbmcgY29ubmVjdGlvbnMuIEdvIHRvIHRoZSBgYGh0
dHByZXBseWBgIGFwcGxpY2F0aW9uCi1kaXJlY3RvcnkuIEhhdmUgYSBsb29rIGF0IGBgbWFpbi5j
YGA6IGl0IGlzIGEgcmVhbGx5IHNob3J0IHByb2dyYW0gYW5kCi1sb29rcyBzaW1pbGFyIHRvIHdo
YXQgeW91IHdvdWxkIHdyaXRlIGFzIGEgdXNlci1zcGFjZSBMaW51eAotcHJvZ3JhbS4gSXRzIGRl
cGVuZGVuY2llcyBhcmUgZGVmaW5lZCB3aXRoaW4gYGBDb25maWcudWtgYC4gSGF2aW5nCi10aGlz
LCB0aGVyZSBpcyBhY3R1YWxseSBub3QgbXVjaCBsZWZ0IHRvIGNvbmZpZ3VyZS4gQW55IG1hbmRh
dG9yeQotb3B0aW9ucyBhcmUgbG9ja2VkIGluIGBgbWFrZSBtZW51Y29uZmlnYGAuIEFsbCB3ZSBu
ZWVkIHRvIGRvIGlzIHNlbGVjdAotb3VyIHRhcmdldCBwbGF0Zm9ybXMsIHNlbGVjdCBuZXR3b3Jr
IGRyaXZlcnMsIHNhdmUgdGhlIGNvbmZpZywgYW5kCi10eXBlIGBgbWFrZWBgLgotCi1Gb3Igbm93
LCB3ZSBzdXBwb3J0IHZpcnRpbyBmb3IgbmV0d29ya2luZyBvbmx5IChidXQgbW9yZSBmdW5jdGlv
bmFsaXR5Ci1pcyBjb21pbmcpLiBZb3UgY2FuIGVuYWJsZSB0aGUgZHJpdmVyIGJ5IGdvaW5nIHRv
IHRoZSBLVk0gcGxhdGZvcm0KLWNvbmZpZ3VyYXRpb24gYW5kIHNlbGVjdGluZyBgYFZpcnRpbyBQ
Q0kgZGV2aWNlIHN1cHBvcnRgYCBhbmQgYGBWaXJ0aW8KLU5ldCBkZXZpY2VgYC4KLQotVGhlIGlt
YWdlIGNhbiBiZSBzdGFydGVkIG9uIHRoZSBLVk0gaG9zdC4gUmVwbGFjZSBgYGJyMGBgIHdpdGgg
dGhlCi1uYW1lIG9mIHlvdXIgbG9jYWwgYnJpZGdlIG9uIHlvdXIgc3lzdGVtIGFuZCBtYWtlIHN1
cmUgeW91IGhhdmUgYSBESENQCi1zZXJ2ZXIgbGlzdGVuaW5nIHRoZXJlIChlLmcuLCBgYGRuc21h
c3FgYCk6IDo6Ci0KLSAgJCBxZW11LXN5c3RlbS14ODZfNjQgLW5vZ3JhcGhpYyAtdmdhIG5vbmUg
LWRldmljZSBzZ2EgLW0gOCAtbmV0ZGV2IGJyaWRnZSxpZD1lbjAsYnI9YnIwIC1kZXZpY2Ugdmly
dGlvLW5ldC1wY2ksbmV0ZGV2PWVuMCAta2VybmVsIGJ1aWxkL2h0dHByZXBseV9rdm0teDg2XzY0
Ci0KLVBsZWFzZSBhbHNvIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGJ1aWx0IHlvdXIgaW1hZ2Ugd2l0
aCB0aGUgbHdpcCBtZW51Ci1vcHRpb24gIkRIQ1AgY2xpZW50IiBlbmFibGVkLiBUaGlzIHVuaWtl
cm5lbCBpcyByZXF1ZXN0aW5nIGFuIElQdjQKLWFkZHJlc3MgdmlhIERIQ1AuIEluIGNhc2UgeW91
IGVuYWJsZWQgYGBJQ01QYGAgaW4gdGhlIGBgbHdpcGBgCi1jb25maWd1cmF0aW9uLCB5b3Ugc2hv
dWxkIGFsc28gYmUgYWJsZSB0byBwaW5nIHRoZSBob3N0IGZyb20gYSBzZWNvbmQKLXRlcm1pbmFs
IChyZXBsYWNlIHRoZSBJUCB3aXRoIHlvdXJzKTogOjoKLQotICAkIHBpbmcgMTkyLjE2OC4xLjEw
MAotCi1Gb3IgZGVidWdnaW5nLCB5b3UgY2FuIGFsc28gdHJ5IHRvIGVuYWJsZSBgYERlYnVnIG1l
c3NhZ2VzYGAgaW4KLWBgbHdpcGBgLiBXaXRoIHRoaXMgeW91IGNhbiBub3cgaGF2ZSBhIGRlZXBl
ciBsb29rIGluIHRoZSBuZXR3b3JrCi1zdGFjay4KLQotSWYgbmV0d29ya2luZyBpcyB3b3JraW5n
IHdlbGwsIHlvdSBjYW4gdXNlIHRoZSB0ZXh0LWJhc2VkIGJyb3dzZXIKLWBgbHlueGBgIChvciBh
bnkgb3RoZXIgdGhhdCB5b3UgbGlrZSkgdG8gc2VlIHRoZSB3ZWIgcGFnZSBzZXJ2ZWQgb24gYQot
c2Vjb25kIHRlcm1pbmFsIChyZXBsYWNlIHRoZSBJUCB3aXRoIHlvdXJzKTogOjoKLQotICAkIGx5
bnggMTkyLjE2OC4xLjEwMDo4MTIzCi0KZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvdXNlcnMucnN0
IGIvZG9jL2d1aWRlcy91c2Vycy5yc3QKaW5kZXggZjk1YWQ3Mi4uMWU0ZTU3NCAxMDA2NDQKLS0t
IGEvZG9jL2d1aWRlcy91c2Vycy5yc3QKKysrIGIvZG9jL2d1aWRlcy91c2Vycy5yc3QKQEAgLTEs
MjAgKzEsNSBAQAogPT09PT09PT09PT09CiBVc2VyJ3MgR3VpZGUKLTw8PDw8PDwgVXBkYXRlZCB1
cHN0cmVhbQotIyMjIyMjIyMjIyMjIyMjIyMjIyMKLVRoaXMgc2VjdGlvbiBvZiB0aGUgZ3VpZGUg
cHJvdmlkZXMgYWxsIHRoZSBpbmZvcm1hdGlvbiB5b3Ugc2hvdWxkIG5lZWQKLXRvICBnZXQgc3Rh
cnRlZCAgd2l0aCBhbmQgIHRvICB1c2UgVW5pa3JhZnQuICBJZiB5b3UgIGhhdmUgbmV2ZXIgIHVz
ZWQKLVVuaWtyYWZ0ICBiZWZvcmUsIHJlYWQgIHRoZSBnZXR0aW5nICBzdGFydGVkIHBhZ2UgIGFu
ZCBvcHRpb25hbGx5ICBydW4KLXRocm91Z2ggdGhlIHR1dG9yaWFscy4KLQotLi4gdG9jdHJlZTo6
Ci0gICA6bWF4ZGVwdGg6IDIKLQotICAgdXNlcnMtZ2V0dGluZ3N0YXJ0ZWQKLSAgIHVzZXJzLXR1
dG9yaWFsCi0gICB1c2Vycy1kb3dubG9hZHMKLSAgIHVzZXJzLXJlc291cmNlcwotPT09PT09PQog
PT09PT09PT09PT09CiAKIFVuaWtyYWZ0IGlzIGFuIGV4dGVuc2l2ZSBidWlsZCBzeXN0ZW0gaW4g
YWRkaXRpb24gdG8gdGhlIGNvcmUgYW5kIGV4dGVybmFsCkBAIC0yOSw0ICsxNCw0IEBAIGhvdyB0
byB1c2UgdGhlc2UgbGV2ZXJhZ2UgdGhpcyBmdW5jdGlvbmFsaXR5IGZvciBhZHZhbmNlZCB1c2Fn
ZS4KIAogICAga3JhZnQKICAgIHVzZXJzLWFkdmFuY2VkCi0+Pj4+Pj4+IFN0YXNoZWQgY2hhbmdl
cworICAgdXNlcnMtcmVzb3VyY2VzCi0tIAoyLjI0LjEKCgpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlv
cy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Sun Feb 02 10:51:42 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 02 Feb 2020 10:51:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyCqr-0007kS-GK; Sun, 02 Feb 2020 10:51:41 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=jSXD=3W=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1iyCqp-0007kM-Dt
 for minios-devel@lists.xen.org; Sun, 02 Feb 2020 10:51:39 +0000
X-Inumbo-ID: fc82604a-45a9-11ea-8d95-12813bfff9fa
Received: from mh-fa-1.lancs.ac.uk (unknown [148.88.65.131])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id fc82604a-45a9-11ea-8d95-12813bfff9fa;
 Sun, 02 Feb 2020 10:51:38 +0000 (UTC)
Received: from x4db49d2f.dyn.telefonica.de ([77.180.157.47]
 helo=localhost.localdomain)
 by mh-fa-1.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1iyCqm-0002Y8-As; Sun, 02 Feb 2020 10:51:37 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Sun,  2 Feb 2020 11:51:26 +0100
Message-Id: <20200202105126.54827-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-fa-1.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-PYTHON3] Upgrade python3 dependencies.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>,
 Sharan Santhanam <sharan.santhanam@neclab.eu>,
 Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBk
ZXBzLmpzb24gfCAyMyArKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEx
IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RlcHMuanNvbiBi
L2RlcHMuanNvbgppbmRleCBlYWIxY2ZiLi4yN2I2ZGRkIDEwMDY0NAotLS0gYS9kZXBzLmpzb24K
KysrIGIvZGVwcy5qc29uCkBAIC0xLDEyICsxLDExIEBACi0gewotICAgICAiY29yZSI6ICJkOGFk
YTExNiIsIAotICAgICAibGlicyI6IHsgIAotICAgICAgICAgInB0aHJlYWQtZW1iZWRkZWQiOiAi
YjUwZGVkYyIsCi0gICAgICAgICAibHdpcCI6ICIwNmJkMDIzIiwKLSAgICAgICAgICJ6bGliIjog
ImRkY2Y0M2YiLAotICAgICAgICAgImxpYnV1aWQiOiAiNTFkZDdiZiIsCi0gICAgICAgICAicHl0
aG9uMyI6ICJmOGYzNzA1IiwKLSAgICAgICAgICJuZXdsaWIiOiAiNzg0NjliNSIKLSAgICAgfSAK
LSB9Ci0KK3sKKyAgICAiY29yZSI6ICJhOTUyNzY4YyIsCisgICAgImxpYnMiOiB7CisgICAgICAg
ICJwdGhyZWFkLWVtYmVkZGVkIjogIjE4ODhiMTgiLAorICAgICAgICAibHdpcCI6ICIwNmJkMDIz
IiwKKyAgICAgICAgInpsaWIiOiAiZGRjZjQzZiIsCisgICAgICAgICJsaWJ1dWlkIjogIjUxZGQ3
YmYiLAorICAgICAgICAicHl0aG9uMyI6ICI1NzJhYWIzIiwKKyAgICAgICAgIm5ld2xpYiI6ICI3
ODQ2OWI1IgorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjI0LjEK
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Sun Feb 02 13:39:28 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 02 Feb 2020 13:39:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyFTC-0003qq-Ah; Sun, 02 Feb 2020 13:39:26 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=craK=3W=neclab.eu=sharan.santhanam@srs-us1.protection.inumbo.net>)
 id 1iyFTA-0003ql-Jn
 for minios-devel@lists.xen.org; Sun, 02 Feb 2020 13:39:24 +0000
X-Inumbo-ID: 6b263208-45c1-11ea-b211-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6b263208-45c1-11ea-b211-bc764e2007e4;
 Sun, 02 Feb 2020 13:39:22 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 476DAF2026;
 Sun,  2 Feb 2020 14:39:21 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id K4T4l0C_vSCk; Sun,  2 Feb 2020 14:39:21 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 237E1F200C
 for <minios-devel@lists.xen.org>; Sun,  2 Feb 2020 14:39:19 +0100 (CET)
Received: from N-1309.office.hd (192.168.24.96) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sun, 2 Feb 2020
 14:39:18 +0100
From: Sharan Santhanam <sharan.santhanam@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Sun, 2 Feb 2020 14:39:11 +0100
Message-ID: <1580650751-9520-1-git-send-email-sharan.santhanam@neclab.eu>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LIBLWIP PATCH] lwip: Add compile guard for
 struct ifconf
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Sharan Santhanam <sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Rml4IHRvIGRpc2FibGUgcmVkZWZpbml0aW9uIG9mIHN0cnVjdCBpZmNvbmYgZnJvbSBweXRob24K
ClNpZ25lZC1vZmYtYnk6IFNoYXJhbiBTYW50aGFuYW0gPHNoYXJhbi5zYW50aGFuYW1AbmVjbGFi
LmV1PgotLS0KIGluY2x1ZGUvbmV0L2lmLmggfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl
cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaWYuaCBiL2luY2x1ZGUvbmV0L2lm
LmgKaW5kZXggMWViMTFkOC4uNGVhZGM2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaWYuaAor
KysgYi9pbmNsdWRlL25ldC9pZi5oCkBAIC0yNiw2ICsyNiw3IEBAIGNoYXIgKmlmX2luZGV4dG9u
YW1lICh1bnNpZ25lZCBpbnQsIGNoYXIgKik7CiAjZGVmaW5lIElGRl9WT0xBVElMRSAoSUZGX0xP
T1BCQUNLfElGRl9QT0lOVE9QT0lOVHxJRkZfQlJPQURDQVNUfCBcCiAgICAgICAgIElGRl9FQ0hP
fElGRl9NQVNURVJ8SUZGX1NMQVZFfElGRl9SVU5OSU5HfElGRl9MT1dFUl9VUHxJRkZfRE9STUFO
VCkKIAorI2lmIGRlZmluZWQoX0JTRF9TT1VSQ0UpCiBzdHJ1Y3QgaWZjb25mIHsKIAlpbnQgaWZj
X2xlbjsKIAl1bmlvbiB7CkBAIC0zMyw2ICszNCw3IEBAIHN0cnVjdCBpZmNvbmYgewogCQlzdHJ1
Y3QgaWZyZXEgKmlmY3VfcmVxOwogCX0gaWZjX2lmY3U7CiB9OworI2VuZGlmIC8qIF9CU0RfU09V
UkNFICovCiAjZGVmaW5lIGlmY19idWYgICAgICAgICBpZmNfaWZjdS5pZmN1X2J1ZgogI2RlZmlu
ZSBpZmNfcmVxICAgICAgICAgaWZjX2lmY3UuaWZjdV9yZXEKIAotLSAKMi43LjQKCgpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFp
bGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 03 08:51:48 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 03 Feb 2020 08:51:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyXSL-0005Qh-HH; Mon, 03 Feb 2020 08:51:45 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=WeQ+=3X=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1iyXSK-0005Qc-LB
 for minios-devel@lists.xenproject.org; Mon, 03 Feb 2020 08:51:44 +0000
X-Inumbo-ID: 65e1ba32-4662-11ea-b211-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 65e1ba32-4662-11ea-b211-bc764e2007e4;
 Mon, 03 Feb 2020 08:51:42 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 8C2A9103B36;
 Mon,  3 Feb 2020 09:51:41 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id aex5yuzts-Hd; Mon,  3 Feb 2020 09:51:41 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from Oberon.office.hd (Oberon.office.hd [192.168.24.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 63E42FFFC2;
 Mon,  3 Feb 2020 09:51:41 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by Oberon.office.hd
 (192.168.24.90) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 3 Feb 2020
 09:51:41 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Mon, 3 Feb 2020 09:51:40
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, "minios-devel@lists.xenproject.org"
 <minios-devel@lists.xenproject.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBMBEDTLS PATCH 1/2] Introduce library
 skeleton
Thread-Index: AQHVbVg7HG9afFwFRUqrfszGLyyIS6gD/AIAgAYHmgA=
Date: Mon, 3 Feb 2020 08:51:40 +0000
Message-ID: <536EC309-D4D4-4D21-888E-B1E163792E06@neclab.eu>
References: <20190917130255.7414-1-felipe.huici@neclab.eu>
 <20190917130255.7414-2-felipe.huici@neclab.eu>
 <a9fd7885-3d70-b47e-d6a3-b4aba1e62553@stud.acs.upb.ro>
In-Reply-To: <a9fd7885-3d70-b47e-d6a3-b4aba1e62553@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <684726BF0D89094C9FC133B81AE05A43@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/LIBMBEDTLS PATCH 1/2] Introduce
 library skeleton
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgVmxhZCwNCg0K77u/T24gMzAuMDEuMjAsIDE0OjQ3LCAiTWluaW9zLWRldmVsIG9uIGJlaGFs
ZiBvZiBWbGFkLUFuZHJlaSBCxIJET0lVICg3ODY5MikiIDxtaW5pb3MtZGV2ZWwtYm91bmNlc0Bs
aXN0cy54ZW5wcm9qZWN0Lm9yZyBvbiBiZWhhbGYgb2YgdmxhZF9hbmRyZWkuYmFkb2l1QHN0dWQu
YWNzLnVwYi5ybz4gd3JvdGU6DQoNCiAgICBIZXkgRmVsaXBsZSwNCiAgICANCiAgICBUaGFuayB5
b3UgZm9yIHRoaXMgcG9ydC4gUGxlYXNlIHNlZSBteSBjb21tZW50cyBpbmxpbmUuIEkgdGhpbmsg
dGhhdCANCiAgICB0aGV5IGNhbiBiZSBzb2x2ZWQgZHVyaW5nIHRoZSB1cHN0cmVhbWluZy4NCg0K
U291bmRzIGdvb2QsIHBsZWFzZSBzZWUgaW5saW5lLg0KDQotLSBGZWxpcGUNCiAgICANCiAgICBU
aGFua3MsDQogICAgDQogICAgVmxhZA0KICAgIA0KICAgIFJldmlld2VkLWJ5OiBWbGFkLUFuZHJl
aSBCYWRvaXUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVkLmFjcy51cGIucm8+DQogICAgDQogICAg
T24gMTcuMDkuMjAxOSAxNjowMiwgRmVsaXBlIEh1aWNpIHdyb3RlOg0KICAgID4gV2UgdXNlIHRo
ZSBCU0QtMy1DbGF1c2UgbGljZW5zZSBmb3IgdGhpcyBsaWJyYXJ5IGdsdWUgY29kZS4NCiAgICA+
DQogICAgPiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIu
ZXU+DQogICAgPiAtLS0NCiAgICA+ICAgLmdpdGlnbm9yZSAgICAgIHwgMjcgKysrKysrKysrKysr
KysrKysrKysrKysrKysrDQogICAgPiAgIENPRElOR19TVFlMRS5tZCB8ICA0ICsrKysNCiAgICA+
ICAgQ09OVFJJQlVUSU5HLm1kIHwgIDQgKysrKw0KICAgID4gICBDT1BZSU5HLm1kICAgICAgfCAz
OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiAgICA+ICAgQ29uZmln
LnVrICAgICAgIHwgMTAgKysrKysrKysrKw0KICAgID4gICBNQUlOVEFJTkVSUy5tZCAgfCAxMCAr
KysrKysrKysrDQogICAgPiAgIFJFQURNRS5tZCAgICAgICB8IDE0ICsrKysrKysrKysrKysrDQog
ICAgPiAgIDcgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKykNCiAgICA+ICAgY3JlYXRl
IG1vZGUgMTAwNjQ0IC5naXRpZ25vcmUNCiAgICA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IENPRElO
R19TVFlMRS5tZA0KICAgID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgQ09OVFJJQlVUSU5HLm1kDQog
ICAgPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBDT1BZSU5HLm1kDQogICAgPiAgIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBDb25maWcudWsNCiAgICA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1BSU5UQUlORVJT
Lm1kDQogICAgPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBSRUFETUUubWQNCiAgICA+DQogICAgPiBk
aWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUNCiAgICA+IG5ldyBmaWxlIG1vZGUg
MTAwNjQ0DQogICAgPiBpbmRleCAwMDAwMDAwLi43NWQyZmQzDQogICAgPiAtLS0gL2Rldi9udWxs
DQogICAgPiArKysgYi8uZ2l0aWdub3JlDQogICAgPiBAQCAtMCwwICsxLDI3IEBADQogICAgPiAr
Ki5kZXBlbmQNCiAgICA+ICsqLm8NCiAgICA+ICsqLmENCiAgICA+ICsqLmQNCiAgICA+ICsqLnNv
DQogICAgPiArKi5vcmlnDQogICAgPiArKi5yZWoNCiAgICA+ICsqLmJhaw0KICAgID4gKyouc3dw
DQogICAgPiArKn4NCiAgICA+ICssKg0KICAgID4gK1wjKlwjDQogICAgPiArLlwjKg0KICAgID4g
K1wjXypcIw0KICAgID4gKy5cI18qDQogICAgPiArIS5naXRpZ25vcmUNCiAgICA+ICsuKg0KICAg
ID4gKw0KICAgID4gKyMgZ251IGdsb2JhbCBmaWxlcw0KICAgID4gK0dQQVRIDQogICAgPiArR1JU
QUdTDQogICAgPiArR1NZTVMNCiAgICA+ICtHVEFHUw0KICAgID4gKw0KICAgID4gKyMgY3Njb3Bl
IGZpbGVzDQogICAgPiArY3Njb3BlLioNCiAgICA+ICtuY3Njb3BlLioNCiAgICA+IGRpZmYgLS1n
aXQgYS9DT0RJTkdfU1RZTEUubWQgYi9DT0RJTkdfU1RZTEUubWQNCiAgICA+IG5ldyBmaWxlIG1v
ZGUgMTAwNjQ0DQogICAgPiBpbmRleCAwMDAwMDAwLi41NzMwMDQxDQogICAgPiAtLS0gL2Rldi9u
dWxsDQogICAgPiArKysgYi9DT0RJTkdfU1RZTEUubWQNCiAgICA+IEBAIC0wLDAgKzEsNCBAQA0K
ICAgID4gK0NvZGluZyBTdHlsZQ0KICAgID4gKz09PT09PT09PT09PQ0KICAgID4gKw0KICAgID4g
K1BsZWFzZSByZWZlciB0byB0aGUgYENPRElOR19TVFlMRS5tZGAgZmlsZSBpbiB0aGUgbWFpbiBV
bmlrcmFmdCByZXBvc2l0b3J5Lg0KICAgID4gZGlmZiAtLWdpdCBhL0NPTlRSSUJVVElORy5tZCBi
L0NPTlRSSUJVVElORy5tZA0KICAgID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICA+IGluZGV4
IDAwMDAwMDAuLjVmNTVlY2ENCiAgICA+IC0tLSAvZGV2L251bGwNCiAgICA+ICsrKyBiL0NPTlRS
SUJVVElORy5tZA0KICAgID4gQEAgLTAsMCArMSw0IEBADQogICAgPiArQ29udHJpYnV0aW5nIHRv
IFVuaWtyYWZ0DQogICAgPiArPT09PT09PT09PT09PT09PT09PT09PT0NCiAgICA+ICsNCiAgICA+
ICtQbGVhc2UgcmVmZXIgdG8gdGhlIGBDT05UUklCVVRJTkcubWRgIGZpbGUgaW4gdGhlIG1haW4g
VW5pa3JhZnQgcmVwb3NpdG9yeS4NCiAgICA+IGRpZmYgLS1naXQgYS9DT1BZSU5HLm1kIGIvQ09Q
WUlORy5tZA0KICAgID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICA+IGluZGV4IDAwMDAwMDAu
LmRmNDg4ZDINCiAgICA+IC0tLSAvZGV2L251bGwNCiAgICA+ICsrKyBiL0NPUFlJTkcubWQNCiAg
ICA+IEBAIC0wLDAgKzEsMzkgQEANCiAgICA+ICtMaWNlbnNlDQogICAgPiArPT09PT09PQ0KICAg
ID4gKw0KICAgID4gK1VuaWtyYWZ0IG1iZWQgVExTIHdyYXBwZXJzDQogICAgPiArLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQogICAgPiArDQogICAgPiArVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5z
IHdyYXBwZXIgY29kZSB0byBidWlsZCBtYmVkIFRMUyB3aXRoIFVuaWtyYWZ0Lg0KICAgID4gK0Vh
Y2ggQyBjb2RlIGZpbGUgaW4gdGhpcyByZXBvc2l0b3J5IHNob3VsZCBkZWNsYXJlIHdobyBpcyB0
aGUNCiAgICA+ICtjb3B5cmlnaHQgb3duZXIgYW5kIHVuZGVyIHdoaWNoIHRlcm1zIGFuZCBjb25k
aXRpb25zIHRoZSBjb2RlIGlzDQogICAgPiArbGljZW5zZWQuIElmIHN1Y2ggYSBsaWNlbmNlIG5v
dGUgaXMgbWlzc2luZywgdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQNCiAgICA+ICtub3RpY2Ugd2ls
bCBhcHBseToNCiAgICA+ICsNCiAgICA+ICsJQ29weXJpZ2h0IChjKSAyMDE5LCBORUMgRXVyb3Bl
IEx0ZC4sIE5FQyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAgICA+ICsNCiAg
ICA+ICsJUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0DQogICAgPiArCW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KICAgID4gKwlhcmUgbWV0Og0KICAg
ID4gKw0KICAgID4gKwkxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KICAgID4gKwkgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQogICAgPiArCTIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0DQogICAgPiArCSAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCiAgICA+ICsJICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCiAgICA+
ICsJMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5h
bWVzIG9mIGl0cw0KICAgID4gKwkgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQ0KICAgID4gKwkgICB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KICAgID4gKw0K
ICAgID4gKwlUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyINCiAgICA+ICsJQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0KICAg
ID4gKwlJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQ0KICAgID4gKwlBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFDQogICAgPiAr
CUxJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1INCiAgICA+ICsJQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YNCiAgICA+ICsJU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
DQogICAgPiArCUlOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElODQogICAgPiArCUNPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpDQogICAgPiAr
CUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFDQogICAgPiArCVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0K
ICAgID4gKw0KICAgID4gZGlmZiAtLWdpdCBhL0NvbmZpZy51ayBiL0NvbmZpZy51aw0KICAgID4g
bmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICA+IGluZGV4IDAwMDAwMDAuLjBhMTliMjUNCiAgICA+
IC0tLSAvZGV2L251bGwNCiAgICA+ICsrKyBiL0NvbmZpZy51aw0KICAgID4gQEAgLTAsMCArMSwx
MCBAQA0KICAgID4gK2NvbmZpZyBMSUJNQkVEVExTDQogICAgPiArCSAgIGJvb2wgIk1iZWQgVExT
IC0gQSBwb3J0YWJsZSwgZmxleGlibGUgU1NMIGxpYnJhcnkgIg0KICAgID4gKwkgICBkZWZhdWx0
IHkNCiAgICBTaG91bGRuJ3QgdGhpcyBiZSBzZXQgdG8gbiBieSBkZWZhdWx0Pw0KICAgID4gKwkg
ICBzZWxlY3QgTElCTkVXTElCQw0KICAgID4gKwkgICBzZWxlY3QgTElCQ1hYDQogICAgDQogICAg
TGliY3h4IGlzIHNlbGVjdGVkIGJlY2F1c2Ugd2UgbmVlZCBfX3VkaXZ0aTMgZnJvbSBjb21waWxl
ci1ydCwgcmlnaHQ/IEkgDQogICAgdGhpbmsgdGhhdCB3ZSBjb3VsZCBsZWF2ZSAgDQogICAgdGhl
IGBzZWxlY3QgTElCQ09NUElMRVJfUlRgIGFuZCwgaG9wZWZ1bGx5LCBpbiB0aGUgZnV0dXJlLCBj
b21waWxlci1ydCANCiAgICB3aWxsIGJlIG1vcmUgaW5kZXBlbmRlbnQuDQogICAgDQpObywgdGhp
cyBpc24ndCB0aGUgcmVhc29uLCBhbW9uZyBvdGhlcnMgdy9vIHRoaXMgSSBnZXQgYSAiIGZhdGFs
IGVycm9yOiBjc3RkbGliOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiBpbiBsaWJ1bndpbmQu
Y3BwIC4gSSdkIHNheSB3ZSBrZWVwIGl0IGxpa2UgdGhpcyBmb3Igbm93IGFuZCB3ZSByZXZpc2l0
IGxhdGVyLg0KDQogICAgUFM6IEknbGwgbG9vayBpbnRvIHByb3ZpZGluZyBhIGNvbmZpZyBvcHRp
b24gZm9yIGNvbXBpbGVyLXJ0IHRoYXQgDQogICAgZGlzYWJsZXMgbGlidW53aW5kIGRlcGVuZGVu
dCBmZWF0dXJlcy4NCiAgICANCiAgICA+ICsJICAgc2VsZWN0IExJQkNYWEFCSQ0KICAgID4gKwkg
ICBzZWxlY3QgTElCQ09NUElMRVJfUlQNCiAgICA+ICsJICAgc2VsZWN0IExJQlVOV0lORA0KICAg
ID4gKwkgICBzZWxlY3QgTFdJUA0KICAgIFRoaXMgc2hvdWxkIGJlIExJQkxXSVAuDQoNCkdvb2Qg
Y2F0Y2gsIHRoYW5rcy4NCg0KICAgID4gKwkgICBzZWxlY3QgTFdJUF9JUFY2DQogICAgPiBkaWZm
IC0tZ2l0IGEvTUFJTlRBSU5FUlMubWQgYi9NQUlOVEFJTkVSUy5tZA0KICAgID4gbmV3IGZpbGUg
bW9kZSAxMDA2NDQNCiAgICA+IGluZGV4IDAwMDAwMDAuLmQwMDllOWINCiAgICA+IC0tLSAvZGV2
L251bGwNCiAgICA+ICsrKyBiL01BSU5UQUlORVJTLm1kDQogICAgPiBAQCAtMCwwICsxLDEwIEBA
DQogICAgPiArTWFpbnRhaW5lcnMgTGlzdA0KICAgID4gKz09PT09PT09PT09PT09PT0NCiAgICA+
ICsNCiAgICA+ICtGb3Igbm90ZXMgb24gaG93IHRvIHJlYWQgdGhpcyBpbmZvcm1hdGlvbiwgcGxl
YXNlIHJlZmVyIHRvIGBNQUlOVEFJTkVSUy5tZGAgaW4NCiAgICA+ICt0aGUgbWFpbiBVbmlrcmFm
dCByZXBvc2l0b3J5Lg0KICAgID4gKw0KICAgID4gKwlMSUJaTElCLVVOSUtSQUZUDQogICAgVGhl
cmUgaXMgYSB0eXBvIGhlcmUsIGl0IHNob3VsZCBiZSBMSUJNQkVEVExTLVVOSUtSQUZULg0KDQpX
aWxsIGZpeC4NCg0KICAgID4gKwlNOglGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIu
ZXU+DQogICAgPiArCUw6CW1pbmlvcy1kZXZlbEBsaXN0cy54ZW4ub3JnDQogICAgPiArCUY6ICoN
CiAgICA+IGRpZmYgLS1naXQgYS9SRUFETUUubWQgYi9SRUFETUUubWQNCiAgICA+IG5ldyBmaWxl
IG1vZGUgMTAwNjQ0DQogICAgPiBpbmRleCAwMDAwMDAwLi5mZDllZTk1DQogICAgPiAtLS0gL2Rl
di9udWxsDQogICAgPiArKysgYi9SRUFETUUubWQNCiAgICA+IEBAIC0wLDAgKzEsMTQgQEANCiAg
ICA+ICtsaWJtYmVkdGxzIGZvciBVbmlrcmFmdA0KICAgID4gKz09PT09PT09PT09PT09PT09PT0N
CiAgICA+ICtUaGlzIGlzIGEgcG9ydCBvZiBtYmVkIFRMUyB0byBVbmlrcmFmdC4gVGhlIHBvcnQg
aGFzIGEgbnVtYmVyIG9mDQogICAgPiArZGVwZW5kZW5jaWVzLiBUbyBtZWV0IHRoZW0sIGVuc3Vy
ZSB0aGF0IHlvdSBoYXZlIHRoZSBmb2xsb3dpbmcgbGlicw0KICAgID4gK2FkZGVkIHRvIHlvdXIg
TElCUyB2YXJpYWJsZSBpbiB5b3VyIGFwcCdzIE1ha2VmaWxlOg0KICAgID4gKw0KICAgID4gKyAg
Li4uJChVS19MSUJTKS9saWJ1bndpbmQ6JChVS19MSUJTKS9jb21waWxlci1ydDokKFVLX0xJQlMp
L2xpYmN4eGFiaToNCiAgICA+ICsgICAgICQoVUtfTElCUykvbGliY3h4OiQoVUtfTElCUykvbWJl
ZHRsczokKFVLX0xJQlMpL2x3aXA6DQogICAgPiArCSAkKFVLX0xJQlMpL25ld2xpYi4uLg0KICAg
ID4gKw0KICAgIA0KICAgIFdlIHNob3VsZCB1cGRhdGUgdGhpcyBwYXJ0IHRvIGZvbGxvdyB0aGUg
bGF0ZXN0IGZvcm1hdCB0aGF0IHdlJ3JlIHVzaW5nIA0KICAgIGZvciB0aGUgcG9ydHM6DQogICAg
DQogICAgKiBDWFggc3RhbmRhcmQgbGlicmFyeSwgZS5nLiBgbGlidW53aW5kYCwgYGNvbXBpbGVy
LXJ0YCwgYGxpYmN4eGFiaWAsIA0KICAgIGBsaWJjeHhgDQogICAgDQogICAgKiBgbGliY2AsIGUu
Zy4gYG5ld2xpYmANCiAgICANCiAgICAqIGBsd2lwYA0KICAgIA0KICAgIFBTOiB3ZSBzaG91bGQg
c3BlY2lmeSB0aGF0IG1iZWQgVExTIHNob3VsZCBhZGRlZCBhZnRlciBjb21waWxlci1ydC4NCiAg
ICANClNvdW5kcyBnb29kLCB3aWxsIGRvLg0KDQogICAgPiArUGxlYXNlIHJlZmVyIHRvIHRoZSBg
UkVBRE1FLm1kYCBhcyB3ZWxsIGFzIHRoZSBkb2N1bWVudGF0aW9uIGluIHRoZSBgZG9jL2ANCiAg
ICA+ICtzdWJkaXJlY3Rvcnkgb2YgdGhlIG1haW4gdW5pa3JhZnQgcmVwb3NpdG9yeSBmb3IgZnVy
dGhlciBpbmZvcm1hdGlvbi4NCiAgICA+ICsNCiAgICA+ICsNCiAgICBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KICAgIE1pbmlvcy1kZXZlbCBtYWlsaW5n
IGxpc3QNCiAgICBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCiAgICBodHRwczov
L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVsDQoNCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 03 11:15:59 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 03 Feb 2020 11:15:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyZht-0001Q2-HY; Mon, 03 Feb 2020 11:15:57 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=3Km3=3W=lancaster.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1iyFXw-0004Yk-9o
 for minios-devel@lists.xen.org; Sun, 02 Feb 2020 13:44:20 +0000
X-Inumbo-ID: 1a65b3ba-45c2-11ea-b211-bc764e2007e4
Received: from GBR01-LO2-obe.outbound.protection.outlook.com (unknown
 [40.107.10.118]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 1a65b3ba-45c2-11ea-b211-bc764e2007e4;
 Sun, 02 Feb 2020 13:44:16 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=DS/ddB6yV1bNnpkaRW+RoUbjIimcKBQXbEHHvIFmRb3TbPJya0Fj5+spwrZLV0sPl4dEPDFSgJQDuFX7vHlwIzjTdusR33Qw3hQnPtJpWWSgrXwQ9BonumMjX6mIl2CmN4gr+0GJxP0e77zSnRPmO1UAsqvOtgAqlbD8BmUJvSIVv3vn+ykDjnIIAMWnp1QwkxT/GhSp4y/ojMR0pL0G+hMOdRG1ACkf56qCgI5qKh7lQsl/OwFoNhqF+qjoyNfk27tJ67DP4dspO1Xl8iyDn6tkjMAtnpm8NcArAyV0aGKnun+G/WLz0guTMbCFkwZ2zDBvCKQxn7X9qikgFE0Kzw==
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=TkJqXod+LG+1pi4R0PCA17k657xPCGh9lO1cPUeGBe4=;
 b=gjrI5E3pDXFsnPZGL22RqDjblGvzv2W3PlU4OjT1QM3620m2QlaWTUId2RJCHSZaCQg4GQvojLu9o0OidLX3pzoniDPx2CpAyKXZjYnTLIoseJ2I+/ixSrcJ51TGo3h0A3J2e1ip+ATlhcmfKaoiJndhWhtWaJg3OvhWjgPk2g+Bx4G+4Rkvi74/oWemaA4/qpR6MVzB8XSjF8HDPsY37jzwXKacIgR+gNdrJgOOWifpKMBqDjlOnk91yapxkwAOgOelhkQZ1YkKjLNEndGoaXL4xgmkMjFeYFpiC2afTRgdhuDULLvHozo2FMtkI2znmQ9+uylLm7ha5qgpisLPmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=lancaster.ac.uk; dmarc=pass action=none
 header.from=lancaster.ac.uk; dkim=pass header.d=lancaster.ac.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=livelancsac.onmicrosoft.com; s=selector2-livelancsac-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TkJqXod+LG+1pi4R0PCA17k657xPCGh9lO1cPUeGBe4=;
 b=EX5KLnaDo10ezsLPSvhE0RD7WB8Ulx9zkoG9ojvsRgw1LGpNtMyQ3ukC2ggaFJ/FDsC+yziWD4TH/9YJKIiDgXuFKfavGdSsxIV2vCHHvz5bAR6XyoB9Lc+EmVH2GQ8ir8mWB6oQoYl5n9SG3FL3tD/cSTisRmupE7HM3sV45zI=
Received: from LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM (20.176.134.21) by
 LNXP265MB0427.GBRP265.PROD.OUTLOOK.COM (10.166.178.12) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2686.30; Sun, 2 Feb 2020 13:44:11 +0000
Received: from LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM
 ([fe80::79ac:67a5:15cd:8e8d]) by LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM
 ([fe80::79ac:67a5:15cd:8e8d%7]) with mapi id 15.20.2686.031; Sun, 2 Feb 2020
 13:44:11 +0000
From: "Jung, Alexander" <a.jung@lancaster.ac.uk>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>, Sharan
 Santhanam <sharan.santhanam@neclab.eu>
Thread-Topic: [External] [Minios-devel] [UNIKRAFT/LIBLWIP PATCH] lwip: Add
 compile guard for struct ifconf
Thread-Index: AQHV2c46jc4k8+YDh0KpQxLRzYld3qgH+tgA
Date: Sun, 2 Feb 2020 13:44:10 +0000
Message-ID: <D2BD0D8A-E218-4400-A7D6-14995DFDBB9F@lancaster.ac.uk>
References: <1580650751-9520-1-git-send-email-sharan.santhanam@neclab.eu>
In-Reply-To: <1580650751-9520-1-git-send-email-sharan.santhanam@neclab.eu>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=a.jung@lancaster.ac.uk; 
x-originating-ip: [77.180.157.47]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 81602fa5-471a-4e44-8051-08d7a7e5fbf3
x-ms-traffictypediagnostic: LNXP265MB0427:
x-microsoft-antispam-prvs: <LNXP265MB0427ADDF0BC93199DA73B06DCE010@LNXP265MB0427.GBRP265.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:2803;
x-forefront-prvs: 0301360BF5
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10019020)(4636009)(376002)(136003)(396003)(346002)(366004)(39850400004)(189003)(199004)(316002)(33656002)(786003)(45080400002)(110136005)(36756003)(478600001)(71200400001)(6512007)(6486002)(966005)(186003)(2616005)(6506007)(2906002)(26005)(76116006)(91956017)(86362001)(5660300002)(66446008)(66476007)(64756008)(66556008)(81166006)(66946007)(8936002)(81156014)(8676002);
 DIR:OUT; SFP:1102; SCL:1; SRVR:LNXP265MB0427;
 H:LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: lancaster.ac.uk does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: aB4mFIJEGaQ25Cnfp/w5jORal//ExOfO8WSd2BcTyMZFPw9yOmb72yGtsBkNIscH6j3dbIi2dGsP4Gn/1xgpoxXbJl54/dy4m3uaCHVnzDg5KNnqJY+P35BbNakzUl9Idm9AgBJvO0CB/sQ79vavUWqa8s5MA0CPLPSu5uT1sHZv8jDsIc3rL1SFMz9X7PfAgTwA0MbS6k7Dg38IxJ9kiAWRSn0RbnfK4A8jclezMmuZwqeLAT1Vzwg9Q6b+uWP6L3PhHmkkER+SvA6mZNLXZadEVCMd4NllxXwzoeZse1PeoGYTBrxRX3PRu69vGTaEjaHTCxwaEXoWS5ZwKI7G/LT3ylHFEtt1QG98GIYS3QaGyMKGX9CRuMOytmCcLAx5f57cYnoDzWi1AULhHc1IKQg82D5e1OJOBkHI1vZ5y2Yig7j/DeXajL7/6oD7tKyLl9JvTvdbdBNt6FLy33cUmokM4olN3QqQR1ml+Te2CMl+/9Y6etrsurZCU7U8MAEmQ1AMarEo0oJvUFGutg5ypw==
x-ms-exchange-antispam-messagedata: HCqjU+Lo9530RZAkvOIyp8YgGeMNsYLp+5RcmVTpnnM/I4Q/JeOm++BbmdgDiCcLfb8ENcA+JlZ/OKJNYk3OQ52QmfY0+fcxo4js+yHsJwOQN+QFg0hRLjdXl84BdthL7vvV7xnl2Zo1o9vupbGZWA==
x-ms-exchange-transport-forked: True
Content-ID: <CEB968618444C8449824B2C6D04F7F1A@GBRP265.PROD.OUTLOOK.COM>
MIME-Version: 1.0
X-OriginatorOrg: lancaster.ac.uk
X-MS-Exchange-CrossTenant-Network-Message-Id: 81602fa5-471a-4e44-8051-08d7a7e5fbf3
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2020 13:44:10.9664 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 9c9bcd11-977a-4e9c-a9a0-bc734090164a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0cE3PRrngMsBN19z9Z7Qi+febjcOypNXVxivV1pbDmqiWpo3hg2lzK/2lipN03brZe46tEpGbLHBDOjC50N+Fw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LNXP265MB0427
X-Mailman-Approved-At: Mon, 03 Feb 2020 11:15:56 +0000
Subject: Re: [Minios-devel] [External] [UNIKRAFT/LIBLWIP PATCH] lwip: Add
 compile guard for struct ifconf
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGVzdGVkIGFzIHdvcmtpbmcgZm9yIGFwcC1weXRob24zIHZpYSBsaWItcHl0aG9uMy4NCg0KVGVz
dGVkLWJ5OiBBbGV4YW5kZXIgSnVuZyA8YS5qdW5nQGxhbmNzLmFjLnVrPg0KDQrvu79PbiAwMi4w
Mi4yMCwgMTQ6MzksICJNaW5pb3MtZGV2ZWwgb24gYmVoYWxmIG9mIFNoYXJhbiBTYW50aGFuYW0i
IDxtaW5pb3MtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZyBvbiBiZWhhbGYgb2Yg
c2hhcmFuLnNhbnRoYW5hbUBuZWNsYWIuZXU+IHdyb3RlOg0KDQogICAgVGhpcyBlbWFpbCBvcmln
aW5hdGVkIG91dHNpZGUgdGhlIFVuaXZlcnNpdHkuIENoZWNrIGJlZm9yZSBjbGlja2luZyBsaW5r
cyBvciBhdHRhY2htZW50cy4NCiAgICANCiAgICBGaXggdG8gZGlzYWJsZSByZWRlZmluaXRpb24g
b2Ygc3RydWN0IGlmY29uZiBmcm9tIHB5dGhvbg0KICAgIA0KICAgIFNpZ25lZC1vZmYtYnk6IFNo
YXJhbiBTYW50aGFuYW0gPHNoYXJhbi5zYW50aGFuYW1AbmVjbGFiLmV1Pg0KICAgIC0tLQ0KICAg
ICBpbmNsdWRlL25ldC9pZi5oIHwgMiArKw0KICAgICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp
b25zKCspDQogICAgDQogICAgZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lmLmggYi9pbmNsdWRl
L25ldC9pZi5oDQogICAgaW5kZXggMWViMTFkOC4uNGVhZGM2ZCAxMDA2NDQNCiAgICAtLS0gYS9p
bmNsdWRlL25ldC9pZi5oDQogICAgKysrIGIvaW5jbHVkZS9uZXQvaWYuaA0KICAgIEBAIC0yNiw2
ICsyNiw3IEBAIGNoYXIgKmlmX2luZGV4dG9uYW1lICh1bnNpZ25lZCBpbnQsIGNoYXIgKik7DQog
ICAgICNkZWZpbmUgSUZGX1ZPTEFUSUxFIChJRkZfTE9PUEJBQ0t8SUZGX1BPSU5UT1BPSU5UfElG
Rl9CUk9BRENBU1R8IFwNCiAgICAgICAgICAgICBJRkZfRUNIT3xJRkZfTUFTVEVSfElGRl9TTEFW
RXxJRkZfUlVOTklOR3xJRkZfTE9XRVJfVVB8SUZGX0RPUk1BTlQpDQogICAgDQogICAgKyNpZiBk
ZWZpbmVkKF9CU0RfU09VUkNFKQ0KICAgICBzdHJ1Y3QgaWZjb25mIHsNCiAgICAgICAgICAgIGlu
dCBpZmNfbGVuOw0KICAgICAgICAgICAgdW5pb24gew0KICAgIEBAIC0zMyw2ICszNCw3IEBAIHN0
cnVjdCBpZmNvbmYgew0KICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaWZyZXEgKmlmY3VfcmVx
Ow0KICAgICAgICAgICAgfSBpZmNfaWZjdTsNCiAgICAgfTsNCiAgICArI2VuZGlmIC8qIF9CU0Rf
U09VUkNFICovDQogICAgICNkZWZpbmUgaWZjX2J1ZiAgICAgICAgIGlmY19pZmN1LmlmY3VfYnVm
DQogICAgICNkZWZpbmUgaWZjX3JlcSAgICAgICAgIGlmY19pZmN1LmlmY3VfcmVxDQogICAgDQog
ICAgLS0NCiAgICAyLjcuNA0KICAgIA0KICAgIA0KICAgIF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fDQogICAgTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdA0K
ICAgIE1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KICAgIGh0dHBzOi8vZXVyMDIu
c2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmxpc3Rz
LnhlbnByb2plY3Qub3JnJTJGbWFpbG1hbiUyRmxpc3RpbmZvJTJGbWluaW9zLWRldmVsJmFtcDtk
YXRhPTAyJTdDMDElN0NhLmp1bmclNDBsYW5jYXN0ZXIuYWMudWslN0NjODk1MTc1ZWQ0ODE0YmY3
OTRjMjA4ZDdhN2U1NWI5ZiU3QzljOWJjZDExOTc3YTRlOWNhOWEwYmM3MzQwOTAxNjRhJTdDMSU3
QzAlN0M2MzcxNjI0NzU4MzgzNjg1ODEmYW1wO3NkYXRhPWh6SlZja1Ewa0paSG1vMmZ6V1dqb29X
MTZ1RW1mRlFXZVlHJTJGemhMZGYwbyUzRCZhbXA7cmVzZXJ2ZWQ9MA0KICAgIA0KDQpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFp
bGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 03 12:54:58 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 03 Feb 2020 12:54:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iybFd-0003fw-IM; Mon, 03 Feb 2020 12:54:53 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=dsfr=3X=neclab.eu=alexander.jung@srs-us1.protection.inumbo.net>)
 id 1iybFc-0003fr-DD
 for minios-devel@lists.xen.org; Mon, 03 Feb 2020 12:54:52 +0000
X-Inumbo-ID: 5d2f0c88-4684-11ea-8e55-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 5d2f0c88-4684-11ea-8e55-12813bfff9fa;
 Mon, 03 Feb 2020 12:54:50 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id D2D55103AA4;
 Mon,  3 Feb 2020 13:54:49 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id i8m9DplgD4Yu; Mon,  3 Feb 2020 13:54:49 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id ADAF8FF925;
 Mon,  3 Feb 2020 13:54:49 +0100 (CET)
Received: from [10.1.2.172] (192.168.24.96) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 3 Feb 2020
 13:54:49 +0100
To: <minios-devel@lists.xen.org>
References: <1580650751-9520-1-git-send-email-sharan.santhanam@neclab.eu>
 <D2BD0D8A-E218-4400-A7D6-14995DFDBB9F@lancaster.ac.uk>
From: Alexander Jung <alexander.jung@neclab.eu>
Message-ID: <6cf2837c-362f-9b56-48f3-b0784e10aa57@neclab.eu>
Date: Mon, 3 Feb 2020 13:54:49 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <D2BD0D8A-E218-4400-A7D6-14995DFDBB9F@lancaster.ac.uk>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To titania.office.hd
 (192.168.24.89)
Subject: Re: [Minios-devel] [External] [UNIKRAFT/LIBLWIP PATCH] lwip: Add
 compile guard for struct ifconf
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "Jung, Alexander" <a.jung@lancaster.ac.uk>, sharan.santhanam@neclab.eu
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmV2aWV3ZWQtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+CgpPbiAyLzIv
MjAgMjo0NCBQTSwgSnVuZywgQWxleGFuZGVyIHdyb3RlOgo+IFRlc3RlZCBhcyB3b3JraW5nIGZv
ciBhcHAtcHl0aG9uMyB2aWEgbGliLXB5dGhvbjMuCj4gCj4gVGVzdGVkLWJ5OiBBbGV4YW5kZXIg
SnVuZyA8YS5qdW5nQGxhbmNzLmFjLnVrPgo+IAo+IO+7v09uIDAyLjAyLjIwLCAxNDozOSwgIk1p
bmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2hhcmFuIFNhbnRoYW5hbSIgPG1pbmlvcy1kZXZlbC1i
b3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBvZiBzaGFyYW4uc2FudGhhbmFt
QG5lY2xhYi5ldT4gd3JvdGU6Cj4gCj4gICAgICBUaGlzIGVtYWlsIG9yaWdpbmF0ZWQgb3V0c2lk
ZSB0aGUgVW5pdmVyc2l0eS4gQ2hlY2sgYmVmb3JlIGNsaWNraW5nIGxpbmtzIG9yIGF0dGFjaG1l
bnRzLgo+ICAgICAgCj4gICAgICBGaXggdG8gZGlzYWJsZSByZWRlZmluaXRpb24gb2Ygc3RydWN0
IGlmY29uZiBmcm9tIHB5dGhvbgo+ICAgICAgCj4gICAgICBTaWduZWQtb2ZmLWJ5OiBTaGFyYW4g
U2FudGhhbmFtIDxzaGFyYW4uc2FudGhhbmFtQG5lY2xhYi5ldT4KPiAgICAgIC0tLQo+ICAgICAg
IGluY2x1ZGUvbmV0L2lmLmggfCAyICsrCj4gICAgICAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0
aW9ucygrKQo+ICAgICAgCj4gICAgICBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaWYuaCBiL2lu
Y2x1ZGUvbmV0L2lmLmgKPiAgICAgIGluZGV4IDFlYjExZDguLjRlYWRjNmQgMTAwNjQ0Cj4gICAg
ICAtLS0gYS9pbmNsdWRlL25ldC9pZi5oCj4gICAgICArKysgYi9pbmNsdWRlL25ldC9pZi5oCj4g
ICAgICBAQCAtMjYsNiArMjYsNyBAQCBjaGFyICppZl9pbmRleHRvbmFtZSAodW5zaWduZWQgaW50
LCBjaGFyICopOwo+ICAgICAgICNkZWZpbmUgSUZGX1ZPTEFUSUxFIChJRkZfTE9PUEJBQ0t8SUZG
X1BPSU5UT1BPSU5UfElGRl9CUk9BRENBU1R8IFwKPiAgICAgICAgICAgICAgIElGRl9FQ0hPfElG
Rl9NQVNURVJ8SUZGX1NMQVZFfElGRl9SVU5OSU5HfElGRl9MT1dFUl9VUHxJRkZfRE9STUFOVCkK
PiAgICAgIAo+ICAgICAgKyNpZiBkZWZpbmVkKF9CU0RfU09VUkNFKQo+ICAgICAgIHN0cnVjdCBp
ZmNvbmYgewo+ICAgICAgICAgICAgICBpbnQgaWZjX2xlbjsKPiAgICAgICAgICAgICAgdW5pb24g
ewo+ICAgICAgQEAgLTMzLDYgKzM0LDcgQEAgc3RydWN0IGlmY29uZiB7Cj4gICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IGlmcmVxICppZmN1X3JlcTsKPiAgICAgICAgICAgICAgfSBpZmNfaWZj
dTsKPiAgICAgICB9Owo+ICAgICAgKyNlbmRpZiAvKiBfQlNEX1NPVVJDRSAqLwo+ICAgICAgICNk
ZWZpbmUgaWZjX2J1ZiAgICAgICAgIGlmY19pZmN1LmlmY3VfYnVmCj4gICAgICAgI2RlZmluZSBp
ZmNfcmVxICAgICAgICAgaWZjX2lmY3UuaWZjdV9yZXEKPiAgICAgIAo+ICAgICAgLS0KPiAgICAg
IDIuNy40Cj4gICAgICAKPiAgICAgIAo+ICAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KPiAgICAgIE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiAg
ICAgIE1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+ICAgICAgaHR0cHM6Ly9ldXIw
Mi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbGlz
dHMueGVucHJvamVjdC5vcmclMkZtYWlsbWFuJTJGbGlzdGluZm8lMkZtaW5pb3MtZGV2ZWwmYW1w
O2RhdGE9MDIlN0MwMSU3Q2EuanVuZyU0MGxhbmNhc3Rlci5hYy51ayU3Q2M4OTUxNzVlZDQ4MTRi
Zjc5NGMyMDhkN2E3ZTU1YjlmJTdDOWM5YmNkMTE5NzdhNGU5Y2E5YTBiYzczNDA5MDE2NGElN0Mx
JTdDMCU3QzYzNzE2MjQ3NTgzODM2ODU4MSZhbXA7c2RhdGE9aHpKVmNrUTBrSlpIbW8yZnpXV2pv
b1cxNnVFbWZGUVdlWUclMkZ6aExkZjBvJTNEJmFtcDtyZXNlcnZlZD0wCj4gICAgICAKPiAKPiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IE1pbmlvcy1k
ZXZlbCBtYWlsaW5nIGxpc3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBo
dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs
Cj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5p
b3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo
dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 03 13:55:31 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 03 Feb 2020 13:55:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iycCH-00012W-Q6; Mon, 03 Feb 2020 13:55:29 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=2iin=3X=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1iycCH-00012M-3M
 for minios-devel@lists.xen.org; Mon, 03 Feb 2020 13:55:29 +0000
X-Inumbo-ID: d4b8273c-468c-11ea-8e59-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id d4b8273c-468c-11ea-8e59-12813bfff9fa;
 Mon, 03 Feb 2020 13:55:27 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 3680BF2042;
 Mon,  3 Feb 2020 14:55:26 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id kX7eL5GFqHXH; Mon,  3 Feb 2020 14:55:26 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 0708AF2011;
 Mon,  3 Feb 2020 14:55:22 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 3 Feb 2020
 14:55:21 +0100
To: Alexander Jung <a.jung@lancs.ac.uk>, <minios-devel@lists.xen.org>
References: <20200202092844.34051-1-a.jung@lancs.ac.uk>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <b90f339a-b955-1884-e0f7-415109b1c508@neclab.eu>
Date: Mon, 3 Feb 2020 14:55:21 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200202092844.34051-1-a.jung@lancs.ac.uk>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] Fix broken user guide with
 malformed commit.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgQWxleGFuZGVyLAoKYXMgZGlzY3Vzc2VkIG9mZmxpbmUsIEkgYW0gZ29pbmcgdG8gcmVqZWN0
IHRoaXMgY29tbWl0IGJlY2F1c2UgeW91ciAKb3RoZXIgY29tbWl0ICJbVU5JS1JBRlQgUEFUQ0gg
djJdIFJlLW9yZ2FuaXplIGFkdmFuY2VkIHVzZXIncyBndWlkZSBpbnRvIAphIHNpbmdsZSB0dXRy
aWFsLiIgaW5jbHVkZXMgdGhlIHNhbWUgY2hhbmdlcy4KClRoYW5rcywKClNpbW9uCgpPbiAwMi4w
Mi4yMCAxMDoyOCwgQWxleGFuZGVyIEp1bmcgd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogQWxleGFu
ZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KPiAtLS0KPiAgIGRvYy9ndWlkZXMvdXNlcnMu
cnN0IHwgMTcgLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAxNyBkZWxldGlv
bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy91c2Vycy5yc3QgYi9kb2MvZ3VpZGVz
L3VzZXJzLnJzdAo+IGluZGV4IGY5NWFkNzIuLjVkMTU3YmYgMTAwNjQ0Cj4gLS0tIGEvZG9jL2d1
aWRlcy91c2Vycy5yc3QKPiArKysgYi9kb2MvZ3VpZGVzL3VzZXJzLnJzdAo+IEBAIC0xLDIxICsx
LDUgQEAKPiAgID09PT09PT09PT09PQo+ICAgVXNlcidzIEd1aWRlCj4gLTw8PDw8PDwgVXBkYXRl
ZCB1cHN0cmVhbQo+IC0jIyMjIyMjIyMjIyMjIyMjIyMjIwo+IC1UaGlzIHNlY3Rpb24gb2YgdGhl
IGd1aWRlIHByb3ZpZGVzIGFsbCB0aGUgaW5mb3JtYXRpb24geW91IHNob3VsZCBuZWVkCj4gLXRv
ICBnZXQgc3RhcnRlZCAgd2l0aCBhbmQgIHRvICB1c2UgVW5pa3JhZnQuICBJZiB5b3UgIGhhdmUg
bmV2ZXIgIHVzZWQKPiAtVW5pa3JhZnQgIGJlZm9yZSwgcmVhZCAgdGhlIGdldHRpbmcgIHN0YXJ0
ZWQgcGFnZSAgYW5kIG9wdGlvbmFsbHkgIHJ1bgo+IC10aHJvdWdoIHRoZSB0dXRvcmlhbHMuCj4g
LQo+IC0uLiB0b2N0cmVlOjoKPiAtICAgOm1heGRlcHRoOiAyCj4gLQo+IC0gICB1c2Vycy1nZXR0
aW5nc3RhcnRlZAo+IC0gICB1c2Vycy10dXRvcmlhbAo+IC0gICB1c2Vycy1kb3dubG9hZHMKPiAt
ICAgdXNlcnMtcmVzb3VyY2VzCj4gLT09PT09PT0KPiAtPT09PT09PT09PT09Cj4gICAKPiAgIFVu
aWtyYWZ0IGlzIGFuIGV4dGVuc2l2ZSBidWlsZCBzeXN0ZW0gaW4gYWRkaXRpb24gdG8gdGhlIGNv
cmUgYW5kIGV4dGVybmFsCj4gICBsaWJyYXJpZXMgd2hpY2ggZmFjaWxpdGF0ZSB0aGUgdW5kZXJs
eWluZyBmdW5jdGlvbmFsaXR5IG9mIGEgdW5pa2VybmVsLiAgRGV0YWlscwo+IEBAIC0yOSw0ICsx
MywzIEBAIGhvdyB0byB1c2UgdGhlc2UgbGV2ZXJhZ2UgdGhpcyBmdW5jdGlvbmFsaXR5IGZvciBh
ZHZhbmNlZCB1c2FnZS4KPiAgIAo+ICAgICAga3JhZnQKPiAgICAgIHVzZXJzLWFkdmFuY2VkCj4g
LT4+Pj4+Pj4gU3Rhc2hlZCBjaGFuZ2VzCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt
YW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 03 14:06:27 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 03 Feb 2020 14:06:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iycMs-0002MD-El; Mon, 03 Feb 2020 14:06:26 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=2iin=3X=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1iycMq-0002M6-LP
 for minios-devel@lists.xen.org; Mon, 03 Feb 2020 14:06:24 +0000
X-Inumbo-ID: 5a4724f6-468e-11ea-a933-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5a4724f6-468e-11ea-a933-bc764e2007e4;
 Mon, 03 Feb 2020 14:06:20 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id E5E59103AA4;
 Mon,  3 Feb 2020 15:06:19 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id kN9kb-Y7O0SA; Mon,  3 Feb 2020 15:06:19 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id BA9F4FFFC2;
 Mon,  3 Feb 2020 15:06:19 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 3 Feb 2020
 15:06:19 +0100
To: Alexander Jung <a.jung@lancs.ac.uk>, <minios-devel@lists.xen.org>
References: <20200202100648.46344-1-a.jung@lancs.ac.uk>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <07db9433-03ee-2643-54a0-a84e35cdefce@neclab.eu>
Date: Mon, 3 Feb 2020 15:06:18 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200202100648.46344-1-a.jung@lancs.ac.uk>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH v2] Re-organize advanced user's
 guide into a single tutrial.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IGZvciB5b3VyIHdvcmshIEFzIGRpc2N1c3NlZCBvZmZsaW5lLCBJIHdpbGwg
cmVtb3ZlIHRoZSAKdW5yZWZlcmVuY2VkICJkb2MvZ3VpZGVzL3VzZXJzLWRvd25sb2Fkcy5yc3Qi
IGZpbGUgd2l0aCB0aGlzIGNvbW1pdCwgdG9vLgoKVGhhbmtzIQoKUmV2aWV3ZWQtYnk6IFNpbW9u
IEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAa3Vlbnplci5vbmw+CgpPbiAwMi4wMi4yMCAxMTowNiwg
QWxleGFuZGVyIEp1bmcgd3JvdGU6Cj4gVGhpcyBjb21taXQgbW92ZXMgdGhlIHR1dG9yaWFsIGFu
ZCBnZXR0aW5nIHN0YXJ0ZWQgcGFnZXMgaW50bwo+IG9uZSAidW5pa3JhZnQgaW50cmluc2ljIiBw
YWdlIGFzIHRoZXJlIHdhcyBwbGVudHkgb2Ygb3ZlcmxhcC4KPiAKPiBUaGlzIGNvbW1pdCBhbHNv
IGZpeGVzIGEgYnJva2VuIHVzZXIgZ3VpZGUgd2l0aCBhIHByZXZpb3VzbHkKPiBtYWxmb3JtZWQg
Y29tbWl0Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3Mu
YWMudWs+Cj4gLS0tCj4gICBkb2MvZ3VpZGVzL3VzZXJzLWFkdmFuY2VkLnJzdCAgICAgICB8IDMy
MiArKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4gICBkb2MvZ3VpZGVzL3VzZXJzLWdldHRp
bmdzdGFydGVkLnJzdCB8IDEzNSAtLS0tLS0tLS0tLS0KPiAgIGRvYy9ndWlkZXMvdXNlcnMtdHV0
b3JpYWwucnN0ICAgICAgIHwgMjg2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZG9jL2d1
aWRlcy91c2Vycy5yc3QgICAgICAgICAgICAgICAgfCAgMTcgKy0KPiAgIDQgZmlsZXMgY2hhbmdl
ZCwgMjkxIGluc2VydGlvbnMoKyksIDQ2OSBkZWxldGlvbnMoLSkKPiAgIGRlbGV0ZSBtb2RlIDEw
MDY0NCBkb2MvZ3VpZGVzL3VzZXJzLWdldHRpbmdzdGFydGVkLnJzdAo+ICAgZGVsZXRlIG1vZGUg
MTAwNjQ0IGRvYy9ndWlkZXMvdXNlcnMtdHV0b3JpYWwucnN0Cj4gCj4gZGlmZiAtLWdpdCBhL2Rv
Yy9ndWlkZXMvdXNlcnMtYWR2YW5jZWQucnN0IGIvZG9jL2d1aWRlcy91c2Vycy1hZHZhbmNlZC5y
c3QKPiBpbmRleCBlMGRiYjU0Li5lYzU4NzAxIDEwMDY0NAo+IC0tLSBhL2RvYy9ndWlkZXMvdXNl
cnMtYWR2YW5jZWQucnN0Cj4gKysrIGIvZG9jL2d1aWRlcy91c2Vycy1hZHZhbmNlZC5yc3QKPiBA
QCAtMSwyNyArMSw0MSBAQAo+IC09PT09PT09PT09PT09PT09PT09Cj4gKyoqKioqKioqKioqKioq
KioqKioKPiAgIFVuaWtyYWZ0IEludHJpbnNpY3MKPiAtPT09PT09PT09PT09PT09PT09PQo+ICsq
KioqKioqKioqKioqKioqKioqCj4gICAKPiAgIFRoZSBVbmlrcmFmdCBidWlsZCBzeXN0ZW0gcmVs
aWVzIG9uIGtub3dpbmcgdGhlIHNlYXJjaCBwYXRocyBvciBib3RoIHRoZQo+ICAgVW5pa3JhZnQg
Y29yZSBzb3VyY2UgY29kZSBhbmQgYW55IGFkZGl0aW9uYWwgbGlicmFyaWVzLiAgIEJ5IHNldHRp
bmcgdGhlc2UKPiAgIGRpcmVjdG9yaWVzLCB5b3UgY2FuIGNyZWF0ZSBhIHNpbXBsZSBgYE1ha2Vm
aWxlYGAgd2hpY2ggYWN0cyBhcyBwcm94eSBpbnRvIHRoZQo+ICAgbWFpbiBidWlsZCBzeXN0ZW0u
Cj4gICAKPiArRm9yIHRoaXMgdHV0b3JpYWwgeW91IHdpbGwgbmVlZCBhIExpbnV4IGhvc3QgcnVu
bmluZyBYZW4gYW5kL29yIEtWTSBpbgo+ICtvcmRlciB0byBydW4gVW5pa3JhZnQgaW1hZ2VzLiBQ
bGVhc2UgY2hlY2sgdGhlIG1hbnVhbCBvZiB5b3VyIExpbnV4Cj4gK2Rpc3RyaWJ1dGlvbiByZWdh
cmRpbmcgaG93IHRvIGluc3RhbGwgdGhlc2UgZW52aXJvbm1lbnRzLiBUaGlzCj4gK3R1dG9yaWFs
IGV4cGVjdHMgdGhhdCB5b3UgaGF2ZSB0aGUgZXNzZW50aWFsIGJ1aWxkIGFuZCBkZWJ1Z2dpbmcg
dG9vbHMKPiAraW5zdGFsbGVkLiBJbiBhZGRpdGlvbiwgZm9yIFhlbiB5b3Ugd2lsbCBuZWVkIHRv
IGhhdmUgdGhlIGBgeGxgYCB0b29sc3RhY2sKPiAraW5zdGFsbGVkIGFuZCBydW5uaW5nLCBhbmQg
Zm9yIEtWTSBgYHFlbXVgYC4KPiArCj4gICBUbyBiZWdpbiB1c2luZyBVbmlrcmFmdCB5b3UnbGwg
bmVlZCB0byBoYXZlIHRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jaWVzCj4gICBpbnN0YWxsZWQ6IDo6
Cj4gICAKPiAgICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIGJ1
aWxkLWVzc2VudGlhbCBsaWJuY3Vyc2VzLWRldiBmbGV4IGdpdCB3Z2V0IGJpc29uIHVuemlwCj4g
ICAKPiAtT25jZSB0aGVzZSBhcmUgaW5zdGFsbGVkLCB5b3UgY2FuIGNsb25lIHRoZSBVbmlrcmFm
dCBtYWluIHJlcG86IDo6Cj4gK09wdGlvbmFsbHksIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgUHl0
aG9uIGZyb250LWVuZCB0byBVbmlrcmFmdCdzCj4gK21lbnUsIHBsZWFzZSBhbHNvIHJ1biA6Ogo+
ICAgCj4gLSAgZ2l0IGNsb25lIGh0dHA6Ly9naXRodWIuY29tL3VuaWtyYWZ0L3VuaWtyYWZ0Lmdp
dAo+ICsgIGFwdC1nZXQgaW5zdGFsbCBndGsrLTIuMCBnbW9kdWxlLTIuMCBsaWJnbGFkZS0yLjAK
PiAgIAo+IC1JZiB5b3UnbGwgYmUgdXNpbmcgVW5pa3JhZnQgZXh0ZXJuYWwgbGlicmFyaWVzLCB0
aGlzIHdvdWxkIGJlIHRoZSB0aW1lCj4gLXRvIGNsb25lIHRob3NlIHRvby4gIFlvdSBjYW4gc2Vl
IGEgbGlzdCBvZiBhdmFpbGFibGUgbGlicmFyaWVzIG9uIGBHaXRodWIgPGh0dHBzOi8vZ2l0aHVi
LmNvbS91bmlya2FmdD5gXwo+IC13aXRoIHRoZSBwcmVmaXggYGBsaWItYGAuICBZb3Ugd2lsbCBu
ZWVkIHRvIGNsb25lIGVhY2ggb25lIHNlcGFyYXRlbHkuCj4gKz09PT09PT09PT09PT09PT09PT09
PT09PT09PQo+ICtDbG9uaW5nIFJlcG9zaXRvcmllcwo+ICs9PT09PT09PT09PT09PT09PT09PT09
PT09PT0KPiAgIAo+IC1XZSByZWNvbW1lbmQgdGhlIGZvbGxvd2luZyBkaXJlY3Rvcnkgc3RydWN0
dXJlIGZvciB0aGUgVW5pa3JhZnQgc291cmNlIGNvZGUgYW5kCj4gLWFueSBhZGRpdGlvbmFsIGxp
YnJhcmllczogIDo6Cj4gK1lvdSBjYW4gZWFzaWx5IGJ1aWxkIFVuaWtyYWZ0IHVuaWtlcm5lbHMg
b24geW91ciBMaW51eCBob3N0LiBJZiB5b3UKPiAraGF2ZSBhbGwgdG9vbHMgYW5kIGxpYnJhcmll
cyBpbnN0YWxsZWQgdG8gY29tcGlsZSBhIExpbnV4IGtlcm5lbCB5b3UKPiArYXJlIHJlYWR5IHRv
IGRvIHRoaXMgd2l0aCBVbmlrcmFmdCB0b28uCj4gKwo+ICtBIFVuaWtyYWZ0IGJ1aWxkIGNvbnNp
c3RzIG1vc3RseSBvZiBhIGNvbWJpbmF0aW9uIG9mIG11bHRpcGxlCj4gK3JlcG9zaXRvcmllcy4g
V2UgZGlmZmVyZW50aWF0ZSB0aGVtIGludG86ICgxKSBVbmlrcmFmdCwgKDIpIGV4dGVybmFsCj4g
K2xpYnJhcmllcywgKDMpIGFwcGxpY2F0aW9uLiAgVGhlIGJ1aWxkIHN5c3RlbSBhc3N1bWVzIHRo
ZXNlIHRvIGJlCj4gK3N0cnVjdHVyZWQgYXMgZm9sbG93czogOjoKPiAgIAo+ICAgICDilJzilIDi
lIAgdW5pa3JhZnQvCj4gICAgIOKUnOKUgOKUgCBhcHBzLwo+IEBAIC0zMyw2ICs0NywzMSBAQCBh
bnkgYWRkaXRpb25hbCBsaWJyYXJpZXM6ICA6Ogo+ICAgICAgICDilJzilIDilIAgLi4uCj4gICAg
ICAgIOKUlOKUgOKUgCBsaWItTi8KPiAgIAo+ICtPbmNlIHlvdXIgZGVwZW5kZW5jaWVzIGhhdmUg
YmVlbiBpbnN0YWxsZWQgYW5kIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIHNldCwgeW91Cj4gK2Nh
biBjbG9uZSB0aGUgVW5pa3JhZnQgbWFpbiByZXBvOiA6Ogo+ICsKPiArICBnaXQgY2xvbmUgaHR0
cDovL2dpdGh1Yi5jb20vdW5pa3JhZnQvdW5pa3JhZnQuZ2l0Cj4gKwo+ICtJZiB5b3UnbGwgYmUg
dXNpbmcgVW5pa3JhZnQgZXh0ZXJuYWwgbGlicmFyaWVzLCB0aGlzIHdvdWxkIGJlIHRoZSB0aW1l
Cj4gK3RvIGNsb25lIHRob3NlIHRvby4gIFlvdSBjYW4gc2VlIGEgbGlzdCBvZiBhdmFpbGFibGUg
bGlicmFyaWVzIG9uIGBHaXRodWIgPGh0dHBzOi8vZ2l0aHViLmNvbS91bmlya2FmdD5gXwo+ICt3
aXRoIHRoZSBwcmVmaXggYGBsaWItYGAuICBZb3Ugd2lsbCBuZWVkIHRvIGNsb25lIGVhY2ggb25l
IHNlcGFyYXRlbHkuCj4gKwo+ICsqIFVuaWtyYWZ0IGJhc2UgcmVwb3NpdG9yeSBkaXJlY3RseSB1
bmRlciB5b3VyIHdvcmtzcGFjZSByb290Cj4gKyAgICogYFVuaWtyYWZ0IHJlcG8gPGh0dHBzOi8v
Z2l0aHViLmNvbS91bmlrcmFmdC91bmlrcmFmdC5naXQ+YF8KPiArKiBFeHRlcm5hbCBsaWJyYXJp
ZXMgaW50byBhIGBsaWJzYCBzdWJkaXJlY3Rvcnk6Cj4gKwkqIGBuZXdsaWIgcmVwbyA8aHR0cHM6
Ly9naXRodWIuY29tL3VuaWtyYWZ0L2xpYi1uZXdsaWIuZ2l0PmBfCj4gKwkqIGBsd2lwIHJlcG8g
PGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC9saWItbHdpcC5naXQ+YF8KPiArKiBBcHBsaWNh
dGlvbnMgaW50byBhbiBgYXBwc2Agc3ViZGlyZWN0b3J5Ogo+ICsJKiBgaGVsbG93b3JsZCByZXBv
IDxodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQvYXBwLWhlbGxvd29ybGQuZ2l0PmBfCj4gKwkq
IGBodHRwcmVwbHkgcmVwbyA8aHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L2FwcC1odHRwcmVw
bHkuZ2l0PmBfCj4gKwo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiArWW91ciBGaXJz
dCBVbmlrZXJuZWwKPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gKwo+ICtNYWtlZmls
ZSBlbnRyeXBvaW50Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiArCj4gICBPbmNlIHRoaXMgaXMg
aW4gcGxhY2UsIHlvdSBjYW4gY3JlYXRlIGEgYGBNYWtlZmlsZWBgIGluc2lkZSB5b3VyIGFwcGxp
Y2F0aW9uCj4gICBkaXJlY3Rvcnkgd2hpY2ggdXNlcyB0aGVzZSBsb2NhdGlvbnMgYW5kIHVzZXMg
dGhlIHNwZWNpYWwgTWFrZSB0YXJnZXQKPiAgIGBgJChNQUtFQ01ER09BTFMpYGAgd2hpY2ggcmV0
dXJucyB0aGUgdGFyZ2V0IHVzZWQgd2hlbiBjYWxsaW5nIGBgbWFrZWBgOiA6Ogo+IEBAIC01MSw0
MCArOTAsNTEgQEAgTm93IGVkaXQgdGhlIE1ha2VmaWxlIGluIHlvdXIgYXBwbGljYXRpb24gZGly
ZWN0b3J5LiAgSW4gcGFydGljdWxhciwgc2V0IHRoZQo+ICAgYGBVS19ST09UYGAgYW5kIGBgVUtf
TElCU2BgIHZhcmlhYmxlcyB0byBwb2ludCB0byB0aGUgZGlyZWN0b3JpZXMgd2hlcmUgeW91Cj4g
ICBjbG9uZWQgdGhlIHJlcG9zIGFib3ZlLgo+ICAgCj4gLUFwcGxpY2F0aW9uIHN0cnVjdHVyZQo+
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtCj4gLVRvIGdldCBxdWlja2x5IHN0YXJ0ZWQsIHRo
ZSBlYXNpZXN0IGlzIHRvIGNsb25lIHRoZSBoZWxsbyB3b3JsZCBhcHAgKG9uY2UgYWdhaW4sCj4g
LWVhY2ggVW5pa3JhZnQgYXBwIGhhcyBpdHMgb3duIHJlcG8pOiA6Ogo+IC0KPiAtICBnaXQgY2xv
bmUgaHR0cDovL2dpdGh1Yi5jb20vdW5pa3JhZnQvYXBwLWhlbGxvd29ybGQuZ2l0Cj4gK0lmIHlv
dXIgYXBwIHVzZXMgZXh0ZXJuYWwgbGlicmFyaWVzLCBzZXQgdGhlIGBgTElCU2BgIHZhcmlhYmxl
IHRvCj4gK3JlZmxlY3QgdGhpcy4gRm9yIGluc3RhbmNlIDogOjoKPiAgIAo+IC13aGVyZSB5b3Vy
IGFwcCBpcyBsb2NhdGVkIGF0IGBgYXBwcy9oZWxsb3dvcmxkYGAsIHlvdSB3b3VsZCBzZXQKPiAt
dGhvc2UgdmFyaWFibGVzIGFzIGZvbGxvd3M6IDo6Cj4gLQo+IC0gIFVLX1JPT1QgPz0gJChQV0Qp
Ly4uLy4uL3VuaWtyYWZ0Cj4gLSAgVUtfTElCUyA/PSAkKFBXRCkvLi4vLi4vbGlicwo+ICsgIExJ
QlMgOj0gJChVS19MSUJTKS9saWIxOiQoVUtfTElCUykvbGliMjokKFVLX0xJQlMpL2xpYk4KPiAg
IAo+IC1GaW5hbGx5LCBpZiB5b3VyIGFwcCB3aWxsIGJlIHVzaW5nIGV4dGVybmFsIGxpYnJhcmll
cywgc2V0IHRoZSBgYExJQlNgYAo+IC12YXJpYWJsZSB0byByZWZsZWN0IHRoaXMuIEZvciBpbnN0
YW5jZSA6IDo6Cj4gK0ZpbmFsbHksIGlmIHlvdXIgYXBwIHVzZXMgZXh0ZXJuYWwgcGxhdGZvcm1z
LCBzZXQgdGhlIGBgUExBVFNgYAo+ICt2YXJpYWJsZTogOjoKPiAgIAo+IC0gIExJQlMgOj0gJChV
S19MSUJTKS9saWItMTokKFVLX0xJQlMpL2xpYi0yOiQoVUtfTElCUykvbGliLU4KPiArICBQTEFU
UyA/PSAkKFVLX1BMQVRTKS9wbGF0MTokKFVLX1BMQVRTKS9wbGF0MjokKFVLX1BMQVRTKS9wbGF0
Tgo+ICAgCj4gICAuLiBub3RlOjoKPiAgICAgCj4gLSAgVGhlIGxpc3Qgb2YgbGlicmFyaWVzIG11
c3QgYmUgY29sb24tc2VwYXJhdGVkIChgYDpgYCkuCj4gKyAgVGhlIGxpc3Qgb2YgbGlicmFyaWVz
IGFuZCBwbGF0Zm9ybXMgbXVzdCBiZSBjb2xvbi1zZXBhcmF0ZWQgKGBgOmBgKS4KPiArCj4gK0Fs
c28gbWFrZSBzdXJlIHRoYXQgeW91IGhhbmQtb3ZlciB0aGVzZSBwbGF0Zm9ybXMgd2l0aCB0aGUK
PiArYGBQPWBgIHBhcmFtZXRlciB0byB0aGUgc3ViIG1ha2UgY2FsbCBpbiB5b3VyIG1haW4gYGBN
YWtlZmlsZWBgOiA6Ogo+ICsKPiArICBAbWFrZSAtQyAkKFVLX1JPT1QpIEE9JChQV0QpIEw9JChM
SUJTKSBQPSQoUExBVFMpIGZldGNoCj4gKyAgQG1ha2UgLUMgJChVS19ST09UKSBBPSQoUFdEKSBM
PSQoTElCUykgUD0kKFBMQVRTKSBwcmVwYXJlCj4gKyAgQG1ha2UgLUMgJChVS19ST09UKSBBPSQo
UFdEKSBMPSQoTElCUykgUD0kKFBMQVRTKQo+ICAgCj4gICBXaXRoIGFsbCBvZiB0aGlzIGluIHBs
YWNlLCB3ZSdyZSBub3cgcmVhZHkgdG8gc3RhcnQgY29uZmlndXJpbmcgdGhlCj4gLWFwcGxpY2F0
aW9uIGltYWdlIHZpYSBVbmlrcmFmdCdzIG1lbnUuICBUbyBhY2Nlc3MgaXQsIGZyb20gd2l0aGlu
IHRoZQo+ICthcHBsaWNhdGlvbiBpbWFnZSB2aWEgVW5pa3JhZnQncyBtZW51LiBUbyBhY2Nlc3Mg
aXQsIGZyb20gd2l0aGluIHRoZQo+ICAgYXBwJ3MgZGlyZWN0b3J5IHNpbXBseSB0eXBlIDo6Cj4g
ICAKPiAgICAgbWFrZSBtZW51Y29uZmlnCj4gICAKPiArCj4gK0FwcGxpY2F0aW9uIGNvbmZpZ3Vy
YXRpb24KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiAgIFRoZSBtZW51IHN5c3Rl
bSBpcyBmYWlybHkgc2VsZi1leHBsYW5hdG9yeSBhbmQgd2lsbCBiZSBmYW1pbGlhciB0bwo+ICAg
YW55b25lIHdobyBoYXMgY29uZmlndXJlZCBhIExpbnV4IGtlcm5lbCBiZWZvcmUuIFNlbGVjdCB0
aGUgb3B0aW9ucwo+ICAgeW91IHdhbnQsIHRoZSBsaWJyYXJpZXMgeW91J2xsIGxpa2UgdG8gaW5j
bHVkZSBhbmQgZG9uJ3QgZm9yZ2V0IHRvCj4gLXNlbGVjdCBhdCBsZWFzdCBvbmUgcGxhdGZvcm0g
KGUuZy4sIEtWTSwgWGVuIG9yIExpbnV4IHVzZXItc3BhY2UgLS0KPiAtdGhlIGxhdHRlciBpcyBx
dWl0ZSB1c2VmdWwgZm9yIHF1aWNrIHRlc3RpbmcgYW5kIGRlYnVnZ2luZykuCj4gK3NlbGVjdCBh
dCBsZWFzdCBvbmUgcGxhdGZvcm0gKGUuZy4sIGFuIGV4dGVybmFsIG9uZSwgS1ZNLCBYZW4sIG9y
Cj4gK0xpbnV4IHVzZXItc3BhY2UgLS0gdGhlIGxhdHRlciBpcyBxdWl0ZSB1c2VmdWwgZm9yIHF1
aWNrIHRlc3RpbmcgYW5kCj4gK2RlYnVnZ2luZykuICBVbmRlciBgYFBsYXRmb3JtIENvbmZpZ3Vy
YXRpb25gYCBvcHRpb24sIHlvdSBjYW4gbWFrZSB0aGUKPiArZm9sbG93aW5nIGNoYW5nZXM6Cj4g
Kwo+ICsqIHNlbGVjdCBgYFhlbiBndWVzdCBpbWFnZWBgCj4gKyogc2VsZWN0IGBgS1ZNIGd1ZXN0
YGAKPiArKiBzZWxlY3QgYGBMaW51eCB1c2VyIHNwYWNlYGAKPiArCj4gK1VuZGVyIGBgTGlicmFy
eSBjb25maWd1cmF0aW9uYGAgd2UgYWxzbyBuZWVkIHRvIGNob29zZSBhIHNjaGVkdWxlcjoKPiAr
c2VsZWN0IGBgdWtzY2hlZGNvb3BgYC4KPiAgIAo+ICAgRmluYWxseSwgcXVpdCB0aGUgbWVudSB3
aGlsZSBzYXZpbmcgdGhlIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyB5b3UndmUKPiAgIG1hZGUgYW5k
IGJ1aWxkIHlvdXIgYXBwbGljYXRpb24gYnkganVzdCB0eXBpbmcgYGBtYWtlYGAuIFVuaWtyYWZ0
IHdpbGwKPiBAQCAtOTIsMTEgKzE0MiwyMTkgQEAgdGhlbiBidWlsZCBlYWNoIGxpYnJhcnkgaW4g
dHVybiBhcyB3ZWxsIGFzIHRoZSBzb3VyY2UgZmlsZXMgZm9yIHlvdXIKPiAgIGFwcGxpY2F0aW9u
LCBwcm9kdWNpbmcgb25lIGltYWdlIGluIHRoZSBgYC4vYnVpbGRgYCBkaXJlY3RvcnkgZm9yIGVh
Y2gKPiAgIHBsYXRmb3JtIHR5cGUgeW91IHNlbGVjdGVkLgo+ICAgCj4gKy0tLS0tLS0tLS0tLS0t
LS0tLS0KPiArQnVpbGRpbmcKPiArLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICtTYXZlIHlvdXIgY29u
ZmlndXJhdGlvbiBhbmQgYnVpbGQgdGhlIGltYWdlIGJ5IHR5cGluZyBgYG1ha2VgYC4gVGhlCj4g
K2J1aWxkIHN5c3RlbSB3aWxsIGNyZWF0ZSB0aHJlZSBiaW5hcmllcywgb25lIGZvciBlYWNoIHBs
YXRmb3JtOiA6Ogo+ICsKPiArICAkIGxzIC1zaCBidWlsZC8KPiArICAgWy4uLl0KPiArICAgODhL
IGhlbGxvd29ybGRfa3ZtLXg4Nl82NAo+ICsgICA0MEsgaGVsbG93b3JsZF9saW51eHUteDg2XzY0
Cj4gKyAgIDcySyBoZWxsb3dvcmxkX3hlbi14ODZfNjQKPiArICAgWy4uLl0KPiArCj4gKy0tLS0t
LS0tLS0KPiArUnVubmluZwo+ICstLS0tLS0tLS0tCj4gKwo+ICAgUnVubmluZyB0aGUgaW1hZ2Ug
d2lsbCBkZXBlbmQgb24gd2hpY2ggcGxhdGZvcm0geW91IHRhcmdldGVkLiBGb3IKPiAgIExpbnV4
IHVzZXItc3BhY2UsIGZvciBpbnN0YW5jZSwgdGhlIGltYWdlIGlzIGp1c3QgYSBzdGFuZGFyZCBF
TEYsIHNvCj4gLXlvdSBjYW4gc2ltcGx5IHJ1biBpdCB3aXRoIDo6Cj4gK3lvdSBjYW4gc2ltcGx5
IGV4ZWN1dGUgb24gYW55IExpbnV4IGVudmlyb25tZW50OiA6Ogo+ICsKPiArICAkIC4vYnVpbGQv
aGVsbG93b3JsZF9saW51eHUteDg2XzY0Cj4gKyAgV2VsY29tZSB0byAgXyBfXyAgICAgICAgICAg
ICBfX19fXwo+ICsgIF9fIF9fX19fICAoXykgL19fIF9fX19fX18gXy8gXy8gL18KPiArICAvIC8v
IC8gXyBcLyAvICAnXy8vIF9fLyBfIGAvIF8vIF9fLwo+ICsgIFxfLF8vXy8vXy9fL18vXF9cL18v
ICBcXyxfL18vIFxfXy8KPiArICAgICAgICAgICAgICAgICAgICBUaXRhbiAwLjJ+MTBjZTNmMgo+
ICsgIEhlbGxvIHdvcmxkIQo+ICsKPiArWW91IGNhbiBleGVjdXRlIHRoZSBLVk0gaW1hZ2UgKGBg
aGVsbG93b3JsZF9rdm0teDg2XzY0YGApIG9uIHRoZSBLVk0gaG9zdDogOjoKPiArCj4gKyAgJCBx
ZW11LXN5c3RlbS14ODZfNjQgLW5vZ3JhcGhpYyAtdmdhIG5vbmUgLWRldmljZSBzZ2EgLW0gNCAt
a2VybmVsCj4gKyAgYnVpbGQvaGVsbG93b3JsZF9rdm0teDg2XzY0Cj4gKwo+ICtGb3IgWGVuIHlv
dSBmaXJzdCBuZWVkIHRvIGNyZWF0ZSBhIFZNIGNvbmZpZ3VyYXRpb24gKHNhdmUgaXQgdW5kZXIK
PiArYGBoZWxsb3dvcmxkLmNmZ2BgKTogOjoKPiArCj4gKyAgbmFtZSAgICAgICAgICA9ICdoZWxs
b3dvcmxkJwo+ICsgIHZjcHVzICAgICAgICAgPSAnMScKPiArICBtZW1vcnkgICAgICAgID0gJzQn
Cj4gKyAga2VybmVsICAgICAgICA9ICdidWlsZC9oZWxsb3dvcmxkX3hlbi14ODZfNjQnCj4gKwo+
ICtTdGFydCB0aGUgdmlydHVhbCBtYWNoaW5lIHdpdGg6IDo6Cj4gKwo+ICsgICQgeGwgY3JlYXRl
IC1jIGhlbGxvd29ybGQuY2ZnCj4gKwo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KPiArTW9kaWZ5aW5nIHRoZSBBcHBsaWNhdGlvbgo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KPiArCj4gK0FmdGVyIGBgSGVsbG8gd29ybGQhYGAgaXMgcHJpbnRlZCwgdGhl
IHVuaWtlcm5lbCBzaHV0cyBkb3duIHJpZ2h0Cj4gK2F3YXkuIFdlIGRvIG5vdCBoYXZlIGEgY2hh
bmNlIHRvIHNlZSB0aGF0IGEgVk0gd2FzIGFjdHVhbGx5IGNyZWF0ZWQsCj4gK3NvIGxldCdzIG1v
ZGlmeSB0aGUgc291cmNlIGNvZGUuIE9wZW4gYGBtYWluLmNgYCBpbiB5b3VyIGZhdm9yaXRlCj4g
K2VkaXRvciAoYGBuYW5vYGAsIGBgdmltYGAsIGBgZW1hY3NgYCkgYW5kIGFkZCB0aGUgZm9sbG93
aW5nIGJ1c3kgbG9vcAo+ICtpbnNpZGUgdGhlIGBgbWFpbmBgIGZ1bmN0aW9uOgo+ICsKPiArLi4g
Y29kZS1ibG9jazo6IGMKPiArCQkKPiArICAgZm9yICg7Oyk7Cj4gKwo+ICtSZWJ1aWxkIHRoZSBp
bWFnZXMgd2l0aCBgYG1ha2VgYCBhbmQgZXhlY3V0ZSB0aGVtLiBUaGUgc2hlbGwgcHJvbXB0Cj4g
K3Nob3VsZCBub3QgcmV0dXJuLiBXaXRoIGEgc2Vjb25kIHNoZWxsIHlvdSBjYW4gY2hlY2sgdGhh
dCB0aGUKPiArdW5pa2VybmVsIGlzIHN0aWxsIGV4ZWN1dGluZzoKPiArCj4gKyogVXNlIGBgdG9w
YGAgb3IgYGBodG9wYGAgZm9yIExpbnV4IGFuZCBLVk0uCj4gKyogVXNlIGBgeGwgdG9wYGAgaW4g
WGVuLgo+ICsKPiArKipOb3RlKio6IFlvdSBjYW4gdGVybWluYXRlIHRoZSBLVk0gYW5kIExpbnV4
IHVuaWtlcm5lbCB3aXRoCj4gKyBgYENUUkxgYCArIGBgQ2BgLCBhbmQgb24gWGVuIHdpdGggYGBD
VFJMYGAgKyBgYF1gYC4KPiArCj4gKwo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAr
RXh0ZXJuYWwgTGlicmFyaWVzCj4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ICsKPiAr
VGhlIGBgaGVsbG93b3JsZGBgIGFwcGxpY2F0aW9uIHVzZXMgYSB2ZXJ5IG1pbmltYWxpc3RpYyBg
YGxpYmNgYAo+ICtpbXBsZW1lbnRhdGlvbiBvZiBsaWJjIGZ1bmN0aW9uYWxpdHkgY2FsbGVkIGBg
bm9saWJjYGAgd2hpY2ggaXMgcGFydAo+ICtvZiB0aGUgVW5pa3JhZnQgYmFzZSwgYW5kIHNvIGl0
IGlzIGFuICJpbnRlcm5hbCIgbGlicmFyeS4gSW50ZXJuYWwKPiArbGlicmFyaWVzIGFyZSBsb2Nh
dGVkIHdpdGhpbiB0aGUgYGBsaWJgYCBkaXJlY3Rvcnkgb2YgVW5pa3JhZnQuCj4gKwo+ICtJbiBv
cmRlciB0byBlbmhhbmNlIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IFVuaWtyYWZ0LCAi
ZXh0ZXJuYWwiCj4gK2xpYnJhcmllcyBjYW4gYmUgYWRkZWQgdG8gdGhlIGJ1aWxkLiBJbiB0aGUg
Zm9sbG93aW5nIHdlIHdhbnQgdG8gc3dhcAo+ICtgYG5vbGliY2BgIHdpdGggYG5ld2xpYiA8aHR0
cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L2xpYi1uZXdsaWI+YF8sIGEKPiArc3RhbmRhcmQgbGli
YyBpbXBsZW1lbnRhdGlvbiB0aGF0IHlvdSBjYW4gZmluZCBpbiB2YXJpb3VzIExpbnV4Cj4gK2Rp
c3RyaWJ1dGlvbnMgYW5kIGVtYmVkZGVkIGVudmlyb25tZW50cy4KPiArCj4gK1dlIG5lZWQgdG8g
YWRkIG5ld2xpYiB0byB0aGUgbGlicmFyeSBpbmNsdWRlcy4gRWRpdCB0aGUgYGBNYWtlZmlsZWBg
Cj4gK29mIHRoZSBgYGhlbGxvd29ybGRgYCBhcHBsaWNhdGlvbiBhbmQgcHV0IHRoZSB0ZXh0IGJl
bG93IGluIGl0LiBQbGVhc2UKPiArdHlwZSBgYG1ha2UgcHJvcGVyY2xlYW5gYCBiZWZvcmU7IHRo
aXMgd2lsbCBkZWxldGUgdGhlIGJ1aWxkIGRpcmVjdG9yeQo+ICsoYnV0IG5vdCB5b3VyIGNvbmZp
Z3VyYXRpb24pIGFuZCB3aWxsIGZvcmNlIGEgZnVsbCByZWJ1aWxkIGxhdGVyLiA6Ogo+ICsKPiAr
ICBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQo+ICsgIC0tLSBhL01ha2VmaWxlCj4g
KyAgKysrIGIvTWFrZWZpbGUKPiArICBAQCAtMSw2ICsxLDYgQEAKPiArICAgVUtfUk9PVCA/PSAk
KFBXRCkvLi4vLi4vdW5pa3JhZnQKPiArICAgVUtfTElCUyA/PSAkKFBXRCkvLi4vLi4vbGlicwo+
ICsgIC1MSUJTIDo9Cj4gKyAgK0xJQlMgOj0gJChVS19MSUJTKS9uZXdsaWIKPiArCj4gKyAgIGFs
bDoKPiArICAgICAgICAgIEBtYWtlIC1DICQoVUtfUk9PVCkgQT0kKFBXRCkgTD0kKExJQlMpCj4g
Kwo+ICtSdW4gYGBtYWtlIG1lbnVjb25maWdgYDsgYGBuZXdsaWJgYCBzaG91bGQgbm93IGFwcGVh
ciBpbiB0aGUgYGBMaWJyYXJ5Cj4gK0NvbmZpZ3VyYXRpb25gYCBtZW51LiBTZWxlY3QgaXQsIHNh
dmUgYW5kIGV4aXQgdGhlIG1lbnUsIGFuZCB0eXBlCj4gK2BgbWFrZWBgLiBVbmlrcmFmdCdzIGJ1
aWxkIHN5c3RlbSB3aWxsIGRvd25sb2FkIG5ld2xpYidzIHNvdXJjZXMgYW5kCj4gK2J1aWxkIGl0
IHRvZ2V0aGVyIHdpdGggYWxsIHRoZSBvdGhlciBVbmlrcmFmdCBsaWJyYXJpZXMgYW5kCj4gK2Fw
cGxpY2F0aW9uLiBPdXIgYGBuZXdsaWJgYCByZXBvc2l0b3J5IGNvbnNpc3RzIG9ubHkgb2YgZ2x1
ZSBjb2RlIHRoYXQKPiAraXMgbmVlZGVkIHRvIHBvcnQgYGBuZXdsaWJgYCB0byBVbmlrcmFmdC4K
PiArCj4gK1lvdSB3aWxsIG5vdGljZSB0aGF0IHRoZSB1bmlrZXJuZWxzIGFyZSBub3cgYmlnZ2Vy
IHRoYW4gYmVmb3JlLiBUcnkgdG8KPiArcnVuIHRoZW0gYWdhaW4uCj4gKwo+ICsKPiArPT09PT09
PT09PT09PT09PT09PT09PT09PQo+ICtDb2RlIFlvdXIgT3duIExpYnJhcnkKPiArPT09PT09PT09
PT09PT09PT09PT09PT09PQo+ICtMZXQncyBhZGQgc29tZSBmdW5jdGlvbmFsaXR5IHRvIG91ciB1
bmlrZXJuZWwuIENyZWF0ZSBhIGRpcmVjdG9yeQo+ICtgYGxpYnMvbXlsaWJgYCwgdGhpcyB3aWxs
IGJlIHRoZSByb290IGZvbGRlciBvZiB5b3VyIGxpYnJhcnkuCj4gKwo+ICtBcyBtZW50aW9uZWQg
ZWFybGllciwgVW5pa3JhZnQgdXNlcyBMaW51eCdzIGtjb25maWcgc3lzdGVtLiBJbiBvcmRlcgo+
ICt0byBtYWtlIHlvdXIgbGlicmFyeSBzZWxlY3RhYmxlIGluIHRoZSAibWVudWNvbmZpZyIsIGNy
ZWF0ZSB0aGUgZmlsZQo+ICtgYENvbmZpZy51a2BgIHdpdGggdGhlIGZvbGxvd2luZyBjb250ZW50
OiA6Ogo+ICsKPiArICBjb25maWcgTElCTVlMSUIKPiArICAgICAgICAgICAgIGJvb2wgIm15bGli
OiBNeSBhd2Vzb21lIGxpYiIKPiArICAgICAgICAgICAgIGRlZmF1bHQgbgo+ICsKPiArVG8gdGVz
dCBpZiBpdCB3b3JrZWQsIHdlIG5lZWQgdG8gdGVsbCBVbmlrcmFmdCdzIGJ1aWxkIHN5c3RlbSB0
byBwaWNrCj4gK3RoaXMgbGlicmFyeS4gR28gYmFjayB0byB5b3VyIGBgaGVsbG93b3JsZGBgIGFw
cGxpY2F0aW9uIGFuZCBlZGl0IGl0Cj4gK2l0cyBgYE1ha2VmaWxlYGAuIEVhcmxpZXIgd2UgYWRk
ZWQgbmV3bGliIHRvIHRoZSBgYExJQlNgYCB2YXJpYWJsZSwKPiArbGV0J3Mgbm93IGFkZCB0aGUg
bmV3IGxpYnJhcnk6IDo6Cj4gKwo+ICsgIExJQlMgOj0gJChVS19MSUJTKS9uZXdsaWI6JChVS19M
SUJTKS9teWxpYgo+ICsKPiArTm93IGlmIHlvdSBydW4gYGBtYWtlIG1lbnVjb25maWdgYCB5b3Ug
c2hvdWxkIHNlZSB5b3VyIGxpYnJhcnkgdW5kZXIKPiArdGhlICJMaWJyYXJ5IENvbmZpZ3VyYXRp
b24iIHN1Yi1tZW51OiA6Ogo+ICsKPiArICBbIF0gbXlsaWI6IE15IGF3ZXNvbWUgbGliCj4gKwo+
ICtTZWxlY3QgaXQsIGV4aXQgdGhlIGNvbmZpZ3VyYXRpb24gbWVudSwgYW5kIHNhdmUgdGhlIGNo
YW5nZXMuIElmIHlvdQo+ICtydW4gYGBtYWtlYGAgcmlnaHQgbm93LCB0aGUgYnVpbGQgd2lsbCBw
cm9kdWNlIGFuIGVycm9yIGFib3V0IGEKPiArbWlzc2luZyBgYE1ha2VmaWxlLnVrYGA6IDo6Cj4g
Kwo+ICsgIG1ha2VbMV06ICoqKiBObyBydWxlIHRvIG1ha2UgdGFyZ2V0ICcvcm9vdC9kZW1vL2xp
YnMvbXlsaWIvTWFrZWZpbGUudWsnLiAgU3RvcC4KPiArCj4gK0dvIGJhY2sgdG8geW91ciBsaWJy
YXJ5IGRpcmVjdG9yeSBhbmQgY3JlYXRlIG9uZSB3aXRoIHRoZSBmb2xsb3dpbmcKPiArY29udGVu
dDogOjoKPiArCj4gKyAgIyBSZWdpc3RlciB5b3VyIGxpYiB0byBVbmlrcmFmdCdzIGJ1aWxkIHN5
c3RlbQo+ICsgICQoZXZhbCAkKGNhbGwgYWRkbGliX3MsbGlibXlsaWIsJChDT05GSUdfTElCTVlM
SUIpKSkKPiArCj4gKyAgIyBBZGQgbGlicmFyeSBzb3VyY2UgY29kZSB0byBjb21waWxhdGlvbgo+
ICsgIExJQk1ZTElCX1NSQ1MteSArPSAkKExJQk1ZTElCX0JBU0UpL215bGliLmMKPiArCj4gKyAg
IyBFeHRlbmQgdGhlIGdsb2JhbCBpbmNsdWRlIHBhdGhzIHdpdGggbGlicmFyeSdzIGZvbGRlcgo+
ICsgIENJTkNMVURFUy0kKENPTkZJR19MSUJNWUxJQikgKz0gLUkkKExJQk1ZTElCX0JBU0UpL2lu
Y2x1ZGUKPiArCj4gK0FuZCBmaW5hbGx5IHRoZSBsaWJyYXJ5IGNvZGUgYGBteWxpYi5jYGA6Cj4g
Kwo+ICsuLiBjb2RlLWJsb2NrOjogYwo+ICsJCQo+ICsgICNpbmNsdWRlIDxzdGRpby5oPgo+ICsK
PiArICB2b2lkIGxpYm15bGliX2FwaV9mdW5jKHZvaWQpCj4gKyAgewo+ICsgICAgICAgICAgcHJp
bnRmKCJIZWxsbyBmcm9tIG15IGF3ZXNvbWUgbGliIVxuIik7Cj4gKyAgfQo+ICsKPiArTm93IGlu
IHlvdXIgaGVsbG93b3JsZCdzIGBgbWFpbi5jYGAgYWRkIGEgY2FsbCB0bwo+ICtgYGxpYm15bGli
X2FwaV9mdW5jKClgYC4KPiArCj4gKwo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09Cj4gK1Nv
Y2tldCBFeGFtcGxlCj4gKz09PT09PT09PT09PT09PT09PT09PT09PT0KPiArQXMgYSBsYXN0IHRh
c2ssIHdlIGFyZSBnb2luZyB0byBidWlsZCBhIHNtYWxsIHdlYnNlcnZlciB0aGF0IHJlcGxpZXMK
PiArd2l0aCBhIHNpbmdsZSBwYWdlLiBUaGUgc2VydmVyIHVzZXMgYGBsd2lwYGAgZm9yIGNyZWF0
aW5nIGEgc29ja2V0IGFuZAo+ICt0byBhY2NlcHQgaW5jb21pbmcgY29ubmVjdGlvbnMuIEdvIHRv
IHRoZSBgYGh0dHByZXBseWBgIGFwcGxpY2F0aW9uCj4gK2RpcmVjdG9yeS4gSGF2ZSBhIGxvb2sg
YXQgYGBtYWluLmNgYDogaXQgaXMgYSByZWFsbHkgc2hvcnQgcHJvZ3JhbSBhbmQKPiArbG9va3Mg
c2ltaWxhciB0byB3aGF0IHlvdSB3b3VsZCB3cml0ZSBhcyBhIHVzZXItc3BhY2UgTGludXgKPiAr
cHJvZ3JhbS4gSXRzIGRlcGVuZGVuY2llcyBhcmUgZGVmaW5lZCB3aXRoaW4gYGBDb25maWcudWtg
YC4gSGF2aW5nCj4gK3RoaXMsIHRoZXJlIGlzIGFjdHVhbGx5IG5vdCBtdWNoIGxlZnQgdG8gY29u
ZmlndXJlLiBBbnkgbWFuZGF0b3J5Cj4gK29wdGlvbnMgYXJlIGxvY2tlZCBpbiBgYG1ha2UgbWVu
dWNvbmZpZ2BgLiBBbGwgd2UgbmVlZCB0byBkbyBpcyBzZWxlY3QKPiArb3VyIHRhcmdldCBwbGF0
Zm9ybXMsIHNlbGVjdCBuZXR3b3JrIGRyaXZlcnMsIHNhdmUgdGhlIGNvbmZpZywgYW5kCj4gK3R5
cGUgYGBtYWtlYGAuCj4gKwo+ICtGb3Igbm93LCB3ZSBzdXBwb3J0IHZpcnRpbyBmb3IgbmV0d29y
a2luZyBvbmx5IChidXQgbW9yZSBmdW5jdGlvbmFsaXR5Cj4gK2lzIGNvbWluZykuIFlvdSBjYW4g
ZW5hYmxlIHRoZSBkcml2ZXIgYnkgZ29pbmcgdG8gdGhlIEtWTSBwbGF0Zm9ybQo+ICtjb25maWd1
cmF0aW9uIGFuZCBzZWxlY3RpbmcgYGBWaXJ0aW8gUENJIGRldmljZSBzdXBwb3J0YGAgYW5kIGBg
VmlydGlvCj4gK05ldCBkZXZpY2VgYC4KPiArCj4gK1RoZSBpbWFnZSBjYW4gYmUgc3RhcnRlZCBv
biB0aGUgS1ZNIGhvc3QuIFJlcGxhY2UgYGBicjBgYCB3aXRoIHRoZQo+ICtuYW1lIG9mIHlvdXIg
bG9jYWwgYnJpZGdlIG9uIHlvdXIgc3lzdGVtIGFuZCBtYWtlIHN1cmUgeW91IGhhdmUgYSBESENQ
Cj4gK3NlcnZlciBsaXN0ZW5pbmcgdGhlcmUgKGUuZy4sIGBgZG5zbWFzcWBgKTogOjoKPiArCj4g
KyAgJCBxZW11LXN5c3RlbS14ODZfNjQgLW5vZ3JhcGhpYyAtdmdhIG5vbmUgLWRldmljZSBzZ2Eg
LW0gOCAtbmV0ZGV2IGJyaWRnZSxpZD1lbjAsYnI9YnIwIC1kZXZpY2UgdmlydGlvLW5ldC1wY2ks
bmV0ZGV2PWVuMCAta2VybmVsIGJ1aWxkL2h0dHByZXBseV9rdm0teDg2XzY0Cj4gKwo+ICtQbGVh
c2UgYWxzbyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBidWlsdCB5b3VyIGltYWdlIHdpdGggdGhlIGx3
aXAgbWVudQo+ICtvcHRpb24gIkRIQ1AgY2xpZW50IiBlbmFibGVkLiBUaGlzIHVuaWtlcm5lbCBp
cyByZXF1ZXN0aW5nIGFuIElQdjQKPiArYWRkcmVzcyB2aWEgREhDUC4gSW4gY2FzZSB5b3UgZW5h
YmxlZCBgYElDTVBgYCBpbiB0aGUgYGBsd2lwYGAKPiArY29uZmlndXJhdGlvbiwgeW91IHNob3Vs
ZCBhbHNvIGJlIGFibGUgdG8gcGluZyB0aGUgaG9zdCBmcm9tIGEgc2Vjb25kCj4gK3Rlcm1pbmFs
IChyZXBsYWNlIHRoZSBJUCB3aXRoIHlvdXJzKTogOjoKPiArCj4gKyAgJCBwaW5nIDE5Mi4xNjgu
MS4xMDAKPiArCj4gK0ZvciBkZWJ1Z2dpbmcsIHlvdSBjYW4gYWxzbyB0cnkgdG8gZW5hYmxlIGBg
RGVidWcgbWVzc2FnZXNgYCBpbgo+ICtgYGx3aXBgYC4gV2l0aCB0aGlzIHlvdSBjYW4gbm93IGhh
dmUgYSBkZWVwZXIgbG9vayBpbiB0aGUgbmV0d29yawo+ICtzdGFjay4KPiArCj4gK0lmIG5ldHdv
cmtpbmcgaXMgd29ya2luZyB3ZWxsLCB5b3UgY2FuIHVzZSB0aGUgdGV4dC1iYXNlZCBicm93c2Vy
Cj4gK2BgbHlueGBgIChvciBhbnkgb3RoZXIgdGhhdCB5b3UgbGlrZSkgdG8gc2VlIHRoZSB3ZWIg
cGFnZSBzZXJ2ZWQgb24gYQo+ICtzZWNvbmQgdGVybWluYWwgKHJlcGxhY2UgdGhlIElQIHdpdGgg
eW91cnMpOiA6Ogo+ICAgCj4gLSAgLi9idWlsZC9oZWxsb3dvcmxkX2xpbnV4dS14ODZfNjQKPiAr
ICAkIGx5bnggMTkyLjE2OC4xLjEwMDo4MTIzCj4gICAKPiAtRm9yIG1vcmUgaW5mb3JtYXRpb24g
cmVnYXJkaW5nIHBvcnRpbmcgYW5kIGRldmVsb3BpbmcgYXBwcyAoYW5kCj4gLWxpYnJhcmllcykg
aW4gVW5pa3JhZnQgcGxlYXNlIHJlYWQgdGhlIGRldmVsb3BlcidzIGd1aWRlLgo+IGRpZmYgLS1n
aXQgYS9kb2MvZ3VpZGVzL3VzZXJzLWdldHRpbmdzdGFydGVkLnJzdCBiL2RvYy9ndWlkZXMvdXNl
cnMtZ2V0dGluZ3N0YXJ0ZWQucnN0Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg
NDRlMThjNS4uMDAwMDAwMAo+IC0tLSBhL2RvYy9ndWlkZXMvdXNlcnMtZ2V0dGluZ3N0YXJ0ZWQu
cnN0Cj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDEzNSArMCwwIEBACj4gLS4uIF9yc3RfdXNlcnNf
Z2V0dGluZ19zdGFydGVkOgo+IC0KPiAtKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCj4gLUdldHRpbmcgU3RhcnRlZAo+IC0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKPiAtCj4gLVRvIGJlZ2luIHVzaW5nIFVuaWtyYWZ0IHlvdSdsbCBuZWVkIGEgZmV3IHBh
Y2thZ2VzLiBPbiBVYnVudHUvRGViaWFuCj4gLWRpc3RyaWJ1dGlvbnMgcnVuIHRoZSBjb21tYW5k
IDo6Cj4gLQo+IC0gIGFwdC1nZXQgaW5zdGFsbCBiaXNvbiBmbGV4IGJ1aWxkLWVzc2VudGlhbCBw
eXRob24zIGxpYm5jdXJzZXM1LWRldiBsaWJuY3Vyc2VzdzUKPiAtCj4gLU9wdGlvbmFsbHksIGlm
IHlvdSB3YW50IHRvIHVzZSB0aGUgUHl0aG9uIGZyb250LWVuZCB0byBVbmlrcmFmdCdzCj4gLW1l
bnUsIHBsZWFzZSBhbHNvIHJ1biA6Ogo+IC0KPiAtICBhcHQtZ2V0IGluc3RhbGwgZ3RrKy0yLjAg
Z21vZHVsZS0yLjAgbGliZ2xhZGUtMi4wCj4gLQo+IC1XaXRoIHRoaXMgaW4gcGxhY2UsIHdlIGFy
ZSByZWFkeSB0byBiZWdpbiBjbG9uaW5nIFVuaWtyYWZ0Cj4gLXJlcG9zLiBGaXJzdCwgc3RhcnQg
YnkgY2xvbmluZyB0aGUgbWFpbiBVbmlrcmFmdCByZXBvOiA6Ogo+IC0KPiAtICBnaXQgY2xvbmUg
aHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L3VuaWtyYWZ0LmdpdAo+IC0KPiAtSWYgeW91IGFy
ZSB0aGlua2luZyBvZiB1c2luZyBVbmlrcmFmdCBleHRlcm5hbCBsaWJyYXJpZXMsIHRoaXMgd291
bGQKPiAtYmUgdGhlIHRpbWUgdG8gY2xvbmUgdGhvc2UgdG9vLiBZb3UgY2FuIHNlZSBhIGxpc3Qg
b2YgYXZhaWxhYmxlCj4gLWxpYnJhcmllcyBhdCAoYW55IHJlcG8gd2hvc2UgbmFtZSBoYXMgYSBg
YGxpYi1gYCBwcmVmaXgpOiA6Ogo+IC0KPiAtICBodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQK
PiAtCj4gLUFzIHlvdSBjYW4gc2VlLCBFYWNoIGV4dGVybmFsIGxpYnJhcnkgaGFzIGl0cyBvd24g
c2VwYXJhdGUgcmVwbywgc28KPiAteW91J2xsIG5lZWQgdG8gY2xvbmUgZWFjaCBvbmUgc2VwYXJh
dGVseS4gTGlrZXdpc2UsIGlmIHlvdSBhcmUKPiAtcGxhbm5pbmcgb24gdXNpbmcgYW55IGV4dGVy
bmFsIHBsYXRmb3JtcywgcGxlYXNlIGNsb25lIHRob3NlIHRvby4gWW91Cj4gLWNhbiBzZWUgYSBs
aXN0IG9mIGF2YWlsYWJsZSBleHRlcm5hbCBwbGF0Zm9ybXMgYXQgdGhlIHNhbWUgbGluayBhcyBm
b3IKPiAtdGhlIGxpYnJhcmllczsgdGhlIHBsYXRmb3JtIHJlcG9zIGhhdmUgYSBgYHBsYXQtYGAg
cHJlZml4Lgo+IC0KPiAtRmluYWxseSwgeW91J2xsIG5lZWQgdG8gY3JlYXRlIGEgVW5pa3JhZnQg
YXBwbGljYXRpb24uIFRvIHF1aWNrbHkgZ2V0Cj4gLXN0YXJ0ZWQsIHRoZSBlYXNpZXN0IGlzIHRv
IGNsb25lIHRoZSBoZWxsbyB3b3JsZCBhcHAgKG9uY2UgYWdhaW4sIGVhY2gKPiAtVW5pa3JhZnQg
YXBwIGhhcyBpdHMgb3duIHJlcG8sIHRoaXMgdGltZSB3aXRoIGEgYGBhcHAtYGAgcHJlZml4KTog
OjoKPiAtCj4gLSAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC9hcHAtaGVs
bG93b3JsZC5naXQKPiAtCj4gLU5vdyBlZGl0IHRoZSBNYWtlZmlsZSBpbiB0aGUgYXBwIGRpcmVj
dG9yeS4gSW4gcGFydGljdWxhciwgc2V0IHRoZQo+IC1gYFVLX1JPT1RgYCwgYGBVS19MSUJTYGAs
IGFuZCBgYFVLX1BMQVRTYGAgdmFyaWFibGVzIHRvIHBvaW50IHRvIHRoZQo+IC1kaXJlY3Rvcmll
cyB3aGVyZSB5b3UgY2xvbmVkIHRoZSByZXBvcyBhYm92ZS4gRm9yIGluc3RhbmNlLCBhc3N1bWlu
Zwo+IC10aGUgZm9sbG93aW5nIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgOjoKPiAtCj4gLSAg4pSc4pSA
4pSAIHVuaWtyYWZ0Cj4gLSAg4pSc4pSA4pSAIGFwcHMKPiAtICDilIIgIOKUnOKUgOKUgCBoZWxs
b3dvcmxkCj4gLSAg4pSCICDilJzilIDilIAgYXBwMQo+IC0gIOKUgiAg4pSc4pSA4pSAIGFwcDIK
PiAtICDilIIgIC4uLgo+IC0gIOKUgiAg4pSc4pSA4pSAIGFwcE4KPiAtICDilJzilIDilIAgbGli
cwo+IC0gIOKUgiAg4pSc4pSA4pSAIGxpYjEKPiAtICDilIIgIOKUnOKUgOKUgCBsaWIyCj4gLSAg
4pSCICAuLi4KPiAtICDilIIgIOKUlOKUgOKUgCBsaWJOCj4gLSAg4pSU4pSA4pSAIHBsYXRzCj4g
LSAgICAg4pSc4pSA4pSAIHBsYXQxCj4gLSAgICAg4pSc4pSA4pSAIHBsYXQyCj4gLSAgICAgLi4u
Cj4gLSAgICAg4pSU4pSA4pSAIHBsYXROCj4gLQo+IC13aGVyZSB5b3VyIGFwcCBpcyBsb2NhdGVk
IGF0IGBgYXBwcy9oZWxsb3dvcmxkYGAsIHlvdSB3b3VsZCBzZXQKPiAtdGhlIHZhcmlhYmxlcyBh
cyBmb2xsb3dzOiA6Ogo+IC0KPiAtICBVS19ST09UICA/PSAkKFBXRCkvLi4vLi4vdW5pa3JhZnQK
PiAtICBVS19MSUJTICA/PSAkKFBXRCkvLi4vLi4vbGlicwo+IC0gIFVLX1BMQVRTID89ICQoUFdE
KS8uLi8uLi9wbGF0cwo+IC0KPiAtSWYgeW91ciBhcHAgdXNlcyBleHRlcm5hbCBsaWJyYXJpZXMs
IHNldCB0aGUgYGBMSUJTYGAgdmFyaWFibGUgdG8KPiAtcmVmbGVjdCB0aGlzLiBGb3IgaW5zdGFu
Y2UgOiA6Ogo+IC0KPiAtICBMSUJTIDo9ICQoVUtfTElCUykvbGliMTokKFVLX0xJQlMpL2xpYjI6
JChVS19MSUJTKS9saWJOCj4gLQo+IC1Ob3RlIHRoYXQgdGhlIGxpc3QgaGFzIHRvIGJlIGNvbG9u
LXNlcGFyYXRlZC4KPiAtCj4gLUZpbmFsbHksIGlmIHlvdXIgYXBwIHVzZXMgZXh0ZXJuYWwgcGxh
dGZvcm1zLCBzZXQgdGhlIGBgUExBVFNgYAo+IC12YXJpYWJsZTogOjoKPiAtCj4gLSAgUExBVFMg
Pz0gJChVS19QTEFUUykvcGxhdDE6JChVS19QTEFUUykvcGxhdDI6JChVS19QTEFUUykvcGxhdE4K
PiAtCj4gLUFsc28gbWFrZSBzdXJlIHRoYXQgeW91IGhhbmQtb3ZlciB0aGVzZSBwbGF0Zm9ybXMg
d2l0aCB0aGUKPiAtYGBQPWBgIHBhcmFtZXRlciB0byB0aGUgc3ViIG1ha2UgY2FsbCBpbiB5b3Vy
IG1haW4gYGBNYWtlZmlsZWBgOiA6Ogo+IC0KPiAtICBAbWFrZSAtQyAkKFVLX1JPT1QpIEE9JChQ
V0QpIEw9JChMSUJTKSBQPSQoUExBVFMpIGZldGNoCj4gLSAgQG1ha2UgLUMgJChVS19ST09UKSBB
PSQoUFdEKSBMPSQoTElCUykgUD0kKFBMQVRTKSBwcmVwYXJlCj4gLSAgQG1ha2UgLUMgJChVS19S
T09UKSBBPSQoUFdEKSBMPSQoTElCUykgUD0kKFBMQVRTKQo+IC0KPiAtV2l0aCBhbGwgb2YgdGhp
cyBpbiBwbGFjZSwgd2UncmUgbm93IHJlYWR5IHRvIHN0YXJ0IGNvbmZpZ3VyaW5nIHRoZQo+IC1h
cHBsaWNhdGlvbiBpbWFnZSB2aWEgVW5pa3JhZnQncyBtZW51LiBUbyBhY2Nlc3MgaXQsIGZyb20g
d2l0aGluIHRoZQo+IC1hcHAncyBkaXJlY3Rvcnkgc2ltcGx5IHR5cGUgOjoKPiAtCj4gLSAgbWFr
ZSBtZW51Y29uZmlnCj4gLQo+IC1UaGUgbWVudSBzeXN0ZW0gaXMgZmFpcmx5IHNlbGYtZXhwbGFu
YXRvcnkgYW5kIHdpbGwgYmUgZmFtaWxpYXIgdG8KPiAtYW55b25lIHdobyBoYXMgY29uZmlndXJl
ZCBhIExpbnV4IGtlcm5lbCBiZWZvcmUuIFNlbGVjdCB0aGUgb3B0aW9ucwo+IC15b3Ugd2FudCwg
dGhlIGxpYnJhcmllcyB5b3UnbGwgbGlrZSB0byBpbmNsdWRlIGFuZCBkb24ndCBmb3JnZXQgdG8K
PiAtc2VsZWN0IGF0IGxlYXN0IG9uZSBwbGF0Zm9ybSAoZS5nLiwgYW4gZXh0ZXJuYWwgb25lLCBL
Vk0sIFhlbiwgb3IKPiAtTGludXggdXNlci1zcGFjZSAtLSB0aGUgbGF0dGVyIGlzIHF1aXRlIHVz
ZWZ1bCBmb3IgcXVpY2sgdGVzdGluZyBhbmQKPiAtZGVidWdnaW5nKS4KPiAtCj4gLUZpbmFsbHks
IHF1aXQgdGhlIG1lbnUgd2hpbGUgc2F2aW5nIHRoZSBjb25maWd1cmF0aW9uIGNoYW5nZXMgeW91
J3ZlCj4gLW1hZGUgYW5kIGJ1aWxkIHlvdXIgYXBwbGljYXRpb24gYnkganVzdCB0eXBpbmcgYGBt
YWtlYGAuIFVuaWtyYWZ0IHdpbGwKPiAtdGhlbiBidWlsZCBlYWNoIGxpYnJhcnkgaW4gdHVybiBh
cyB3ZWxsIGFzIHRoZSBzb3VyY2UgZmlsZXMgZm9yIHlvdXIKPiAtYXBwbGljYXRpb24sIHByb2R1
Y2luZyBvbmUgaW1hZ2UgaW4gdGhlIGBgLi9idWlsZGBgIGRpcmVjdG9yeSBmb3IgZWFjaAo+IC1w
bGF0Zm9ybSB0eXBlIHlvdSBzZWxlY3RlZC4KPiAtCj4gLVJ1bm5pbmcgdGhlIGltYWdlIHdpbGwg
ZGVwZW5kIG9uIHdoaWNoIHBsYXRmb3JtIHlvdSB0YXJnZXRlZC4gRm9yCj4gLUxpbnV4IHVzZXIt
c3BhY2UsIGZvciBpbnN0YW5jZSwgdGhlIGltYWdlIGlzIGp1c3QgYSBzdGFuZGFyZCBFTEYsIHNv
Cj4gLXlvdSBjYW4gc2ltcGx5IHJ1biBpdCB3aXRoIDo6Cj4gLQo+IC0gIC4vYnVpbGQvaGVsbG93
b3JsZF9saW51eHUteDg2XzY0Cj4gLQo+IC1Gb3IgS1ZNLCB0aGUgZm9sbG93aW5nIFFFTVUgbGlu
ZSBzaG91bGQgZG8gdGhlIHRyaWNrOiA6Ogo+IC0KPiAtICBxZW11LXN5c3RlbS14ODZfNjQgLWNw
dSBob3N0IC1lbmFibGUta3ZtIC1tIDEyOCAtbm9kZWZhdWx0cyAtbm8tYWNwaSAtZGlzcGxheSBu
b25lIC1zZXJpYWwgc3RkaW8gLWRldmljZSBpc2EtZGVidWctZXhpdCAta2VybmVsIGJ1aWxkL2hl
bGxvd29ybGRfa3ZtLXg4Nl82NAo+IC0KPiAtRm9yIFhlbiwgY3JlYXRlIGEgYGBoZWxsb3dvcmxk
LnhlbmBgIGZpbGUgYXMgZm9sbG93czo6Cj4gLQo+IC0gIGtlcm5lbCA9ICJwYXRoX3RvX2J1aWxk
X2Rpci9idWlsZC9oZWxsb3dvcmxkX3hlbi14ODZfNjQiCj4gLSAgbWVtb3J5ID0gIjgiCj4gLSAg
dmNwdXMgPSAiMSIKPiAtICBuYW1lID0gImhlbGxvd29ybGQiCj4gLQo+IC0gIG9uX3Bvd2Vyb2Zm
ID0gInByZXNlcnZlIgo+IC0gIG9uX2NyYXNoID0gInByZXNlcnZlIgo+IC0gIG9uX3JlYm9vdCA9
ICJwcmVzZXJ2ZSIKPiAtCj4gLWFuZCBpbnN0YW50aWF0ZSB0aGUgWGVuIHZpcnR1YWwgbWFjaGlu
ZSB3aXRoOiA6Ogo+IC0KPiAtICB4bCBjcmVhdGUgLWMgaGVsbG93b3JsZC54ZW4KPiAtCj4gLVRo
YXQncyBpdCEgRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHBvcnRpbmcgYW5kIGRldmVs
b3BpbmcKPiAtYXBwcyAoYW5kIGxpYnJhcmllcyBhbmQgcGxhdGZvcm1zKSBpbiBVbmlrcmFmdCBw
bGVhc2UgcmVhZCB0aGUKPiAtZGV2ZWxvcGVyJ3MgZ3VpZGUuCj4gZGlmZiAtLWdpdCBhL2RvYy9n
dWlkZXMvdXNlcnMtdHV0b3JpYWwucnN0IGIvZG9jL2d1aWRlcy91c2Vycy10dXRvcmlhbC5yc3QK
PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwYTdjNjE1Li4wMDAwMDAwCj4gLS0t
IGEvZG9jL2d1aWRlcy91c2Vycy10dXRvcmlhbC5yc3QKPiArKysgL2Rldi9udWxsCj4gQEAgLTEs
Mjg2ICswLDAgQEAKPiAtKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gLVR1
dG9yaWFsCj4gLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+IC0KPiAtRm9y
IHRoaXMgdHV0b3JpYWwgeW91IHdpbGwgbmVlZCBhIExpbnV4IGhvc3QgcnVubmluZyBYZW4gYW5k
L29yIEtWTSBpbgo+IC1vcmRlciB0byBydW4gVW5pa3JhZnQgaW1hZ2VzLiBQbGVhc2UgY2hlY2sg
dGhlIG1hbnVhbCBvZiB5b3VyIExpbnV4Cj4gLWRpc3RyaWJ1dGlvbiByZWdhcmRpbmcgaG93IHRv
IGluc3RhbGwgdGhlc2UgZW52aXJvbm1lbnRzLiBUaGlzCj4gLXR1dG9yaWFsIGV4cGVjdHMgdGhh
dCB5b3UgaGF2ZSB0aGUgZXNzZW50aWFsIGJ1aWxkIGFuZCBkZWJ1Z2dpbmcgdG9vbHMKPiAtaW5z
dGFsbGVkIChzZWUgOnJlZjpgcnN0X3VzZXJzX2dldHRpbmdfc3RhcnRlZGApLiBJbiBhZGRpdGlv
biwgZm9yCj4gLVhlbiB5b3Ugd2lsbCBuZWVkIHRvIGhhdmUgdGhlIGBgeGxgYCB0b29sc3RhY2sg
aW5zdGFsbGVkIGFuZCBydW5uaW5nLAo+IC1hbmQgZm9yIEtWTSBgYHFlbXVgYAo+IC0KPiAtPT09
PT09PT09PT09PT09PT09PT09PT09PT09Cj4gLUNsb25pbmcgUmVwb3NpdG9yaWVzCj4gLT09PT09
PT09PT09PT09PT09PT09PT09PT09PQo+IC1Zb3UgY2FuIGVhc2lseSBidWlsZCBVbmlrcmFmdCBV
bmlrZXJuZWxzIG9uIHlvdXIgTGludXggaG9zdC4gSWYgeW91Cj4gLWhhdmUgYWxsIHRvb2xzIGFu
ZCBsaWJyYXJpZXMgaW5zdGFsbGVkIHRvIGNvbXBpbGUgYSBMaW51eCBrZXJuZWwgeW91Cj4gLWFy
ZSByZWFkeSB0byBkbyB0aGlzIHdpdGggVW5pa3JhZnQgdG9vLgo+IC0KPiAtQSBVbmlrcmFmdCBi
dWlsZCBjb25zaXN0cyBtb3N0bHkgb2YgYSBjb21iaW5hdGlvbiBvZiBtdWx0aXBsZQo+IC1yZXBv
c2l0b3JpZXMuIFdlIGRpZmZlcmVudGlhdGUgdGhlbSBpbnRvOiAoMSkgVW5pa3JhZnQsICgyKSBl
eHRlcm5hbAo+IC1saWJyYXJpZXMsICgzKSBhcHBsaWNhdGlvbi4gIFRoZSBidWlsZCBzeXN0ZW0g
YXNzdW1lcyB0aGVzZSB0byBiZQo+IC1zdHJ1Y3R1cmVkIGFzIGZvbGxvd3M6IDo6Cj4gLQo+IC0g
IG15LXdvcmtzcGFjZS8KPiAtICDilJzilIDilIAgYXBwcy8KPiAtICDilIIgICDilJTilIDilIAg
aGVsbG93b3JsZC8KPiAtICDilIIgICDilJTilIDilIAgaHR0cHJlcGx5Lwo+IC0gIOKUnOKUgOKU
gCBsaWJzLwo+IC0gIOKUgiAgIOKUnOKUgOKUgCBsd2lwLwo+IC0gIOKUgiAgIOKUlOKUgOKUgCBu
ZXdsaWIvCj4gLSAg4pSU4pSA4pSAIHVuaWtyYWZ0Lwo+IC0KPiAtQ2xvbmUgdGhlIGZvbGxvd2lu
ZyByZXBvc2l0b3JpZXMgd2l0aCBnaXQgOjoKPiAtCj4gLSAgZ2l0IGNsb25lIFtVUkxdIFtERVNU
SU5BVElPTiBQQVRIXQo+IC0KPiAtKiBVbmlrcmFmdCBiYXNlIHJlcG9zaXRvcnkgZGlyZWN0bHkg
dW5kZXIgeW91ciB3b3Jrc3BhY2Ugcm9vdAo+IC0gICAqIGBVbmlrcmFmdCByZXBvIDxodHRwczov
L2dpdGh1Yi5jb20vdW5pa3JhZnQvdW5pa3JhZnQuZ2l0PmBfCj4gLSogRXh0ZXJuYWwgbGlicmFy
aWVzIGludG8gYSBgbGlic2Agc3ViZGlyZWN0b3J5Ogo+IC0JKiBgbmV3bGliIHJlcG8gPGh0dHBz
Oi8vZ2l0aHViLmNvbS91bmlrcmFmdC9saWItbmV3bGliLmdpdD5gXwo+IC0JKiBgbHdpcCByZXBv
IDxodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQvbGliLWx3aXAuZ2l0PmBfCj4gLSogQXBwbGlj
YXRpb25zIGludG8gYW4gYGFwcHNgIHN1YmRpcmVjdG9yeToKPiAtCSogYGhlbGxvd29ybGQgcmVw
byA8aHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L2FwcC1oZWxsb3dvcmxkLmdpdD5gXwo+IC0J
KiBgaHR0cHJlcGx5IHJlcG8gPGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC9hcHAtaHR0cHJl
cGx5LmdpdD5gXwo+IC0KPiAtTWFrZSBzdXJlIHRoYXQgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUg
dW5kZXIgeW91ciB3b3Jrc3BhY2UgaXMgZXhhY3RseQo+IC10aGUgc2FtZSBhcyBzaG93biBpbiB0
aGUgb3ZlcnZpZXcgYWhlYWQuCj4gLQo+IC09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAt
WW91ciBGaXJzdCBVbmlrZXJuZWwKPiAtPT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gLQo+
IC0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLUNvbmZpZ3VyaW5nCj4gLS0tLS0tLS0tLS0tLS0tLS0t
LS0KPiAtQWZ0ZXIgeW91IGNsb25lZCB0aGUgcmVwb3MsIGdvIHRvIHRoZSBgYGhlbGxvd29ybGRg
YCBhcHBsaWNhdGlvbiBhbmQKPiAtcnVuIGBgbWFrZSBtZW51Y29uZmlnYGAgdG8gY29uZmlndXJl
IHRoZSBidWlsZC4gVW5pa3JhZnQgdXNlcyB0aGUgc2FtZQo+IC1jb25maWd1cmF0aW9uIHN5c3Rl
bSBhcyB0aGUgTGludXgga2VybmVsIChLY29uZmlnKS4gV2Ugd2lsbCBidWlsZAo+IC1VbmlrcmFm
dCBpbWFnZXMgZm9yIFhlbiwgS1ZNLCBhbmQgTGludXgsIHNvIHRoZSBmaXJzdCBzdGVwIGlzIHRv
IGdvIHRvCj4gLXRoZSBgYFBsYXRmb3JtIENvbmZpZ3VyYXRpb25gYCBvcHRpb24gYW5kIG1ha2Ug
dGhlIGZvbGxvd2luZyBjaGFuZ2VzOgo+IC0KPiAtKiBzZWxlY3QgYGBYZW4gZ3Vlc3QgaW1hZ2Vg
YAo+IC0qIHNlbGVjdCBgYEtWTSBndWVzdGBgCj4gLSogc2VsZWN0IGBgTGludXggdXNlciBzcGFj
ZWBgCj4gLQo+IC1VbmRlciBgYExpYnJhcnkgY29uZmlndXJhdGlvbmBgIHdlIGFsc28gbmVlZCB0
byBjaG9vc2UgYSBzY2hlZHVsZXI6Cj4gLXNlbGVjdCBgYHVrc2NoZWRjb29wYGAuCj4gLQo+IC0t
LS0tLS0tLS0tLS0tLS0tLS0tCj4gLUJ1aWxkaW5nCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAt
U2F2ZSB5b3VyIGNvbmZpZ3VyYXRpb24gYW5kIGJ1aWxkIHRoZSBpbWFnZSBieSB0eXBpbmcgYGBt
YWtlYGAuIFRoZQo+IC1idWlsZCBzeXN0ZW0gd2lsbCBjcmVhdGUgdGhyZWUgYmluYXJpZXMsIG9u
ZSBmb3IgZWFjaCBwbGF0Zm9ybTogOjoKPiAtCj4gLSAgJCBscyAtc2ggYnVpbGQvCj4gLSAgIFsu
Li5dCj4gLSAgIDg4SyBoZWxsb3dvcmxkX2t2bS14ODZfNjQKPiAtICAgNDBLIGhlbGxvd29ybGRf
bGludXh1LXg4Nl82NAo+IC0gICA3MksgaGVsbG93b3JsZF94ZW4teDg2XzY0Cj4gLSAgIFsuLi5d
Cj4gLQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLVJ1bm5pbmcKPiAtLS0tLS0tLS0tLS0tLS0t
LS0tLQo+IC0KPiAtTGV0J3MgZXhlY3V0ZSB0aGUgdW5pa2VybmVsLgo+IC0KPiAtKiBUaGUgZWFz
aWVzdCBpcyB0byBydW4gdGhlIG9uZSBidWlsdCBhcyBhIExpbnV4IHVzZXIgc3BhY2UKPiAtICBh
cHBsaWNhdGlvbi4gSXQgc2hvdWxkIGV4ZWN1dGUgb24gYW55IExpbnV4IGVudmlyb25tZW50OiA6
Ogo+IC0KPiAtICAgJCAuL2J1aWxkL2hlbGxvd29ybGRfbGludXh1LXg4Nl82NAo+IC0gICBXZWxj
b21lIHRvICBfIF9fICAgICAgICAgICAgIF9fX19fCj4gLSAgICBfXyBfX19fXyAgKF8pIC9fXyBf
X19fX19fIF8vIF8vIC9fCj4gLSAgIC8gLy8gLyBfIFwvIC8gICdfLy8gX18vIF8gYC8gXy8gX18v
Cj4gLSAgIFxfLF8vXy8vXy9fL18vXF9cL18vICBcXyxfL18vIFxfXy8KPiAtICAgICAgICAgICAg
ICAgICAgICAgVGl0YW4gMC4yfjEwY2UzZjIKPiAtICAgSGVsbG8gd29ybGQhCj4gLQo+IC0qIFlv
dSBjYW4gZXhlY3V0ZSB0aGUgS1ZNIGltYWdlIChgYGhlbGxvd29ybGRfa3ZtLXg4Nl82NGBgKSBv
biB0aGUgS1ZNCj4gLSAgaG9zdDogOjoKPiAtCj4gLSAgICQgcWVtdS1zeXN0ZW0teDg2XzY0IC1u
b2dyYXBoaWMgLXZnYSBub25lIC1kZXZpY2Ugc2dhIC1tIDQgLWtlcm5lbAo+IC0gICBidWlsZC9o
ZWxsb3dvcmxkX2t2bS14ODZfNjQKPiAtCj4gLSogRm9yIFhlbiB5b3UgZmlyc3QgbmVlZCB0byBj
cmVhdGUgYSBWTSBjb25maWd1cmF0aW9uIChzYXZlIGl0IHVuZGVyCj4gLSAgYGBoZWxsb3dvcmxk
LmNmZ2BgKTogOjoKPiAtCj4gLSAgIG5hbWUgICAgICAgICAgPSAnaGVsbG93b3JsZCcKPiAtICAg
dmNwdXMgICAgICAgICA9ICcxJwo+IC0gICBtZW1vcnkgICAgICAgID0gJzQnCj4gLSAgIGtlcm5l
bCAgICAgICAgPSAnYnVpbGQvaGVsbG93b3JsZF94ZW4teDg2XzY0Jwo+IC0KPiAtU3RhcnQgdGhl
IHZpcnR1YWwgbWFjaGluZSB3aXRoOiA6Ogo+IC0KPiAtICAkIHhsIGNyZWF0ZSAtYyBoZWxsb3dv
cmxkLmNmZwo+IC0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLU1vZGlm
eWluZyB0aGUgQXBwbGljYXRpb24KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Cj4gLUFmdGVyIGBgSGVsbG8gd29ybGQhYGAgaXMgcHJpbnRlZCwgdGhlIHVuaWtlcm5lbCBzaHV0
cyBkb3duIHJpZ2h0Cj4gLWF3YXkuIFdlIGRvIG5vdCBoYXZlIGEgY2hhbmNlIHRvIHNlZSB0aGF0
IGEgVk0gd2FzIGFjdHVhbGx5IGNyZWF0ZWQsCj4gLXNvIGxldCdzIG1vZGlmeSB0aGUgc291cmNl
IGNvZGUuIE9wZW4gYGBtYWluLmNgYCBpbiB5b3VyIGZhdm9yaXRlCj4gLWVkaXRvciAoYGBuYW5v
YGAsIGBgdmltYGAsIGBgZW1hY3NgYCkgYW5kIGFkZCB0aGUgZm9sbG93aW5nIGJ1c3kgbG9vcAo+
IC1pbnNpZGUgdGhlIGBgbWFpbmBgIGZ1bmN0aW9uOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6IGMK
PiAtCQkKPiAtICAgZm9yICg7Oyk7Cj4gLQo+IC1SZWJ1aWxkIHRoZSBpbWFnZXMgd2l0aCBgYG1h
a2VgYCBhbmQgZXhlY3V0ZSB0aGVtLiBUaGUgc2hlbGwgcHJvbXB0Cj4gLXNob3VsZCBub3QgcmV0
dXJuLiBXaXRoIGEgc2Vjb25kIHNoZWxsIHlvdSBjYW4gY2hlY2sgdGhhdCB0aGUKPiAtdW5pa2Vy
bmVsIGlzIHN0aWxsIGV4ZWN1dGluZzoKPiAtCj4gLSogVXNlIGBgdG9wYGAgb3IgYGBodG9wYGAg
Zm9yIExpbnV4IGFuZCBLVk0uCj4gLSogVXNlIGBgeGwgdG9wYGAgaW4gWGVuLgo+IC0KPiAtKipO
b3RlKio6IFlvdSBjYW4gdGVybWluYXRlIHRoZSBLVk0gYW5kIExpbnV4IHVuaWtlcm5lbCB3aXRo
Cj4gLSBgYENUUkxgYCArIGBgQ2BgLCBhbmQgb24gWGVuIHdpdGggYGBDVFJMYGAgKyBgYF1gYC4K
PiAtCj4gLQo+IC09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAtRXh0ZXJuYWwgTGlicmFy
aWVzCj4gLT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+IC0KPiAtVGhlIGBgaGVsbG93b3Js
ZGBgIGFwcGxpY2F0aW9uIHVzZXMgYSB2ZXJ5IG1pbmltYWxpc3RpYyBgYGxpYmNgYAo+IC1pbXBs
ZW1lbnRhdGlvbiBvZiBsaWJjIGZ1bmN0aW9uYWxpdHkgY2FsbGVkIGBgbm9saWJjYGAgd2hpY2gg
aXMgcGFydAo+IC1vZiB0aGUgVW5pa3JhZnQgYmFzZSwgYW5kIHNvIGl0IGlzIGFuICJpbnRlcm5h
bCIgbGlicmFyeS4gSW50ZXJuYWwKPiAtbGlicmFyaWVzIGFyZSBsb2NhdGVkIHdpdGhpbiB0aGUg
YGBsaWJgYCBkaXJlY3Rvcnkgb2YgVW5pa3JhZnQuCj4gLQo+IC1JbiBvcmRlciB0byBlbmhhbmNl
IHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IFVuaWtyYWZ0LCAiZXh0ZXJuYWwiCj4gLWxp
YnJhcmllcyBjYW4gYmUgYWRkZWQgdG8gdGhlIGJ1aWxkLiBJbiB0aGUgZm9sbG93aW5nIHdlIHdh
bnQgdG8gc3dhcAo+IC1gYG5vbGliY2BgIHdpdGggYG5ld2xpYiA8aHR0cHM6Ly9naXRodWIuY29t
L3VuaWtyYWZ0L2xpYi1uZXdsaWI+YF8sIGEKPiAtc3RhbmRhcmQgbGliYyBpbXBsZW1lbnRhdGlv
biB0aGF0IHlvdSBjYW4gZmluZCBpbiB2YXJpb3VzIExpbnV4Cj4gLWRpc3RyaWJ1dGlvbnMgYW5k
IGVtYmVkZGVkIGVudmlyb25tZW50cy4KPiAtCj4gLVdlIG5lZWQgdG8gYWRkIG5ld2xpYiB0byB0
aGUgbGlicmFyeSBpbmNsdWRlcy4gRWRpdCB0aGUgYGBNYWtlZmlsZWBgCj4gLW9mIHRoZSBgYGhl
bGxvd29ybGRgYCBhcHBsaWNhdGlvbiBhbmQgcHV0IHRoZSB0ZXh0IGJlbG93IGluIGl0LiBQbGVh
c2UKPiAtdHlwZSBgYG1ha2UgcHJvcGVyY2xlYW5gYCBiZWZvcmU7IHRoaXMgd2lsbCBkZWxldGUg
dGhlIGJ1aWxkIGRpcmVjdG9yeQo+IC0oYnV0IG5vdCB5b3VyIGNvbmZpZ3VyYXRpb24pIGFuZCB3
aWxsIGZvcmNlIGEgZnVsbCByZWJ1aWxkIGxhdGVyLiA6Ogo+IC0KPiAtICBkaWZmIC0tZ2l0IGEv
TWFrZWZpbGUgYi9NYWtlZmlsZQo+IC0gIC0tLSBhL01ha2VmaWxlCj4gLSAgKysrIGIvTWFrZWZp
bGUKPiAtICBAQCAtMSw2ICsxLDYgQEAKPiAtICAgVUtfUk9PVCA/PSAkKFBXRCkvLi4vLi4vdW5p
a3JhZnQKPiAtICAgVUtfTElCUyA/PSAkKFBXRCkvLi4vLi4vbGlicwo+IC0gIC1MSUJTIDo9Cj4g
LSAgK0xJQlMgOj0gJChVS19MSUJTKS9uZXdsaWIKPiAtCj4gLSAgIGFsbDoKPiAtICAgICAgICAg
IEBtYWtlIC1DICQoVUtfUk9PVCkgQT0kKFBXRCkgTD0kKExJQlMpCj4gLQo+IC1SdW4gYGBtYWtl
IG1lbnVjb25maWdgYDsgYGBuZXdsaWJgYCBzaG91bGQgbm93IGFwcGVhciBpbiB0aGUgYGBMaWJy
YXJ5Cj4gLUNvbmZpZ3VyYXRpb25gYCBtZW51LiBTZWxlY3QgaXQsIHNhdmUgYW5kIGV4aXQgdGhl
IG1lbnUsIGFuZCB0eXBlCj4gLWBgbWFrZWBgLiBVbmlrcmFmdCdzIGJ1aWxkIHN5c3RlbSB3aWxs
IGRvd25sb2FkIG5ld2xpYidzIHNvdXJjZXMgYW5kCj4gLWJ1aWxkIGl0IHRvZ2V0aGVyIHdpdGgg
YWxsIHRoZSBvdGhlciBVbmlrcmFmdCBsaWJyYXJpZXMgYW5kCj4gLWFwcGxpY2F0aW9uLiBPdXIg
YGBuZXdsaWJgYCByZXBvc2l0b3J5IGNvbnNpc3RzIG9ubHkgb2YgZ2x1ZSBjb2RlIHRoYXQKPiAt
aXMgbmVlZGVkIHRvIHBvcnQgYGBuZXdsaWJgYCB0byBVbmlrcmFmdC4KPiAtCj4gLVlvdSB3aWxs
IG5vdGljZSB0aGF0IHRoZSB1bmlrZXJuZWxzIGFyZSBub3cgYmlnZ2VyIHRoYW4gYmVmb3JlLiBU
cnkgdG8KPiAtcnVuIHRoZW0gYWdhaW4uCj4gLQo+IC0KPiAtPT09PT09PT09PT09PT09PT09PT09
PT09PQo+IC1Db2RlIFlvdXIgT3duIExpYnJhcnkKPiAtPT09PT09PT09PT09PT09PT09PT09PT09
PQo+IC1MZXQncyBhZGQgc29tZSBmdW5jdGlvbmFsaXR5IHRvIG91ciB1bmlrZXJuZWwuIENyZWF0
ZSBhIGRpcmVjdG9yeQo+IC1gYGxpYnMvbXlsaWJgYCwgdGhpcyB3aWxsIGJlIHRoZSByb290IGZv
bGRlciBvZiB5b3VyIGxpYnJhcnkuCj4gLQo+IC1BcyBtZW50aW9uZWQgZWFybGllciwgVW5pa3Jh
ZnQgdXNlcyBMaW51eCdzIGtjb25maWcgc3lzdGVtLiBJbiBvcmRlcgo+IC10byBtYWtlIHlvdXIg
bGlicmFyeSBzZWxlY3RhYmxlIGluIHRoZSAibWVudWNvbmZpZyIsIGNyZWF0ZSB0aGUgZmlsZQo+
IC1gYENvbmZpZy51a2BgIHdpdGggdGhlIGZvbGxvd2luZyBjb250ZW50OiA6Ogo+IC0KPiAtICBj
b25maWcgTElCTVlMSUIKPiAtICAgICAgICAgICAgIGJvb2wgIm15bGliOiBNeSBhd2Vzb21lIGxp
YiIKPiAtICAgICAgICAgICAgIGRlZmF1bHQgbgo+IC0KPiAtVG8gdGVzdCBpZiBpdCB3b3JrZWQs
IHdlIG5lZWQgdG8gdGVsbCBVbmlrcmFmdCdzIGJ1aWxkIHN5c3RlbSB0byBwaWNrCj4gLXRoaXMg
bGlicmFyeS4gR28gYmFjayB0byB5b3VyIGBgaGVsbG93b3JsZGBgIGFwcGxpY2F0aW9uIGFuZCBl
ZGl0IGl0Cj4gLWl0cyBgYE1ha2VmaWxlYGAuIEVhcmxpZXIgd2UgYWRkZWQgbmV3bGliIHRvIHRo
ZSBgYExJQlNgYCB2YXJpYWJsZSwKPiAtbGV0J3Mgbm93IGFkZCB0aGUgbmV3IGxpYnJhcnk6IDo6
Cj4gLQo+IC0gIExJQlMgOj0gJChVS19MSUJTKS9uZXdsaWI6JChVS19MSUJTKS9teWxpYgo+IC0K
PiAtTm93IGlmIHlvdSBydW4gYGBtYWtlIG1lbnVjb25maWdgYCB5b3Ugc2hvdWxkIHNlZSB5b3Vy
IGxpYnJhcnkgdW5kZXIKPiAtdGhlICJMaWJyYXJ5IENvbmZpZ3VyYXRpb24iIHN1Yi1tZW51OiA6
Ogo+IC0KPiAtICBbIF0gbXlsaWI6IE15IGF3ZXNvbWUgbGliCj4gLQo+IC1TZWxlY3QgaXQsIGV4
aXQgdGhlIGNvbmZpZ3VyYXRpb24gbWVudSwgYW5kIHNhdmUgdGhlIGNoYW5nZXMuIElmIHlvdQo+
IC1ydW4gYGBtYWtlYGAgcmlnaHQgbm93LCB0aGUgYnVpbGQgd2lsbCBwcm9kdWNlIGFuIGVycm9y
IGFib3V0IGEKPiAtbWlzc2luZyBgYE1ha2VmaWxlLnVrYGA6IDo6Cj4gLQo+IC0gIG1ha2VbMV06
ICoqKiBObyBydWxlIHRvIG1ha2UgdGFyZ2V0ICcvcm9vdC9kZW1vL2xpYnMvbXlsaWIvTWFrZWZp
bGUudWsnLiAgU3RvcC4KPiAtCj4gLUdvIGJhY2sgdG8geW91ciBsaWJyYXJ5IGRpcmVjdG9yeSBh
bmQgY3JlYXRlIG9uZSB3aXRoIHRoZSBmb2xsb3dpbmcKPiAtY29udGVudDogOjoKPiAtCj4gLSAg
IyBSZWdpc3RlciB5b3VyIGxpYiB0byBVbmlrcmFmdCdzIGJ1aWxkIHN5c3RlbQo+IC0gICQoZXZh
bCAkKGNhbGwgYWRkbGliX3MsbGlibXlsaWIsJChDT05GSUdfTElCTVlMSUIpKSkKPiAtCj4gLSAg
IyBBZGQgbGlicmFyeSBzb3VyY2UgY29kZSB0byBjb21waWxhdGlvbgo+IC0gIExJQk1ZTElCX1NS
Q1MteSArPSAkKExJQk1ZTElCX0JBU0UpL215bGliLmMKPiAtCj4gLSAgIyBFeHRlbmQgdGhlIGds
b2JhbCBpbmNsdWRlIHBhdGhzIHdpdGggbGlicmFyeSdzIGZvbGRlcgo+IC0gIENJTkNMVURFUy0k
KENPTkZJR19MSUJNWUxJQikgKz0gLUkkKExJQk1ZTElCX0JBU0UpL2luY2x1ZGUKPiAtCj4gLUFu
ZCBmaW5hbGx5IHRoZSBsaWJyYXJ5IGNvZGUgYGBteWxpYi5jYGA6Cj4gLQo+IC0uLiBjb2RlLWJs
b2NrOjogYwo+IC0JCQo+IC0gICNpbmNsdWRlIDxzdGRpby5oPgo+IC0KPiAtICB2b2lkIGxpYm15
bGliX2FwaV9mdW5jKHZvaWQpCj4gLSAgewo+IC0gICAgICAgICAgcHJpbnRmKCJIZWxsbyBmcm9t
IG15IGF3ZXNvbWUgbGliIVxuIik7Cj4gLSAgfQo+IC0KPiAtTm93IGluIHlvdXIgaGVsbG93b3Js
ZCdzIGBgbWFpbi5jYGAgYWRkIGEgY2FsbCB0bwo+IC1gYGxpYm15bGliX2FwaV9mdW5jKClgYC4K
PiAtCj4gLQo+IC09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gLVNvY2tldCBFeGFtcGxlCj4g
LT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAtQXMgYSBsYXN0IHRhc2ssIHdlIGFyZSBnb2lu
ZyB0byBidWlsZCBhIHNtYWxsIHdlYnNlcnZlciB0aGF0IHJlcGxpZXMKPiAtd2l0aCBhIHNpbmds
ZSBwYWdlLiBUaGUgc2VydmVyIHVzZXMgYGBsd2lwYGAgZm9yIGNyZWF0aW5nIGEgc29ja2V0IGFu
ZAo+IC10byBhY2NlcHQgaW5jb21pbmcgY29ubmVjdGlvbnMuIEdvIHRvIHRoZSBgYGh0dHByZXBs
eWBgIGFwcGxpY2F0aW9uCj4gLWRpcmVjdG9yeS4gSGF2ZSBhIGxvb2sgYXQgYGBtYWluLmNgYDog
aXQgaXMgYSByZWFsbHkgc2hvcnQgcHJvZ3JhbSBhbmQKPiAtbG9va3Mgc2ltaWxhciB0byB3aGF0
IHlvdSB3b3VsZCB3cml0ZSBhcyBhIHVzZXItc3BhY2UgTGludXgKPiAtcHJvZ3JhbS4gSXRzIGRl
cGVuZGVuY2llcyBhcmUgZGVmaW5lZCB3aXRoaW4gYGBDb25maWcudWtgYC4gSGF2aW5nCj4gLXRo
aXMsIHRoZXJlIGlzIGFjdHVhbGx5IG5vdCBtdWNoIGxlZnQgdG8gY29uZmlndXJlLiBBbnkgbWFu
ZGF0b3J5Cj4gLW9wdGlvbnMgYXJlIGxvY2tlZCBpbiBgYG1ha2UgbWVudWNvbmZpZ2BgLiBBbGwg
d2UgbmVlZCB0byBkbyBpcyBzZWxlY3QKPiAtb3VyIHRhcmdldCBwbGF0Zm9ybXMsIHNlbGVjdCBu
ZXR3b3JrIGRyaXZlcnMsIHNhdmUgdGhlIGNvbmZpZywgYW5kCj4gLXR5cGUgYGBtYWtlYGAuCj4g
LQo+IC1Gb3Igbm93LCB3ZSBzdXBwb3J0IHZpcnRpbyBmb3IgbmV0d29ya2luZyBvbmx5IChidXQg
bW9yZSBmdW5jdGlvbmFsaXR5Cj4gLWlzIGNvbWluZykuIFlvdSBjYW4gZW5hYmxlIHRoZSBkcml2
ZXIgYnkgZ29pbmcgdG8gdGhlIEtWTSBwbGF0Zm9ybQo+IC1jb25maWd1cmF0aW9uIGFuZCBzZWxl
Y3RpbmcgYGBWaXJ0aW8gUENJIGRldmljZSBzdXBwb3J0YGAgYW5kIGBgVmlydGlvCj4gLU5ldCBk
ZXZpY2VgYC4KPiAtCj4gLVRoZSBpbWFnZSBjYW4gYmUgc3RhcnRlZCBvbiB0aGUgS1ZNIGhvc3Qu
IFJlcGxhY2UgYGBicjBgYCB3aXRoIHRoZQo+IC1uYW1lIG9mIHlvdXIgbG9jYWwgYnJpZGdlIG9u
IHlvdXIgc3lzdGVtIGFuZCBtYWtlIHN1cmUgeW91IGhhdmUgYSBESENQCj4gLXNlcnZlciBsaXN0
ZW5pbmcgdGhlcmUgKGUuZy4sIGBgZG5zbWFzcWBgKTogOjoKPiAtCj4gLSAgJCBxZW11LXN5c3Rl
bS14ODZfNjQgLW5vZ3JhcGhpYyAtdmdhIG5vbmUgLWRldmljZSBzZ2EgLW0gOCAtbmV0ZGV2IGJy
aWRnZSxpZD1lbjAsYnI9YnIwIC1kZXZpY2UgdmlydGlvLW5ldC1wY2ksbmV0ZGV2PWVuMCAta2Vy
bmVsIGJ1aWxkL2h0dHByZXBseV9rdm0teDg2XzY0Cj4gLQo+IC1QbGVhc2UgYWxzbyBlbnN1cmUg
dGhhdCB5b3UgaGF2ZSBidWlsdCB5b3VyIGltYWdlIHdpdGggdGhlIGx3aXAgbWVudQo+IC1vcHRp
b24gIkRIQ1AgY2xpZW50IiBlbmFibGVkLiBUaGlzIHVuaWtlcm5lbCBpcyByZXF1ZXN0aW5nIGFu
IElQdjQKPiAtYWRkcmVzcyB2aWEgREhDUC4gSW4gY2FzZSB5b3UgZW5hYmxlZCBgYElDTVBgYCBp
biB0aGUgYGBsd2lwYGAKPiAtY29uZmlndXJhdGlvbiwgeW91IHNob3VsZCBhbHNvIGJlIGFibGUg
dG8gcGluZyB0aGUgaG9zdCBmcm9tIGEgc2Vjb25kCj4gLXRlcm1pbmFsIChyZXBsYWNlIHRoZSBJ
UCB3aXRoIHlvdXJzKTogOjoKPiAtCj4gLSAgJCBwaW5nIDE5Mi4xNjguMS4xMDAKPiAtCj4gLUZv
ciBkZWJ1Z2dpbmcsIHlvdSBjYW4gYWxzbyB0cnkgdG8gZW5hYmxlIGBgRGVidWcgbWVzc2FnZXNg
YCBpbgo+IC1gYGx3aXBgYC4gV2l0aCB0aGlzIHlvdSBjYW4gbm93IGhhdmUgYSBkZWVwZXIgbG9v
ayBpbiB0aGUgbmV0d29yawo+IC1zdGFjay4KPiAtCj4gLUlmIG5ldHdvcmtpbmcgaXMgd29ya2lu
ZyB3ZWxsLCB5b3UgY2FuIHVzZSB0aGUgdGV4dC1iYXNlZCBicm93c2VyCj4gLWBgbHlueGBgIChv
ciBhbnkgb3RoZXIgdGhhdCB5b3UgbGlrZSkgdG8gc2VlIHRoZSB3ZWIgcGFnZSBzZXJ2ZWQgb24g
YQo+IC1zZWNvbmQgdGVybWluYWwgKHJlcGxhY2UgdGhlIElQIHdpdGggeW91cnMpOiA6Ogo+IC0K
PiAtICAkIGx5bnggMTkyLjE2OC4xLjEwMDo4MTIzCj4gLQo+IGRpZmYgLS1naXQgYS9kb2MvZ3Vp
ZGVzL3VzZXJzLnJzdCBiL2RvYy9ndWlkZXMvdXNlcnMucnN0Cj4gaW5kZXggZjk1YWQ3Mi4uMWU0
ZTU3NCAxMDA2NDQKPiAtLS0gYS9kb2MvZ3VpZGVzL3VzZXJzLnJzdAo+ICsrKyBiL2RvYy9ndWlk
ZXMvdXNlcnMucnN0Cj4gQEAgLTEsMjAgKzEsNSBAQAo+ICAgPT09PT09PT09PT09Cj4gICBVc2Vy
J3MgR3VpZGUKPiAtPDw8PDw8PCBVcGRhdGVkIHVwc3RyZWFtCj4gLSMjIyMjIyMjIyMjIyMjIyMj
IyMjCj4gLVRoaXMgc2VjdGlvbiBvZiB0aGUgZ3VpZGUgcHJvdmlkZXMgYWxsIHRoZSBpbmZvcm1h
dGlvbiB5b3Ugc2hvdWxkIG5lZWQKPiAtdG8gIGdldCBzdGFydGVkICB3aXRoIGFuZCAgdG8gIHVz
ZSBVbmlrcmFmdC4gIElmIHlvdSAgaGF2ZSBuZXZlciAgdXNlZAo+IC1VbmlrcmFmdCAgYmVmb3Jl
LCByZWFkICB0aGUgZ2V0dGluZyAgc3RhcnRlZCBwYWdlICBhbmQgb3B0aW9uYWxseSAgcnVuCj4g
LXRocm91Z2ggdGhlIHR1dG9yaWFscy4KPiAtCj4gLS4uIHRvY3RyZWU6Ogo+IC0gICA6bWF4ZGVw
dGg6IDIKPiAtCj4gLSAgIHVzZXJzLWdldHRpbmdzdGFydGVkCj4gLSAgIHVzZXJzLXR1dG9yaWFs
Cj4gLSAgIHVzZXJzLWRvd25sb2Fkcwo+IC0gICB1c2Vycy1yZXNvdXJjZXMKPiAtPT09PT09PQo+
ICAgPT09PT09PT09PT09Cj4gICAKPiAgIFVuaWtyYWZ0IGlzIGFuIGV4dGVuc2l2ZSBidWlsZCBz
eXN0ZW0gaW4gYWRkaXRpb24gdG8gdGhlIGNvcmUgYW5kIGV4dGVybmFsCj4gQEAgLTI5LDQgKzE0
LDQgQEAgaG93IHRvIHVzZSB0aGVzZSBsZXZlcmFnZSB0aGlzIGZ1bmN0aW9uYWxpdHkgZm9yIGFk
dmFuY2VkIHVzYWdlLgo+ICAgCj4gICAgICBrcmFmdAo+ICAgICAgdXNlcnMtYWR2YW5jZWQKPiAt
Pj4+Pj4+PiBTdGFzaGVkIGNoYW5nZXMKPiArICAgdXNlcnMtcmVzb3VyY2VzCj4gCgpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFp
bGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Tue Feb 04 13:35:43 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 04 Feb 2020 13:35:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyyMe-0006h2-0E; Tue, 04 Feb 2020 13:35:40 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <SRS0=fS9R=3Y=suse.com=jbeulich@srs-us1.protection.inumbo.net>)
 id 1iyyMd-0006gx-1D
 for minios-devel@lists.xenproject.org; Tue, 04 Feb 2020 13:35:39 +0000
X-Inumbo-ID: 3579a37c-4753-11ea-8f44-12813bfff9fa
Received: from mx2.suse.de (unknown [195.135.220.15])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 3579a37c-4753-11ea-8f44-12813bfff9fa;
 Tue, 04 Feb 2020 13:35:30 +0000 (UTC)
X-Virus-Scanned: by amavisd-new at test-mx.suse.de
Received: from relay2.suse.de (unknown [195.135.220.254])
 by mx2.suse.de (Postfix) with ESMTP id CD5E9AC53;
 Tue,  4 Feb 2020 13:35:28 +0000 (UTC)
To: Ian Jackson <ian.jackson@eu.citrix.com>,
 George Dunlap <George.Dunlap@eu.citrix.com>
References: <63005C11-CF8C-4794-B9E4-C3856CCF41C1@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Message-ID: <9f2c8dae-532d-5ddf-de2d-244e3c6a8531@suse.com>
Date: Tue, 4 Feb 2020 14:35:34 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101
 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <63005C11-CF8C-4794-B9E4-C3856CCF41C1@citrix.com>
Content-Language: en-US
Subject: Re: [Minios-devel] [Vote] For Xen Project Code of Conduct (deadline
 March 31st)
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "xen-api@lists.xenproject.org" <xen-api@lists.xenproject.org>,
 "minios-devel@lists.xenproject.org" <minios-devel@lists.xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>,
 "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>,
 xen-devel <xen-devel@lists.xenproject.org>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

T24gMTcuMDEuMjAyMCAyMDoxMiwgTGFycyBLdXJ0aCB3cm90ZToKPiBQZW9wbGUgYWxsb3dlZCB0
byB2b3RlIG9uIGJlaGFsZiBvZiB0aGUgSHlwZXJ2aXNvciBwcm9qZWN0IGFyZToKPiBKdWxpZW4g
R3JhbGwsIEFuZHkgQ29vcGVyLCBHZW9yZ2UgRHVubGFwLCBJYW4gSmFja3NvbiwgSmFuIEJldWxp
Y2gsIEtvbnJhZCBSCj4gV2lsaywgU3RlZmFubyBTdGFiZWxsaW5pLCBXZWkgTGl1IGFuZCBQYXVs
IER1cnJhbnQgKGFzIFJlbGVhc2UgTWFuYWdlcikuCgpJIGhhdmUgdG8gYWRtaXQgdGhhdCB3aXRo
IGNlcnRhaW4gcGFydHMgb2YgdGhpcywgYXMgcGVyIGVhcmxpZXIgZGlzY3Vzc2lvbiwKSSdtIG9u
IHRoZSBlZGdlLCBhbmQgaGVuY2UgSSdkIGxpa2UgdG8gZ2l2ZSBhICswLjUgdm90ZSBoZXJlLiBX
aGF0ZXZlciB5b3UKY2FuIHRoZW4gbWFrZSBvZiB0aGlzIC4uLgoKSmFuCgpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBs
aXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Tue Feb 04 14:10:05 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 04 Feb 2020 14:10:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyytw-0001ex-Ms; Tue, 04 Feb 2020 14:10:04 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=svWn=3Y=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1iyytu-0001Rd-Qh
 for minios-devel@lists.xen.org; Tue, 04 Feb 2020 14:10:02 +0000
X-Inumbo-ID: 0740d3d6-4758-11ea-ad98-bc764e2007e4
Received: from EUR03-AM5-obe.outbound.protection.outlook.com (unknown
 [40.107.3.66]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 0740d3d6-4758-11ea-ad98-bc764e2007e4;
 Tue, 04 Feb 2020 14:10:00 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=ZERu5HlojxJFBEbF4KEio+A3AWuVp3EQhH7BOgHKg8pwOxL6AN3ZkAINjhgzhMjJPmV0NrNslqZFJLH1pvLLK6ZFULBcDnIJAlAeMzj2Eqi/tk9yUfuyeiK2b1PBvphdANs4GofAsJsxd3jBWA2vsFL8lVznZz5IBnjPIrOfIR7g1Z02RfSqXS9gYmJJf5UpqThHpwBu6HV2UcKIVGe3Y8HH5j9BvLRPiEkE5tU2gDz9mq0Z39TC4FooqH3QSGVZboH5L0pPZzCPRgLYe9wDYULekant46lIuKb+MOItNEVEL4kbUjjw6OJJu3EVESOfJnUYKZaaCt0SE5bHRHICTQ==
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=BOvYsFMcrjY1BSFRc3AoxT0V256k9GMWfAgumSwcPuw=;
 b=AbHYa/LA8qy7lHWob5kZ3CIhuoUx4ctrxY+2u9FUu4upP2LPU7eDxsxjEsmy91GMZVSKfOuWF08XHCD3ITWUreZwr9dixVrbzCPY4TN3E0DdDi8shi8kvzxjiDKeFkuG/nDSJb82uxjyhDD+FY4L5/TVNoZ4fmZx9D18ID5Q6CzjGhtMXqRwdKEd+vl5lyTePMgGLxYr1FSPsNfdG5w/ZAjnuPF8a+HOkaICPnJMUfHDvvGagWcwnNfApwLtkyEYrArMDSBfk5ou0K62bXAO2hT1O3W5EnuU2NkNp2RYf2IC6ehoGG+NvtlkS3oaKYwmXAdDKI7Cyrs61dIah6htmQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB4726.eurprd01.prod.exchangelabs.com (20.177.198.77) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2686.29; Tue, 4 Feb
 2020 14:09:58 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2686.034; Tue, 4 Feb 2020
 14:09:58 +0000
Received: from thinky.precis.pub.ro (141.85.233.105) by
 AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2686.30 via Frontend Transport; Tue, 4 Feb 2020 14:09:57 +0000
From: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH v4 0/4] lib/uksp: Introduce uksp library
Thread-Index: AQHV22TINFs/WedC00G0hZ+09ARHnQ==
Date: Tue, 4 Feb 2020 14:09:58 +0000
Message-ID: <20200204140950.23832-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32)
 To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 2.20.1
x-originating-ip: [141.85.233.105]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: fef0e09c-72cc-4854-e494-08d7a97beab1
x-ms-traffictypediagnostic: AM6PR01MB4726:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <AM6PR01MB47263709B385A49C632D2CA4A6030@AM6PR01MB4726.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:7691;
x-forefront-prvs: 03030B9493
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(346002)(376002)(136003)(39840400004)(366004)(396003)(199004)(189003)(66574012)(5660300002)(1076003)(66946007)(64756008)(66476007)(71200400001)(66556008)(66446008)(85182001)(508600001)(2616005)(85202003)(956004)(54906003)(6506007)(52116002)(316002)(786003)(16526019)(186003)(26005)(86362001)(2906002)(6486002)(4326008)(6512007)(6916009)(81166006)(81156014)(8676002)(8936002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB4726;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: TmKsosCARE75GJKtyeiVx9WvJkAXSY0LoOmtK1tv9MaV0IuG+3DXoIZbd9/Vdo323esgiwdUHa7PsgSdWhutOXSLlZZY2+MzJBgYCy63wdIhoQAkCjU/O0rLj23tA8zwwXs3AuQy407IEKp7CqNbQwUuGdaWbmYORxZkftVdjmALQ0hTDvRCWw5muYV8fYq/dtlblFLzshXx2HYmi5GTCn4VfAwMkGcdeKJlQspYIwytUWrt7Mw50TfV1UOxAijXjgtrf7PJ3MS/XZ+shzccGBXlgpWnOd+A2+agVL7YlgWyxP591dR386Ip038EoR02s7X7bKf3FO7A5bnUrqv7fwf5s+IL+Pi307NT/pCNwMmsf8kA1uihJnESDwglkQj/zzlhUPY8M9qFns41HlM6OlqYPz7C9UNpbrHpZVBjI3Nkj0+77lyz7nCfitDAtxaS
x-ms-exchange-antispam-messagedata: 4zrqTPgECZxtHwuWS13QDSLbeuZtWejxw+rWrIpneDwT9ucRj9lqxNKUFUw6dDxCHEkIU+CJKpVeefDa/Cx9WuEAlOo+xvaZG7R07+Nj6HdL9zhYkzUeM3wocOQKp5FUKZcixFNa+9V6EoAAgpkuQQ==
Content-ID: <CE6CEDDF5027FF47A25BF98056FA793B@eurprd01.prod.exchangelabs.com>
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: fef0e09c-72cc-4854-e494-08d7a97beab1
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2020 14:09:58.1621 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /u5tsVuORBV2sULYqiScHzLhD8MC5RsfXV9oF29g7YsPBQ6EdVKhOpFu2DT3FpZ5DuXJ1WyTd/PT0KPV2/4yomd202AniuWOdBmpb7rHiB7eo+WF/PnE8mBrfc5BjeGK
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4726
Subject: [Minios-devel] [UNIKRAFT PATCH v4 0/4] lib/uksp: Introduce uksp
 library
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>,
 "simon.kuenzer@neclab.eu" <simon.kuenzer@neclab.eu>,
 =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>,
 "sharan.santhanam@neclab.eu" <sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Q3VycmVudGx5LCB3ZSBwcm92aWRlIGEgYmFzaWMgaW1wbGVtZW50YXRpb24gb2Ygc3RhY2sgc21h
c2hpbmcNCnByb3RlY3Rpb24gdGhhdA0KaGFzIGEgZ2xvYmFsIHZhbHVlIGZvciBhbGwgdGhyZWFk
cy4gVGhlIHZhbHVlIGlzIHJhbmRvbWx5IGluaXRpYWxpemVkDQpkdXJpbmcgdGhlDQpib290LiBG
aW5hbGx5LCB0aGlzIG9wdGlvbiBtaWdodCBoZWxwIHVzIGRldGVjdCBidWdzIGNhdXNlZCBieSBz
dGFjaw0Kb3ZlcmZsb3dzLg0KDQpDaGFuZ2VzIHNpbmNlIHYxOg0KKiBXZSBub3cgdXNlIGEgY2hv
aWNlIGJhc2VkIGNvbmZpZyBvcHRpb24gZm9yIHRoZSBzdGFjayBwcm90ZWN0b3IgbGV2ZWwuDQoq
IFNpbmNlDQp0aGUgbGFzdCB2ZXJzaW9uIHdlIGFkZGVkIHRoZSByZWd1bGF0IGFuZCBzdHJvbmcg
c3RhY2sgcHJvdGVjdG9yDQpvcHRpb25zLg0KDQpDaGFuZ2VzIHNpbmNlIHYyOg0KKiBSZW5hbWVk
IHRoZSBsaWJyYXJ5IHRvIHVrc3ANCg0KQ2hhbmdlcyBzaW5jZSB2MzoNCiogQWRkZWQgY29uZmln
IG9wdGlvbiBmb3IgY29uc3RhbnQgdmFsdWUvcmFuZG9tIHNvdXJjZSBmb3IgdGhlIGNhbmFyeS4N
CiogVXBkYXRlZCB0aGUgY29uZmlnDQoqIFVwZGF0ZWQgbGlicmFyeSB0aXRsZQ0KKiBNb3ZlZCB1
a3NwL3N0YWNrcHJvdGVjdG9yLmggdG8gdWsvc3AuaA0KKiBBZGRlZCBjdXJyZW50IHN0YWNrIHBv
aW50ZXIgdG8gdGhlIGNyYXNoIG1lc3NhZ2UNCg0KVmxhZC1BbmRyZWkgQmFkb2l1ICgyKToNCiAg
TW92ZSBVS19TV1JBTkRfQ1RPUl9QUklPIHRvIHVrL3N3cmFuZC5oDQogIGxpYi91a2Jvb3Q6IElu
aXRpYWxpemUgdGhlIGNhbmFyeSB2YWx1ZSBhdCBib290DQoNClZsYWQtQW5kcmVpIELEgkRPSVUg
KDc4NjkyKSAoMik6DQogIGxpYi91a3NwOiBJbnRyb2R1Y2UgdWtzcCBsaWJyYXJ5DQogIGJ1aWxk
OiBBZGQgb3B0aW9uIHRvIHRvZ2dsZSB0aGUgc3RhY2sgcHJvdGVjdGlvbg0KDQogTWFrZWZpbGUu
dWsgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrLS0NCiBsaWIvQ29uZmlnLnVrICAgICAg
ICAgICAgICAgICAgICB8ICA0ICsrKw0KIGxpYi9NYWtlZmlsZS51ayAgICAgICAgICAgICAgICAg
IHwgIDEgKw0KIGxpYi91a2Jvb3QvYm9vdC5jICAgICAgICAgICAgICAgIHwgIDggKysrKysNCiBs
aWIvdWtzcC9Db25maWcudWsgICAgICAgICAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysNCiBsaWIvdWtzcC9NYWtlZmlsZS51ayAgICAgICAgICAgICB8IDIxICsrKysrKysr
KysrKw0KIGxpYi91a3NwL2V4cG9ydHN5bXMudWsgICAgICAgICAgIHwgIDIgKysNCiBsaWIvdWtz
cC9pbmNsdWRlL3VrL3NwLmggICAgICAgICB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrDQogbGliL3Vrc3Avc3NwLmMgICAgICAgICAgICAgICAgICAgfCA1MCArKysrKysrKysr
KysrKysrKysrKysrKysrKysNCiBsaWIvdWtzd3JhbmQvaW5jbHVkZS91ay9zd3JhbmQuaCB8ICAy
ICsrDQogbGliL3Vrc3dyYW5kL3N3cmFuZC5jICAgICAgICAgICAgfCAgMiAtLQ0KIDExIGZpbGVz
IGNoYW5nZWQsIDIwNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBsaWIvdWtzcC9Db25maWcudWsNCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL3Vrc3Av
TWFrZWZpbGUudWsNCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL3Vrc3AvZXhwb3J0c3ltcy51aw0K
IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvdWtzcC9pbmNsdWRlL3VrL3NwLmgNCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgbGliL3Vrc3Avc3NwLmMNCg0KLS0gDQoyLjIwLjENCg0KX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlz
dApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Tue Feb 04 14:10:07 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 04 Feb 2020 14:10:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyytz-0001to-Om; Tue, 04 Feb 2020 14:10:07 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=svWn=3Y=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1iyytx-0001ky-Nn
 for minios-devel@lists.xen.org; Tue, 04 Feb 2020 14:10:05 +0000
X-Inumbo-ID: 08c25d24-4758-11ea-8f53-12813bfff9fa
Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown
 [40.107.7.84]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 08c25d24-4758-11ea-8f53-12813bfff9fa;
 Tue, 04 Feb 2020 14:10:02 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UnSNp6svCXBmXx+3n7q8irwVuzIwUnAZk0bl0ZNRF2B29TMnGjVdNBZLe2CzGgm4hjKvrVSYoECESbSwyVcdPFTBrFi+YsWNXn+JQFN5qhiKoenOKeA/xSfEMpF1B7KiLrHceSdQqKZdkkSBgmnSxnqNkCZCopdnmAC0oDRKsvsL4YH3E03+LgP0ZT+9iVsIucPKSDuX31Sw/csqL03FYgFFqBU5qBLmkBykQahqK48DBJd9WptAQD+7VQC0538xCILDKYZCANEMPpojdydMN13BBX6I2PpFz/zG7FtmYJCz/0U4Fa0kHhWABRFf/gsXApW6UdH4GMnt9BXwzVg4ug==
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=MUNcnLYbDEQy7XhMfyiSS66XXbELjrU2rOyNfEUJU0s=;
 b=ZCosl9VtvD4cj68FeAwGYDxSL5sesvQW/ICAbIqiU/f9zO5FuRnxOgwcgT1UMTbfL7wLEKjj7cYz/yBGak7g6WgmtSLMhDZUfp7DCnYl1c9GzwDs0n+ZIYin0v3/9UYvvYJSGagWBnQwF2azlqs7m3CFoSHz1MKXLv58LCWe+EbZ3dzEC+00+tdwwYbDpVq0/Aci/nBHJi0p2zt9DkB6TOxLuE+56iLk7uzQjsx42a5Y0lEYamjoY0sILiU25N2UFflrf1tdBm6WMKcWxpA9UNBTr1vF77cr27W/cIbUGxWH1+k7pHbtjCb2mwAE3OgpgtN2xxKIyFstKAJNyPdLxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB4071.eurprd01.prod.exchangelabs.com (20.177.38.150) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2686.27; Tue, 4 Feb
 2020 14:10:00 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2686.034; Tue, 4 Feb 2020
 14:10:00 +0000
Received: from thinky.precis.pub.ro (141.85.233.105) by
 AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2686.30 via Frontend Transport; Tue, 4 Feb 2020 14:10:00 +0000
From: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH v4 3/4] build: Add option to toggle the stack
 protection
Thread-Index: AQHV22TJ8HYCAtl6zk6OT5s+Va1NkA==
Date: Tue, 4 Feb 2020 14:10:00 +0000
Message-ID: <20200204140950.23832-4-vlad_andrei.badoiu@stud.acs.upb.ro>
References: <20200204140950.23832-1-vlad_andrei.badoiu@stud.acs.upb.ro>
In-Reply-To: <20200204140950.23832-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32)
 To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 2.20.1
x-originating-ip: [141.85.233.105]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: e21379f9-30f7-4832-7254-08d7a97bec38
x-ms-traffictypediagnostic: AM6PR01MB4071:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <AM6PR01MB407155F9E29E702AB02C1FC7A6030@AM6PR01MB4071.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:88;
x-forefront-prvs: 03030B9493
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(376002)(346002)(396003)(136003)(39840400004)(199004)(189003)(66946007)(508600001)(6916009)(8676002)(81156014)(81166006)(8936002)(316002)(2906002)(786003)(54906003)(52116002)(85182001)(71200400001)(6512007)(186003)(16526019)(26005)(66446008)(64756008)(66556008)(66476007)(5660300002)(1076003)(956004)(2616005)(6506007)(4326008)(86362001)(85202003)(6486002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB4071;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: eK1pKYC3DA9pWB0h6IcYqtBLiFZbyMoSllmG2KUSHoOWa8rYpYBO5cQoAqnc6Bk+zND73v3pNpvdd6xTaD7bpWX5+VBpWxpFFjQO5boWcs0WAH1BP3Dy0YmeKIagGgZP504ugaqdoH44hFB9/FGsE9VbEdrh97RDr1B2w+Olkim7Z9QTU1K4sgAWBMTTe3+NRfQ5LaYy2p3rusYXELCcn6xv+2Otv9CBKLf8oWK5FkCoaYy8ejetI/F9xiaUFl4z2XsYFQ9ZB9hHNzRqlBb9+6i4W/WP+0Cpa/upSogn7W2XsDoyOYM/6bDmEkau2SN1xYks1jM3LTnvkzyVH5UTkCZ/H9k48rSaz4XRgjt/lu0nHEibZOPw3cXJgbs5ELNRJbr1P3SniQ40UklArsR1ZPptTayzXraEFTBqqpR2KbrqzKtHbLFgFPtuKo2ejDU1
x-ms-exchange-antispam-messagedata: 7hrvA+AcV+MnvLrGzCBFRbpaWYheFxQcYN0QH9afLaYRdeO5t9GxQKmPuAt/u7oxOyERPHLUckCZVm3wpMx1ejrLjczJttSZxaKK6ZuotliaeyCzjy0BdJ2nbDhVD6VyfV8aLE8/AFpDgxO1UTlm+A==
Content-ID: <40FBFC39B83F2D40B5661103BB27CDB6@eurprd01.prod.exchangelabs.com>
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: e21379f9-30f7-4832-7254-08d7a97bec38
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2020 14:10:00.6757 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: kkWiMGKzoYI0FIS7Z12btjsAILJEkVUq1s/XLQYQwny3aSrRj61NF1WXs/NTzp/pWHMGBpPQJTyWRzRnwOrIfG1wKvOmbhPGb6q3JW/Du4avLEKoOvaTS+lx1ORlFdWl
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4071
Subject: [Minios-devel] [UNIKRAFT PATCH v4 3/4] build: Add option to toggle
 the stack protection
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>,
 "simon.kuenzer@neclab.eu" <simon.kuenzer@neclab.eu>,
 =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>,
 "sharan.santhanam@neclab.eu" <sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogVmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIpIDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1
ZC5hY3MudXBiLnJvPg0KDQpUaGlzIHBhdGNoIGFkZHMgYnVpbGQgb3B0aW9uIHRvIHNlbGVjdCBk
aWZmZXJlbnQgc3RhY2sgcHJvdGVjdGlvbg0KbGV2ZWxzLg0KDQpTaWduZWQtb2ZmLWJ5OiBWbGFk
LUFuZHJlaSBCYWRvaXUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVkLmFjcy51cGIucm8+DQotLS0N
CiBNYWtlZmlsZS51ayAgICAgICAgICB8IDEwICsrKysrKysrLS0NCiBsaWIvQ29uZmlnLnVrICAg
ICAgICB8ICA0ICsrKysNCiBsaWIvdWtzcC9Db25maWcudWsgICB8ICAxIC0NCiBsaWIvdWtzcC9N
YWtlZmlsZS51ayB8IDE2ICsrKysrKysrKysrKysrKysNCiA0IGZpbGVzIGNoYW5nZWQsIDI4IGlu
c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBi
L01ha2VmaWxlLnVrDQppbmRleCA2N2MzNzJlNS4uMTc3NjE4ZDcgMTAwNjQ0DQotLS0gYS9NYWtl
ZmlsZS51aw0KKysrIGIvTWFrZWZpbGUudWsNCkBAIC04LDEyICs4LDEyIEBAIEFTRkxBR1MgICAg
ICs9IC1VIF9fbGludXhfXyAtVSBfX0ZyZWVCU0RfXyAtVSBfX3N1bl9fIC1EX19BU1NFTUJMWV9f
DQogQVNJTkNMVURFUyAgKz0gLW5vc3RkaW5jIC1ub3N0ZGxpYiAtSSQoQ09ORklHX1VLX0JBU0Up
L2luY2x1ZGUNCiANCiBDRkxBR1MgICAgICArPSAtVSBfX2xpbnV4X18gLVUgX19GcmVlQlNEX18g
LVUgX19zdW5fXw0KLUNGTEFHUyAgICAgICs9IC1mbm8tc3RhY2stcHJvdGVjdG9yIC1mbm8tb21p
dC1mcmFtZS1wb2ludGVyIC1mbm8tdHJlZS1zcmENCitDRkxBR1MgICAgICArPSAtZm5vLW9taXQt
ZnJhbWUtcG9pbnRlciAtZm5vLXRyZWUtc3JhDQogQ0ZMQUdTICAgICAgKz0gLVdhbGwgLVdleHRy
YQ0KIENJTkNMVURFUyAgICs9IC1ub3N0ZGluYyAtbm9zdGRsaWIgLUkkKENPTkZJR19VS19CQVNF
KS9pbmNsdWRlDQogDQogQ1hYRkxBR1MgICAgKz0gLVUgX19saW51eF9fIC1VIF9fRnJlZUJTRF9f
IC1VIF9fc3VuX18NCi1DWFhGTEFHUyAgICArPSAtZm5vLXN0YWNrLXByb3RlY3RvciAtZm5vLW9t
aXQtZnJhbWUtcG9pbnRlciAtZm5vLXRyZWUtc3JhDQorQ1hYRkxBR1MgICAgKz0gLWZuby1vbWl0
LWZyYW1lLXBvaW50ZXIgLWZuby10cmVlLXNyYQ0KIENYWEZMQUdTICAgICs9IC1XYWxsIC1XZXh0
cmENCiBDWFhJTkNMVURFUyArPSAtbm9zdGRpbmMgLW5vc3RkbGliIC1JJChDT05GSUdfVUtfQkFT
RSkvaW5jbHVkZQ0KIA0KQEAgLTI4LDYgKzI4LDEyIEBAIEdPQ0lOQ0xVREVTICs9IC1ub3N0ZGlu
YyAtbm9zdGRsaWIgLUkkKENPTkZJR19VS19CQVNFKS9pbmNsdWRlDQogTElCTERGTEFHUyAgKz0g
LW5vc3RkaW5jIC1ub3N0ZGxpYiAtV2wsLS1vbWFnaWMgLVdsLC1yIC1XbCwtZCAtV2wsLS1idWls
ZC1pZD1ub25lDQogTERGTEFHUyAgICAgKz0gLW5vc3RkaW5jIC1ub3N0ZGxpYiAtV2wsLS1vbWFn
aWMgLVdsLC0tYnVpbGQtaWQ9bm9uZQ0KIA0KK2lmbmVxICgkKEhBVkVfU1RBQ0tQUk9URUNUT1Ip
LHkpDQorQ0ZMQUdTICAgKz0gLWZuby1zdGFjay1wcm90ZWN0b3INCitDWFhGTEFHUyArPSAtZm5v
LXN0YWNrLXByb3RlY3Rvcg0KK0dPRkxBR1MgICs9IC1mbm8tc3RhY2stcHJvdGVjdG9yDQorZW5k
aWYNCisNCiBDRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfTk9ORSkgICAgICAgICAgICArPSAtTzAg
LWZuby1vcHRpbWl6ZS1zaWJsaW5nLWNhbGxzIC1mbm8tdHJlZS12ZWN0b3JpemUNCiBDWFhGTEFH
Uy0kKENPTkZJR19PUFRJTUlaRV9OT05FKSAgICAgICAgICArPSAtTzAgLWZuby1vcHRpbWl6ZS1z
aWJsaW5nLWNhbGxzIC1mbm8tdHJlZS12ZWN0b3JpemUNCiBHT0NGTEFHUy0kKENPTkZJR19PUFRJ
TUlaRV9OT05FKSAgICAgICAgICArPSAtTzAgLWZuby1vcHRpbWl6ZS1zaWJsaW5nLWNhbGxzIC1m
bm8tdHJlZS12ZWN0b3JpemUNCmRpZmYgLS1naXQgYS9saWIvQ29uZmlnLnVrIGIvbGliL0NvbmZp
Zy51aw0KaW5kZXggZTgzZWQzMGIuLjRmYjkzNGIxIDEwMDY0NA0KLS0tIGEvbGliL0NvbmZpZy51
aw0KKysrIGIvbGliL0NvbmZpZy51aw0KQEAgLTI4LDMgKzI4LDcgQEAgY29uZmlnIEhBVkVfTldf
U1RBQ0sNCiBjb25maWcgSEFWRV9TWVNDQUxMDQogICAgICAgIGJvb2wNCiAgICAgICAgZGVmYXVs
dCBuDQorDQorY29uZmlnIEhBVkVfU1RBQ0tQUk9URUNUT1INCisgICAgICAgYm9vbA0KKyAgICAg
ICBkZWZhdWx0IG4NCmRpZmYgLS1naXQgYS9saWIvdWtzcC9Db25maWcudWsgYi9saWIvdWtzcC9D
b25maWcudWsNCmluZGV4IDJlYzk1M2Q0Li4zNzkxYjVhZSAxMDA2NDQNCi0tLSBhL2xpYi91a3Nw
L0NvbmZpZy51aw0KKysrIGIvbGliL3Vrc3AvQ29uZmlnLnVrDQpAQCAtNDgsNSArNDgsNCBAQCBj
b25maWcgTElCVUtTUF9WQUxVRV9DT05TVEFOVA0KIAlpbnQgIkNhbmFyeSB2YWx1ZSINCiAJZGVw
ZW5kcyBvbiBMSUJVS1NQX1ZBTFVFX1VTRUNPTlNUQU5UDQogCWRlZmF1bHQgNDINCi0NCiBlbmRp
Zg0KZGlmZiAtLWdpdCBhL2xpYi91a3NwL01ha2VmaWxlLnVrIGIvbGliL3Vrc3AvTWFrZWZpbGUu
dWsNCmluZGV4IDZjMzkxYzlkLi5iZDhiZGU3ZiAxMDA2NDQNCi0tLSBhL2xpYi91a3NwL01ha2Vm
aWxlLnVrDQorKysgYi9saWIvdWtzcC9NYWtlZmlsZS51aw0KQEAgLTMsMyArMywxOSBAQCAkKGV2
YWwgJChjYWxsIGFkZGxpYl9zLGxpYnVrc3AsJChDT05GSUdfTElCVUtTUCkpKQ0KIENJTkNMVURF
Uy15ICs9IC1JJChMSUJVS1NQX0JBU0UpL2luY2x1ZGUNCiANCiBMSUJVS1NQX1NSQ1MteSArPSAk
KExJQlVLU1BfQkFTRSkvc3NwLmMNCisNCitDRkxBR1MtJChDT05GSUdfU1RBQ0tQUk9URUNUT1Jf
Tk9ORSkJCSs9IC1mbm8tc3RhY2stcHJvdGVjdG9yDQorQ1hYRkxBR1MtJChDT05GSUdfU1RBQ0tQ
Uk9URUNUT1JfTk9ORSkJCSs9IC1mbm8tc3RhY2stcHJvdGVjdG9yDQorR09GTEFHUy0kKENPTkZJ
R19TVEFDS1BST1RFQ1RPUl9OT05FKQkJKz0gLWZuby1zdGFjay1wcm90ZWN0b3INCisNCitDRkxB
R1MtJChDT05GSUdfU1RBQ0tQUk9URUNUT1JfUkVHVUxBUikJCSs9IC1mc3RhY2stcHJvdGVjdG9y
IC1tc3RhY2stcHJvdGVjdG9yLWd1YXJkPWdsb2JhbA0KK0NYWEZMQUdTLSQoQ09ORklHX1NUQUNL
UFJPVEVDVE9SX1JFR1VMQVIpCSs9IC1mc3RhY2stcHJvdGVjdG9yIC1tc3RhY2stcHJvdGVjdG9y
LWd1YXJkPWdsb2JhbA0KK0dPRkxBR1MtJChDT05GSUdfU1RBQ0tQUk9URUNUT1JfUkVHVUxBUikJ
Kz0gLWZzdGFjay1wcm90ZWN0b3IgLW1zdGFjay1wcm90ZWN0b3ItZ3VhcmQ9Z2xvYmFsDQorDQor
Q0ZMQUdTLSQoQ09ORklHX1NUQUNLUFJPVEVDVE9SX1NUUk9ORykJCSs9IC1mc3RhY2stcHJvdGVj
dG9yLXN0cm9uZyAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9iYWwNCitDWFhGTEFHUy0kKENP
TkZJR19TVEFDS1BST1RFQ1RPUl9TVFJPTkcpCSs9IC1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZyAt
bXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9iYWwNCitHT0ZMQUdTLSQoQ09ORklHX1NUQUNLUFJP
VEVDVE9SX1NUUk9ORykJCSs9IC1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZyAtbXN0YWNrLXByb3Rl
Y3Rvci1ndWFyZD1nbG9iYWwNCisNCitDRkxBR1MtJChDT05GSUdfU1RBQ0tQUk9URUNUT1JfQUxM
KQkJKz0gLWZzdGFjay1wcm90ZWN0b3ItYWxsIC1tc3RhY2stcHJvdGVjdG9yLWd1YXJkPWdsb2Jh
bA0KK0NYWEZMQUdTLSQoQ09ORklHX1NUQUNLUFJPVEVDVE9SX0FMTCkJCSs9IC1mc3RhY2stcHJv
dGVjdG9yLWFsbCAtbXN0YWNrLXByb3RlY3Rvci1ndWFyZD1nbG9iYWwNCitHT0ZMQUdTLSQoQ09O
RklHX1NUQUNLUFJPVEVDVE9SX0FMTCkJCSs9IC1mc3RhY2stcHJvdGVjdG9yLWFsbCAtbXN0YWNr
LXByb3RlY3Rvci1ndWFyZD1nbG9iYWwNCi0tIA0KMi4yMC4xDQoNCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QK
TWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Tue Feb 04 14:10:09 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 04 Feb 2020 14:10:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyyu1-0001uU-RJ; Tue, 04 Feb 2020 14:10:09 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=svWn=3Y=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1iyytz-0001tn-QN
 for minios-devel@lists.xen.org; Tue, 04 Feb 2020 14:10:07 +0000
X-Inumbo-ID: 09595134-4758-11ea-ad98-bc764e2007e4
Received: from EUR03-AM5-obe.outbound.protection.outlook.com (unknown
 [40.107.3.66]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 09595134-4758-11ea-ad98-bc764e2007e4;
 Tue, 04 Feb 2020 14:10:02 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KsZatUvZY1+djlzcZ6VRsThtpGrmPOzV2uMg+Og03E9vMmi0Jk8y6UxvxtN0AQ/r6nFf4ctaVONmBeoHx2vOcRkTYFij7WaxM5lZSLGPhcROBTHuuKfhALTtF/+bAN9jVSfYExchYeW7h21wp1yy3XeGDgI9H922gnqGODv/vmuL49ouEw6sW80Vp5RKJRv3Vn7pQ0hwY8PvdzDL/KGfvaz9JNn5P7DyVyhF74eB1BCNCYTaKo8U+PSZp6iaTeJOhQNSbkUtI/wk/ZVD7RVUK5QkBYGzty5tImGn1DHa+/WV6HEk8bZ0BeQFElQ+e6T/aSgxSBM8LlHY8AXnuxbvcw==
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=PDpG+XjaIQwtjTxuBNMg1OpUUfuy/BjH+2s3ICJEXLc=;
 b=K45MrF6dQjLegXsomlitvmLwGmEpnQOL4w9N9IEYRiEq+CcNR8eWMFBWbYJHmOAf4brtsIv8fIVJUiwJVFI9GVP6RsRfEylDISehWgATNZpFStCwKR6pnAJx2IQeGg1DavxHb4ibw56jmtcf1dFH8jnfTb5an7jARfh+2XNC039K23bNZNwBIc9htGOlkuzQsKdUkZinTCi6HADJKB6G4KaBWCwnpmOystvY+ptmyJG/L1lYRiPsBJE6oJ6B3pIpqpgpJu8ydlr3dESZbFgS4ByQbg6x17iW57j6tlx5VYPcS/V7sX7ejAIw5T37KPauNi8yPj68iA3ejx+d8ugY2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB4726.eurprd01.prod.exchangelabs.com (20.177.198.77) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2686.29; Tue, 4 Feb
 2020 14:09:59 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2686.034; Tue, 4 Feb 2020
 14:09:59 +0000
Received: from thinky.precis.pub.ro (141.85.233.105) by
 AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2686.30 via Frontend Transport; Tue, 4 Feb 2020 14:09:58 +0000
From: =?iso-8859-2?Q?Vlad-Andrei_B=C3DOIU_=2878692=29?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH v4 1/4] Move UK_SWRAND_CTOR_PRIO to uk/swrand.h
Thread-Index: AQHV22TIDgLKhgcM50O3qgxO2q+QRA==
Date: Tue, 4 Feb 2020 14:09:59 +0000
Message-ID: <20200204140950.23832-2-vlad_andrei.badoiu@stud.acs.upb.ro>
References: <20200204140950.23832-1-vlad_andrei.badoiu@stud.acs.upb.ro>
In-Reply-To: <20200204140950.23832-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32)
 To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 2.20.1
x-originating-ip: [141.85.233.105]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 6cd5d47e-5879-4f89-d21c-08d7a97beb3c
x-ms-traffictypediagnostic: AM6PR01MB4726:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <AM6PR01MB472680B54AA204001BAEFA53A6030@AM6PR01MB4726.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:1265;
x-forefront-prvs: 03030B9493
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(346002)(376002)(136003)(39840400004)(366004)(396003)(199004)(189003)(5660300002)(1076003)(4744005)(66946007)(64756008)(66476007)(71200400001)(66556008)(66446008)(508600001)(2616005)(956004)(54906003)(6506007)(52116002)(316002)(786003)(16526019)(186003)(26005)(86362001)(2906002)(6486002)(4326008)(6512007)(6916009)(81166006)(81156014)(8676002)(8936002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB4726;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: C5ZPPmJSWMdaFK6rbcigYCcky+R8/NeNJ1incB4gh0/ysBT9Pl2GoRWtXwK1dbeptQG0lp8rNzpvWsbPVD+mS0vi+dLJ8zI8zzwgwv/jBTiggZdtPcdg+5URWg7H2CULzhLtjb/Mk6aEEHdYha6bplcU1ylQ3xUfDwvHlseeeKyZEEnkBhU545AReSO1Y8EQpVUNOqaUUwb5/LSPuqMCOHNd7TcKPdkbbDGQQTt5gkucC16xaQPRvb27lQ2uG0DmO7+5g2s5V6qzWtQd85SNyJBepHh1jivGcbfu8MC/NMcahxUddoyH7qM1YZ2DBRsoz3fsQvpmp/bc7unTPNz0WeWKRVYDHa7RFUwUe6m0lAVWhOLM39Cqoew0qI8TCGM6FUOr4GfqRVQ7Oxs3pR1hknGc3T9zFiI43+FUngLABvg3bFTYPvrkS+njtIckOwlG
x-ms-exchange-antispam-messagedata: dK5OVAYgDIgc+yxF93fBAwqhtBcPTZTJ6DaYOtfu5XWVfTBYmDvxZzBJxmbgvC6J1elxZfFrrO0df8nRkjaH7K18J0ryhxcM8mVZFtgf1BB+7fkNv6kpr5ZUjTIO4sFbgawGf7YBEQNjTmqi75D/Iw==
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: 6cd5d47e-5879-4f89-d21c-08d7a97beb3c
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2020 14:09:59.0636 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: A1hypeztLA0ia4hQjIChFvZYJVIYgDs5lBw1qScM+h3wQMBdTdLvAQUXg9B1x81kWJ2DAsBADtEYWpoYr3KpFLVZXoYUIWfaCxMFJnIM/B/rX0oKwQm70EB9C6sSlOEm
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4726
Subject: [Minios-devel] [UNIKRAFT PATCH v4 1/4] Move UK_SWRAND_CTOR_PRIO to
 uk/swrand.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>,
 "simon.kuenzer@neclab.eu" <simon.kuenzer@neclab.eu>,
 =?iso-8859-2?Q?Vlad-Andrei_B=C3DOIU_=2878692=29?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>,
 "sharan.santhanam@neclab.eu" <sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2UgbW92ZSBVS19TV1JBTkRfQ1RPUl9QUklPIHRvIHVrL3N3cmFuZC5oLiBUaGlzIGVuYWJsZXMg
b3RoZXIgbGlicmFyaWVzIHRvIGJhc2UKdGhlaXIgY29uc3RydWN0b3IgcHJpb3JpdHkgb24gdGhl
IGV4aXN0aW5nIHByaW9yaXR5IG9mIHVrc3dyYW5kLgoKU2lnbmVkLW9mZi1ieTogVmxhZC1BbmRy
ZWkgQmFkb2l1IDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPgotLS0KIGxpYi91
a3N3cmFuZC9pbmNsdWRlL3VrL3N3cmFuZC5oIHwgMiArKwogbGliL3Vrc3dyYW5kL3N3cmFuZC5j
ICAgICAgICAgICAgfCAyIC0tCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvdWtzd3JhbmQvaW5jbHVkZS91ay9zd3JhbmQu
aCBiL2xpYi91a3N3cmFuZC9pbmNsdWRlL3VrL3N3cmFuZC5oCmluZGV4IDI5YmU4YTliLi42OTU3
OWExYSAxMDA2NDQKLS0tIGEvbGliL3Vrc3dyYW5kL2luY2x1ZGUvdWsvc3dyYW5kLmgKKysrIGIv
bGliL3Vrc3dyYW5kL2luY2x1ZGUvdWsvc3dyYW5kLmgKQEAgLTQ1LDYgKzQ1LDggQEAKIGV4dGVy
biAiQyIgewogI2VuZGlmCiAKKyNkZWZpbmUgVUtfU1dSQU5EX0NUT1JfUFJJTwkxCisKIHN0cnVj
dCB1a19zd3JhbmQ7CiAKIGV4dGVybiBzdHJ1Y3QgdWtfc3dyYW5kIHVrX3N3cmFuZF9kZWY7CmRp
ZmYgLS1naXQgYS9saWIvdWtzd3JhbmQvc3dyYW5kLmMgYi9saWIvdWtzd3JhbmQvc3dyYW5kLmMK
aW5kZXggNDdiMmU2MGEuLjUxZmU0NTI3IDEwMDY0NAotLS0gYS9saWIvdWtzd3JhbmQvc3dyYW5k
LmMKKysrIGIvbGliL3Vrc3dyYW5kL3N3cmFuZC5jCkBAIC0zNSw4ICszNSw2IEBACiAjaW5jbHVk
ZSA8dWsvY29uZmlnLmg+CiAjaW5jbHVkZSA8dWsvcHJpbnQuaD4KIAotI2RlZmluZSBVS19TV1JB
TkRfQ1RPUl9QUklPICAgIDEKLQogX191MzIgdWtfc3dyYW5kcl9nZW5fc2VlZDMyKHZvaWQpCiB7
CiAJX191MzIgdmFsOwotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFu
L2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Tue Feb 04 14:10:12 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 04 Feb 2020 14:10:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyyu3-0001vj-Uj; Tue, 04 Feb 2020 14:10:11 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=svWn=3Y=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1iyyu2-0001vR-M1
 for minios-devel@lists.xen.org; Tue, 04 Feb 2020 14:10:10 +0000
X-Inumbo-ID: 0aec68b0-4758-11ea-8f57-12813bfff9fa
Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown
 [40.107.7.84]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 0aec68b0-4758-11ea-8f57-12813bfff9fa;
 Tue, 04 Feb 2020 14:10:05 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=P0y1hwidgkEouUISEX8sf+nluJnfimS21yc2UVFQN5hIx3Y+TGQa3iTvAVe9oh/POpY/bfSvt8tDQPW33K75znTnVEJsi89YRrth+l78tbC+YT4Hup4rzHkNWdbnvGakCOLMfhYvCbv8iueGDh/orkytUSbHfHwryWThUwPPe+/HxIorIUDP+jB+PSbFYPFSLyrwhyu0jA+b7ghUYHuO4xEKpMAs/t1nEpmeLN7RytrkFCpQHZviHueKqqDpvqf+ZmhbvZx6rcgxTGL7i+ZMfrQO8swxm3S29HZl2PpQOWm7ntTpDs185M8AxrMlyDu8uZ6wmtfaaBY0yxSVhLHvfg==
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=QHBjDaP8pldd+1ivTGUtSlyFtWpqZYAwCOryiOqbznU=;
 b=jJtYKXx/Xs7afJtykMLkX+WJPpVMdyguhkkxw+BqaAkLzQO6cjX3CUKJVSQYdr8s4X9/nv2OtSw0gx4QWl2ymw6phIe3xmD6IRvCrFji8T0Q0ji08zBRRlH0RXN95uvqPLtCg8pt27HefMkUVzSYIn1m/+/T9xPpJlleSPP0d1CaX6fm8KBOCExXTrRPPxqPSCqUTJ1xdZTt8nRGU0OfQz87MqNUPoXb4+0UPE2praTNeYIsPH0OmwU3sam23BAkSNSeMwWD3v73vEzXGzMFFrK3QvviuK/swq2auvKIE933G5MRwxg7+9AQRhm1PXsoMq5JD8RClHl+FhetfcTF2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB4071.eurprd01.prod.exchangelabs.com (20.177.38.150) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2686.27; Tue, 4 Feb
 2020 14:10:00 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2686.034; Tue, 4 Feb 2020
 14:09:59 +0000
Received: from thinky.precis.pub.ro (141.85.233.105) by
 AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2686.30 via Frontend Transport; Tue, 4 Feb 2020 14:09:59 +0000
From: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH v4 2/4] lib/uksp: Introduce uksp library
Thread-Index: AQHV22TJZc/JnT81C0+8sc5tb5cejg==
Date: Tue, 4 Feb 2020 14:09:59 +0000
Message-ID: <20200204140950.23832-3-vlad_andrei.badoiu@stud.acs.upb.ro>
References: <20200204140950.23832-1-vlad_andrei.badoiu@stud.acs.upb.ro>
In-Reply-To: <20200204140950.23832-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32)
 To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 2.20.1
x-originating-ip: [141.85.233.105]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 053335c6-e9fd-4d29-0194-08d7a97bebbc
x-ms-traffictypediagnostic: AM6PR01MB4071:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <AM6PR01MB4071E8DC5B9B4085CA634DBBA6030@AM6PR01MB4071.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 03030B9493
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(376002)(346002)(396003)(136003)(39840400004)(199004)(189003)(66946007)(508600001)(6916009)(8676002)(81156014)(81166006)(8936002)(316002)(2906002)(786003)(54906003)(52116002)(85182001)(71200400001)(6512007)(186003)(16526019)(26005)(66446008)(66574012)(64756008)(66556008)(66476007)(5660300002)(1076003)(956004)(2616005)(6506007)(4326008)(86362001)(85202003)(6486002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB4071;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: +uiw+CaLpJEwCBxKyufd6cPYyRjypmMyPSM4wXOyw0Z0R/Ip5slh214/CbiPZLiuMrinerq6f/hoHM+p4iSvNaYuW57EumV0MUSv5RWgGtqhxsu9wpjIhYtdX7PA7jbhaFEozp8Bc/u1dcEwEPhxkzlYKXvKu4XSrqi8q33s5O8a3tP+aSKX1i6YA+eSjVHR0DeOVacjFocPA0xh1FCgumFXLAnVU70DqU6haXcHSkV6GCCMIftGsUjRjFQRutudjfjgs4TZ9rF1NB56opu6iTJsYWjW/3d0dRs/5bU6bDdnEEQNiMDrgvG12LKYvP6mmduSOtkGeq1MMDxc7XNtiQu3j5hBWE8tQc5ql7sKOeLJVc/we3MhPpbcSGdyHp0Mbx1PcG/w6Y1R+hbW899/ISyHHGclRhQIizeZoW6W+uFBjRi2R2uqcpkfCaypWvnw
x-ms-exchange-antispam-messagedata: fBKKES31MWVtEOIQr1zbNtJflrevdFCD0byDBS/omIB/dsDeCpE8sg38XdhpwAW0WLAJrT9EolZIRL+0E6AVa1L94IPQ2//5L9tUjpuyjY/KfFFdedGvMN2pAlm8YUztb0Dwo5SEuNOabGjW+ZREYw==
Content-ID: <5A74786135422E40940CE571BC240803@eurprd01.prod.exchangelabs.com>
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: 053335c6-e9fd-4d29-0194-08d7a97bebbc
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2020 14:09:59.8722 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pnEbadvOtEer2atKtx6z5vMSdgS53Rr+bhJUkvyiP9zufwITPRVWs4kYtEC/8+eA9oiW7jT92TJKQdnNcObpjKu3/p+rBhy/ZoYx40DFJTEqefyCUKQGR/fjWKzqRett
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4071
Subject: [Minios-devel] [UNIKRAFT PATCH v4 2/4] lib/uksp: Introduce uksp
 library
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>,
 "simon.kuenzer@neclab.eu" <simon.kuenzer@neclab.eu>,
 =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>,
 "sharan.santhanam@neclab.eu" <sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogVmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIpIDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1
ZC5hY3MudXBiLnJvPg0KDQpUaGlzIGxpYnJhcnkgcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBmdW5j
dGlvbmFsaXRpZXMgZm9yIHRoZSBzdGFjaw0KcHJvdGVjdG9yLg0KDQpBIG1ha2UgY2xlYW4gaXMg
cmVxdWlyZWQgd2hlbiB0b2dnbGluZyB0aGUgc3RhY2sgc21hc2hpbmcgcHJvdGVjdGlvbg0Kb3B0
aW9uLg0KDQpTaWduZWQtb2ZmLWJ5OiBWbGFkLUFuZHJlaSBCYWRvaXUgPHZsYWRfYW5kcmVpLmJh
ZG9pdUBzdHVkLmFjcy51cGIucm8+DQotLS0NCiBsaWIvTWFrZWZpbGUudWsgICAgICAgICAgfCAg
MSArDQogbGliL3Vrc3AvQ29uZmlnLnVrICAgICAgIHwgNTIgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysNCiBsaWIvdWtzcC9NYWtlZmlsZS51ayAgICAgfCAgNSArKysrDQogbGli
L3Vrc3AvZXhwb3J0c3ltcy51ayAgIHwgIDIgKysNCiBsaWIvdWtzcC9pbmNsdWRlL3VrL3NwLmgg
fCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQogbGliL3Vrc3Av
c3NwLmMgICAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K
IDYgZmlsZXMgY2hhbmdlZCwgMTY4IGluc2VydGlvbnMoKykNCiBjcmVhdGUgbW9kZSAxMDA2NDQg
bGliL3Vrc3AvQ29uZmlnLnVrDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi91a3NwL01ha2VmaWxl
LnVrDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi91a3NwL2V4cG9ydHN5bXMudWsNCiBjcmVhdGUg
bW9kZSAxMDA2NDQgbGliL3Vrc3AvaW5jbHVkZS91ay9zcC5oDQogY3JlYXRlIG1vZGUgMTAwNjQ0
IGxpYi91a3NwL3NzcC5jDQoNCmRpZmYgLS1naXQgYS9saWIvTWFrZWZpbGUudWsgYi9saWIvTWFr
ZWZpbGUudWsNCmluZGV4IGFhN2U3MzAyLi5jMDJhM2M1MCAxMDA2NDQNCi0tLSBhL2xpYi9NYWtl
ZmlsZS51aw0KKysrIGIvbGliL01ha2VmaWxlLnVrDQpAQCAtMzQsMyArMzQsNCBAQCAkKGV2YWwg
JChjYWxsIF9pbXBvcnRfbGliLCQoQ09ORklHX1VLX0JBU0UpL2xpYi91a3RpbWUpKQ0KICQoZXZh
bCAkKGNhbGwgX2ltcG9ydF9saWIsJChDT05GSUdfVUtfQkFTRSkvbGliL3VrbW1hcCkpDQogJChl
dmFsICQoY2FsbCBfaW1wb3J0X2xpYiwkKENPTkZJR19VS19CQVNFKS9saWIvdWtibGtkZXYpKQ0K
ICQoZXZhbCAkKGNhbGwgX2ltcG9ydF9saWIsJChDT05GSUdfVUtfQkFTRSkvbGliL3Bvc2l4LXBy
b2Nlc3MpKQ0KKyQoZXZhbCAkKGNhbGwgX2ltcG9ydF9saWIsJChDT05GSUdfVUtfQkFTRSkvbGli
L3Vrc3ApKQ0KZGlmZiAtLWdpdCBhL2xpYi91a3NwL0NvbmZpZy51ayBiL2xpYi91a3NwL0NvbmZp
Zy51aw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwLi4yZWM5NTNkNA0KLS0t
IC9kZXYvbnVsbA0KKysrIGIvbGliL3Vrc3AvQ29uZmlnLnVrDQpAQCAtMCwwICsxLDUyIEBADQor
Y29uZmlnIExJQlVLU1ANCisJYm9vbCAidWtzcDogU3RhY2sgcHJvdGVjdG9yIg0KKwlzZWxlY3Qg
SEFWRV9TVEFDS1BST1RFQ1RPUg0KKwlzZWxlY3QgTElCVUtTQ0hFRA0KKwlkZWZhdWx0IG4NCisN
CitpZiBMSUJVS1NQDQorY2hvaWNlDQorCXByb21wdCAiU3RhY2sgcHJvdGVjdG9yIGxldmVsIg0K
KwlkZWZhdWx0IFNUQUNLUFJPVEVDVE9SX05PTkUNCisJaGVscA0KKwkgIFNldCB0aGUgc3RhY2sg
cHJvdGVjdG9yIGxldmVsDQorDQorY29uZmlnIFNUQUNLUFJPVEVDVE9SX05PTkUNCisJYm9vbCAi
Tm9uZSINCisJaGVscA0KKwkJRG8gbm90IHVzZSBzdGFjayBwcm90ZWN0b3IsIHVzZSAtZm5vLXN0
YWNrLXByb3RlY3Rvci4NCisNCitjb25maWcgU1RBQ0tQUk9URUNUT1JfUkVHVUxBUg0KKwlib29s
ICJSZWd1bGFyIg0KKwloZWxwDQorCQlSZWd1bGFyIHN0YWNrIHByb3RlY3RvciwgdXNlIC1mc3Rh
Y2stcHJvdGVjdG9yLg0KKw0KK2NvbmZpZyBTVEFDS1BST1RFQ1RPUl9TVFJPTkcNCisJYm9vbCAi
U3Ryb25nIg0KKwloZWxwDQorCQlTdHJvbmcgc3RhY2sgcHJvdGVjdG9yLCB1c2UgLWZzdGFjay1w
cm90ZWN0b3Itc3Ryb25nLg0KKw0KK2NvbmZpZyBTVEFDS1BST1RFQ1RPUl9BTEwNCisJYm9vbCAi
QWxsIg0KKwloZWxwDQorCQlQcm90ZWN0IGFsbCBmdW5jdGlvbnMsIHVzZSAtZnN0YWNrLXByb3Rl
Y3Rvci1hbGwuDQorZW5kY2hvaWNlDQorDQorY2hvaWNlDQorCXByb21wdCAiQ2FuYXJ5IFZhbHVl
Ig0KKwlkZWZhdWx0IExJQlVLU1BfVkFMVUVfQ09OU1RBTlQNCisNCitjb25maWcgTElCVUtTUF9W
QUxVRV9VU0VDT05TVEFOVA0KKwlib29sICJDb21waWxlZC1pbiBjb25zdGFudCINCisNCitjb25m
aWcgTElCVUtTUF9WQUxVRV9SQU5ET00NCisJYm9vbCAiUmFuZG9tIHZhcmlhYmxlIg0KKwlzZWxl
Y3QgTElCVUtTV1JBTkQNCitlbmRjaG9pY2UNCisNCitjb25maWcgTElCVUtTUF9WQUxVRV9DT05T
VEFOVA0KKwlpbnQgIkNhbmFyeSB2YWx1ZSINCisJZGVwZW5kcyBvbiBMSUJVS1NQX1ZBTFVFX1VT
RUNPTlNUQU5UDQorCWRlZmF1bHQgNDINCisNCitlbmRpZg0KZGlmZiAtLWdpdCBhL2xpYi91a3Nw
L01ha2VmaWxlLnVrIGIvbGliL3Vrc3AvTWFrZWZpbGUudWsNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQppbmRleCAwMDAwMDAwMC4uNmMzOTFjOWQNCi0tLSAvZGV2L251bGwNCisrKyBiL2xpYi91a3Nw
L01ha2VmaWxlLnVrDQpAQCAtMCwwICsxLDUgQEANCiskKGV2YWwgJChjYWxsIGFkZGxpYl9zLGxp
YnVrc3AsJChDT05GSUdfTElCVUtTUCkpKQ0KKw0KK0NJTkNMVURFUy15ICs9IC1JJChMSUJVS1NQ
X0JBU0UpL2luY2x1ZGUNCisNCitMSUJVS1NQX1NSQ1MteSArPSAkKExJQlVLU1BfQkFTRSkvc3Nw
LmMNCmRpZmYgLS1naXQgYS9saWIvdWtzcC9leHBvcnRzeW1zLnVrIGIvbGliL3Vrc3AvZXhwb3J0
c3ltcy51aw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwLi5mYmMzMTllNw0K
LS0tIC9kZXYvbnVsbA0KKysrIGIvbGliL3Vrc3AvZXhwb3J0c3ltcy51aw0KQEAgLTAsMCArMSwy
IEBADQorX19zdGFja19jaGtfZmFpbA0KK19fc3RhY2tfY2hrX2d1YXJkDQpkaWZmIC0tZ2l0IGEv
bGliL3Vrc3AvaW5jbHVkZS91ay9zcC5oIGIvbGliL3Vrc3AvaW5jbHVkZS91ay9zcC5oDQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAuLjMzYTZiNmYyDQotLS0gL2Rldi9udWxs
DQorKysgYi9saWIvdWtzcC9pbmNsdWRlL3VrL3NwLmgNCkBAIC0wLDAgKzEsNTggQEANCisvKiBT
UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlICovDQorLyoNCisgKiBBdXRob3Jz
OiBWbGFkLUFuZHJlaSBCYWRvaXUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVkLmFjcy51cGIucm8+
DQorICoNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTksIFVuaXZlcnNpdHkgUG9saXRlaG5pY2Egb2Yg
QnVjaGFyZXN0LiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyAqDQorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQorICogYXJlIG1ldDoNCisgKg0KKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0DQorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQor
ICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5h
bWVzIG9mIGl0cw0KKyAqICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tDQorICogICAgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCisgKg0KKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMgIkFTIElTIg0KKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUNCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQ0K
KyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUiBDT05UUklCVVRPUlMgQkUNCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SDQorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YNCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MNCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
DQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUNCisgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4N
CisgKg0KKyAqIFRISVMgSEVBREVSIE1BWSBOT1QgQkUgRVhUUkFDVEVEIE9SIE1PRElGSUVEIElO
IEFOWSBXQVkuDQorICovDQorDQorI2lmbmRlZiBfX1VLX1NUQUNLUFJPVEVDVE9SX0hfXw0KKyNk
ZWZpbmUgX19VS19TVEFDS1BST1RFQ1RPUl9IX18NCisNCisjaW5jbHVkZSA8dWsvc3dyYW5kLmg+
DQorI2luY2x1ZGUgPHVrL2NvbmZpZy5oPg0KKw0KKyNpZmRlZiBfX2NwbHVzcGx1cw0KK2V4dGVy
biAiQyIgew0KKyNlbmRpZg0KKw0KK2V4dGVybiB1bnNpZ25lZCBsb25nIF9fc3RhY2tfY2hrX2d1
YXJkOw0KKw0KKyNpZmRlZiBDT05GSUdfTElCVUtTUF9WQUxVRV9SQU5ET00NCisjZGVmaW5lIElO
SVRfU1RBQ0tfQ0FOQVJZKCkgKF9fc3RhY2tfY2hrX2d1YXJkID0gdWtfc3dyYW5kX3JhbmRyKCkp
DQorI2VuZGlmDQorI2lmZGVmIENPTkZJR19MSUJVS1NQX1ZBTFVFX1VTRUNPTlNUQU5UDQorI2Rl
ZmluZSBJTklUX1NUQUNLX0NBTkFSWSgpIChfX3N0YWNrX2Noa19ndWFyZCA9IENPTkZJR19MSUJV
S1NQX1ZBTFVFX0NPTlNUQU5UKQ0KKyNlbmRpZg0KKw0KKyNpZmRlZiBfX2NwbHVzcGx1cw0KK30N
CisjZW5kaWYNCisNCisjZW5kaWYgLyogX19VS19TVEFDS1BST1RFQ1RPUl9IX18gKi8NCmRpZmYg
LS1naXQgYS9saWIvdWtzcC9zc3AuYyBiL2xpYi91a3NwL3NzcC5jDQpuZXcgZmlsZSBtb2RlIDEw
MDY0NA0KaW5kZXggMDAwMDAwMDAuLjhiZTNhMDUxDQotLS0gL2Rldi9udWxsDQorKysgYi9saWIv
dWtzcC9zc3AuYw0KQEAgLTAsMCArMSw1MCBAQA0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy
OiBCU0QtMy1DbGF1c2UgKi8NCisvKg0KKyAqIEF1dGhvcnM6IEJhZG9pdSBWbGFkLUFuZHJlaSA8
dmxhZF9hbmRyZWkuYmFkb2l1QHN0dWQuYWNzLnVwYi5ybz4NCisgKg0KKyAqIENvcHlyaWdodCAo
YykgMjAxOSwgVW5pdmVyc2l0eSBQb2xpdGVobmljYSBvZiBCdWNoYXJlc3QuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuDQorICoNCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisgKiBhcmUgbWV0
Og0KKyAqDQorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQNCisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlDQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1l
IG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzDQorICogICAgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20NCisgKiAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLg0KKyAqDQorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiDQorICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQ0KKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFDQorICogQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRQ0K
KyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1INCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRg0KKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElODQorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkNCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RQ0KKyAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KKyAqDQorICogVEhJUyBIRUFERVIg
TUFZIE5PVCBCRSBFWFRSQUNURUQgT1IgTU9ESUZJRUQgSU4gQU5ZIFdBWS4NCisgKi8NCisNCisj
aW5jbHVkZSA8dWsvYXNzZXJ0Lmg+DQorI2luY2x1ZGUgPHVrL3N3cmFuZC5oPg0KKyNpbmNsdWRl
IDx1ay9jb25maWcuaD4NCisjaW5jbHVkZSA8dWsvY3RvcnMuaD4NCisjaW5jbHVkZSA8dWsvdGhy
ZWFkLmg+DQorDQordW5zaWduZWQgbG9uZyBfX3N0YWNrX2Noa19ndWFyZDsNCisNCitfX2F0dHJp
YnV0ZV9fKChub3JldHVybikpDQordm9pZCBfX3N0YWNrX2Noa19mYWlsKHZvaWQpDQorew0KKwlz
dHJ1Y3QgdWtfdGhyZWFkICpjdXJyZW50X3RocmVhZDsNCisNCisJY3VycmVudF90aHJlYWQgPSB1
a190aHJlYWRfY3VycmVudCgpOw0KKwlVS19DUkFTSCgiU3RhY2sgc21hc2hpbmcgZGV0ZWN0ZWQu
IFNQICVwXG4iLCBjdXJyZW50X3RocmVhZC0+Y3R4KTsNCit9DQotLSANCjIuMjAuMQ0KDQpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwg
bWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp
c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Tue Feb 04 14:10:17 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 04 Feb 2020 14:10:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iyyu9-0001wx-0P; Tue, 04 Feb 2020 14:10:17 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=svWn=3Y=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1iyyu7-0001wf-Ly
 for minios-devel@lists.xen.org; Tue, 04 Feb 2020 14:10:15 +0000
X-Inumbo-ID: 0aec68b1-4758-11ea-8f57-12813bfff9fa
Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown
 [40.107.7.84]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 0aec68b1-4758-11ea-8f57-12813bfff9fa;
 Tue, 04 Feb 2020 14:10:06 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=AUQZ9FWYAJCn0CyXjEuTgvOldV3hxt107xZClDzg89ZQxXcGo8nc62sKy6flFR/lIpJkSQrnzXBo6iKAfltHsEFF9pYSSGp944nYRrTYq079Ffx4nyrbcnxk/RJQyvFkqOATrN5pw72nPm040y7/II+/p2F7cR/+yGLCVqprVzKYwFlDSNZ9ggiUby32EqqsC0+cHoOODiaIV8sV235hOB6Ps6ZjTObOmDN1IBcI86eoQsSCTA6cbGBpd+xdD/eLMeVWAOiZhcHDxG3hpRg3l9IKwNc9h7xJhgT7AxO1Xx77YQJ37CrVGfPr+LWg4evXJsrvR+MOu70GIjhsEf8f+Q==
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=PXLz4XlLsPtbEggJ0Zfi3jVuUamVyNUssLFutb+Iglk=;
 b=JTGiIutpkt1/2arzF7KhG7JgViJm+Zeqc5yCZOAuGVb4RWjA39YHdfqr+k1oAVfhNAnBXfUvXb6YFVfixTiEdpBlF6UDAuwa/iw1cyj/eM9Vf6Vx9myhJh4YZKiHWwm3YVWCsEnI8FBHoMHx61cMhZ3wzcOfruPZY/UMA/VLGEAPR6+sIr0tErtb9cvI6YwWuK0r9NIy+pcWhK5+SiYKE+YCpJOgU4EIaYr3sYqX83rE/pRqUj2R2r0qoIP9nGOfOk8tWTurig5fr3rZSx0hOHts8yTEafjGPZ0fFxjLI6orThnF5Ug8/k+rYtRCaqLdu4QMTwIjXYOla0GbfBnNNw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB4071.eurprd01.prod.exchangelabs.com (20.177.38.150) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2686.27; Tue, 4 Feb
 2020 14:10:01 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2686.034; Tue, 4 Feb 2020
 14:10:01 +0000
Received: from thinky.precis.pub.ro (141.85.233.105) by
 AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2686.30 via Frontend Transport; Tue, 4 Feb 2020 14:10:00 +0000
From: =?iso-8859-2?Q?Vlad-Andrei_B=C3DOIU_=2878692=29?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH v4 4/4] lib/ukboot: Initialize the canary value
 at boot
Thread-Index: AQHV22TKBpvTUKEKOEKU8TPNpVsueA==
Date: Tue, 4 Feb 2020 14:10:01 +0000
Message-ID: <20200204140950.23832-5-vlad_andrei.badoiu@stud.acs.upb.ro>
References: <20200204140950.23832-1-vlad_andrei.badoiu@stud.acs.upb.ro>
In-Reply-To: <20200204140950.23832-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: AM4PR05CA0019.eurprd05.prod.outlook.com (2603:10a6:205::32)
 To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 2.20.1
x-originating-ip: [141.85.233.105]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c8402b3b-56b3-4b4b-259f-08d7a97beca0
x-ms-traffictypediagnostic: AM6PR01MB4071:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <AM6PR01MB407191813BC518454FA9E809A6030@AM6PR01MB4071.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:1060;
x-forefront-prvs: 03030B9493
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(376002)(346002)(396003)(136003)(39840400004)(199004)(189003)(66946007)(508600001)(6916009)(8676002)(81156014)(81166006)(8936002)(316002)(2906002)(786003)(54906003)(52116002)(71200400001)(6512007)(186003)(16526019)(26005)(66446008)(64756008)(66556008)(66476007)(5660300002)(1076003)(956004)(2616005)(6506007)(4744005)(4326008)(86362001)(6486002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB4071;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: CD3W4dWrPAJbeR6Yu9lOQpS/wgmXiALaFW9AUC8MPt+6Q69Z3xZVu9MHJyZvqfu+ijds70ST/u5w0m8divUFdHeCtOn/+MGoaKSFFP8UgY5og7qkCLnZqBYY/SAqUty/W0sxbtRE1xkkCpY+T9Gy/J0/LlFV86LiUaYWZotdr6OqmtQFuFe1dDD7tLEiKA9x99EBFM/Swz3qIyHJp16f/1bjhvmz3EU+KU42gLmxcNQtv6RW5CUGjCbB35jqUW+dG9zbaj8XaIuV4vZCE7ClIgoxT/6ZYSefYnMWDMItKKSVrKCiEYlN3DtneaGzgkDyZFtpqQ/FIuElceSAkM+Y+aVhbaAV3Wp2/oKR7m4TcGOL1GYohc0Y7U4bU1X6ZRjlanSAM5uzoEWXl2luQKUs2KrkncRsh5T8MIU7llCm22CEV1j8IplCV67WD2PPJ38Z
x-ms-exchange-antispam-messagedata: QuPogkxgnKEf42B4RrIV+NBBA9Uj6hNKyFm1TOnz5R2iMnTsAoKZYyMVjv8rXgZAN6TpbT0U3M93t0CwsmeD+ygr4RH/+gPZFtbgerv8tmQc2HX9rkoSS6GFf4iHnfcrDMBvv2r5+CIjB7OKEu1pxQ==
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: c8402b3b-56b3-4b4b-259f-08d7a97beca0
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2020 14:10:01.4583 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5pmpbJImC6HGCU3b5Jem5p7vNbkd5IMDk7Q61Jpum5Mgq2z2OQkc4YVEhom3gnE0fc7YxT9qZoqXwA07nrFHKO9TtcHIdZKnAMYClnR6wLTmesym7cFgPFHPcTUDeB3J
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4071
Subject: [Minios-devel] [UNIKRAFT PATCH v4 4/4] lib/ukboot: Initialize the
 canary value at boot
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>,
 "simon.kuenzer@neclab.eu" <simon.kuenzer@neclab.eu>,
 =?iso-8859-2?Q?Vlad-Andrei_B=C3DOIU_=2878692=29?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>,
 "sharan.santhanam@neclab.eu" <sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2UgaW5pdGlhbGl6ZSB0aGUgY2FuYXJ5IHZhbHVlIHJpZ2h0IGFmdGVyIGFsbCB0aGUgaW50ZXJu
YWwgbGlicmFyaWVzCmhhdmUgbG9hZGVkLgoKU2lnbmVkLW9mZi1ieTogVmxhZC1BbmRyZWkgQmFk
b2l1IDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPgotLS0KIGxpYi91a2Jvb3Qv
Ym9vdC5jIHwgOCArKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQoKZGlm
ZiAtLWdpdCBhL2xpYi91a2Jvb3QvYm9vdC5jIGIvbGliL3VrYm9vdC9ib290LmMKaW5kZXggZThh
MmFjNzkuLmY3ODczYTEyIDEwMDY0NAotLS0gYS9saWIvdWtib290L2Jvb3QuYworKysgYi9saWIv
dWtib290L2Jvb3QuYwpAQCAtNjEsNiArNjEsOSBAQAogI2lmZGVmIENPTkZJR19MSUJVS0xJQlBB
UkFNCiAjaW5jbHVkZSA8dWsvbGlicGFyYW0uaD4KICNlbmRpZiAvKiBDT05GSUdfTElCVUtMSUJQ
QVJBTSAqLworI2lmIENPTkZJR19MSUJVS1NQCisjaW5jbHVkZSA8dWsvc3AuaD4KKyNlbmRpZgog
CiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSBfX3dlYWs7CiAKQEAgLTE5NSw2ICsx
OTgsMTEgQEAgdm9pZCB1a3BsYXRfZW50cnkoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJKCpj
dG9yZm4pKCk7CiAJfQogCisjaWYgQ09ORklHX0xJQlVLU1AKKwlJTklUX1NUQUNLX0NBTkFSWSgp
OworI2VuZGlmCisKKwogI2lmZGVmIENPTkZJR19MSUJVS0xJQlBBUkFNCiAJcmMgPSAoYXJnYyA+
IDEpID8gdWtfbGlicGFyYW1fcGFyc2UoYXJndlswXSwgYXJnYyAtIDEsICZhcmd2WzFdKSA6IDA7
CiAJaWYgKHVubGlrZWx5KHJjIDwgMCkpCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
bmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Tue Feb 04 15:39:10 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 04 Feb 2020 15:39:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1iz0I7-0002FZ-W5; Tue, 04 Feb 2020 15:39:07 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=jKxq=3Y=citrix.com=george.dunlap@srs-us1.protection.inumbo.net>)
 id 1iyzxe-0007up-PW
 for minios-devel@lists.xenproject.org; Tue, 04 Feb 2020 15:17:58 +0000
X-Inumbo-ID: 7f96c09e-4761-11ea-b211-bc764e2007e4
Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 7f96c09e-4761-11ea-b211-bc764e2007e4;
 Tue, 04 Feb 2020 15:17:47 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
 d=citrix.com; s=securemail; t=1580829467;
 h=from:subject:message-id:date:mime-version:to:
 content-transfer-encoding;
 bh=+qYHr2a+nWMnMv7COqofzykKPNZbGHwpPNNx1av8cSc=;
 b=bxYjVN0kgrqpr/E6ZNhVxR0IWHK3oFyPE7cRGbUv9YdCJZ+EH4/hiF5d
 WbCuCrNmdtS3XSbS0HzE3VmGY8RY1dMbeiMx0NG8wissVvZdpD9yLXqvZ
 0To5/2Ey18M4f4Iftw0A20TRfT3xICDgqaJHMMfkbtMzPTUiCSubZq3RE A=;
Authentication-Results: esa6.hc3370-68.iphmx.com;
 dkim=none (message not signed) header.i=none;
 spf=None smtp.pra=george.dunlap@citrix.com;
 spf=Pass smtp.mailfrom=George.Dunlap@citrix.com;
 spf=None smtp.helo=postmaster@mail.citrix.com
Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender
 authenticity information available from domain of
 george.dunlap@citrix.com) identity=pra;
 client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com;
 envelope-from="George.Dunlap@citrix.com";
 x-sender="george.dunlap@citrix.com";
 x-conformance=sidf_compatible
Received-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of
 George.Dunlap@citrix.com designates 162.221.158.21 as
 permitted sender) identity=mailfrom;
 client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com;
 envelope-from="George.Dunlap@citrix.com";
 x-sender="George.Dunlap@citrix.com";
 x-conformance=sidf_compatible; x-record-type="v=spf1";
 x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133
 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4
 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88
 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83
 ip4:168.245.78.127 ~all"
Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender
 authenticity information available from domain of
 postmaster@mail.citrix.com) identity=helo;
 client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com;
 envelope-from="George.Dunlap@citrix.com";
 x-sender="postmaster@mail.citrix.com";
 x-conformance=sidf_compatible
IronPort-SDR: yM3zyDlk76NJbVlPIKMxTKur0sFRmFprkLutOKTfgApBrvKg8nGFlFUpWgzNSbATA1FG/bDzHn
 bE9zXP0ldS8ekJ114ITKFwQsDUXvO8Snt4m4UrC/7zRRu2HPTybJa6o1hTnFE5RThIUkcSaN/E
 bPh05Mnl9g7JTuDbp5kGMdIlFOATEM628J/Cnf4SsIHufUavpFCvANs+2s5IK0jU9zPcebpvtk
 wIw7++vI+FlL5Er7XQP9p7kPX97z5bjOlffALR2rerwNCTuFE/N9QTJx8m9/GmVs2i3ERalmt2
 3Qk=
X-SBRS: 2.7
X-MesageID: 12357228
X-Ironport-Server: esa6.hc3370-68.iphmx.com
X-Remote-IP: 162.221.158.21
X-Policy: $RELAYED
X-IronPort-AV: E=Sophos;i="5.70,402,1574139600"; d="scan'208";a="12357228"
From: George Dunlap <george.dunlap@citrix.com>
Openpgp: preference=signencrypt
Autocrypt: addr=george.dunlap@citrix.com; prefer-encrypt=mutual; keydata=
 mQINBFPqG+MBEACwPYTQpHepyshcufo0dVmqxDo917iWPslB8lauFxVf4WZtGvQSsKStHJSj
 92Qkxp4CH2DwudI8qpVbnWCXsZxodDWac9c3PordLwz5/XL41LevEoM3NWRm5TNgJ3ckPA+J
 K5OfSK04QtmwSHFP3G/SXDJpGs+oDJgASta2AOl9vPV+t3xG6xyfa2NMGn9wmEvvVMD44Z7R
 W3RhZPn/NEZ5gaJhIUMgTChGwwWDOX0YPY19vcy5fT4bTIxvoZsLOkLSGoZb/jHIzkAAznug
 Q7PPeZJ1kXpbW9EHHaUHiCD9C87dMyty0N3TmWfp0VvBCaw32yFtM9jUgB7UVneoZUMUKeHA
 fgIXhJ7I7JFmw3J0PjGLxCLHf2Q5JOD8jeEXpdxugqF7B/fWYYmyIgwKutiGZeoPhl9c/7RE
 Bf6f9Qv4AtQoJwtLw6+5pDXsTD5q/GwhPjt7ohF7aQZTMMHhZuS52/izKhDzIufl6uiqUBge
 0lqG+/ViLKwCkxHDREuSUTtfjRc9/AoAt2V2HOfgKORSCjFC1eI0+8UMxlfdq2z1AAchinU0
 eSkRpX2An3CPEjgGFmu2Je4a/R/Kd6nGU8AFaE8ta0oq5BSFDRYdcKchw4TSxetkG6iUtqOO
 ZFS7VAdF00eqFJNQpi6IUQryhnrOByw+zSobqlOPUO7XC5fjnwARAQABtCRHZW9yZ2UgVy4g
 RHVubGFwIDxkdW5sYXBnQHVtaWNoLmVkdT6JAlcEEwEKAEECGwMFCwkIBwMFFQoJCAsFFgID
 AQACHgECF4ACGQEWIQTXqBy2bTNXPzpOYFimNjwxBZC0bQUCXEowWQUJDCJ7dgAKCRCmNjwx
 BZC0beKvEACJ75YlJXd7TnNHgFyiCJkm/qPeoQ3sFGSDZuZh7SKcdt9+3V2bFEb0Mii1hQaz
 3hRqZb8sYPHJrGP0ljK09k3wf8k3OuNxziLQBJyzvn7WNlE4wBEcy/Ejo9TVBdA4ph5D0YaZ
 nqdsPmxe/xlTFuSkgu4ep1v9dfVP1TQR0e+JIBa/Ss+cKC5intKm+8JxpOploAHuzaPu0L/X
 FapzsIXqgT9eIQeBEgO2hge6h9Jov3WeED/vh8kA7f8c6zQ/gs5E7VGALwsiLrhr0LZFcKcw
 kI3oCCrB/C/wyPZv789Ra8EXbeRSJmTjcnBwHRPjnjwQmetRDD1t+VyrkC6uujT5jmgOBzaj
 KCqZ8PcMAssOzdzQtKmjUQ2b3ICPs2X13xZ5M5/OVs1W3TG5gkvMh4YoHi4ilFnOk+v3/j7q
 65FG6N0JLb94Ndi80HkIOQQ1XVGTyu6bUPaBg3rWK91Csp1682kD/dNVF3FKHrRLmSVtmEQR
 5rK0+VGc/FmR6vd4haKGWIRuPxzg+pBR77avIZpU7C7+UXGuZ5CbHwIdY8LojJg2TuUdqaVj
 yxmEZLOA8rVHipCGrslRNthVbJrGN/pqtKjCClFZHIAYJQ9EGLHXLG9Pj76opfjHij3MpR3o
 pCGAh6KsCrfrsvjnpDwqSbngGyEVH030irSk4SwIqZ7FwA==
Message-ID: <41d5c24f-6807-eee9-eaf0-7f7ecb86886d@citrix.com>
Date: Tue, 4 Feb 2020 15:17:43 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.9.0
MIME-Version: 1.0
To: undisclosed-recipients:;
Content-Language: en-US
X-Mailman-Approved-At: Tue, 04 Feb 2020 15:39:06 +0000
Subject: [Minios-devel] Lars Kurth Funeral, Friday 7 February 11:45am
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QSBmdW5lcmFsIGZvciBMYXJzIEt1cnRoIHdpbGwgYmUgaGVsZCBvbiBGcmlkYXksIDcgRmVicnVh
cnksIGF0IDExOjQ1YW0uCkV2ZXJ5b25lIGlzIHdlbGNvbWUgdG8gYXR0ZW5kLiBMb2NhdGlvbiBh
bmQgZnVydGhlciBpbmZvcm1hdGlvbiBoZXJlOgpodHRwOi8vbGFyc2t1cnRoLm11Y2hsb3ZlZC5j
b20KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlv
cy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 05 10:52:28 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 05 Feb 2020 10:52:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izIIE-0008Cr-KG; Wed, 05 Feb 2020 10:52:26 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=I4bQ=3Z=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1izIID-0008Ch-DM
 for minios-devel@lists.xen.org; Wed, 05 Feb 2020 10:52:25 +0000
X-Inumbo-ID: 96f13e00-4805-11ea-90c7-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 96f13e00-4805-11ea-90c7-12813bfff9fa;
 Wed, 05 Feb 2020 10:52:23 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id E39654008D;
 Wed,  5 Feb 2020 11:52:22 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Wed,  5 Feb 2020 11:52:20 +0100
Message-Id: <20200205105222.18469-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBDNNL PATCH 0/2] Initial port of Intel's
 DNNL
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhpcyBpcyBvdXIgaW5pdGlhbCBwb3J0IG9mIEludGVsJ3MgRGVlcCBOZXVyYWwgTmV0d29yayBM
aWJyYXJ5IChETk5MKSB0byBVbmlrcmFmdAoKRmVsaXBlIEh1aWNpICgyKToKICBJbnRyb2R1Y2Ug
bGlicmFyeSBza2VsZXRvbgogIEFkZCBNYWtlZmlsZS51ayBhbmQgcGF0Y2hlcwoKIC5naXRpZ25v
cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNyArKwogQ09ESU5HX1NU
WUxFLm1kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIENPTlRSSUJVVElO
Ry5tZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBDT1BZSU5HLm1kICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzkgKysrCiBDb25maWcudWsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKwogTUFJTlRBSU5FUlMubWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIE1ha2VmaWxlLnVrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyMSArKysrKysrKysrKysrKysrKysKIFJF
QURNRS5tZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArCiBpbmNs
dWRlL2NwdWlkLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNTggKysrKysrKysr
CiBpbmNsdWRlL2RubmxfY29uZmlnLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgODQgKysr
KysKIGluY2x1ZGUvZG5ubF92ZXJzaW9uLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAzNiAr
KwogLi4uMDAxLXByZXZlbnQtY2xvYmJlcmluZy1iYXJyaWVyLW1hY3JvLnBhdGNoIHwgIDExICsK
IHBhdGNoZXMvMDAwMi1wcmV2ZW50LWNsb2JiZXJpbmctQi1tYWNyby5wYXRjaCB8ICAxMSArCiAu
Li4vMDAwMy1wcmV2ZW50LWNsb2JiZXJpbmctbm9wLW1hY3JvLnBhdGNoICAgfCAgMTEgKwogMTQg
ZmlsZXMgY2hhbmdlZCwgNzQ2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCAuZ2l0
aWdub3JlCiBjcmVhdGUgbW9kZSAxMDA2NDQgQ09ESU5HX1NUWUxFLm1kCiBjcmVhdGUgbW9kZSAx
MDA2NDQgQ09OVFJJQlVUSU5HLm1kCiBjcmVhdGUgbW9kZSAxMDA2NDQgQ09QWUlORy5tZAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IENvbmZpZy51awogY3JlYXRlIG1vZGUgMTAwNjQ0IE1BSU5UQUlORVJT
Lm1kCiBjcmVhdGUgbW9kZSAxMDA2NDQgTWFrZWZpbGUudWsKIGNyZWF0ZSBtb2RlIDEwMDY0NCBS
RUFETUUubWQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2NwdWlkLmgKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBpbmNsdWRlL2RubmxfY29uZmlnLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRl
L2RubmxfdmVyc2lvbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy8wMDAxLXByZXZlbnQt
Y2xvYmJlcmluZy1iYXJyaWVyLW1hY3JvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hl
cy8wMDAyLXByZXZlbnQtY2xvYmJlcmluZy1CLW1hY3JvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2
NDQgcGF0Y2hlcy8wMDAzLXByZXZlbnQtY2xvYmJlcmluZy1ub3AtbWFjcm8ucGF0Y2gKCi0tIAoy
LjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpN
aW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRl
dmVs

From minios-devel-bounces@lists.xenproject.org Wed Feb 05 10:52:31 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 05 Feb 2020 10:52:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izIIJ-0008Da-MT; Wed, 05 Feb 2020 10:52:31 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=I4bQ=3Z=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1izIII-0008DI-EP
 for minios-devel@lists.xen.org; Wed, 05 Feb 2020 10:52:30 +0000
X-Inumbo-ID: 97e987f4-4805-11ea-90c7-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 97e987f4-4805-11ea-90c7-12813bfff9fa;
 Wed, 05 Feb 2020 10:52:25 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id B110841FB6;
 Wed,  5 Feb 2020 11:52:24 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Wed,  5 Feb 2020 11:52:21 +0100
Message-Id: <20200205105222.18469-2-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200205105222.18469-1-felipe.huici@neclab.eu>
References: <20200205105222.18469-1-felipe.huici@neclab.eu>
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBDNNL PATCH 1/2] Introduce library
 skeleton
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2UgdXNlIHRoZSBCU0QtMy1DbGF1c2UgbGljZW5zZSBmb3IgdGhpcyBsaWJyYXJ5IGdsdWUgY29k
ZS4KClNpZ25lZC1vZmYtYnk6IEZlbGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4K
LS0tCiAuZ2l0aWdub3JlICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKysrKysKIENP
RElOR19TVFlMRS5tZCB8ICA0ICsrKysKIENPTlRSSUJVVElORy5tZCB8ICA0ICsrKysKIENPUFlJ
TkcubWQgICAgICB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog
Q29uZmlnLnVrICAgICAgIHwgMTcgKysrKysrKysrKysrKysrKysKIE1BSU5UQUlORVJTLm1kICB8
IDEwICsrKysrKysrKysKIFJFQURNRS5tZCAgICAgICB8IDEzICsrKysrKysrKysrKysKIDcgZmls
ZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCAuZ2l0aWdu
b3JlCiBjcmVhdGUgbW9kZSAxMDA2NDQgQ09ESU5HX1NUWUxFLm1kCiBjcmVhdGUgbW9kZSAxMDA2
NDQgQ09OVFJJQlVUSU5HLm1kCiBjcmVhdGUgbW9kZSAxMDA2NDQgQ09QWUlORy5tZAogY3JlYXRl
IG1vZGUgMTAwNjQ0IENvbmZpZy51awogY3JlYXRlIG1vZGUgMTAwNjQ0IE1BSU5UQUlORVJTLm1k
CiBjcmVhdGUgbW9kZSAxMDA2NDQgUkVBRE1FLm1kCgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBi
Ly5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVkMmZkMwot
LS0gL2Rldi9udWxsCisrKyBiLy5naXRpZ25vcmUKQEAgLTAsMCArMSwyNyBAQAorKi5kZXBlbmQK
KyoubworKi5hCisqLmQKKyouc28KKyoub3JpZworKi5yZWoKKyouYmFrCisqLnN3cAorKn4KKywq
CitcIypcIworLlwjKgorXCNfKlwjCisuXCNfKgorIS5naXRpZ25vcmUKKy4qCisKKyMgZ251IGds
b2JhbCBmaWxlcworR1BBVEgKK0dSVEFHUworR1NZTVMKK0dUQUdTCisKKyMgY3Njb3BlIGZpbGVz
Citjc2NvcGUuKgorbmNzY29wZS4qCmRpZmYgLS1naXQgYS9DT0RJTkdfU1RZTEUubWQgYi9DT0RJ
TkdfU1RZTEUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTczMDA0MQot
LS0gL2Rldi9udWxsCisrKyBiL0NPRElOR19TVFlMRS5tZApAQCAtMCwwICsxLDQgQEAKK0NvZGlu
ZyBTdHlsZQorPT09PT09PT09PT09CisKK1BsZWFzZSByZWZlciB0byB0aGUgYENPRElOR19TVFlM
RS5tZGAgZmlsZSBpbiB0aGUgbWFpbiBVbmlrcmFmdCByZXBvc2l0b3J5LgpkaWZmIC0tZ2l0IGEv
Q09OVFJJQlVUSU5HLm1kIGIvQ09OVFJJQlVUSU5HLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjVmNTVlY2EKLS0tIC9kZXYvbnVsbAorKysgYi9DT05UUklCVVRJTkcubWQK
QEAgLTAsMCArMSw0IEBACitDb250cmlidXRpbmcgdG8gVW5pa3JhZnQKKz09PT09PT09PT09PT09
PT09PT09PT09CisKK1BsZWFzZSByZWZlciB0byB0aGUgYENPTlRSSUJVVElORy5tZGAgZmlsZSBp
biB0aGUgbWFpbiBVbmlrcmFmdCByZXBvc2l0b3J5LgpkaWZmIC0tZ2l0IGEvQ09QWUlORy5tZCBi
L0NPUFlJTkcubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE2MmRlMwot
LS0gL2Rldi9udWxsCisrKyBiL0NPUFlJTkcubWQKQEAgLTAsMCArMSwzOSBAQAorTGljZW5zZQor
PT09PT09PQorCitVbmlrcmFmdCBETk5MIHdyYXBwZXJzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5zIHdyYXBwZXIgY29kZSB0byBidWlsZCBETk5M
IHdpdGggVW5pa3JhZnQuCitFYWNoIEMgY29kZSBmaWxlIGluIHRoaXMgcmVwb3NpdG9yeSBzaG91
bGQgZGVjbGFyZSB3aG8gaXMgdGhlCitjb3B5cmlnaHQgb3duZXIgYW5kIHVuZGVyIHdoaWNoIHRl
cm1zIGFuZCBjb25kaXRpb25zIHRoZSBjb2RlIGlzCitsaWNlbnNlZC4gSWYgc3VjaCBhIGxpY2Vu
Y2Ugbm90ZSBpcyBtaXNzaW5nLCB0aGUgZm9sbG93aW5nIGNvcHlyaWdodAorbm90aWNlIHdpbGwg
YXBwbHk6CisKKwlDb3B5cmlnaHQgKGMpIDIwMTksIE5FQyBFdXJvcGUgTHRkLiwgTkVDIENvcnBv
cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorCisJUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisJbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisJ
YXJlIG1ldDoKKworCTEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisJICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCTIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisJICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorCSAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisJMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJp
Z2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cworCSAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisJICAgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKwor
CVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMgIkFTIElTIgorCUFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKwlJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RQorCUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUiBDT05UUklCVVRPUlMgQkUKKwlMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisJQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKwlTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKwlJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorCUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisJQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUKKwlQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwpkaWZmIC0tZ2l0IGEvQ29uZmln
LnVrIGIvQ29uZmlnLnVrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhNDkw
ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Db25maWcudWsKQEAgLTAsMCArMSwxNyBAQAorbWVudWNv
bmZpZyBMSUJETk5MCisgICAgYm9vbCAiZG5ubCAtIEludGVsIE1hdGggS2VybmVsIExpYnJhcnkg
Zm9yIEROTnMiCisgICAgZGVmYXVsdCBuCisgICAgc2VsZWN0IExJQk5FV0xJQkMKKyAgICBzZWxl
Y3QgTElCQ09NUElMRVJfUlQKKyAgICBzZWxlY3QgVUtTWVNJTkZPCisgICAgc2VsZWN0IExJQkNY
WAorICAgIHNlbGVjdCBMSUJDWFhBQkkKKyAgICBzZWxlY3QgTElCVU5XSU5ECisgICAgc2VsZWN0
IExJQlBUSFJFQURfRU1CRURERUQKKyAgICBzZWxlY3QgQ1hYX1RIUkVBRFMKKyAgICBzZWxlY3Qg
TElCVUtNTUFQCisgICAgc2VsZWN0IExJQlBPU0lYX0xJQkRMCisgICAgc2VsZWN0IExJQlBPU0lY
X1NZU0lORk8KKyAgICBzZWxlY3QgTElCQVJNX0lOVFJJTlNJQ1MgaWYgQVJDSF9BUk1fNjQKKyAg
ICBzZWxlY3QgTElCSU5URUxfSU5UUklOU0lDUyBpZiBBUkNIX3g4Nl82NAorCmRpZmYgLS1naXQg
YS9NQUlOVEFJTkVSUy5tZCBiL01BSU5UQUlORVJTLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmFmZDQ5OWEKLS0tIC9kZXYvbnVsbAorKysgYi9NQUlOVEFJTkVSUy5tZApA
QCAtMCwwICsxLDEwIEBACitNYWludGFpbmVycyBMaXN0Cis9PT09PT09PT09PT09PT09CisKK0Zv
ciBub3RlcyBvbiBob3cgdG8gcmVhZCB0aGlzIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8g
YE1BSU5UQUlORVJTLm1kYCBpbgordGhlIG1haW4gVW5pa3JhZnQgcmVwb3NpdG9yeS4KKworCUxJ
QkROTkwtVU5JS1JBRlQKKwlNOglGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+
CisJTDoJbWluaW9zLWRldmVsQGxpc3RzLnhlbi5vcmcKKwlGOiAqCmRpZmYgLS1naXQgYS9SRUFE
TUUubWQgYi9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA0
ZjA3ZgotLS0gL2Rldi9udWxsCisrKyBiL1JFQURNRS5tZApAQCAtMCwwICsxLDEzIEBACitsaWJk
bm5sIGZvciBVbmlrcmFmdAorPT09PT09PT09PT09PT09PT09PQorVGhpcyBpcyBhIHBvcnQgb2Yg
SW50ZWwncyBETk5MIHRvIFVuaWtyYWZ0LiBUaGUgcG9ydCBoYXMgYSBudW1iZXIgb2YKK2RlcGVu
ZGVuY2llcy4gVG8gbWVldCB0aGVtLCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSB0aGUgZm9sbG93aW5n
IGxpYnMKK2FkZGVkIHRvIHlvdXIgTElCUyB2YXJpYWJsZSBpbiB5b3VyIGFwcCdzIE1ha2VmaWxl
OgorCQkJCQkJCisgKiBDWFggc3RhbmRhcmQgbGlicmFyeSwgZS5nLiBgbGlidW53aW5kYCwgYGNv
bXBpbGVyLXJ0YCwgYGxpYmN4eGFiaWAsCisgIGBsaWJjeHhgCisgICogYGxpYmNgLCBlLmcuIGBu
ZXdsaWJgCisgICogYW4gaW50cmluc2ljcyBwYWNrYWdlLCBlLmcuLCBgaW50ZWwtaW50cmluc2lj
c2Agb3IgYGFybS1pbnRyaW5zaWNzYAorICAKK1BsZWFzZSByZWZlciB0byB0aGUgYFJFQURNRS5t
ZGAgYXMgd2VsbCBhcyB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgYGRvYy9gCitzdWJkaXJlY3Rv
cnkgb2YgdGhlIG1haW4gdW5pa3JhZnQgcmVwb3NpdG9yeS4KLS0gCjIuMjAuMQoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWls
aW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 05 10:52:36 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 05 Feb 2020 10:52:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izIIO-0008Eg-O8; Wed, 05 Feb 2020 10:52:36 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=I4bQ=3Z=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1izIIN-0008ES-Dj
 for minios-devel@lists.xen.org; Wed, 05 Feb 2020 10:52:35 +0000
X-Inumbo-ID: 984543dc-4805-11ea-90c7-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 984543dc-4805-11ea-90c7-12813bfff9fa;
 Wed, 05 Feb 2020 10:52:25 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 4B2AF41FBA;
 Wed,  5 Feb 2020 11:52:25 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Wed,  5 Feb 2020 11:52:22 +0100
Message-Id: <20200205105222.18469-3-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200205105222.18469-1-felipe.huici@neclab.eu>
References: <20200205105222.18469-1-felipe.huici@neclab.eu>
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBDNNL PATCH 2/2] Add Makefile.uk and
 patches
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QWRkIGRubmwgcG9ydCBNYWtlZmlsZS51ayBhbmQgY29ycmVzcG9uZGluZyBwYXRjaGVzCgpTaWdu
ZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Ci0tLQogTWFr
ZWZpbGUudWsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIxICsrKysrKysr
KysrKysrKysrKwogaW5jbHVkZS9jcHVpZC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgMTU4ICsrKysrKysrKwogaW5jbHVkZS9kbm5sX2NvbmZpZy5oICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgIDg0ICsrKysrCiBpbmNsdWRlL2RubmxfdmVyc2lvbi5oICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgMzYgKysKIC4uLjAwMS1wcmV2ZW50LWNsb2JiZXJpbmctYmFycmllci1tYWNy
by5wYXRjaCB8ICAxMSArCiBwYXRjaGVzLzAwMDItcHJldmVudC1jbG9iYmVyaW5nLUItbWFjcm8u
cGF0Y2ggfCAgMTEgKwogLi4uLzAwMDMtcHJldmVudC1jbG9iYmVyaW5nLW5vcC1tYWNyby5wYXRj
aCAgIHwgIDExICsKIDcgZmlsZXMgY2hhbmdlZCwgNjMyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBNYWtlZmlsZS51awogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvY3B1aWQu
aAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZG5ubF9jb25maWcuaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IGluY2x1ZGUvZG5ubF92ZXJzaW9uLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVz
LzAwMDEtcHJldmVudC1jbG9iYmVyaW5nLWJhcnJpZXItbWFjcm8ucGF0Y2gKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBwYXRjaGVzLzAwMDItcHJldmVudC1jbG9iYmVyaW5nLUItbWFjcm8ucGF0Y2gKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAwMDMtcHJldmVudC1jbG9iYmVyaW5nLW5vcC1tYWNy
by5wYXRjaAoKZGlmZiAtLWdpdCBhL01ha2VmaWxlLnVrIGIvTWFrZWZpbGUudWsKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIyNWVlNgotLS0gL2Rldi9udWxsCisrKyBiL01h
a2VmaWxlLnVrCkBAIC0wLDAgKzEsMzIxIEBACisjICBsaWJkbm5sIE1ha2VmaWxlLnVrCisjCisj
ICBBdXRob3JzOiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CisjCisjICAg
Q29weXJpZ2h0IChjKSAyMDIwLCBORUMgRXVyb3BlIEx0ZC4sIE5FQyBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyAgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjICBhcmUg
bWV0OgorIworIyAgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAgMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0
aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cworIyAgICAgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyMgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisjCisjICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKyMgIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyMgIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFCisjICBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFCisjICBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjICBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyAgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjICBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyAgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCisjICBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyMKKyMgIFRISVMgSEVBREVSIE1BWSBOT1QgQkUgRVhUUkFDVEVEIE9S
IE1PRElGSUVEIElOIEFOWSBXQVkuCisjCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIExp
YnJhcnkgcmVnaXN0cmF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworJChldmFsICQoY2Fs
bCBhZGRsaWJfcyxsaWJkbm5sLCQoQ09ORklHX0xJQkROTkwpKSkKKworaWZlcSAoJChDT05GSUdf
TElCRE5OTCkseSkKK2lmbmVxICgkKENPTkZJR19MSUJDT01QSUxFUl9SVCkseSkKKyQoZXJyb3Ig
UmVxdWlyZSBsaWJjb21waWxlcl9ydCkKK2VuZGlmCitlbmRpZgorCisjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIworIyBTb3VyY2VzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworTElCRE5OTF9WRVJT
SU9OPTEuMgorTElCRE5OTF9VUkw9aHR0cHM6Ly9naXRodWIuY29tL2ludGVsL21rbC1kbm4vYXJj
aGl2ZS92JChMSUJETk5MX1ZFUlNJT04pLnppcAorTElCRE5OTF9QQVRDSERJUj0kKExJQkROTkxf
QkFTRSkvcGF0Y2hlcworJChldmFsICQoY2FsbCBmZXRjaCxsaWJkbm5sLCQoTElCRE5OTF9VUkwp
KSkKKyQoZXZhbCAkKGNhbGwgcGF0Y2gsbGliZG5ubCwkKExJQkROTkxfUEFUQ0hESVIpLG1rbC1k
bm4tJChMSUJETk5MX1ZFUlNJT04pKSkKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgSGVs
cGVycworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK0xJQkROTkxfU1VCRElSPW1rbC1kbm4tJChM
SUJETk5MX1ZFUlNJT04pCitMSUJETk5MX1NSQz0kKExJQkROTkxfT1JJR0lOKS8kKExJQkROTkxf
U1VCRElSKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBMaWJyYXJ5IGluY2x1ZGVzCisj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworTElCTUtMLUlOQ0xVREVTICs9IC1JJChMSUJETk5MX1NS
QykvaW5jbHVkZSAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAtSSQoTElCRE5OTF9TUkMpL3Ny
YyAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgLUkkKExJQkROTkxfU1JDKS9zcmMvY3B1
ICAgICAgXAorICAgICAgICAgICAgICAgICAgIC1JJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1t
IFwKKyAgICAgICAgICAgICAgICAgICAtSSQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24gICBcCisg
ICAgICAgICAgICAgICAgICAgLUkkKExJQkROTkxfQkFTRSkvaW5jbHVkZSAgICAgXAorCitDSU5D
TFVERVMtJChDT05GSUdfTElCRE5OTCkgKz0gJChMSUJNS0wtSU5DTFVERVMpCitDWFhJTkNMVURF
Uy0kKENPTkZJR19MSUJETk5MKSArPSAkKExJQk1LTC1JTkNMVURFUykKKworIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMKKyMgR2xvYmFsIGZsYWdzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworTElC
RE5OTC1DT05GSUdfRkxBR1MgPSAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAgICAgICAgXAor
ICAgICAgICAgICAgICAgICAgICAgICAtREROTkxfRU5BQkxFX0NPTkNVUlJFTlRfRVhFQz1PRkYg
XAorICAgICAgICAgICAgICAgICAgICAgICAtREROTkxfTElCUkFSWV9UWVBFPVNUQVRJQyAJIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgLURETk5MX1RIUkVBRElORz1PTVA6Q09NUCAJIFwKKyAg
ICAgICAgICAgICAgICAgICAgICAgLURETk5MX1VTRV9NS0w9Tk9ORSAJCSBcCisgICAgICAgICAg
ICAgICAgICAgICAgIC1ERE5OTF9WRVJCT1NFPU9OIAkJIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgLURXSVRIX0VYQU1QTEU9T0ZGIAkJIFwKKyAgICAgICAgICAgICAgICAgICAgICAgLURXSVRI
X1RFU1Q9T0ZGCQkJIFwKKwkJICAgICAgIC1ERE5OTF9FTkFCTEVfSklUX1BST0ZJTElORz1PRkYK
KworTElCRE5OTF9DRkxBR1MteSAgICAgICs9ICAkKExJQkROTkwtQ09ORklHX0ZMQUdTKQorTElC
RE5OTF9DWFhGTEFHUy15ICAgICs9ICAkKExJQkROTkwtQ09ORklHX0ZMQUdTKQorCisjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIworIyBTdXBwcmVzcyBGbGFncworIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKK0xJQkROTkxfU1VQUFJFU1NfRkxBR1MteSArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25vLXVudXNlZC1idXQt
c2V0LXBhcmFtZXRlciAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25vLXVu
a25vd24tcHJhZ21hcyAgICAgICAgICAgICAgIFwKKwkJCSAgICAtV25vLWV4dHJhICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKwkJCSAgICAtV25vLWF0dHJpYnV0ZXMJCSAgICAgICBcCisJCQkg
ICAgLVduby1wYXJlbnRoZXNlcwkJICAgICAgIFwKKwkJCSAgICAtZmNvbXBhcmUtZGVidWctc2Vj
b25kICAjIHN1cHJlc3Mgbm90ZXMKKworTElCRE5OTF9DRkxBR1MteSAgICs9ICQoTElCRE5OTF9T
VVBQUkVTU19GTEFHUy15KSAtV25vLWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uCitMSUJE
Tk5MX0NYWEZMQUdTLXkgKz0gJChMSUJETk5MX1NVUFBSRVNTX0ZMQUdTLXkpCisKKyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjCisjIFNvdXJjZXMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL2RubmxfZGVidWcuY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL3NjcmF0Y2hwYWQuY3Bw
CitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL2JhdGNoX25vcm1h
bGl6YXRpb24uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9u
L2JpbmFyeS5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24v
bHJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NvbW1vbi9zaHVm
ZmxlLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NvbW1vbi9jb252
b2x1dGlvbi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24v
cHJpbWl0aXZlX2V4ZWNfdHlwZXMuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JD
KS9zcmMvY29tbW9uL21lbW9yeS5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jb21tb24vcG9vbGluZy5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jb21tb24vaW5uZXJfcHJvZHVjdC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jb21tb24vdmVyYm9zZS5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jb21tb24vdXRpbHMuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxf
U1JDKS9zcmMvY29tbW9uL3ByaW1pdGl2ZV9hdHRyLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChM
SUJETk5MX1NSQykvc3JjL2NvbW1vbi9wcmltaXRpdmVfaXRlcmF0b3IuY3BwCitMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL2VuZ2luZS5jcHAKK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vcXVlcnkuY3BwCitMSUJETk5MX1NSQ1Mt
eSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL3Jlb3JkZXIuY3BwCitMSUJETk5MX1NSQ1Mt
eSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL3N1bS5jcHAKK0xJQkROTkxfU1JDUy15ICs9
ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vY29udm9sdXRpb25fcGQuY3BwCitMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL21lbW9yeV9kZXNjX3dyYXBwZXIuY3Bw
CitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL3ByaW1pdGl2ZS5j
cHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vcm5uLmNwcAor
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NvbW1vbi9tYXRtdWwuY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL3Jlc2FtcGxpbmcuY3Bw
CitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL2xheWVyX25vcm1h
bGl6YXRpb24uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9u
L2NvbmNhdC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24v
cHJpbWl0aXZlX2hhc2hpbmcuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY29tbW9uL2RubmxfZGVidWdfYXV0b2dlbmVyYXRlZC5jcHAKK0xJQkROTkxfU1JDUy15ICs9
ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vZGVjb252b2x1dGlvbi5jcHAKK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vc29mdG1heC5jcHAKK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vc3RyZWFtLmNwcAorTElCRE5OTF9TUkNT
LXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NvbW1vbi9wcmltaXRpdmVfZGVzYy5jcHAKK0xJQkRO
TkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vZWx0d2lzZS5jcHAKK0xJQkRO
TkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vbWVtb3J5X3plcm9fcGFkLmNw
cAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfdW5pX3RiYl9i
YXRjaF9ub3JtYWxpemF0aW9uLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykv
c3JjL2NwdS9qaXRfYXZ4NTEyX2NvcmVfZjMyX3dpbm9fY29udl80eDMuY3BwCitMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW1fY29udm9sdXRpb24uY3BwCitMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L25jaHdfcG9vbGluZy5jcHAKK0xJ
QkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9kd19jb252b2x1
dGlvbi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X2Jh
dGNoX25vcm1hbGl6YXRpb25fbGlzdC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9T
UkMpL3NyYy9jcHUvaml0X3VuaV9iYXRjaF9ub3JtYWxpemF0aW9uLmNwcAorTElCRE5OTF9TUkNT
LXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfdW5pX2VsdHdpc2UuY3BwCitMSUJETk5M
X1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L3JlZl9zaHVmZmxlLmNwcAorTElCRE5O
TF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9jcHVfcmVvcmRlci5jcHAKK0xJQkRO
TkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9yZW9yZGVyX3V0aWxz
LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfYXZ4Ml9j
b252b2x1dGlvbi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUv
aml0X2F2eDUxMl9jb3JlX3g4czhzMzJ4XzF4MV9jb252X2tlcm5lbC5jcHAKK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X2NvbmNhdC5jcHAKK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X2JhdGNoX25vcm1hbGl6YXRpb25fdXRp
bHMuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1
MTJfY29yZV94OHM4czMyeF9jb252X2tlcm5lbC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElC
RE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9iYXRjaF9ub3JtYWxpemF0aW9uX3M4LmNwcAorTElC
RE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9jcHVfbGF5ZXJfbm9ybWFsaXph
dGlvbl9saXN0LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9j
cHVfcmVkdWNlci5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUv
cmVmX2VsdHdpc2UuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1
L25zcGNfYmF0Y2hfbm9ybWFsaXphdGlvbi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jcHUvaml0X2F2eDUxMl9jb21tb25fbHJuLmNwcAorTElCRE5OTF9TUkNTLXkg
Kz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZWZfY29udm9sdXRpb24uY3BwCitMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29yZV94OHM4czMyeF8x
eDFfY29udm9sdXRpb24uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMv
Y3B1L2ppdF9hdng1MTJfY29yZV9mMzJfd2lub19jb252XzJ4My5jcHAKK0xJQkROTkxfU1JDUy15
ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbV94OHM4czMyeF9jb252b2x1dGlvbi5jcHAK
K0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbV9jb252b2x1dGlv
bl91dGlscy5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1
X2VsdHdpc2VfbGlzdC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9j
cHUvaml0X3VuaV9sYXllcl9ub3JtYWxpemF0aW9uLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChM
SUJETk5MX1NSQykvc3JjL2NwdS9qaXRfc3NlNDFfMXgxX2NvbnZfa2VybmVsX2YzMi5jcHAKK0xJ
QkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9scm4uY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29tbW9u
X2NvbnZfd2lub2dyYWRfa2VybmVsX2YzMi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jcHUvaml0X2F2eDUxMl9jb3JlX2JmMTZfZHdfY29udl9rZXJuZWwuY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9zc2U0MV9jb252X2tl
cm5lbF9mMzIuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2pp
dF9hdng1MTJfY29tbW9uX2NvbnZfa2VybmVsLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJE
Tk5MX1NSQykvc3JjL2NwdS9qaXRfYXZ4NTEyX2NvcmVfYmYxNl9jb252b2x1dGlvbi5jcHAKK0xJ
QkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDUxMl9jb3JlX3g4
czhzMzJ4X2NvbnZvbHV0aW9uLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykv
c3JjL2NwdS9qaXRfYXZ4NTEyX2NvcmVfYmYxNl9zdW0uY3BwCitMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY3B1L2NwdV9zaHVmZmxlX2xpc3QuY3BwCitMSUJETk5MX1NSQ1Mt
eSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF91bmlfZWx0d2lzZV9pbmplY3Rvci5jcHAK
K0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9wb29saW5n
LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9jcHVfZGVjb252
b2x1dGlvbl9saXN0LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2Nw
dS9yZWZfYmF0Y2hfbm9ybWFsaXphdGlvbi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jcHUvaml0X2F2eDUxMl9jb3JlX3g4czhzMzJ4X2RlY29udm9sdXRpb24uY3Bw
CitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2NwdV9iYXJyaWVyLmNw
cAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tX2JmMTZfaW5u
ZXJfcHJvZHVjdC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUv
aml0X2F2eDJfeDhzOHMzMnhfY29udl9rZXJuZWwuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJ
QkROTkxfU1JDKS9zcmMvY3B1L2dlbW1feDhzOHMzMnhfaW5uZXJfcHJvZHVjdC5jcHAKK0xJQkRO
TkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvYmZsb2F0MTYuY3BwCitMSUJETk5M
X1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29yZV9iZjE2X2Nv
bnZfa2VybmVsLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9q
aXRfYXZ4NTEyX2NvcmVfZjMyX3dpbm9fY29udl80eDNfa2VybmVsLmNwcAorTElCRE5OTF9TUkNT
LXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tX2JmMTZfY29udm9sdXRpb24uY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29yZV9i
ZjE2XzF4MV9jb252X2tlcm5lbC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvc2ltcGxlX2NvbmNhdC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9T
UkMpL3NyYy9jcHUvaml0X2F2eDJfMXgxX2NvbnZvbHV0aW9uLmNwcAorTElCRE5OTF9TUkNTLXkg
Kz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfc3NlNDFfY29udm9sdXRpb24uY3BwCitMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2NwdV9jb252b2x1dGlvbl9saXN0
LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9jcHVfc29mdG1h
eF9saXN0LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRf
dHJhbnNwb3NlX3NyY191dGlscy5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvaml0X2F2eDUxMl9jb3JlX2JmMTZfMXgxX2NvbnZvbHV0aW9uLmNwcAorTElCRE5O
TF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9uaHdjX3Bvb2xpbmcuY3BwCitMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2NwdV9wb29saW5nX2xpc3QuY3Bw
CitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF91bmlfcmVvcmRl
ci5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDJf
eDhzOHMzMnhfMXgxX2NvbnZvbHV0aW9uLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9jcHVfaW5uZXJfcHJvZHVjdF9saXN0LmNwcAorTElCRE5OTF9TUkNTLXkg
Kz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9zaW1wbGVfc3VtLmNwcAorTElCRE5OTF9TUkNTLXkg
Kz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfc3NlNDFfMXgxX2NvbnZvbHV0aW9uLmNwcAor
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfdW5pX2k4aThfcG9v
bGluZy5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2
eDUxMl9jb21tb25fY29udm9sdXRpb25fd2lub2dyYWQuY3BwCitMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29yZV91OHM4czMyeF93aW5vX2NvbnZv
bHV0aW9uLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZWZf
aW5uZXJfcHJvZHVjdC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9j
cHUvY3B1X2xybl9saXN0LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3Jj
L2NwdS9uY3NwX2JhdGNoX25vcm1hbGl6YXRpb24uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJ
QkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdngyX2NvbnZfa2VybmVsX2YzMi5jcHAKK0xJQkROTkxf
U1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9zb2Z0bWF4LmNwcAorTElC
RE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZWZfc29mdG1heC5jcHAKK0xJ
QkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvcmVmX3Bvb2xpbmcuY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF91bmlfZHdfY29udl9r
ZXJuZWxfZjMyLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9q
aXRfYXZ4Ml8xeDFfY29udl9rZXJuZWxfZjMyLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJE
Tk5MX1NSQykvc3JjL2NwdS9qaXRfYXZ4NTEyX2NvbW1vbl8xeDFfY29udl9rZXJuZWwuY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW1faW5uZXJfcHJvZHVj
dF91dGlscy5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0
X2F2eDJfeDhzOHMzMnhfMXgxX2NvbnZfa2VybmVsLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChM
SUJETk5MX1NSQykvc3JjL2NwdS9yZWZfbGF5ZXJfbm9ybWFsaXphdGlvbi5jcHAKK0xJQkROTkxf
U1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDJfeDhzOHMzMnhfY29udm9s
dXRpb24uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9h
dng1MTJfY29tbW9uX2NvbnZvbHV0aW9uLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9qaXRfYXZ4NTEyX2NvbW1vbl8xeDFfY29udm9sdXRpb24uY3BwCitMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2NwdV9pc2FfdHJhaXRzLmNwcAor
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZWZfZGVjb252b2x1dGlv
bi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X3N1bS5j
cHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X2VuZ2luZS5j
cHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9wb29s
X2tlcm5lbC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2Vt
bV9pbm5lcl9wcm9kdWN0LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3Jj
L2NwdS9yZWZfbHJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2Nw
dS9qaXRfdW5pX2xybl9rZXJuZWxfZjMyLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9yZXNhbXBsaW5nL3NpbXBsZV9yZXNhbXBsaW5nLmNwcAorTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZXNhbXBsaW5nL3JlZl9yZXNhbXBsaW5n
LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZXNhbXBsaW5n
L2NwdV9yZXNhbXBsaW5nX2xpc3QuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JD
KS9zcmMvY3B1L2JpbmFyeS9jcHVfYmluYXJ5X2xpc3QuY3BwCitMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY3B1L2JpbmFyeS9qaXRfdW5pX2JpbmFyeS5jcHAKK0xJQkROTkxf
U1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvYmluYXJ5L3JlZl9iaW5hcnkuY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2JpbmFyeS9qaXRfdW5pX2k4
aThfYmluYXJ5LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9t
YXRtdWwvZ2VtbV94OHM4czMyeF9tYXRtdWwuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkRO
TkxfU1JDKS9zcmMvY3B1L21hdG11bC9jcHVfbWF0bXVsX2xpc3QuY3BwCitMSUJETk5MX1NSQ1Mt
eSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L21hdG11bC9nZW1tX2JmMTZfbWF0bXVsLmNwcAor
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9tYXRtdWwvZ2VtbV9mMzJf
bWF0bXVsLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9tYXRt
dWwvcmVmX21hdG11bC5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9j
cHUvcm5uL3Jubl91dGlscy5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3Ny
Yy9jcHUvcm5uL2NlbGxfZ3J1X2xici5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9T
UkMpL3NyYy9jcHUvcm5uL3JlZl9ybm4uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxf
U1JDKS9zcmMvY3B1L3Jubi9yZWZfcG9zdGdlbW1fcm5uLmNwcAorTElCRE5OTF9TUkNTLXkgKz0g
JChMSUJETk5MX1NSQykvc3JjL2NwdS9ybm4vY3B1X3Jubl9saXN0LmNwcAorTElCRE5OTF9TUkNT
LXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9ybm4vcmVmX3Bvc3RnZW1tX2xzdG0uY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L3Jubi9yZWZfcG9zdGdlbW1f
Z3J1X2xici5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvcm5u
L3JlZl9wb3N0Z2VtbV9ncnUuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY3B1L3Jubi9jZWxsX2dydS5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvcm5uL2NlbGxfY29tbW9uLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9qaXRfdXRpbHMvaml0X3V0aWxzLmNwcAorTElCRE5OTF9TUkNTLXkgKz0g
JChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfdXRpbHMvaml0cHJvZmlsaW5nL2ppdHByb2ZpbGlu
Zy5jCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF91dGlscy9s
aW51eF9wZXJmL2xpbnV4X3BlcmYuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JD
KS9zcmMvY3B1L2dlbW0vZ2VtbV9pbmZvLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9nZW1tL2dlbW1fcGFjay5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElC
RE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9nZW1tX2RyaXZlci5jcHAKK0xJQkROTkxfU1JDUy15ICs9
ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9nZW1tLmNwcAorTElCRE5OTF9TUkNTLXkgKz0g
JChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2dlbXZfZHJpdmVyLmNwcAorTElCRE5OTF9TUkNT
LXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDUxMl9jb3Jl
X3U4X2NvcHlfYnRfa2Vybi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3Ny
Yy9jcHUvZ2VtbS9zOHg4czMyL2ppdF9hdng1MTJfY29yZV9nZW1tX3M4dThzMzJfa2Vybi5jcHAK
K0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL2pp
dF9hdngyX3U4X2NvcHlfYXRfa2Vybi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9T
UkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL2ppdF9hdng1MTJfY29yZV9rZXJuZWxfZ2Vtdl9zOHg4
czMyX2tlcm4uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dl
bW0vczh4OHMzMi9qaXRfYXZ4NTEyX2NvcmVfdThfY29weV9hbl9rZXJuLmNwcAorTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDJfdThf
Y29weV9ibl9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2Nw
dS9nZW1tL3M4eDhzMzIvaml0X2F2eDUxMl9jb3JlX3U4X2NvcHlfc3VtX2FuX2tlcm4uY3BwCitM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vczh4OHMzMi9qaXRf
YXZ4Ml91OF9jb3B5X3N1bV9hbl9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDJfdThfY29weV9idF9rZXJuLmNwcAor
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0
X2F2eDJfdThfY29weV9zdW1fYXRfa2Vybi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL2ppdF9hdngyX3U4X2NvcHlfYW5fa2Vybi5jcHAK
K0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL2pp
dF9hdng1MTJfY29yZV91OF9jb3B5X3N1bV9idF9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0g
JChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDJfdThfY29weV9zdW1f
YnRfa2Vybi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2Vt
bS9zOHg4czMyL2ppdF9hdng1MTJfY29yZV9nZW12X3M4eDhzMzIuY3BwCitMSUJETk5MX1NSQ1Mt
eSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vczh4OHMzMi9qaXRfYXZ4NTEyX2NvcmVf
dThfY29weV9zdW1fYXRfa2Vybi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvZ2VtbS9zOHg4czMyL2ppdF9hdng1MTJfY29yZV91OF9jb3B5X3N1bV9ibl9rZXJu
LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhz
MzIvaml0X2F2eDJfZ2VtbV9zOHU4czMyX2tlcm4uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJ
QkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vczh4OHMzMi9qaXRfYXZ4Ml91OF9jb3B5X3N1bV9ibl9r
ZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4
eDhzMzIvcmVmX2dlbW1fczh4OHMzMi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9T
UkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL3NpbXBsZV9nZW1tX3M4czhzMzIuY3BwCitMSUJETk5M
X1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vczh4OHMzMi9qaXRfYXZ4NTEy
X2NvcmVfdThfY29weV9hdF9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NS
Qykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDUxMl9jb3JlX3U4X2NvcHlfYm5fa2Vybi5j
cHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9mMzIvZ2Vt
bV91dGlsc19mMzIuY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1
L2dlbW0vZjMyL2ppdF9hdng1MTJfY29yZV9mMzJfY29weV9idF9rZXJuLmNwcAorTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4Ml9mMzJfY29w
eV9idF9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9n
ZW1tL2YzMi9qaXRfYXZ4Ml9mMzJfY29weV9ibl9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0g
JChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfc3NlNDFfZjMyX2NvcHlfYXRfa2Vy
bi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9mMzIv
aml0X2F2eF9mMzJfY29weV9hbl9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4X2YzMl9jb3B5X2J0X2tlcm4uY3BwCitMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdngyX2tl
cm5lbF9zZ2VtbV9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3Jj
L2NwdS9nZW1tL2YzMi9qaXRfYXZ4NTEyX2NvcmVfZjMyX2NvcHlfYm5fa2Vybi5jcHAKK0xJQkRO
TkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9mMzIvaml0X3NzZTQxX2tl
cm5lbF9zZ2VtbV9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3Jj
L2NwdS9nZW1tL2YzMi9qaXRfYXZ4X2YzMl9jb3B5X2JuX2tlcm4uY3BwCitMSUJETk5MX1NSQ1Mt
eSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdngyX2YzMl9jb3B5X2Fu
X2tlcm4uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0v
ZjMyL2ppdF9zc2U0MV9nZW12X3RfZjMyX2tlcm4uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJ
QkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdnhfZ2Vtdl90X2YzMl9rZXJuLmNwcAor
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfc3Nl
NDFfZjMyX2NvcHlfYnRfa2Vybi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvZ2VtbS9mMzIvaml0X3NzZTQxX2YzMl9jb3B5X2FuX2tlcm4uY3BwCitMSUJETk5M
X1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdnhfZjMyX2Nv
cHlfYXRfa2Vybi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUv
Z2VtbS9mMzIvaml0X2F2eDUxMl9jb3JlX2YzMl9jb3B5X2F0X2tlcm4uY3BwCitMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdnhfZ2VtbV9mMzIu
Y3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2pp
dF9hdng1MTJfY29tbW9uX2dlbW1fZjMyLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4Ml9mMzJfY29weV9hdF9rZXJuLmNwcAorTElC
RE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfc3NlNDFf
a2VybmVsX2IwX3NnZW1tX2tlcm4uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JD
KS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdnhfa2VybmVsX2IwX3NnZW1tX2tlcm4uY3BwCitMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL3JlZl9nZW1tX2Yz
Mi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9mMzIv
aml0X3NzZTQxX2YzMl9jb3B5X2JuX2tlcm4uY3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkRO
TkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdng1MTJfY29yZV9mMzJfY29weV9hbl9rZXJu
LmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9q
aXRfYXZ4X2tlcm5lbF9zZ2VtbV9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9nZW1tL2JmMTYvaml0X2F2eDUxMl9jb3JlX3MxNl9jb3B5X2FuX2tlcm4u
Y3BwCitMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vYmYxNi9q
aXRfYXZ4NTEyX2NvcmVfczE2X2NvcHlfYnRfa2Vybi5jcHAKK0xJQkROTkxfU1JDUy15ICs9ICQo
TElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9iZjE2L2ppdF9hdng1MTJfY29yZV9zMTZfY29weV9h
dF9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1t
L2JmMTYvaml0X2F2eDUxMl9jb3JlX2dlbW1fYmYxNmJmMTZmMzJfa2Vybi5jcHAKK0xJQkROTkxf
U1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9iZjE2L2ppdF9hdng1MTJfY29y
ZV9zMTZfY29weV9ibl9rZXJuLmNwcAorTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykv
c3JjL2NvbXB1dGUvZGlzcGF0Y2guY3BwCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY3B1aWQuaCBi
L2luY2x1ZGUvY3B1aWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjc1
MjU4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9jcHVpZC5oCkBAIC0wLDAgKzEsMTU4IEBA
CisvKiBUYWtlbiBmcm9tIEZyZWVCU0QgKi8KKworLyo9PT0tLS0tIGNwdWlkLmggLSBYODYgY3B1
IG1vZGVsIGRldGVjdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQorICoK
KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCisgKiBpbiB0
aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzCisgKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisgKiBjb3BpZXMgb2YgdGhlIFNv
ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAq
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZ
UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgor
ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKyAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KKyAqIFRIRSBTT0ZU
V0FSRS4KKyAqCisgKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CisgKi8KKworI2lmICEoX194ODZfNjRf
XyB8fCBfX2kzODZfXykKKyNlcnJvciB0aGlzIGhlYWRlciBpcyBmb3IgeDg2IG9ubHkKKyNlbmRp
ZgorCisvKiBGZWF0dXJlcyBpbiAlZWN4IGZvciBsZXZlbCAxICovCisjZGVmaW5lIGJpdF9TU0Uz
ICAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIGJpdF9QQ0xNVUxRRFEgICAweDAwMDAwMDAyCisj
ZGVmaW5lIGJpdF9EVEVTNjQgICAgICAweDAwMDAwMDA0CisjZGVmaW5lIGJpdF9NT05JVE9SICAg
ICAweDAwMDAwMDA4CisjZGVmaW5lIGJpdF9EU0NQTCAgICAgICAweDAwMDAwMDEwCisjZGVmaW5l
IGJpdF9WTVggICAgICAgICAweDAwMDAwMDIwCisjZGVmaW5lIGJpdF9TTVggICAgICAgICAweDAw
MDAwMDQwCisjZGVmaW5lIGJpdF9FSVNUICAgICAgICAweDAwMDAwMDgwCisjZGVmaW5lIGJpdF9U
TTIgICAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIGJpdF9TU1NFMyAgICAgICAweDAwMDAwMjAw
CisjZGVmaW5lIGJpdF9DTlhUSUQgICAgICAweDAwMDAwNDAwCisjZGVmaW5lIGJpdF9GTUEgICAg
ICAgICAweDAwMDAxMDAwCisjZGVmaW5lIGJpdF9DTVBYQ0hHMTZCICAweDAwMDAyMDAwCisjZGVm
aW5lIGJpdF94VFBSICAgICAgICAweDAwMDA0MDAwCisjZGVmaW5lIGJpdF9QRENNICAgICAgICAw
eDAwMDA4MDAwCisjZGVmaW5lIGJpdF9QQ0lEICAgICAgICAweDAwMDIwMDAwCisjZGVmaW5lIGJp
dF9EQ0EgICAgICAgICAweDAwMDQwMDAwCisjZGVmaW5lIGJpdF9TU0U0MSAgICAgICAweDAwMDgw
MDAwCisjZGVmaW5lIGJpdF9TU0U0MiAgICAgICAweDAwMTAwMDAwCisjZGVmaW5lIGJpdF94MkFQ
SUMgICAgICAweDAwMjAwMDAwCisjZGVmaW5lIGJpdF9NT1ZCRSAgICAgICAweDAwNDAwMDAwCisj
ZGVmaW5lIGJpdF9QT1BDTlQgICAgICAweDAwODAwMDAwCisjZGVmaW5lIGJpdF9UU0NEZWFkbGlu
ZSAweDAxMDAwMDAwCisjZGVmaW5lIGJpdF9BRVNOSSAgICAgICAweDAyMDAwMDAwCisjZGVmaW5l
IGJpdF9YU0FWRSAgICAgICAweDA0MDAwMDAwCisjZGVmaW5lIGJpdF9PU1hTQVZFICAgICAweDA4
MDAwMDAwCisjZGVmaW5lIGJpdF9BVlggICAgICAgICAweDEwMDAwMDAwCisjZGVmaW5lIGJpdF9S
RFJBTkQgICAgICAweDQwMDAwMDAwCisKKy8qIEZlYXR1cmVzIGluICVlZHggZm9yIGxldmVsIDEg
Ki8KKyNkZWZpbmUgYml0X0ZQVSAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgYml0X1ZNRSAg
ICAgICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgYml0X0RFICAgICAgICAgIDB4MDAwMDAwMDQKKyNk
ZWZpbmUgYml0X1BTRSAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgYml0X1RTQyAgICAgICAg
IDB4MDAwMDAwMTAKKyNkZWZpbmUgYml0X01TUiAgICAgICAgIDB4MDAwMDAwMjAKKyNkZWZpbmUg
Yml0X1BBRSAgICAgICAgIDB4MDAwMDAwNDAKKyNkZWZpbmUgYml0X01DRSAgICAgICAgIDB4MDAw
MDAwODAKKyNkZWZpbmUgYml0X0NYOCAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgYml0X0FQ
SUMgICAgICAgIDB4MDAwMDAyMDAKKyNkZWZpbmUgYml0X1NFUCAgICAgICAgIDB4MDAwMDA4MDAK
KyNkZWZpbmUgYml0X01UUlIgICAgICAgIDB4MDAwMDEwMDAKKyNkZWZpbmUgYml0X1BHRSAgICAg
ICAgIDB4MDAwMDIwMDAKKyNkZWZpbmUgYml0X01DQSAgICAgICAgIDB4MDAwMDQwMDAKKyNkZWZp
bmUgYml0X0NNT1YgICAgICAgIDB4MDAwMDgwMDAKKyNkZWZpbmUgYml0X1BBVCAgICAgICAgIDB4
MDAwMTAwMDAKKyNkZWZpbmUgYml0X1BTRTM2ICAgICAgIDB4MDAwMjAwMDAKKyNkZWZpbmUgYml0
X1BTTiAgICAgICAgIDB4MDAwNDAwMDAKKyNkZWZpbmUgYml0X0NMRlNIICAgICAgIDB4MDAwODAw
MDAKKyNkZWZpbmUgYml0X0RTICAgICAgICAgIDB4MDAyMDAwMDAKKyNkZWZpbmUgYml0X0FDUEkg
ICAgICAgIDB4MDA0MDAwMDAKKyNkZWZpbmUgYml0X01NWCAgICAgICAgIDB4MDA4MDAwMDAKKyNk
ZWZpbmUgYml0X0ZYU1IgICAgICAgIDB4MDEwMDAwMDAKKyNkZWZpbmUgYml0X1NTRSAgICAgICAg
IDB4MDIwMDAwMDAKKyNkZWZpbmUgYml0X1NTRTIgICAgICAgIDB4MDQwMDAwMDAKKyNkZWZpbmUg
Yml0X1NTICAgICAgICAgIDB4MDgwMDAwMDAKKyNkZWZpbmUgYml0X0hUVCAgICAgICAgIDB4MTAw
MDAwMDAKKyNkZWZpbmUgYml0X1RNICAgICAgICAgIDB4MjAwMDAwMDAKKyNkZWZpbmUgYml0X1BC
RSAgICAgICAgIDB4ODAwMDAwMDAKKworLyogRmVhdHVyZXMgaW4gJWVieCBmb3IgbGV2ZWwgNyBz
dWItbGVhZiAwICovCisjZGVmaW5lIGJpdF9GU0dTQkFTRSAgICAweDAwMDAwMDAxCisjZGVmaW5l
IGJpdF9TTUVQICAgICAgICAweDAwMDAwMDgwCisjZGVmaW5lIGJpdF9FTkhfTU9WU0IgICAweDAw
MDAwMjAwCisKKy8qIFBJQyBvbiBpMzg2IHVzZXMgJWVieCwgc28gcHJlc2VydmUgaXQuICovCisj
aWYgX19pMzg2X18KKyNkZWZpbmUgX19jcHVpZChfX2xldmVsLCBfX2VheCwgX19lYngsIF9fZWN4
LCBfX2VkeCkgXAorICAgIF9fYXNtKCIgIHB1c2hsICAlJWVieFxuIiBcCisgICAgICAgICAgIiAg
Y3B1aWRcbiIgXAorICAgICAgICAgICIgIG1vdiAgICAlJWVieCwlMVxuIiBcCisgICAgICAgICAg
IiAgcG9wbCAgICUlZWJ4IiBcCisgICAgICAgIDogIj1hIihfX2VheCksICI9ciIgKF9fZWJ4KSwg
Ij1jIihfX2VjeCksICI9ZCIoX19lZHgpIFwKKyAgICAgICAgOiAiMCIoX19sZXZlbCkpCisKKyNk
ZWZpbmUgX19jcHVpZF9jb3VudChfX2xldmVsLCBfX2NvdW50LCBfX2VheCwgX19lYngsIF9fZWN4
LCBfX2VkeCkgXAorICAgIF9fYXNtKCIgIHB1c2hsICAlJWVieFxuIiBcCisgICAgICAgICAgIiAg
Y3B1aWRcbiIgXAorICAgICAgICAgICIgIG1vdiAgICAlJWVieCwlMVxuIiBcCisgICAgICAgICAg
IiAgcG9wbCAgICUlZWJ4IiBcCisgICAgICAgIDogIj1hIihfX2VheCksICI9ciIgKF9fZWJ4KSwg
Ij1jIihfX2VjeCksICI9ZCIoX19lZHgpIFwKKyAgICAgICAgOiAiMCIoX19sZXZlbCksICIyIihf
X2NvdW50KSkKKyNlbHNlCisjZGVmaW5lIF9fY3B1aWQoX19sZXZlbCwgX19lYXgsIF9fZWJ4LCBf
X2VjeCwgX19lZHgpIFwKKyAgICBfX2FzbSgiY3B1aWQiIDogIj1hIihfX2VheCksICI9YiIgKF9f
ZWJ4KSwgIj1jIihfX2VjeCksICI9ZCIoX19lZHgpIFwKKyAgICAgICAgICAgICAgICAgIDogIjAi
KF9fbGV2ZWwpKQorCisjZGVmaW5lIF9fY3B1aWRfY291bnQoX19sZXZlbCwgX19jb3VudCwgX19l
YXgsIF9fZWJ4LCBfX2VjeCwgX19lZHgpIFwKKyAgICBfX2FzbSgiY3B1aWQiIDogIj1hIihfX2Vh
eCksICI9YiIgKF9fZWJ4KSwgIj1jIihfX2VjeCksICI9ZCIoX19lZHgpIFwKKyAgICAgICAgICAg
ICAgICAgIDogIjAiKF9fbGV2ZWwpLCAiMiIoX19jb3VudCkpCisjZW5kaWYKKworc3RhdGljIF9f
aW5saW5lIGludCBfX2dldF9jcHVpZCAodW5zaWduZWQgaW50IF9fbGV2ZWwsIHVuc2lnbmVkIGlu
dCAqX19lYXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
Kl9fZWJ4LCB1bnNpZ25lZCBpbnQgKl9fZWN4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50ICpfX2VkeCkgeworICAgIF9fY3B1aWQoX19sZXZlbCwgKl9fZWF4
LCAqX19lYngsICpfX2VjeCwgKl9fZWR4KTsKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIF9f
aW5saW5lIGludCBfX2dldF9jcHVpZF9tYXggKHVuc2lnbmVkIGludCBfX2xldmVsLCB1bnNpZ25l
ZCBpbnQgKl9fc2lnKQoreworICAgIHVuc2lnbmVkIGludCBfX2VheCwgX19lYngsIF9fZWN4LCBf
X2VkeDsKKyNpZiBfX2kzODZfXworICAgIGludCBfX2NwdWlkX3N1cHBvcnRlZDsKKworICAgIF9f
YXNtKCIgIHB1c2hmbFxuIgorICAgICAgICAgICIgIHBvcGwgICAlJWVheFxuIgorICAgICAgICAg
ICIgIG1vdmwgICAlJWVheCwlJWVjeFxuIgorICAgICAgICAgICIgIHhvcmwgICAkMHgwMDIwMDAw
MCwlJWVheFxuIgorICAgICAgICAgICIgIHB1c2hsICAlJWVheFxuIgorICAgICAgICAgICIgIHBv
cGZsXG4iCisgICAgICAgICAgIiAgcHVzaGZsXG4iCisgICAgICAgICAgIiAgcG9wbCAgICUlZWF4
XG4iCisgICAgICAgICAgIiAgbW92bCAgICQwLCUwXG4iCisgICAgICAgICAgIiAgY21wbCAgICUl
ZWF4LCUlZWN4XG4iCisgICAgICAgICAgIiAgamUgICAgIDFmXG4iCisgICAgICAgICAgIiAgbW92
bCAgICQxLCUwXG4iCisgICAgICAgICAgIjE6IgorICAgICAgICA6ICI9ciIgKF9fY3B1aWRfc3Vw
cG9ydGVkKSA6IDogImVheCIsICJlY3giKTsKKyAgICBpZiAoIV9fY3B1aWRfc3VwcG9ydGVkKQor
ICAgICAgICByZXR1cm4gMDsKKyNlbmRpZgorCisgICAgX19jcHVpZChfX2xldmVsLCBfX2VheCwg
X19lYngsIF9fZWN4LCBfX2VkeCk7CisgICAgaWYgKF9fc2lnKQorICAgICAgICAqX19zaWcgPSBf
X2VieDsKKyAgICByZXR1cm4gX19lYXg7Cit9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RubmxfY29u
ZmlnLmggYi9pbmNsdWRlL2RubmxfY29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYTRkNThiMAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZG5ubF9jb25maWcu
aApAQCAtMCwwICsxLDg0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQg
MjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorKgorKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyogeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiBZb3UgbWF5
IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoKKyogICAgIGh0dHA6Ly93d3cuYXBh
Y2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKgorKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBw
bGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMs
CisqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIg
ZXhwcmVzcyBvciBpbXBsaWVkLgorKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqIGxpbWl0YXRpb25zIHVuZGVyIHRo
ZSBMaWNlbnNlLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBETk5MX0NPTkZJ
R19ICisjZGVmaW5lIEROTkxfQ09ORklHX0gKKworI2luY2x1ZGUgImRubmxfdHlwZXMuaCIKKwor
Ly8vIEBjb25kIERPX05PVF9ET0NVTUVOVF9USElTCisKKy8vIEFsbCBzeW1ib2xzIHNoYWxsIGJl
IGludGVybmFsIHVubGVzcyBtYXJrZWQgYXMgRE5OTF9BUEkKKyNpZiBkZWZpbmVkIF9XSU4zMiB8
fCBkZWZpbmVkIF9fQ1lHV0lOX18KKyNkZWZpbmUgRE5OTF9IRUxQRVJfRExMX0lNUE9SVCBfX2Rl
Y2xzcGVjKGRsbGltcG9ydCkKKyNkZWZpbmUgRE5OTF9IRUxQRVJfRExMX0VYUE9SVCBfX2RlY2xz
cGVjKGRsbGV4cG9ydCkKKyNlbHNlCisjaWYgX19HTlVDX18gPj0gNAorI2RlZmluZSBETk5MX0hF
TFBFUl9ETExfSU1QT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisj
ZGVmaW5lIEROTkxfSEVMUEVSX0RMTF9FWFBPUlQgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgi
ZGVmYXVsdCIpKSkKKyNlbHNlCisjZGVmaW5lIEROTkxfSEVMUEVSX0RMTF9JTVBPUlQKKyNkZWZp
bmUgRE5OTF9IRUxQRVJfRExMX0VYUE9SVAorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIEROTkxf
RExMCisjaWZkZWYgRE5OTF9ETExfRVhQT1JUUworI2RlZmluZSBETk5MX0FQSSBETk5MX0hFTFBF
Ul9ETExfRVhQT1JUCisjZWxzZQorI2RlZmluZSBETk5MX0FQSSBETk5MX0hFTFBFUl9ETExfSU1Q
T1JUCisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIEROTkxfQVBJCisjZW5kaWYKKworI2lmIGRlZmlu
ZWQoX19HTlVDX18pCisjZGVmaW5lIEROTkxfREVQUkVDQVRFRCBfX2F0dHJpYnV0ZV9fKChkZXBy
ZWNhdGVkKSkKKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIEROTkxfREVQUkVDQVRF
RCBfX2RlY2xzcGVjKGRlcHJlY2F0ZWQpCisjZWxzZQorI2RlZmluZSBETk5MX0RFUFJFQ0FURUQK
KyNlbmRpZgorCisvLy8gQGVuZGNvbmQKKworLy8gY2xhbmctZm9ybWF0IG9mZgorCisvLyBETk5M
IENQVSB0aHJlYWRpbmcgcnVudGltZQorI2RlZmluZSBETk5MX0NQVV9USFJFQURJTkdfUlVOVElN
RSBETk5MX1JVTlRJTUVfU0VRCisKKy8vIEROTkwgQ1BVIGVuZ2luZSBydW50aW1lCisjZGVmaW5l
IEROTkxfQ1BVX1JVTlRJTUUgRE5OTF9SVU5USU1FX1NFUQorCisvLyBETk5MIEdQVSBlbmdpbmUg
cnVudGltZQorI2RlZmluZSBETk5MX0dQVV9SVU5USU1FIEROTkxfUlVOVElNRV9OT05FCisKKy8v
IGNsYW5nLWZvcm1hdCBvbgorCisjaWYgZGVmaW5lZChETk5MX0NQVV9SVU5USU1FKSAmJiBkZWZp
bmVkKEROTkxfR1BVX1JVTlRJTUUpCisjaWYgKEROTkxfQ1BVX1JVTlRJTUUgPT0gRE5OTF9SVU5U
SU1FX05PTkUpIFwKKyAgICAgICAgfHwgKEROTkxfQ1BVX1JVTlRJTUUgPT0gRE5OTF9SVU5USU1F
X09DTCkKKyNlcnJvciAiVW5leHBlY3RlZCBETk5MX0NQVV9SVU5USU1FIgorI2VuZGlmCisjaWYg
KEROTkxfR1BVX1JVTlRJTUUgIT0gRE5OTF9SVU5USU1FX05PTkUpIFwKKyAgICAgICAgJiYgKERO
TkxfR1BVX1JVTlRJTUUgIT0gRE5OTF9SVU5USU1FX09DTCkKKyNlcnJvciAiVW5leHBlY3RlZCBE
Tk5MX0dQVV9SVU5USU1FIgorI2VuZGlmCisjZWxzZQorI2Vycm9yICJCT1RIIEROTkxfQ1BVX1JV
TlRJTUUgYW5kIEROTkxfR1BVX1JVTlRJTUUgbXVzdCBiZSBkZWZpbmVkIgorI2VuZGlmCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kbm5sX3ZlcnNpb24uaCBiL2luY2x1ZGUvZG5ubF92
ZXJzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc3MTViOAotLS0g
L2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZG5ubF92ZXJzaW9uLmgKQEAgLTAsMCArMSwzNiBAQAor
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IDIwMTkgSW50ZWwgQ29ycG9yYXRp
b24KKyoKKyogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo
dGhlICJMaWNlbnNlIik7CisqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv
bXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo
ZSBMaWNlbnNlIGF0CisqCisqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElD
RU5TRS0yLjAKKyoKKyogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVl
ZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5z
ZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiBXSVRIT1VUIFdBUlJBTlRJ
RVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4K
KyogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBl
cm1pc3Npb25zIGFuZAorKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKiovCisKKyNpZm5kZWYgRE5OTF9WRVJTSU9OX0gKKyNkZWZpbmUgRE5OTF9W
RVJTSU9OX0gKKworLy8gY2xhbmctZm9ybWF0IG9mZgorCisvLy8gTWFqb3IgdmVyc2lvbgorI2Rl
ZmluZSBETk5MX1ZFUlNJT05fTUFKT1IgMQorCisvLy8gTWlub3IgdmVyc2lvbgorI2RlZmluZSBE
Tk5MX1ZFUlNJT05fTUlOT1IgMgorCisvLy8gUGF0Y2ggdmVyc2lvbgorI2RlZmluZSBETk5MX1ZF
UlNJT05fUEFUQ0ggMAorCisvLy8gR2l0IGNvbW1pdCBoYXNoCisjZGVmaW5lIEROTkxfVkVSU0lP
Tl9IQVNIICAiTi9BIgorCisvLyBjbGFuZy1mb3JtYXQgb24KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9wYXRjaGVzLzAwMDEtcHJldmVudC1jbG9iYmVyaW5nLWJhcnJpZXItbWFjcm8ucGF0Y2ggYi9w
YXRjaGVzLzAwMDEtcHJldmVudC1jbG9iYmVyaW5nLWJhcnJpZXItbWFjcm8ucGF0Y2gKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE0NDQ5MgotLS0gL2Rldi9udWxsCisrKyBi
L3BhdGNoZXMvMDAwMS1wcmV2ZW50LWNsb2JiZXJpbmctYmFycmllci1tYWNyby5wYXRjaApAQCAt
MCwwICsxLDExIEBACistLS0gYS9zcmMvY3B1L2NwdV9iYXJyaWVyLmhwcAkyMDIwLTAyLTAxIDIy
OjE1OjUyLjk5OTkwMjA2MiArMDEwMAorKysrIGIvc3JjL2NwdS9jcHVfYmFycmllci5ocHAJMjAy
MC0wMi0wMSAyMjoxNjowMy40ODc3ODc1NDUgKzAxMDAKK0BAIC0yMiw2ICsyMiw4IEBACisgI2lu
Y2x1ZGUgImppdF9nZW5lcmF0b3IuaHBwIgorICNpbmNsdWRlICJ1dGlscy5ocHAiCisgCisrI3Vu
ZGVmIGJhcnJpZXIKKysKKyBuYW1lc3BhY2UgZG5ubCB7CisgbmFtZXNwYWNlIGltcGwgeworIG5h
bWVzcGFjZSBjcHUgewpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDAyLXByZXZlbnQtY2xvYmJlcmlu
Zy1CLW1hY3JvLnBhdGNoIGIvcGF0Y2hlcy8wMDAyLXByZXZlbnQtY2xvYmJlcmluZy1CLW1hY3Jv
LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZTMzYjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9wYXRjaGVzLzAwMDItcHJldmVudC1jbG9iYmVyaW5nLUItbWFjcm8ucGF0
Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvc3JjL2NvbW1vbi90YWdfdHJhaXRzLmhwcAkyMDIw
LTAyLTAyIDE4OjIwOjE4LjM0OTE2MDgxMiArMDEwMAorKysrIGIvc3JjL2NvbW1vbi90YWdfdHJh
aXRzLmhwcAkyMDIwLTAyLTAyIDE4OjIwOjMyLjQyMTAwNjI4OSArMDEwMAorQEAgLTIyLDYgKzIy
LDggQEAKKyAjaW5jbHVkZSAiY190eXBlc19tYXAuaHBwIgorICNpbmNsdWRlICJ1dGlscy5ocHAi
CisgCisrI3VuZGVmIF9CCisrCisgbmFtZXNwYWNlIGRubmwgeworIG5hbWVzcGFjZSBpbXBsIHsK
KyAKZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDAwMy1wcmV2ZW50LWNsb2JiZXJpbmctbm9wLW1hY3Jv
LnBhdGNoIGIvcGF0Y2hlcy8wMDAzLXByZXZlbnQtY2xvYmJlcmluZy1ub3AtbWFjcm8ucGF0Y2gK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdmNzI2NwotLS0gL2Rldi9udWxs
CisrKyBiL3BhdGNoZXMvMDAwMy1wcmV2ZW50LWNsb2JiZXJpbmctbm9wLW1hY3JvLnBhdGNoCkBA
IC0wLDAgKzEsMTEgQEAKKy0tLSBhL3NyYy9jcHUveGJ5YWsveGJ5YWsuaAkyMDIwLTAyLTA0IDE1
OjEyOjMyLjU4NjE3NjA1MSArMDEwMAorKysrIGIvc3JjL2NwdS94Ynlhay94Ynlhay5oCTIwMjAt
MDItMDQgMTU6MTI6NDIuNzU4MDU4MDM4ICswMTAwCitAQCAtNzIsNiArNzIsOCBAQAorICNpbmNs
dWRlIDxpb3N0cmVhbT4KKyAjZW5kaWYKKyAKKysjdW5kZWYgbm9wCisrCisgLy8gI2RlZmluZSBY
QllBS19ESVNBQkxFX0FWWDUxMgorIAorIC8vI2RlZmluZSBYQllBS19VU0VfTU1BUF9BTExPQ0FU
T1IKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9t
aW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 05 10:55:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 05 Feb 2020 10:55:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izILE-0008Je-CM; Wed, 05 Feb 2020 10:55:32 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=I4bQ=3Z=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1izILD-0008JT-3q
 for minios-devel@lists.xen.org; Wed, 05 Feb 2020 10:55:31 +0000
X-Inumbo-ID: 06186948-4806-11ea-90c8-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 06186948-4806-11ea-90c8-12813bfff9fa;
 Wed, 05 Feb 2020 10:55:30 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 54C56F2021;
 Wed,  5 Feb 2020 11:55:29 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id AqmfEC_RtLXT; Wed,  5 Feb 2020 11:55:29 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from Oberon.office.hd (Oberon.office.hd [192.168.24.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 2AB99F2003;
 Wed,  5 Feb 2020 11:55:25 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by Oberon.office.hd
 (192.168.24.90) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 5 Feb 2020
 11:55:24 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Wed, 5 Feb 2020 11:55:24
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT/NNPACK PATCH 1/1] Add support for ARM64
Thread-Index: AQHV0RBqYOzenvveBEqwX9nnmDNd1qgMg2cA
Date: Wed, 5 Feb 2020 10:55:24 +0000
Message-ID: <CEC4AE12-673E-4BAD-B0FD-D376D7357C17@neclab.eu>
References: <20200122104043.22077-1-vlad_andrei.badoiu@stud.acs.upb.ro>
In-Reply-To: <20200122104043.22077-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <EDA0A439D5E3B445998165543BD82139@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/NNPACK PATCH 1/1] Add support for ARM64
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgVmxhZCwNCg0KVGhpcyBwYXRjaCBsb29rcyBnb29kLCBJJ3ZlIHRlc3RlZCBvbiBBUk02NC9R
RU1VIGFuZCBvbiBhbiBSUEkgYisgKGJhcmUgbWV0YWwpLg0KDQpUaGFua3MsDQoNCi0tIEZlbGlw
ZQ0KDQpSZXZpZXdlZC1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1Pg0K
DQrvu79PbiAyMi4wMS4yMCwgMTE6NDAsICJWbGFkLUFuZHJlaSBCxIJET0lVICg3ODY5MikiIDx2
bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPiB3cm90ZToNCg0KICAgIFdlIGRlZmlu
ZSBDUFVJTkZPX0FSQ0hfQVJNNjQgd2hlbiBBUk02NCBpcyBzZWxlY3RlZC4NCiAgICANCiAgICBT
aWduZWQtb2ZmLWJ5OiBWbGFkLUFuZHJlaSBCYWRvaXUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVk
LmFjcy51cGIucm8+DQogICAgLS0tDQogICAgIE1ha2VmaWxlLnVrIHwgMTEgKysrKysrKysrLS0N
CiAgICAgMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCiAg
ICANCiAgICBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51aw0KICAgIGluZGV4
IDJkYTJhZjEuLmRlN2M2YjQgMTAwNjQ0DQogICAgLS0tIGEvTWFrZWZpbGUudWsNCiAgICArKysg
Yi9NYWtlZmlsZS51aw0KICAgIEBAIC01OSw2ICs1OSw3IEBAIExJQk5OUEFDS19TUkMgPSAkKExJ
Qk5OUEFDS19PUklHSU4pLyQoTElCTk5QQUNLX1NVQkRJUikNCiAgICAgTElCTk5QQUNLX0dMT0JB
TF9JTkNMVURFUy15ICs9IC1JJChMSUJOTlBBQ0tfU1JDKS9zcmMNCiAgICAgTElCTk5QQUNLX0dM
T0JBTF9JTkNMVURFUy15ICs9IC1JJChMSUJOTlBBQ0tfU1JDKS9zcmMvcmVmDQogICAgIExJQk5O
UEFDS19HTE9CQUxfSU5DTFVERVMteSArPSAtSSQoTElCTk5QQUNLX1NSQykvaW5jbHVkZQ0KICAg
ICtMSUJOTlBBQ0tfR0xPQkFMX0lOQ0xVREVTLXkgKz0gLUkkKExJQk5OUEFDS19TUkMpL2luY2x1
ZGUvbm5wYWNrDQogICAgIExJQk5OUEFDS19HTE9CQUxfSU5DTFVERVMteSArPSAtSSQoTElCTk5Q
QUNLX0JBU0UpL2luY2x1ZGUNCiAgICAgDQogICAgIENJTkNMVURFUy0kKENPTkZJR19MSUJOTlBB
Q0spICs9ICQoTElCTk5QQUNLX0dMT0JBTF9JTkNMVURFUy15KQ0KICAgIEBAIC03OCw4ICs3OSwx
NCBAQCBMSUJOTlBBQ0tfU1VQUFJFU1NfRkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyCQkJ
XA0KICAgICBMSUJOTlBBQ0tfQ0ZMQUdTLXkJKz0gJChMSUJOTlBBQ0tfU1VQUFJFU1NfRkxBR1Mp
IC1Xbm8tcG9pbnRlci10by1pbnQtY2FzdCAtV25vLWludC10by1wb2ludGVyLWNhc3QNCiAgICAg
TElCTk5QQUNLX0NYWEZMQUdTLXkJKz0gJChMSUJOTlBBQ0tfU1VQUFJFU1NfRkxBR1MpDQogICAg
IA0KICAgIC1MSUJOTlBBQ0tfQ0ZMQUdTLXkJKz0gIC1EX19saW51eF9fIC1EQ1BVSU5GT19BUkNI
X1g4Ng0KICAgIC1MSUJOTlBBQ0tfQ1hYRkxBR1MteQkrPSAgLURfX2xpbnV4X18gLURDUFVJTkZP
X0FSQ0hfWDg2DQogICAgK0xJQk5OUEFDS19DRkxBR1MteQkrPSAgLURfX2xpbnV4X18NCiAgICAr
TElCTk5QQUNLX0NYWEZMQUdTLXkJKz0gIC1EX19saW51eF9fDQogICAgKw0KICAgICtMSUJOTlBB
Q0tfQ0ZMQUdTLSQoQ09ORklHX0FSQ0hfWDg2XzY0KQkrPSAtRENQVUlORk9fQVJDSF9YODYNCiAg
ICArTElCTk5QQUNLX0NYWEZMQUdTLSQoQ09ORklHX0FSQ0hfWDg2XzY0KQkrPSAtRENQVUlORk9f
QVJDSF9YODYNCiAgICArDQogICAgK0xJQk5OUEFDS19DRkxBR1MtJChDT05GSUdfQVJDSF9BUk1f
NjQpCSs9IC1EQ1BVSU5GT19BUkNIX0FSTTY0DQogICAgK0xJQk5OUEFDS19DWFhGTEFHUy0kKENP
TkZJR19BUkNIX0FSTV82NCkJKz0gLURDUFVJTkZPX0FSQ0hfQVJNNjQNCiAgICAgDQogICAgIExJ
Qk5OUEFDS19DRkxBR1MtJChDT05GSUdfTElCTk5QQUNLX0JBQ0tFTkRfUFNJTUQpCSs9IC1ETk5Q
X0JBQ0tFTkRfUFNJTUQNCiAgICAgTElCTk5QQUNLX0NYWEZMQUdTLSQoQ09ORklHX0xJQk5OUEFD
S19CQUNLRU5EX1BTSU1EKQkrPSAtRE5OUF9CQUNLRU5EX1BTSU1EDQogICAgLS0gDQogICAgMi4y
MC4xDQogICAgDQogICAgDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m
by9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 05 13:12:25 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 05 Feb 2020 13:12:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izKTd-0004w8-S3; Wed, 05 Feb 2020 13:12:21 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=ieps=3Z=neclab.eu=hugo.lefeuvre@srs-us1.protection.inumbo.net>)
 id 1izKTc-0004w0-68
 for minios-devel@lists.xenproject.org; Wed, 05 Feb 2020 13:12:20 +0000
X-Inumbo-ID: 226673fc-4819-11ea-ad98-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 226673fc-4819-11ea-ad98-bc764e2007e4;
 Wed, 05 Feb 2020 13:12:18 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 5A5A0103B00;
 Wed,  5 Feb 2020 14:12:17 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Z_rnwYi99D4D; Wed,  5 Feb 2020 14:12:17 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 39EA3103903
 for <minios-devel@lists.xenproject.org>; Wed,  5 Feb 2020 14:12:17 +0100 (CET)
Received: from N-1237.office.hd (192.168.24.96) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 5 Feb 2020
 14:12:16 +0100
From: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
To: <minios-devel@lists.xenproject.org>
Date: Wed, 5 Feb 2020 14:12:06 +0100
Message-ID: <bfaa106c5850e4ac473c258ef0821b72c0caa2e4.1580908212.git.hugo.lefeuvre@neclab.eu>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To titania.office.hd
 (192.168.24.89)
Subject: [Minios-devel] [PATCH] lib/ukallocbbuddy: fix addmem call with
 negative len
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2hlbmV2ZXIgbGVuID09IG1ldGFsZW4sIHRoZSBpbml0IHJlZ2lvbiBoYXMgZXhhY3RseSB0aGUg
c2l6ZSBvZiB0aGUKYWxsb2NhdG9yIG1ldGFkYXRhLiBJbiB0aGlzIGNhc2UgdGhlcmUgaXMgbm8g
c3BhY2UgbGVmdCBmb3IgYW55dGhpbmcgZWxzZQphbmQgbWF4IC0gbWluIC0gbWV0YWxlbiBpcyBu
ZWdhdGl2ZTogY2FsbGluZyBiYnVkZHlfYWRkbWVtIGRvZXNuJ3QgbWFrZQpzZW5zZS4KCk9ubHkg
Y2FsbCBiYnVkZHlfYWRkbWVtIGlmIHRoZXJlJ3MgbWVtb3J5IGxlZnQgaW4gdGhlIHJlZ2lvbi4K
LS0tCiBsaWIvdWthbGxvY2JidWRkeS9iYnVkZHkuYyB8IDkgKysrKysrLS0tCiAxIGZpbGUgY2hh
bmdlZCwgNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi91
a2FsbG9jYmJ1ZGR5L2JidWRkeS5jIGIvbGliL3VrYWxsb2NiYnVkZHkvYmJ1ZGR5LmMKaW5kZXgg
MmEzNWRlMC4uODVmM2U4ZCAxMDA2NDQKLS0tIGEvbGliL3VrYWxsb2NiYnVkZHkvYmJ1ZGR5LmMK
KysrIGIvbGliL3VrYWxsb2NiYnVkZHkvYmJ1ZGR5LmMKQEAgLTUwOCw4ICs1MDgsMTEgQEAgc3Ry
dWN0IHVrX2FsbG9jICp1a19hbGxvY2JidWRkeV9pbml0KHZvaWQgKmJhc2UsIHNpemVfdCBsZW4p
CiAJYS0+YXZhaWxtZW0gPSBiYnVkZHlfYXZhaWxtZW07CiAjZW5kaWYKIAotCS8qIGFkZCBsZWZ0
IG1lbW9yeSAtIGlnbm9yZSByZXR1cm4gdmFsdWUgKi8KLQliYnVkZHlfYWRkbWVtKGEsICh2b2lk
ICopKG1pbiArIG1ldGFsZW4pLAotCQkgICAgICAoc2l6ZV90KShtYXggLSBtaW4gLSBtZXRhbGVu
KSk7CisJaWYgKG1heCA+IG1pbiArIG1ldGFsZW4pIHsKKwkJLyogYWRkIGxlZnQgbWVtb3J5IC0g
aWdub3JlIHJldHVybiB2YWx1ZSAqLworCQliYnVkZHlfYWRkbWVtKGEsICh2b2lkICopKG1pbiAr
IG1ldGFsZW4pLAorCQkJCSAoc2l6ZV90KShtYXggLSBtaW4gLSBtZXRhbGVuKSk7CisJfQorCiAJ
cmV0dXJuIGE7CiB9Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s
aXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 09:25:23 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 09:25:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izdPV-0006A8-Dc; Thu, 06 Feb 2020 09:25:21 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=slqv=32=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1izdPU-0006A3-Ia
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 09:25:20 +0000
X-Inumbo-ID: 96389798-48c2-11ea-8952-bc764e2007e4
Received: from EUR05-VI1-obe.outbound.protection.outlook.com (unknown
 [2a01:111:f400:7d00::629])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 96389798-48c2-11ea-8952-bc764e2007e4;
 Thu, 06 Feb 2020 09:25:17 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gW6NNBEuvAojOgFFi1Qiiizgr08Xf7bZIyvtEkJ+RTGzPfZpzPRDy8Mf6fydEij+hiMatxZNZjsqBjcySEFjW7xqBpt9DNLw3s9OnA/f9hkeYgfENAu5W2udlgMBo4oVvMaS9te0qUH2Qa+LAzScEUJv4BswR9N0mBnotbjO7QApdUEGHzOPPIt+BAhS/7rO1DYQZwrWwDcO1VqkeKNlwc7QJy0wp0o4GBJ/hkD8sBJlx4mlvDakLM7wf2LmE4IXAVHojzMzkK+ovrV8RL0vS6Rldibq9uY3l8H9C5RbpVwxlulPiwapzs6ocSXt2cVB8DM73hE2wlAJ5AKbltgtrw==
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=hRiDBLZ4QHwD0FmI7zZx0W4e5EiAJEo6mzIG1jhQKaQ=;
 b=CywchNjskq7Y/Ypk0GmtXwVvOelHs217CMJjRJjyBgSJKpmaz+/MK2Zjmqw/mbQ9ydccmMfDBW2DHOVfo4jCRAP4B9bgV6njlVQ0h5SnHf+KMHo1Fe3WDl4HhxChXzeAUdDtCBBuSpNSguhhsW/Wlv4tuBP+n33R+jbrFI15j/FucGcN02cIT/jmDNEk2MfIGHhpJMvzPlc+Q2bW3aJzaxuZy3u8CU3fv34NN4BnOarfxmBPjht+4G/jp0F0gm50j+Gosyo+5zkBEDdrFg70SGCCYXVPt7PWYOdO6DdWCtDjq1kErbWSO9ac0mqYFYm9J+tCa1AltuJyTgiSulyC1g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB4005.eurprd01.prod.exchangelabs.com (20.177.38.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2707.21; Thu, 6 Feb 2020 09:25:15 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2707.023; Thu, 6 Feb 2020
 09:25:15 +0000
Received: from [172.19.9.144] (141.85.233.103) by
 AM0PR05CA0040.eurprd05.prod.outlook.com (2603:10a6:208:be::17) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2707.21 via Frontend Transport; Thu, 6 Feb 2020 09:25:15 +0000
From: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xenproject.org" <minios-devel@lists.xenproject.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBDNNL PATCH 1/2] Introduce library
 skeleton
Thread-Index: AQHV3BJlsPfgZa4Eg0ysELvjUV6AdqgN5oaA
Date: Thu, 6 Feb 2020 09:25:15 +0000
Message-ID: <2c74a1fd-cd74-2eae-ff7d-cda83d6d5418@stud.acs.upb.ro>
References: <20200205105222.18469-1-felipe.huici@neclab.eu>
 <20200205105222.18469-2-felipe.huici@neclab.eu>
In-Reply-To: <20200205105222.18469-2-felipe.huici@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: AM0PR05CA0040.eurprd05.prod.outlook.com
 (2603:10a6:208:be::17) To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [141.85.233.103]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 8e728c50-67ea-4a3e-029d-08d7aae6797d
x-ms-traffictypediagnostic: AM6PR01MB4005:
x-microsoft-antispam-prvs: <AM6PR01MB4005913DE58FFB50288EA9E0A61D0@AM6PR01MB4005.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-forefront-prvs: 0305463112
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(39840400004)(346002)(376002)(136003)(396003)(199004)(189003)(85182001)(316002)(786003)(85202003)(16576012)(508600001)(66476007)(66946007)(66556008)(5660300002)(31686004)(66446008)(64756008)(6916009)(52116002)(16526019)(956004)(26005)(8676002)(2616005)(86362001)(186003)(6486002)(81166006)(81156014)(71200400001)(53546011)(2906002)(8936002)(31696002)(966005);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB4005;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: gwMTZARyLtS5JPogUNt8UXdCdLi4zPwL9IRIIvZ2zbyY8ZqriAS9YONs1KusJmoyvJMDr9++oXou++p2CGvu+dBAF2PCvswds30aqf8ol/W60uddDGt8fwAl9JuG8f+I7ev9goRuRijGCqgIU5Dx6j5loL2q8Zxe4aRyUDAJEs9WG6vsciDvT8So5HFNzOsr12JeoSUL+SV+9AbPpyCnQz1PaII/e2M4A65PW/4yz2AxyKeDPWmvlL4LXRNwUDAy7G4Omax0s8tiYIFqoYl0mJQou62acsJ0tR7oMiD3vB9NIiVXQ7epySiNYcTqnvys39aQAbdWiobdySJqFDZLdlOHVWKFcVYZpLC9fdTmEIXhV4XBgKbVc2tkh5VHygGag/X1D9/0SKn9IdTHkhedc+JW8+/XCkk0yDJ7eXYUZNCMWtFfoQlvQc7rNmcECpk4Iv7DHlBR7sWtGqDupphXIwgxZ01WZL1G8MpFmWzajRyAOh61A33WXmeYoKgTFSYAzoG5IswmVaqNks37QTp7jQ==
x-ms-exchange-antispam-messagedata: bUo74dhbQbJbz3kC0k5jPi8m8Ld5UQWJjSTHuikuahB+ixG1vjHceq3F63W7VT738HLgfAmhVExX2wFQ1GTaPSkHsYzgEr8dMmGZ0pKrVyzKH2SlMLOQlGGsaNIBdxAh5E+bYwraqlWAXTxz1+mtXw==
x-ms-exchange-transport-forked: True
Content-ID: <A969BC12412F204986E9AE95E9B153C5@eurprd01.prod.exchangelabs.com>
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: 8e728c50-67ea-4a3e-029d-08d7aae6797d
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2020 09:25:15.5809 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: L0/h+Zg9Ic1IVqj7Tb5UICvYpjIHgr9oAeDX2kTezjzNH4yCukqUKuHMikH/a1XgtBtu9E8awmhKKIIS/6BQF7n+ophUQvyw9qwNADDizAA9ifEHTJR2kY3R3gU3bQZW
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4005
Subject: Re: [Minios-devel] [UNIKRAFT/LIBDNNL PATCH 1/2] Introduce library
 skeleton
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGV5IEZlbGlwZSwNCg0KSSBoYXZlIHJhbiBvbmUgb2YgdGhlIGV4YW1wbGVzWzFdIG9uIHg4NiBh
bmQgYXJtIGFuZCBpdCB3b3JrcyBhbGwgDQpyaWdodC7CoCBUaGFua3MgZm9yIHRoZSBwb3J0IQ0K
DQpUaGFua3MsDQoNClZsYWQNCg0KWzFdIA0KaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQu
Y29tL2ludGVsL21rbC1kbm4vdjEuMi9leGFtcGxlcy9jbm5faW5mZXJlbmNlX2ludDguY3BwDQoN
ClJldmlld2VkLWJ5OiBWbGFkLUFuZHJlaSBCYWRvaXUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVk
LmFjcy51cGIucm8+DQoNCk9uIDA1LjAyLjIwMjAgMTI6NTIsIEZlbGlwZSBIdWljaSB3cm90ZToN
Cj4gV2UgdXNlIHRoZSBCU0QtMy1DbGF1c2UgbGljZW5zZSBmb3IgdGhpcyBsaWJyYXJ5IGdsdWUg
Y29kZS4NCj4NCj4gU2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVj
bGFiLmV1Pg0KPiAtLS0NCj4gICAuZ2l0aWdub3JlICAgICAgfCAyNyArKysrKysrKysrKysrKysr
KysrKysrKysrKysNCj4gICBDT0RJTkdfU1RZTEUubWQgfCAgNCArKysrDQo+ICAgQ09OVFJJQlVU
SU5HLm1kIHwgIDQgKysrKw0KPiAgIENPUFlJTkcubWQgICAgICB8IDM5ICsrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgIENvbmZpZy51ayAgICAgICB8IDE3ICsrKysr
KysrKysrKysrKysrDQo+ICAgTUFJTlRBSU5FUlMubWQgIHwgMTAgKysrKysrKysrKw0KPiAgIFJF
QURNRS5tZCAgICAgICB8IDEzICsrKysrKysrKysrKysNCj4gICA3IGZpbGVzIGNoYW5nZWQsIDEx
NCBpbnNlcnRpb25zKCspDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IC5naXRpZ25vcmUNCj4gICBj
cmVhdGUgbW9kZSAxMDA2NDQgQ09ESU5HX1NUWUxFLm1kDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0
IENPTlRSSUJVVElORy5tZA0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBDT1BZSU5HLm1kDQo+ICAg
Y3JlYXRlIG1vZGUgMTAwNjQ0IENvbmZpZy51aw0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBNQUlO
VEFJTkVSUy5tZA0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBSRUFETUUubWQNCj4NCj4gZGlmZiAt
LWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+
IGluZGV4IDAwMDAwMDAuLjc1ZDJmZDMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi8uZ2l0aWdu
b3JlDQo+IEBAIC0wLDAgKzEsMjcgQEANCj4gKyouZGVwZW5kDQo+ICsqLm8NCj4gKyouYQ0KPiAr
Ki5kDQo+ICsqLnNvDQo+ICsqLm9yaWcNCj4gKyoucmVqDQo+ICsqLmJhaw0KPiArKi5zd3ANCj4g
Kyp+DQo+ICssKg0KPiArXCMqXCMNCj4gKy5cIyoNCj4gK1wjXypcIw0KPiArLlwjXyoNCj4gKyEu
Z2l0aWdub3JlDQo+ICsuKg0KPiArDQo+ICsjIGdudSBnbG9iYWwgZmlsZXMNCj4gK0dQQVRIDQo+
ICtHUlRBR1MNCj4gK0dTWU1TDQo+ICtHVEFHUw0KPiArDQo+ICsjIGNzY29wZSBmaWxlcw0KPiAr
Y3Njb3BlLioNCj4gK25jc2NvcGUuKg0KPiBkaWZmIC0tZ2l0IGEvQ09ESU5HX1NUWUxFLm1kIGIv
Q09ESU5HX1NUWUxFLm1kDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAu
LjU3MzAwNDENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9DT0RJTkdfU1RZTEUubWQNCj4gQEAg
LTAsMCArMSw0IEBADQo+ICtDb2RpbmcgU3R5bGUNCj4gKz09PT09PT09PT09PQ0KPiArDQo+ICtQ
bGVhc2UgcmVmZXIgdG8gdGhlIGBDT0RJTkdfU1RZTEUubWRgIGZpbGUgaW4gdGhlIG1haW4gVW5p
a3JhZnQgcmVwb3NpdG9yeS4NCj4gZGlmZiAtLWdpdCBhL0NPTlRSSUJVVElORy5tZCBiL0NPTlRS
SUJVVElORy5tZA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi41ZjU1
ZWNhDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvQ09OVFJJQlVUSU5HLm1kDQo+IEBAIC0wLDAg
KzEsNCBAQA0KPiArQ29udHJpYnV0aW5nIHRvIFVuaWtyYWZ0DQo+ICs9PT09PT09PT09PT09PT09
PT09PT09PQ0KPiArDQo+ICtQbGVhc2UgcmVmZXIgdG8gdGhlIGBDT05UUklCVVRJTkcubWRgIGZp
bGUgaW4gdGhlIG1haW4gVW5pa3JhZnQgcmVwb3NpdG9yeS4NCj4gZGlmZiAtLWdpdCBhL0NPUFlJ
TkcubWQgYi9DT1BZSU5HLm1kDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw
MDAuLmMxNjJkZTMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9DT1BZSU5HLm1kDQo+IEBAIC0w
LDAgKzEsMzkgQEANCj4gK0xpY2Vuc2UNCj4gKz09PT09PT0NCj4gKw0KPiArVW5pa3JhZnQgRE5O
TCB3cmFwcGVycw0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK1RoaXMgcmVw
b3NpdG9yeSBjb250YWlucyB3cmFwcGVyIGNvZGUgdG8gYnVpbGQgRE5OTCB3aXRoIFVuaWtyYWZ0
Lg0KPiArRWFjaCBDIGNvZGUgZmlsZSBpbiB0aGlzIHJlcG9zaXRvcnkgc2hvdWxkIGRlY2xhcmUg
d2hvIGlzIHRoZQ0KPiArY29weXJpZ2h0IG93bmVyIGFuZCB1bmRlciB3aGljaCB0ZXJtcyBhbmQg
Y29uZGl0aW9ucyB0aGUgY29kZSBpcw0KPiArbGljZW5zZWQuIElmIHN1Y2ggYSBsaWNlbmNlIG5v
dGUgaXMgbWlzc2luZywgdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQNCj4gK25vdGljZSB3aWxsIGFw
cGx5Og0KPiArDQo+ICsJQ29weXJpZ2h0IChjKSAyMDE5LCBORUMgRXVyb3BlIEx0ZC4sIE5FQyBD
b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKw0KPiArCVJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KPiAr
CW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucw0KPiArCWFyZSBtZXQ6DQo+ICsNCj4gKwkxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KPiArCSAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4N
Cj4gKwkyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodA0KPiArCSAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCj4gKwkgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0K
PiArCTMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBu
YW1lcyBvZiBpdHMNCj4gKwkgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQ0KPiArCSAgIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQo+ICsNCj4gKwlUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTICJBUyBJUyINCj4gKwlBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFDQo+ICsJSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UN
Cj4gKwlBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE
RVIgT1IgQ09OVFJJQlVUT1JTIEJFDQo+ICsJTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUg0KPiArCUNPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GDQo+
ICsJU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTDQo+ICsJSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4NCj4gKwlDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQ0KPiArCUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFDQo+ICsJUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
DQo+ICsNCj4gZGlmZiAtLWdpdCBhL0NvbmZpZy51ayBiL0NvbmZpZy51aw0KPiBuZXcgZmlsZSBt
b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi4zYTQ5MGVlDQo+IC0tLSAvZGV2L251bGwNCj4g
KysrIGIvQ29uZmlnLnVrDQo+IEBAIC0wLDAgKzEsMTcgQEANCj4gK21lbnVjb25maWcgTElCRE5O
TA0KPiArICAgIGJvb2wgImRubmwgLSBJbnRlbCBNYXRoIEtlcm5lbCBMaWJyYXJ5IGZvciBETk5z
Ig0KPiArICAgIGRlZmF1bHQgbg0KPiArICAgIHNlbGVjdCBMSUJORVdMSUJDDQo+ICsgICAgc2Vs
ZWN0IExJQkNPTVBJTEVSX1JUDQo+ICsgICAgc2VsZWN0IFVLU1lTSU5GTw0KPiArICAgIHNlbGVj
dCBMSUJDWFgNCj4gKyAgICBzZWxlY3QgTElCQ1hYQUJJDQo+ICsgICAgc2VsZWN0IExJQlVOV0lO
RA0KPiArICAgIHNlbGVjdCBMSUJQVEhSRUFEX0VNQkVEREVEDQo+ICsgICAgc2VsZWN0IENYWF9U
SFJFQURTDQo+ICsgICAgc2VsZWN0IExJQlVLTU1BUA0KPiArICAgIHNlbGVjdCBMSUJQT1NJWF9M
SUJETA0KPiArICAgIHNlbGVjdCBMSUJQT1NJWF9TWVNJTkZPDQo+ICsgICAgc2VsZWN0IExJQkFS
TV9JTlRSSU5TSUNTIGlmIEFSQ0hfQVJNXzY0DQo+ICsgICAgc2VsZWN0IExJQklOVEVMX0lOVFJJ
TlNJQ1MgaWYgQVJDSF94ODZfNjQNCj4gKw0KPiBkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMubWQg
Yi9NQUlOVEFJTkVSUy5tZA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw
Li5hZmQ0OTlhDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvTUFJTlRBSU5FUlMubWQNCj4gQEAg
LTAsMCArMSwxMCBAQA0KPiArTWFpbnRhaW5lcnMgTGlzdA0KPiArPT09PT09PT09PT09PT09PQ0K
PiArDQo+ICtGb3Igbm90ZXMgb24gaG93IHRvIHJlYWQgdGhpcyBpbmZvcm1hdGlvbiwgcGxlYXNl
IHJlZmVyIHRvIGBNQUlOVEFJTkVSUy5tZGAgaW4NCj4gK3RoZSBtYWluIFVuaWtyYWZ0IHJlcG9z
aXRvcnkuDQo+ICsNCj4gKwlMSUJETk5MLVVOSUtSQUZUDQo+ICsJTToJRmVsaXBlIEh1aWNpIDxm
ZWxpcGUuaHVpY2lAbmVjbGFiLmV1Pg0KPiArCUw6CW1pbmlvcy1kZXZlbEBsaXN0cy54ZW4ub3Jn
DQo+ICsJRjogKg0KPiBkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1kDQo+IG5ldyBm
aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLmYwNGYwN2YNCj4gLS0tIC9kZXYvbnVs
bA0KPiArKysgYi9SRUFETUUubWQNCj4gQEAgLTAsMCArMSwxMyBAQA0KPiArbGliZG5ubCBmb3Ig
VW5pa3JhZnQNCj4gKz09PT09PT09PT09PT09PT09PT0NCj4gK1RoaXMgaXMgYSBwb3J0IG9mIElu
dGVsJ3MgRE5OTCB0byBVbmlrcmFmdC4gVGhlIHBvcnQgaGFzIGEgbnVtYmVyIG9mDQo+ICtkZXBl
bmRlbmNpZXMuIFRvIG1lZXQgdGhlbSwgZW5zdXJlIHRoYXQgeW91IGhhdmUgdGhlIGZvbGxvd2lu
ZyBsaWJzDQo+ICthZGRlZCB0byB5b3VyIExJQlMgdmFyaWFibGUgaW4geW91ciBhcHAncyBNYWtl
ZmlsZToNCj4gKwkJCQkJCQ0KPiArICogQ1hYIHN0YW5kYXJkIGxpYnJhcnksIGUuZy4gYGxpYnVu
d2luZGAsIGBjb21waWxlci1ydGAsIGBsaWJjeHhhYmlgLA0KPiArICBgbGliY3h4YA0KPiArICAq
IGBsaWJjYCwgZS5nLiBgbmV3bGliYA0KPiArICAqIGFuIGludHJpbnNpY3MgcGFja2FnZSwgZS5n
LiwgYGludGVsLWludHJpbnNpY3NgIG9yIGBhcm0taW50cmluc2ljc2ANCj4gKw0KPiArUGxlYXNl
IHJlZmVyIHRvIHRoZSBgUkVBRE1FLm1kYCBhcyB3ZWxsIGFzIHRoZSBkb2N1bWVudGF0aW9uIGlu
IHRoZSBgZG9jL2ANCj4gK3N1YmRpcmVjdG9yeSBvZiB0aGUgbWFpbiB1bmlrcmFmdCByZXBvc2l0
b3J5Lg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlu
aW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZl
bA==

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 09:27:25 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 09:27:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izdRU-0006FU-VJ; Thu, 06 Feb 2020 09:27:24 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=slqv=32=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1izdRT-0006FO-G6
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 09:27:23 +0000
X-Inumbo-ID: dfa24bc2-48c2-11ea-8952-bc764e2007e4
Received: from EUR02-VE1-obe.outbound.protection.outlook.com (unknown
 [40.107.2.62]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id dfa24bc2-48c2-11ea-8952-bc764e2007e4;
 Thu, 06 Feb 2020 09:27:20 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=O5I1WjuhpIRSvPQAO4xFAjfA/wa3o89ML123t75dtEjTYoIBRQvHHLSJ/fdgy1hrN1mBeF59U/MTggL/3bVeAIDbNuzEOlnx9K0PwwaELSseFpKe7lnlDzY7Vj395iGCYqEKAm8xov2DyTtGHI0NGnAk5A4mNUn572Dc2Rltha+fm3fOc4I+7TyE6frub9y+HDKMmghOa59GyTPGB+GVhjHRpls0qLPyNk1RU7ICW9gEoJUvj38CrpvQgXnT07E8jrZW8WjQ3fiqlIW62GASTuauJEs+F3K7j9qPIFIdQzruxWef7xg2XzIXc8zegIYShCy4Ro7vKV8iv6OVo7/S8w==
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=AoELRPZjptzSsXi+M12vP81hD5nieLljfusaOY/Pwaw=;
 b=MaVhF44axUzV5kRx6p5CW1r3Ajv6dQThCNQv+pcEaHBlXX1WMo/7FV5gpoOrgUGiwJGGDCcCaS2xMUuPp/wqEfcZprOtHUTHTzeerPBVv8hf7KCxY5iR/WRd9YB+D35kBssWloYyF+wzkq7YOmJ1gdSHcIwsZu1FY+pG76CNkb+HgRV89/8cJVysUgGezKqSL8C+Q6swFM9MJsT0L+On2Me2b2rDLwxFrdDW3XCVX82GlEDEqZJ/5enf1CSLogxGI/STU8RYqVo4Z3oBitUfwMSr74n1uqgWF7JvG03C0BgKHknTqtPikKYkYLgjkWJ9sq3wMwJpP3v2bAuPj/eQRw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB4726.eurprd01.prod.exchangelabs.com (20.177.198.77) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21; Thu, 6 Feb
 2020 09:27:17 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2707.023; Thu, 6 Feb 2020
 09:27:17 +0000
Received: from [172.19.9.144] (141.85.233.103) by
 AM0PR0202CA0007.eurprd02.prod.outlook.com (2603:10a6:208:1::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21 via Frontend
 Transport; Thu, 6 Feb 2020 09:27:16 +0000
From: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xenproject.org" <minios-devel@lists.xenproject.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBDNNL PATCH 2/2] Add Makefile.uk and
 patches
Thread-Index: AQHV3BJpRAnwTmYc8U2Z+6NFf5iQ7KgN5xeA
Date: Thu, 6 Feb 2020 09:27:17 +0000
Message-ID: <aa80182b-c4d4-011c-6a74-0382588f7dfa@stud.acs.upb.ro>
References: <20200205105222.18469-1-felipe.huici@neclab.eu>
 <20200205105222.18469-3-felipe.huici@neclab.eu>
In-Reply-To: <20200205105222.18469-3-felipe.huici@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: AM0PR0202CA0007.eurprd02.prod.outlook.com
 (2603:10a6:208:1::20) To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [141.85.233.103]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a09b1088-10f6-45d1-55bf-08d7aae6c1f0
x-ms-traffictypediagnostic: AM6PR01MB4726:
x-microsoft-antispam-prvs: <AM6PR01MB47268DB3A1B03BF58D0B52BBA61D0@AM6PR01MB4726.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0305463112
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(39840400004)(396003)(366004)(136003)(346002)(376002)(199004)(189003)(2906002)(966005)(86362001)(186003)(30864003)(52116002)(16526019)(26005)(6486002)(31686004)(508600001)(71200400001)(85182001)(786003)(316002)(81166006)(66446008)(64756008)(85202003)(53546011)(16576012)(8936002)(66556008)(66476007)(8676002)(31696002)(66946007)(81156014)(5660300002)(2616005)(956004)(6916009)(559001)(579004);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB4726;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Ws27lx2ucDBf5SKcoFrHIvBoyvyYOxCeuaexlGTXMYSi02TZ2wGi5AsdVDZd8GGJyOOD4lOtURBPl4EfTciN8zMm0ILLpTEswMBsu5zo8lvXfQiQWIeNulst7nng08+puop0Z+dzurqiLlvWyxVp1Rzv++6XizF+Go+evNXomJeL6Y67Fak5AsOmLSGo+3jD607WrxD02h3PyeiA07adD6EftZ/4ynJ7TKlqHZigN/UX4eg1NsIzFEFysyI9W9oRWN0VtUQqjKngmX+75HmgyCLmR6K7IQx0Q8Ih/RBrerPgbOabHnxQLMRoZBsShVcU6j4dT6+QU8Ds9We/mhQwOnC3sEalBHTNEOOTF0safYh/vLurSa0ZyGYNVugpcCYVIVzSJu0JgRqKgarf0hlRvPf1s9ysjYLznMG9EGhbXRAeiaJnmoPDoCIre41hy0pUqOIH61p/107Tn6fKpp4W2TwHFRi3EFLeV6qWW4PTfl5+ra+7LGGF4TT7lbM+ddlQH5nNjXpg1uCgnpHPBoAi7w==
x-ms-exchange-antispam-messagedata: 2iFZ5U+MbqWfVDheXbkk915mONArZa4FrzIARs2VTLYV+tmCDxGoCY1v+voHwvsXf5rMw3nyVIfIckcs6rAIDrd4BK5oT0pZcCBg6XhkN/i0T3rzr5wUKU6YroJiw58Djpbqa6TvKmHQwew7irlPCA==
x-ms-exchange-transport-forked: True
Content-ID: <45FB861DA927164CAC0312E0C18E0256@eurprd01.prod.exchangelabs.com>
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: a09b1088-10f6-45d1-55bf-08d7aae6c1f0
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2020 09:27:17.1226 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: OYj9Up81XdaLR5EZxK7DthtKzWUFc+KPGkCmqMbq4goIl62yOsxBWdk0mi5Y2b0fTGgp2pF0jZ8LKoV9dZCcokucqDo/wVZoxYITCAE04j10+wzefw33YmNEfZJxOjEa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4726
Subject: Re: [Minios-devel] [UNIKRAFT/LIBDNNL PATCH 2/2] Add Makefile.uk and
 patches
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIEZlbGlwZSENCg0KUmV2aWV3ZWQtYnk6IFZsYWQtQW5kcmVpIEJhZG9pdSA8dmxhZF9h
bmRyZWkuYmFkb2l1QHN0dWQuYWNzLnVwYi5ybz4NCg0KT24gMDUuMDIuMjAyMCAxMjo1MiwgRmVs
aXBlIEh1aWNpIHdyb3RlOg0KPiBBZGQgZG5ubCBwb3J0IE1ha2VmaWxlLnVrIGFuZCBjb3JyZXNw
b25kaW5nIHBhdGNoZXMNCj4NCj4gU2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUu
aHVpY2lAbmVjbGFiLmV1Pg0KPiAtLS0NCj4gICBNYWtlZmlsZS51ayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAzMjEgKysrKysrKysrKysrKysrKysrDQo+ICAgaW5jbHVkZS9j
cHVpZC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTU4ICsrKysrKysrKw0KPiAg
IGluY2x1ZGUvZG5ubF9jb25maWcuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4NCArKysr
Kw0KPiAgIGluY2x1ZGUvZG5ubF92ZXJzaW9uLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAz
NiArKw0KPiAgIC4uLjAwMS1wcmV2ZW50LWNsb2JiZXJpbmctYmFycmllci1tYWNyby5wYXRjaCB8
ICAxMSArDQo+ICAgcGF0Y2hlcy8wMDAyLXByZXZlbnQtY2xvYmJlcmluZy1CLW1hY3JvLnBhdGNo
IHwgIDExICsNCj4gICAuLi4vMDAwMy1wcmV2ZW50LWNsb2JiZXJpbmctbm9wLW1hY3JvLnBhdGNo
ICAgfCAgMTEgKw0KPiAgIDcgZmlsZXMgY2hhbmdlZCwgNjMyIGluc2VydGlvbnMoKykNCj4gICBj
cmVhdGUgbW9kZSAxMDA2NDQgTWFrZWZpbGUudWsNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5j
bHVkZS9jcHVpZC5oDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZG5ubF9jb25maWcu
aA0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RubmxfdmVyc2lvbi5oDQo+ICAgY3Jl
YXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvMDAwMS1wcmV2ZW50LWNsb2JiZXJpbmctYmFycmllci1t
YWNyby5wYXRjaA0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAwMDItcHJldmVudC1j
bG9iYmVyaW5nLUItbWFjcm8ucGF0Y2gNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy8w
MDAzLXByZXZlbnQtY2xvYmJlcmluZy1ub3AtbWFjcm8ucGF0Y2gNCj4NCj4gZGlmZiAtLWdpdCBh
L01ha2VmaWxlLnVrIGIvTWFrZWZpbGUudWsNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k
ZXggMDAwMDAwMC4uYmIyNWVlNg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL01ha2VmaWxlLnVr
DQo+IEBAIC0wLDAgKzEsMzIxIEBADQo+ICsjICBsaWJkbm5sIE1ha2VmaWxlLnVrDQo+ICsjDQo+
ICsjICBBdXRob3JzOiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQo+ICsj
DQo+ICsjICAgQ29weXJpZ2h0IChjKSAyMDIwLCBORUMgRXVyb3BlIEx0ZC4sIE5FQyBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyMNCj4gKyMgIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KPiArIyAg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQo+ICsjICBhcmUgbWV0Og0KPiArIw0KPiArIyAgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCj4gKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4NCj4gKyMgIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQo+ICsjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQo+ICsjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLg0KPiArIyAgMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhv
bGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cw0KPiArIyAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20NCj4gKyMgICAg
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
DQo+ICsjDQo+ICsjICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyINCj4gKyMgIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUN
Cj4gKyMgIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFDQo+ICsjICBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFDQo+ICsjICBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SDQo+ICsjICBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRg0KPiArIyAgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQo+ICsj
ICBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTg0KPiArIyAgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkNCj4gKyMgIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFDQo+ICsjICBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCj4gKyMNCj4gKyMgIFRI
SVMgSEVBREVSIE1BWSBOT1QgQkUgRVhUUkFDVEVEIE9SIE1PRElGSUVEIElOIEFOWSBXQVkuDQo+
ICsjDQo+ICsNCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICsjIExpYnJhcnkgcmVnaXN0
cmF0aW9uDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiArJChldmFsICQoY2FsbCBhZGRs
aWJfcyxsaWJkbm5sLCQoQ09ORklHX0xJQkROTkwpKSkNCj4gKw0KPiAraWZlcSAoJChDT05GSUdf
TElCRE5OTCkseSkNCj4gK2lmbmVxICgkKENPTkZJR19MSUJDT01QSUxFUl9SVCkseSkNCj4gKyQo
ZXJyb3IgUmVxdWlyZSBsaWJjb21waWxlcl9ydCkNCj4gK2VuZGlmDQo+ICtlbmRpZg0KPiArDQo+
ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiArIyBTb3VyY2VzDQo+ICsjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIw0KPiArTElCRE5OTF9WRVJTSU9OPTEuMg0KPiArTElCRE5OTF9VUkw9aHR0cHM6
Ly9naXRodWIuY29tL2ludGVsL21rbC1kbm4vYXJjaGl2ZS92JChMSUJETk5MX1ZFUlNJT04pLnpp
cA0KPiArTElCRE5OTF9QQVRDSERJUj0kKExJQkROTkxfQkFTRSkvcGF0Y2hlcw0KPiArJChldmFs
ICQoY2FsbCBmZXRjaCxsaWJkbm5sLCQoTElCRE5OTF9VUkwpKSkNCj4gKyQoZXZhbCAkKGNhbGwg
cGF0Y2gsbGliZG5ubCwkKExJQkROTkxfUEFUQ0hESVIpLG1rbC1kbm4tJChMSUJETk5MX1ZFUlNJ
T04pKSkNCj4gKw0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gKyMgSGVscGVycw0KPiAr
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gK0xJQkROTkxfU1VCRElSPW1rbC1kbm4tJChMSUJE
Tk5MX1ZFUlNJT04pDQo+ICtMSUJETk5MX1NSQz0kKExJQkROTkxfT1JJR0lOKS8kKExJQkROTkxf
U1VCRElSKQ0KPiArDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiArIyBMaWJyYXJ5IGlu
Y2x1ZGVzDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiArTElCTUtMLUlOQ0xVREVTICs9
IC1JJChMSUJETk5MX1NSQykvaW5jbHVkZSAgICAgIFwNCj4gKyAgICAgICAgICAgICAgICAgICAt
SSQoTElCRE5OTF9TUkMpL3NyYyAgICAgICAgICBcDQo+ICsgICAgICAgICAgICAgICAgICAgLUkk
KExJQkROTkxfU1JDKS9zcmMvY3B1ICAgICAgXA0KPiArICAgICAgICAgICAgICAgICAgIC1JJChM
SUJETk5MX1NSQykvc3JjL2NwdS9nZW1tIFwNCj4gKyAgICAgICAgICAgICAgICAgICAtSSQoTElC
RE5OTF9TUkMpL3NyYy9jb21tb24gICBcDQo+ICsgICAgICAgICAgICAgICAgICAgLUkkKExJQkRO
TkxfQkFTRSkvaW5jbHVkZSAgICAgXA0KPiArDQo+ICtDSU5DTFVERVMtJChDT05GSUdfTElCRE5O
TCkgKz0gJChMSUJNS0wtSU5DTFVERVMpDQo+ICtDWFhJTkNMVURFUy0kKENPTkZJR19MSUJETk5M
KSArPSAkKExJQk1LTC1JTkNMVURFUykNCj4gKw0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMN
Cj4gKyMgR2xvYmFsIGZsYWdzDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiArTElCRE5O
TC1DT05GSUdfRkxBR1MgPSAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAgICAgICAgXA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAtREROTkxfRU5BQkxFX0NPTkNVUlJFTlRfRVhFQz1PRkYg
XA0KPiArICAgICAgICAgICAgICAgICAgICAgICAtREROTkxfTElCUkFSWV9UWVBFPVNUQVRJQyAJ
IFwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgLURETk5MX1RIUkVBRElORz1PTVA6Q09NUCAJ
IFwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgLURETk5MX1VTRV9NS0w9Tk9ORSAJCSBcDQo+
ICsgICAgICAgICAgICAgICAgICAgICAgIC1ERE5OTF9WRVJCT1NFPU9OIAkJIFwNCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgLURXSVRIX0VYQU1QTEU9T0ZGIAkJIFwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgLURXSVRIX1RFU1Q9T0ZGCQkJIFwNCj4gKwkJICAgICAgIC1ERE5OTF9FTkFC
TEVfSklUX1BST0ZJTElORz1PRkYNCj4gKw0KPiArTElCRE5OTF9DRkxBR1MteSAgICAgICs9ICAk
KExJQkROTkwtQ09ORklHX0ZMQUdTKQ0KPiArTElCRE5OTF9DWFhGTEFHUy15ICAgICs9ICAkKExJ
QkROTkwtQ09ORklHX0ZMQUdTKQ0KPiArDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiAr
IyBTdXBwcmVzcyBGbGFncw0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCj4gK0xJQkROTkxf
U1VQUFJFU1NfRkxBR1MteSArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgICAgICAgICAgICAgIFwN
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25vLXVudXNlZC1idXQtc2V0LXBhcmFt
ZXRlciAgICAgIFwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25vLXVua25vd24t
cHJhZ21hcyAgICAgICAgICAgICAgIFwNCj4gKwkJCSAgICAtV25vLWV4dHJhICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCj4gKwkJCSAgICAtV25vLWF0dHJpYnV0ZXMJCSAgICAgICBcDQo+ICsJ
CQkgICAgLVduby1wYXJlbnRoZXNlcwkJICAgICAgIFwNCj4gKwkJCSAgICAtZmNvbXBhcmUtZGVi
dWctc2Vjb25kICAjIHN1cHJlc3Mgbm90ZXMNCj4gKw0KPiArTElCRE5OTF9DRkxBR1MteSAgICs9
ICQoTElCRE5OTF9TVVBQUkVTU19GTEFHUy15KSAtV25vLWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xh
cmF0aW9uDQo+ICtMSUJETk5MX0NYWEZMQUdTLXkgKz0gJChMSUJETk5MX1NVUFBSRVNTX0ZMQUdT
LXkpDQo+ICsNCj4gKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICsjIFNvdXJjZXMNCj4gKyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JD
KS9zcmMvY29tbW9uL2RubmxfZGVidWcuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkRO
TkxfU1JDKS9zcmMvY29tbW9uL3NjcmF0Y2hwYWQuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY29tbW9uL2JhdGNoX25vcm1hbGl6YXRpb24uY3BwDQo+ICtMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL2JpbmFyeS5jcHANCj4gK0xJ
QkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vbHJuLmNwcA0KPiArTElC
RE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NvbW1vbi9zaHVmZmxlLmNwcA0KPiAr
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NvbW1vbi9jb252b2x1dGlvbi5j
cHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vcHJpbWl0
aXZlX2V4ZWNfdHlwZXMuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY29tbW9uL21lbW9yeS5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jb21tb24vcG9vbGluZy5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9T
UkMpL3NyYy9jb21tb24vaW5uZXJfcHJvZHVjdC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQo
TElCRE5OTF9TUkMpL3NyYy9jb21tb24vdmVyYm9zZS5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9
ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vdXRpbHMuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSAr
PSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL3ByaW1pdGl2ZV9hdHRyLmNwcA0KPiArTElCRE5O
TF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NvbW1vbi9wcmltaXRpdmVfaXRlcmF0b3Iu
Y3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL2VuZ2lu
ZS5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vcXVl
cnkuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL3Jl
b3JkZXIuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9u
L3N1bS5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24v
Y29udm9sdXRpb25fcGQuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY29tbW9uL21lbW9yeV9kZXNjX3dyYXBwZXIuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY29tbW9uL3ByaW1pdGl2ZS5jcHANCj4gK0xJQkROTkxfU1JDUy15
ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vcm5uLmNwcA0KPiArTElCRE5OTF9TUkNTLXkg
Kz0gJChMSUJETk5MX1NSQykvc3JjL2NvbW1vbi9tYXRtdWwuY3BwDQo+ICtMSUJETk5MX1NSQ1Mt
eSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL3Jlc2FtcGxpbmcuY3BwDQo+ICtMSUJETk5M
X1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL2xheWVyX25vcm1hbGl6YXRpb24u
Y3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY29tbW9uL2NvbmNh
dC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vcHJp
bWl0aXZlX2hhc2hpbmcuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY29tbW9uL2RubmxfZGVidWdfYXV0b2dlbmVyYXRlZC5jcHANCj4gK0xJQkROTkxfU1JDUy15
ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vZGVjb252b2x1dGlvbi5jcHANCj4gK0xJQkRO
TkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vc29mdG1heC5jcHANCj4gK0xJ
QkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vc3RyZWFtLmNwcA0KPiAr
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NvbW1vbi9wcmltaXRpdmVfZGVz
Yy5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24vZWx0
d2lzZS5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jb21tb24v
bWVtb3J5X3plcm9fcGFkLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykv
c3JjL2NwdS9qaXRfdW5pX3RiYl9iYXRjaF9ub3JtYWxpemF0aW9uLmNwcA0KPiArTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfYXZ4NTEyX2NvcmVfZjMyX3dpbm9f
Y29udl80eDMuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1
L2dlbW1fY29udm9sdXRpb24uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JD
KS9zcmMvY3B1L25jaHdfcG9vbGluZy5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jcHUvaml0X3VuaV9kd19jb252b2x1dGlvbi5jcHANCj4gK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X2JhdGNoX25vcm1hbGl6YXRpb25fbGlz
dC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3Vu
aV9iYXRjaF9ub3JtYWxpemF0aW9uLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9qaXRfdW5pX2VsdHdpc2UuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY3B1L3JlZl9zaHVmZmxlLmNwcA0KPiArTElCRE5OTF9TUkNTLXkg
Kz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9jcHVfcmVvcmRlci5jcHANCj4gK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9yZW9yZGVyX3V0aWxzLmNwcA0K
PiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfYXZ4Ml9jb252
b2x1dGlvbi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUv
aml0X2F2eDUxMl9jb3JlX3g4czhzMzJ4XzF4MV9jb252X2tlcm5lbC5jcHANCj4gK0xJQkROTkxf
U1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X2NvbmNhdC5jcHANCj4gK0xJQkRO
TkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X2JhdGNoX25vcm1hbGl6YXRp
b25fdXRpbHMuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1
L2ppdF9hdng1MTJfY29yZV94OHM4czMyeF9jb252X2tlcm5lbC5jcHANCj4gK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9iYXRjaF9ub3JtYWxpemF0aW9u
X3M4LmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9jcHVf
bGF5ZXJfbm9ybWFsaXphdGlvbl9saXN0LmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJE
Tk5MX1NSQykvc3JjL2NwdS9jcHVfcmVkdWNlci5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQo
TElCRE5OTF9TUkMpL3NyYy9jcHUvcmVmX2VsdHdpc2UuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSAr
PSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L25zcGNfYmF0Y2hfbm9ybWFsaXphdGlvbi5jcHANCj4g
K0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDUxMl9jb21t
b25fbHJuLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9y
ZWZfY29udm9sdXRpb24uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY3B1L2ppdF9hdng1MTJfY29yZV94OHM4czMyeF8xeDFfY29udm9sdXRpb24uY3BwDQo+ICtM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29yZV9m
MzJfd2lub19jb252XzJ4My5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvZ2VtbV94OHM4czMyeF9jb252b2x1dGlvbi5jcHANCj4gK0xJQkROTkxfU1JDUy15
ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbV9jb252b2x1dGlvbl91dGlscy5jcHANCj4g
K0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X2VsdHdpc2VfbGlz
dC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3Vu
aV9sYXllcl9ub3JtYWxpemF0aW9uLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9qaXRfc3NlNDFfMXgxX2NvbnZfa2VybmVsX2YzMi5jcHANCj4gK0xJQkRO
TkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9scm4uY3BwDQo+ICtM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29tbW9u
X2NvbnZfd2lub2dyYWRfa2VybmVsX2YzMi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElC
RE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDUxMl9jb3JlX2JmMTZfZHdfY29udl9rZXJuZWwuY3Bw
DQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9zc2U0MV9j
b252X2tlcm5lbF9mMzIuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY3B1L2ppdF9hdng1MTJfY29tbW9uX2NvbnZfa2VybmVsLmNwcA0KPiArTElCRE5OTF9TUkNT
LXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfYXZ4NTEyX2NvcmVfYmYxNl9jb252b2x1
dGlvbi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0
X2F2eDUxMl9jb3JlX3g4czhzMzJ4X2NvbnZvbHV0aW9uLmNwcA0KPiArTElCRE5OTF9TUkNTLXkg
Kz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfYXZ4NTEyX2NvcmVfYmYxNl9zdW0uY3BwDQo+
ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2NwdV9zaHVmZmxlX2xp
c3QuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF91
bmlfZWx0d2lzZV9pbmplY3Rvci5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9T
UkMpL3NyYy9jcHUvaml0X3VuaV9wb29saW5nLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChM
SUJETk5MX1NSQykvc3JjL2NwdS9jcHVfZGVjb252b2x1dGlvbl9saXN0LmNwcA0KPiArTElCRE5O
TF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZWZfYmF0Y2hfbm9ybWFsaXphdGlv
bi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2
eDUxMl9jb3JlX3g4czhzMzJ4X2RlY29udm9sdXRpb24uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSAr
PSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2NwdV9iYXJyaWVyLmNwcA0KPiArTElCRE5OTF9TUkNT
LXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tX2JmMTZfaW5uZXJfcHJvZHVjdC5jcHAN
Cj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDJfeDhz
OHMzMnhfY29udl9rZXJuZWwuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JD
KS9zcmMvY3B1L2dlbW1feDhzOHMzMnhfaW5uZXJfcHJvZHVjdC5jcHANCj4gK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvYmZsb2F0MTYuY3BwDQo+ICtMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29yZV9iZjE2X2NvbnZf
a2VybmVsLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9q
aXRfYXZ4NTEyX2NvcmVfZjMyX3dpbm9fY29udl80eDNfa2VybmVsLmNwcA0KPiArTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tX2JmMTZfY29udm9sdXRpb24uY3Bw
DQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJf
Y29yZV9iZjE2XzF4MV9jb252X2tlcm5lbC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElC
RE5OTF9TUkMpL3NyYy9jcHUvc2ltcGxlX2NvbmNhdC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9
ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDJfMXgxX2NvbnZvbHV0aW9uLmNwcA0KPiAr
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfc3NlNDFfY29udm9s
dXRpb24uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2Nw
dV9jb252b2x1dGlvbl9saXN0LmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NS
Qykvc3JjL2NwdS9jcHVfc29mdG1heF9saXN0LmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChM
SUJETk5MX1NSQykvc3JjL2NwdS9qaXRfdHJhbnNwb3NlX3NyY191dGlscy5jcHANCj4gK0xJQkRO
TkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDUxMl9jb3JlX2JmMTZf
MXgxX2NvbnZvbHV0aW9uLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykv
c3JjL2NwdS9uaHdjX3Bvb2xpbmcuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxf
U1JDKS9zcmMvY3B1L2NwdV9wb29saW5nX2xpc3QuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF91bmlfcmVvcmRlci5jcHANCj4gK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDJfeDhzOHMzMnhfMXgxX2NvbnZv
bHV0aW9uLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9j
cHVfaW5uZXJfcHJvZHVjdF9saXN0LmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9zaW1wbGVfc3VtLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJE
Tk5MX1NSQykvc3JjL2NwdS9qaXRfc3NlNDFfMXgxX2NvbnZvbHV0aW9uLmNwcA0KPiArTElCRE5O
TF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfdW5pX2k4aThfcG9vbGluZy5j
cHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDUx
Ml9jb21tb25fY29udm9sdXRpb25fd2lub2dyYWQuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29yZV91OHM4czMyeF93aW5vX2NvbnZv
bHV0aW9uLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9y
ZWZfaW5uZXJfcHJvZHVjdC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvY3B1X2xybl9saXN0LmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9uY3NwX2JhdGNoX25vcm1hbGl6YXRpb24uY3BwDQo+ICtMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdngyX2NvbnZfa2VybmVsX2YzMi5j
cHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3VuaV9z
b2Z0bWF4LmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9y
ZWZfc29mdG1heC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9j
cHUvcmVmX3Bvb2xpbmcuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY3B1L2ppdF91bmlfZHdfY29udl9rZXJuZWxfZjMyLmNwcA0KPiArTElCRE5OTF9TUkNTLXkg
Kz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfYXZ4Ml8xeDFfY29udl9rZXJuZWxfZjMyLmNw
cA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfYXZ4NTEy
X2NvbW1vbl8xeDFfY29udl9rZXJuZWwuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkRO
TkxfU1JDKS9zcmMvY3B1L2dlbW1faW5uZXJfcHJvZHVjdF91dGlscy5jcHANCj4gK0xJQkROTkxf
U1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDJfeDhzOHMzMnhfMXgxX2Nv
bnZfa2VybmVsLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2Nw
dS9yZWZfbGF5ZXJfbm9ybWFsaXphdGlvbi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElC
RE5OTF9TUkMpL3NyYy9jcHUvaml0X2F2eDJfeDhzOHMzMnhfY29udm9sdXRpb24uY3BwDQo+ICtM
SUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF9hdng1MTJfY29tbW9u
X2NvbnZvbHV0aW9uLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3Jj
L2NwdS9qaXRfYXZ4NTEyX2NvbW1vbl8xeDFfY29udm9sdXRpb24uY3BwDQo+ICtMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2NwdV9pc2FfdHJhaXRzLmNwcA0KPiArTElC
RE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZWZfZGVjb252b2x1dGlvbi5j
cHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X3N1bS5j
cHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvY3B1X2VuZ2lu
ZS5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvaml0X3Vu
aV9wb29sX2tlcm5lbC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3Ny
Yy9jcHUvZ2VtbV9pbm5lcl9wcm9kdWN0LmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJE
Tk5MX1NSQykvc3JjL2NwdS9yZWZfbHJuLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJE
Tk5MX1NSQykvc3JjL2NwdS9qaXRfdW5pX2xybl9rZXJuZWxfZjMyLmNwcA0KPiArTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZXNhbXBsaW5nL3NpbXBsZV9yZXNhbXBs
aW5nLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9yZXNh
bXBsaW5nL3JlZl9yZXNhbXBsaW5nLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9yZXNhbXBsaW5nL2NwdV9yZXNhbXBsaW5nX2xpc3QuY3BwDQo+ICtMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2JpbmFyeS9jcHVfYmluYXJ5X2xp
c3QuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2JpbmFy
eS9qaXRfdW5pX2JpbmFyeS5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvYmluYXJ5L3JlZl9iaW5hcnkuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJ
QkROTkxfU1JDKS9zcmMvY3B1L2JpbmFyeS9qaXRfdW5pX2k4aThfYmluYXJ5LmNwcA0KPiArTElC
RE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9tYXRtdWwvZ2VtbV94OHM4czMy
eF9tYXRtdWwuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1
L21hdG11bC9jcHVfbWF0bXVsX2xpc3QuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkRO
TkxfU1JDKS9zcmMvY3B1L21hdG11bC9nZW1tX2JmMTZfbWF0bXVsLmNwcA0KPiArTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9tYXRtdWwvZ2VtbV9mMzJfbWF0bXVsLmNw
cA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9tYXRtdWwvcmVm
X21hdG11bC5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUv
cm5uL3Jubl91dGlscy5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3Ny
Yy9jcHUvcm5uL2NlbGxfZ3J1X2xici5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jcHUvcm5uL3JlZl9ybm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJ
QkROTkxfU1JDKS9zcmMvY3B1L3Jubi9yZWZfcG9zdGdlbW1fcm5uLmNwcA0KPiArTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9ybm4vY3B1X3Jubl9saXN0LmNwcA0KPiAr
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9ybm4vcmVmX3Bvc3RnZW1t
X2xzdG0uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L3Ju
bi9yZWZfcG9zdGdlbW1fZ3J1X2xici5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jcHUvcm5uL3JlZl9wb3N0Z2VtbV9ncnUuY3BwDQo+ICtMSUJETk5MX1NSQ1Mt
eSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L3Jubi9jZWxsX2dydS5jcHANCj4gK0xJQkROTkxf
U1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvcm5uL2NlbGxfY29tbW9uLmNwcA0KPiAr
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRfdXRpbHMvaml0X3V0
aWxzLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9qaXRf
dXRpbHMvaml0cHJvZmlsaW5nL2ppdHByb2ZpbGluZy5jDQo+ICtMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY3B1L2ppdF91dGlscy9saW51eF9wZXJmL2xpbnV4X3BlcmYuY3Bw
DQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZ2VtbV9p
bmZvLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1t
L2dlbW1fcGFjay5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9j
cHUvZ2VtbS9nZW1tX2RyaXZlci5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9T
UkMpL3NyYy9jcHUvZ2VtbS9nZW1tLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9nZW1tL2dlbXZfZHJpdmVyLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0g
JChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDUxMl9jb3JlX3U4X2Nv
cHlfYnRfa2Vybi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9j
cHUvZ2VtbS9zOHg4czMyL2ppdF9hdng1MTJfY29yZV9nZW1tX3M4dThzMzJfa2Vybi5jcHANCj4g
K0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL2pp
dF9hdngyX3U4X2NvcHlfYXRfa2Vybi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL2ppdF9hdng1MTJfY29yZV9rZXJuZWxfZ2Vtdl9z
OHg4czMyX2tlcm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMv
Y3B1L2dlbW0vczh4OHMzMi9qaXRfYXZ4NTEyX2NvcmVfdThfY29weV9hbl9rZXJuLmNwcA0KPiAr
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0
X2F2eDJfdThfY29weV9ibl9rZXJuLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDUxMl9jb3JlX3U4X2NvcHlfc3VtX2Fu
X2tlcm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dl
bW0vczh4OHMzMi9qaXRfYXZ4Ml91OF9jb3B5X3N1bV9hbl9rZXJuLmNwcA0KPiArTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDJfdThf
Y29weV9idF9rZXJuLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3Jj
L2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDJfdThfY29weV9zdW1fYXRfa2Vybi5jcHANCj4gK0xJ
QkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL2ppdF9h
dngyX3U4X2NvcHlfYW5fa2Vybi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9T
UkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL2ppdF9hdng1MTJfY29yZV91OF9jb3B5X3N1bV9idF9r
ZXJuLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1t
L3M4eDhzMzIvaml0X2F2eDJfdThfY29weV9zdW1fYnRfa2Vybi5jcHANCj4gK0xJQkROTkxfU1JD
Uy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9zOHg4czMyL2ppdF9hdng1MTJfY29y
ZV9nZW12X3M4eDhzMzIuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY3B1L2dlbW0vczh4OHMzMi9qaXRfYXZ4NTEyX2NvcmVfdThfY29weV9zdW1fYXRfa2Vybi5j
cHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9zOHg4
czMyL2ppdF9hdng1MTJfY29yZV91OF9jb3B5X3N1bV9ibl9rZXJuLmNwcA0KPiArTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDJfZ2Vt
bV9zOHU4czMyX2tlcm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY3B1L2dlbW0vczh4OHMzMi9qaXRfYXZ4Ml91OF9jb3B5X3N1bV9ibl9rZXJuLmNwcA0KPiAr
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvcmVm
X2dlbW1fczh4OHMzMi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3Ny
Yy9jcHUvZ2VtbS9zOHg4czMyL3NpbXBsZV9nZW1tX3M4czhzMzIuY3BwDQo+ICtMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vczh4OHMzMi9qaXRfYXZ4NTEyX2Nv
cmVfdThfY29weV9hdF9rZXJuLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NS
Qykvc3JjL2NwdS9nZW1tL3M4eDhzMzIvaml0X2F2eDUxMl9jb3JlX3U4X2NvcHlfYm5fa2Vybi5j
cHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2VtbS9mMzIv
Z2VtbV91dGlsc19mMzIuY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY3B1L2dlbW0vZjMyL2ppdF9hdng1MTJfY29yZV9mMzJfY29weV9idF9rZXJuLmNwcA0KPiAr
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4
Ml9mMzJfY29weV9idF9rZXJuLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NS
Qykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4Ml9mMzJfY29weV9ibl9rZXJuLmNwcA0KPiArTElC
RE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfc3NlNDFf
ZjMyX2NvcHlfYXRfa2Vybi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvZ2VtbS9mMzIvaml0X2F2eF9mMzJfY29weV9hbl9rZXJuLmNwcA0KPiArTElCRE5O
TF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4X2YzMl9j
b3B5X2J0X2tlcm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMv
Y3B1L2dlbW0vZjMyL2ppdF9hdngyX2tlcm5lbF9zZ2VtbV9rZXJuLmNwcA0KPiArTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4NTEyX2NvcmVf
ZjMyX2NvcHlfYm5fa2Vybi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvZ2VtbS9mMzIvaml0X3NzZTQxX2tlcm5lbF9zZ2VtbV9rZXJuLmNwcA0KPiArTElC
RE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4X2Yz
Ml9jb3B5X2JuX2tlcm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9z
cmMvY3B1L2dlbW0vZjMyL2ppdF9hdngyX2YzMl9jb3B5X2FuX2tlcm4uY3BwDQo+ICtMSUJETk5M
X1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9zc2U0MV9nZW12
X3RfZjMyX2tlcm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMv
Y3B1L2dlbW0vZjMyL2ppdF9hdnhfZ2Vtdl90X2YzMl9rZXJuLmNwcA0KPiArTElCRE5OTF9TUkNT
LXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfc3NlNDFfZjMyX2NvcHlf
YnRfa2Vybi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUv
Z2VtbS9mMzIvaml0X3NzZTQxX2YzMl9jb3B5X2FuX2tlcm4uY3BwDQo+ICtMSUJETk5MX1NSQ1Mt
eSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdnhfZjMyX2NvcHlfYXRf
a2Vybi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2Vt
bS9mMzIvaml0X2F2eDUxMl9jb3JlX2YzMl9jb3B5X2F0X2tlcm4uY3BwDQo+ICtMSUJETk5MX1NS
Q1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdnhfZ2VtbV9mMzIu
Y3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMy
L2ppdF9hdng1MTJfY29tbW9uX2dlbW1fZjMyLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChM
SUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4Ml9mMzJfY29weV9hdF9rZXJuLmNw
cA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2YzMi9q
aXRfc3NlNDFfa2VybmVsX2IwX3NnZW1tX2tlcm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAk
KExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdnhfa2VybmVsX2IwX3NnZW1tX2tl
cm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0v
ZjMyL3JlZl9nZW1tX2YzMi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMp
L3NyYy9jcHUvZ2VtbS9mMzIvaml0X3NzZTQxX2YzMl9jb3B5X2JuX2tlcm4uY3BwDQo+ICtMSUJE
Tk5MX1NSQ1MteSArPSAkKExJQkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vZjMyL2ppdF9hdng1MTJf
Y29yZV9mMzJfY29weV9hbl9rZXJuLmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5M
X1NSQykvc3JjL2NwdS9nZW1tL2YzMi9qaXRfYXZ4X2tlcm5lbF9zZ2VtbV9rZXJuLmNwcA0KPiAr
TElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2JmMTYvaml0X2F2
eDUxMl9jb3JlX3MxNl9jb3B5X2FuX2tlcm4uY3BwDQo+ICtMSUJETk5MX1NSQ1MteSArPSAkKExJ
QkROTkxfU1JDKS9zcmMvY3B1L2dlbW0vYmYxNi9qaXRfYXZ4NTEyX2NvcmVfczE2X2NvcHlfYnRf
a2Vybi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5OTF9TUkMpL3NyYy9jcHUvZ2Vt
bS9iZjE2L2ppdF9hdng1MTJfY29yZV9zMTZfY29weV9hdF9rZXJuLmNwcA0KPiArTElCRE5OTF9T
UkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NwdS9nZW1tL2JmMTYvaml0X2F2eDUxMl9jb3Jl
X2dlbW1fYmYxNmJmMTZmMzJfa2Vybi5jcHANCj4gK0xJQkROTkxfU1JDUy15ICs9ICQoTElCRE5O
TF9TUkMpL3NyYy9jcHUvZ2VtbS9iZjE2L2ppdF9hdng1MTJfY29yZV9zMTZfY29weV9ibl9rZXJu
LmNwcA0KPiArTElCRE5OTF9TUkNTLXkgKz0gJChMSUJETk5MX1NSQykvc3JjL2NvbXB1dGUvZGlz
cGF0Y2guY3BwDQo+ICsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvY3B1aWQuaCBiL2luY2x1ZGUv
Y3B1aWQuaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi5jYjc1MjU4
DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvaW5jbHVkZS9jcHVpZC5oDQo+IEBAIC0wLDAgKzEs
MTU4IEBADQo+ICsvKiBUYWtlbiBmcm9tIEZyZWVCU0QgKi8NCj4gKw0KPiArLyo9PT0tLS0tIGNw
dWlkLmggLSBYODYgY3B1IG1vZGVsIGRldGVjdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLT09PQ0KPiArICoNCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkNCj4gKyAqIG9mIHRo
aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0
d2FyZSIpLCB0byBkZWFsDQo+ICsgKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzDQo+ICsgKiB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu
ZC9vciBzZWxsDQo+ICsgKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl
cnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMNCj4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6DQo+ICsgKg0KPiArICogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQgaW4NCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIFNvZnR3YXJlLg0KPiArICoNCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SDQo+ICsgKiBJTVBM
SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSwNCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQ0KPiArICogQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
Ug0KPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwNCj4gKyAqIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4NCj4g
KyAqIFRIRSBTT0ZUV0FSRS4NCj4gKyAqDQo+ICsgKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09DQo+ICsg
Ki8NCj4gKw0KPiArI2lmICEoX194ODZfNjRfXyB8fCBfX2kzODZfXykNCj4gKyNlcnJvciB0aGlz
IGhlYWRlciBpcyBmb3IgeDg2IG9ubHkNCj4gKyNlbmRpZg0KPiArDQo+ICsvKiBGZWF0dXJlcyBp
biAlZWN4IGZvciBsZXZlbCAxICovDQo+ICsjZGVmaW5lIGJpdF9TU0UzICAgICAgICAweDAwMDAw
MDAxDQo+ICsjZGVmaW5lIGJpdF9QQ0xNVUxRRFEgICAweDAwMDAwMDAyDQo+ICsjZGVmaW5lIGJp
dF9EVEVTNjQgICAgICAweDAwMDAwMDA0DQo+ICsjZGVmaW5lIGJpdF9NT05JVE9SICAgICAweDAw
MDAwMDA4DQo+ICsjZGVmaW5lIGJpdF9EU0NQTCAgICAgICAweDAwMDAwMDEwDQo+ICsjZGVmaW5l
IGJpdF9WTVggICAgICAgICAweDAwMDAwMDIwDQo+ICsjZGVmaW5lIGJpdF9TTVggICAgICAgICAw
eDAwMDAwMDQwDQo+ICsjZGVmaW5lIGJpdF9FSVNUICAgICAgICAweDAwMDAwMDgwDQo+ICsjZGVm
aW5lIGJpdF9UTTIgICAgICAgICAweDAwMDAwMTAwDQo+ICsjZGVmaW5lIGJpdF9TU1NFMyAgICAg
ICAweDAwMDAwMjAwDQo+ICsjZGVmaW5lIGJpdF9DTlhUSUQgICAgICAweDAwMDAwNDAwDQo+ICsj
ZGVmaW5lIGJpdF9GTUEgICAgICAgICAweDAwMDAxMDAwDQo+ICsjZGVmaW5lIGJpdF9DTVBYQ0hH
MTZCICAweDAwMDAyMDAwDQo+ICsjZGVmaW5lIGJpdF94VFBSICAgICAgICAweDAwMDA0MDAwDQo+
ICsjZGVmaW5lIGJpdF9QRENNICAgICAgICAweDAwMDA4MDAwDQo+ICsjZGVmaW5lIGJpdF9QQ0lE
ICAgICAgICAweDAwMDIwMDAwDQo+ICsjZGVmaW5lIGJpdF9EQ0EgICAgICAgICAweDAwMDQwMDAw
DQo+ICsjZGVmaW5lIGJpdF9TU0U0MSAgICAgICAweDAwMDgwMDAwDQo+ICsjZGVmaW5lIGJpdF9T
U0U0MiAgICAgICAweDAwMTAwMDAwDQo+ICsjZGVmaW5lIGJpdF94MkFQSUMgICAgICAweDAwMjAw
MDAwDQo+ICsjZGVmaW5lIGJpdF9NT1ZCRSAgICAgICAweDAwNDAwMDAwDQo+ICsjZGVmaW5lIGJp
dF9QT1BDTlQgICAgICAweDAwODAwMDAwDQo+ICsjZGVmaW5lIGJpdF9UU0NEZWFkbGluZSAweDAx
MDAwMDAwDQo+ICsjZGVmaW5lIGJpdF9BRVNOSSAgICAgICAweDAyMDAwMDAwDQo+ICsjZGVmaW5l
IGJpdF9YU0FWRSAgICAgICAweDA0MDAwMDAwDQo+ICsjZGVmaW5lIGJpdF9PU1hTQVZFICAgICAw
eDA4MDAwMDAwDQo+ICsjZGVmaW5lIGJpdF9BVlggICAgICAgICAweDEwMDAwMDAwDQo+ICsjZGVm
aW5lIGJpdF9SRFJBTkQgICAgICAweDQwMDAwMDAwDQo+ICsNCj4gKy8qIEZlYXR1cmVzIGluICVl
ZHggZm9yIGxldmVsIDEgKi8NCj4gKyNkZWZpbmUgYml0X0ZQVSAgICAgICAgIDB4MDAwMDAwMDEN
Cj4gKyNkZWZpbmUgYml0X1ZNRSAgICAgICAgIDB4MDAwMDAwMDINCj4gKyNkZWZpbmUgYml0X0RF
ICAgICAgICAgIDB4MDAwMDAwMDQNCj4gKyNkZWZpbmUgYml0X1BTRSAgICAgICAgIDB4MDAwMDAw
MDgNCj4gKyNkZWZpbmUgYml0X1RTQyAgICAgICAgIDB4MDAwMDAwMTANCj4gKyNkZWZpbmUgYml0
X01TUiAgICAgICAgIDB4MDAwMDAwMjANCj4gKyNkZWZpbmUgYml0X1BBRSAgICAgICAgIDB4MDAw
MDAwNDANCj4gKyNkZWZpbmUgYml0X01DRSAgICAgICAgIDB4MDAwMDAwODANCj4gKyNkZWZpbmUg
Yml0X0NYOCAgICAgICAgIDB4MDAwMDAxMDANCj4gKyNkZWZpbmUgYml0X0FQSUMgICAgICAgIDB4
MDAwMDAyMDANCj4gKyNkZWZpbmUgYml0X1NFUCAgICAgICAgIDB4MDAwMDA4MDANCj4gKyNkZWZp
bmUgYml0X01UUlIgICAgICAgIDB4MDAwMDEwMDANCj4gKyNkZWZpbmUgYml0X1BHRSAgICAgICAg
IDB4MDAwMDIwMDANCj4gKyNkZWZpbmUgYml0X01DQSAgICAgICAgIDB4MDAwMDQwMDANCj4gKyNk
ZWZpbmUgYml0X0NNT1YgICAgICAgIDB4MDAwMDgwMDANCj4gKyNkZWZpbmUgYml0X1BBVCAgICAg
ICAgIDB4MDAwMTAwMDANCj4gKyNkZWZpbmUgYml0X1BTRTM2ICAgICAgIDB4MDAwMjAwMDANCj4g
KyNkZWZpbmUgYml0X1BTTiAgICAgICAgIDB4MDAwNDAwMDANCj4gKyNkZWZpbmUgYml0X0NMRlNI
ICAgICAgIDB4MDAwODAwMDANCj4gKyNkZWZpbmUgYml0X0RTICAgICAgICAgIDB4MDAyMDAwMDAN
Cj4gKyNkZWZpbmUgYml0X0FDUEkgICAgICAgIDB4MDA0MDAwMDANCj4gKyNkZWZpbmUgYml0X01N
WCAgICAgICAgIDB4MDA4MDAwMDANCj4gKyNkZWZpbmUgYml0X0ZYU1IgICAgICAgIDB4MDEwMDAw
MDANCj4gKyNkZWZpbmUgYml0X1NTRSAgICAgICAgIDB4MDIwMDAwMDANCj4gKyNkZWZpbmUgYml0
X1NTRTIgICAgICAgIDB4MDQwMDAwMDANCj4gKyNkZWZpbmUgYml0X1NTICAgICAgICAgIDB4MDgw
MDAwMDANCj4gKyNkZWZpbmUgYml0X0hUVCAgICAgICAgIDB4MTAwMDAwMDANCj4gKyNkZWZpbmUg
Yml0X1RNICAgICAgICAgIDB4MjAwMDAwMDANCj4gKyNkZWZpbmUgYml0X1BCRSAgICAgICAgIDB4
ODAwMDAwMDANCj4gKw0KPiArLyogRmVhdHVyZXMgaW4gJWVieCBmb3IgbGV2ZWwgNyBzdWItbGVh
ZiAwICovDQo+ICsjZGVmaW5lIGJpdF9GU0dTQkFTRSAgICAweDAwMDAwMDAxDQo+ICsjZGVmaW5l
IGJpdF9TTUVQICAgICAgICAweDAwMDAwMDgwDQo+ICsjZGVmaW5lIGJpdF9FTkhfTU9WU0IgICAw
eDAwMDAwMjAwDQo+ICsNCj4gKy8qIFBJQyBvbiBpMzg2IHVzZXMgJWVieCwgc28gcHJlc2VydmUg
aXQuICovDQo+ICsjaWYgX19pMzg2X18NCj4gKyNkZWZpbmUgX19jcHVpZChfX2xldmVsLCBfX2Vh
eCwgX19lYngsIF9fZWN4LCBfX2VkeCkgXA0KPiArICAgIF9fYXNtKCIgIHB1c2hsICAlJWVieFxu
IiBcDQo+ICsgICAgICAgICAgIiAgY3B1aWRcbiIgXA0KPiArICAgICAgICAgICIgIG1vdiAgICAl
JWVieCwlMVxuIiBcDQo+ICsgICAgICAgICAgIiAgcG9wbCAgICUlZWJ4IiBcDQo+ICsgICAgICAg
IDogIj1hIihfX2VheCksICI9ciIgKF9fZWJ4KSwgIj1jIihfX2VjeCksICI9ZCIoX19lZHgpIFwN
Cj4gKyAgICAgICAgOiAiMCIoX19sZXZlbCkpDQo+ICsNCj4gKyNkZWZpbmUgX19jcHVpZF9jb3Vu
dChfX2xldmVsLCBfX2NvdW50LCBfX2VheCwgX19lYngsIF9fZWN4LCBfX2VkeCkgXA0KPiArICAg
IF9fYXNtKCIgIHB1c2hsICAlJWVieFxuIiBcDQo+ICsgICAgICAgICAgIiAgY3B1aWRcbiIgXA0K
PiArICAgICAgICAgICIgIG1vdiAgICAlJWVieCwlMVxuIiBcDQo+ICsgICAgICAgICAgIiAgcG9w
bCAgICUlZWJ4IiBcDQo+ICsgICAgICAgIDogIj1hIihfX2VheCksICI9ciIgKF9fZWJ4KSwgIj1j
IihfX2VjeCksICI9ZCIoX19lZHgpIFwNCj4gKyAgICAgICAgOiAiMCIoX19sZXZlbCksICIyIihf
X2NvdW50KSkNCj4gKyNlbHNlDQo+ICsjZGVmaW5lIF9fY3B1aWQoX19sZXZlbCwgX19lYXgsIF9f
ZWJ4LCBfX2VjeCwgX19lZHgpIFwNCj4gKyAgICBfX2FzbSgiY3B1aWQiIDogIj1hIihfX2VheCks
ICI9YiIgKF9fZWJ4KSwgIj1jIihfX2VjeCksICI9ZCIoX19lZHgpIFwNCj4gKyAgICAgICAgICAg
ICAgICAgIDogIjAiKF9fbGV2ZWwpKQ0KPiArDQo+ICsjZGVmaW5lIF9fY3B1aWRfY291bnQoX19s
ZXZlbCwgX19jb3VudCwgX19lYXgsIF9fZWJ4LCBfX2VjeCwgX19lZHgpIFwNCj4gKyAgICBfX2Fz
bSgiY3B1aWQiIDogIj1hIihfX2VheCksICI9YiIgKF9fZWJ4KSwgIj1jIihfX2VjeCksICI9ZCIo
X19lZHgpIFwNCj4gKyAgICAgICAgICAgICAgICAgIDogIjAiKF9fbGV2ZWwpLCAiMiIoX19jb3Vu
dCkpDQo+ICsjZW5kaWYNCj4gKw0KPiArc3RhdGljIF9faW5saW5lIGludCBfX2dldF9jcHVpZCAo
dW5zaWduZWQgaW50IF9fbGV2ZWwsIHVuc2lnbmVkIGludCAqX19lYXgsDQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fZWJ4LCB1bnNpZ25lZCBpbnQg
Kl9fZWN4LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50
ICpfX2VkeCkgew0KPiArICAgIF9fY3B1aWQoX19sZXZlbCwgKl9fZWF4LCAqX19lYngsICpfX2Vj
eCwgKl9fZWR4KTsNCj4gKyAgICByZXR1cm4gMTsNCj4gK30NCj4gKw0KPiArc3RhdGljIF9faW5s
aW5lIGludCBfX2dldF9jcHVpZF9tYXggKHVuc2lnbmVkIGludCBfX2xldmVsLCB1bnNpZ25lZCBp
bnQgKl9fc2lnKQ0KPiArew0KPiArICAgIHVuc2lnbmVkIGludCBfX2VheCwgX19lYngsIF9fZWN4
LCBfX2VkeDsNCj4gKyNpZiBfX2kzODZfXw0KPiArICAgIGludCBfX2NwdWlkX3N1cHBvcnRlZDsN
Cj4gKw0KPiArICAgIF9fYXNtKCIgIHB1c2hmbFxuIg0KPiArICAgICAgICAgICIgIHBvcGwgICAl
JWVheFxuIg0KPiArICAgICAgICAgICIgIG1vdmwgICAlJWVheCwlJWVjeFxuIg0KPiArICAgICAg
ICAgICIgIHhvcmwgICAkMHgwMDIwMDAwMCwlJWVheFxuIg0KPiArICAgICAgICAgICIgIHB1c2hs
ICAlJWVheFxuIg0KPiArICAgICAgICAgICIgIHBvcGZsXG4iDQo+ICsgICAgICAgICAgIiAgcHVz
aGZsXG4iDQo+ICsgICAgICAgICAgIiAgcG9wbCAgICUlZWF4XG4iDQo+ICsgICAgICAgICAgIiAg
bW92bCAgICQwLCUwXG4iDQo+ICsgICAgICAgICAgIiAgY21wbCAgICUlZWF4LCUlZWN4XG4iDQo+
ICsgICAgICAgICAgIiAgamUgICAgIDFmXG4iDQo+ICsgICAgICAgICAgIiAgbW92bCAgICQxLCUw
XG4iDQo+ICsgICAgICAgICAgIjE6Ig0KPiArICAgICAgICA6ICI9ciIgKF9fY3B1aWRfc3VwcG9y
dGVkKSA6IDogImVheCIsICJlY3giKTsNCj4gKyAgICBpZiAoIV9fY3B1aWRfc3VwcG9ydGVkKQ0K
PiArICAgICAgICByZXR1cm4gMDsNCj4gKyNlbmRpZg0KPiArDQo+ICsgICAgX19jcHVpZChfX2xl
dmVsLCBfX2VheCwgX19lYngsIF9fZWN4LCBfX2VkeCk7DQo+ICsgICAgaWYgKF9fc2lnKQ0KPiAr
ICAgICAgICAqX19zaWcgPSBfX2VieDsNCj4gKyAgICByZXR1cm4gX19lYXg7DQo+ICt9DQo+IGRp
ZmYgLS1naXQgYS9pbmNsdWRlL2RubmxfY29uZmlnLmggYi9pbmNsdWRlL2RubmxfY29uZmlnLmgN
Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uYTRkNThiMA0KPiAtLS0g
L2Rldi9udWxsDQo+ICsrKyBiL2luY2x1ZGUvZG5ubF9jb25maWcuaA0KPiBAQCAtMCwwICsxLDg0
IEBADQo+ICsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiArKiBDb3B5cmlnaHQgMjAxOSBJbnRl
bCBDb3Jwb3JhdGlvbg0KPiArKg0KPiArKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCj4gKyogeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KPiArKiBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCj4gKyoNCj4gKyogICAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KPiArKg0KPiArKiBVbmxlc3Mg
cmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3
YXJlDQo+ICsqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuICJBUyBJUyIgQkFTSVMsDQo+ICsqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T
IE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KPiArKiBTZWUgdGhlIExp
Y2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k
DQo+ICsqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KPiArKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKi8NCj4gKw0KPiArI2lmbmRlZiBETk5MX0NPTkZJR19IDQo+ICsjZGVmaW5lIEROTkxf
Q09ORklHX0gNCj4gKw0KPiArI2luY2x1ZGUgImRubmxfdHlwZXMuaCINCj4gKw0KPiArLy8vIEBj
b25kIERPX05PVF9ET0NVTUVOVF9USElTDQo+ICsNCj4gKy8vIEFsbCBzeW1ib2xzIHNoYWxsIGJl
IGludGVybmFsIHVubGVzcyBtYXJrZWQgYXMgRE5OTF9BUEkNCj4gKyNpZiBkZWZpbmVkIF9XSU4z
MiB8fCBkZWZpbmVkIF9fQ1lHV0lOX18NCj4gKyNkZWZpbmUgRE5OTF9IRUxQRVJfRExMX0lNUE9S
VCBfX2RlY2xzcGVjKGRsbGltcG9ydCkNCj4gKyNkZWZpbmUgRE5OTF9IRUxQRVJfRExMX0VYUE9S
VCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkNCj4gKyNlbHNlDQo+ICsjaWYgX19HTlVDX18gPj0gNA0K
PiArI2RlZmluZSBETk5MX0hFTFBFUl9ETExfSU1QT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxp
dHkoImRlZmF1bHQiKSkpDQo+ICsjZGVmaW5lIEROTkxfSEVMUEVSX0RMTF9FWFBPUlQgX19hdHRy
aWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkNCj4gKyNlbHNlDQo+ICsjZGVmaW5lIERO
TkxfSEVMUEVSX0RMTF9JTVBPUlQNCj4gKyNkZWZpbmUgRE5OTF9IRUxQRVJfRExMX0VYUE9SVA0K
PiArI2VuZGlmDQo+ICsjZW5kaWYNCj4gKw0KPiArI2lmZGVmIEROTkxfRExMDQo+ICsjaWZkZWYg
RE5OTF9ETExfRVhQT1JUUw0KPiArI2RlZmluZSBETk5MX0FQSSBETk5MX0hFTFBFUl9ETExfRVhQ
T1JUDQo+ICsjZWxzZQ0KPiArI2RlZmluZSBETk5MX0FQSSBETk5MX0hFTFBFUl9ETExfSU1QT1JU
DQo+ICsjZW5kaWYNCj4gKyNlbHNlDQo+ICsjZGVmaW5lIEROTkxfQVBJDQo+ICsjZW5kaWYNCj4g
Kw0KPiArI2lmIGRlZmluZWQoX19HTlVDX18pDQo+ICsjZGVmaW5lIEROTkxfREVQUkVDQVRFRCBf
X2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSkNCj4gKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpDQo+
ICsjZGVmaW5lIEROTkxfREVQUkVDQVRFRCBfX2RlY2xzcGVjKGRlcHJlY2F0ZWQpDQo+ICsjZWxz
ZQ0KPiArI2RlZmluZSBETk5MX0RFUFJFQ0FURUQNCj4gKyNlbmRpZg0KPiArDQo+ICsvLy8gQGVu
ZGNvbmQNCj4gKw0KPiArLy8gY2xhbmctZm9ybWF0IG9mZg0KPiArDQo+ICsvLyBETk5MIENQVSB0
aHJlYWRpbmcgcnVudGltZQ0KPiArI2RlZmluZSBETk5MX0NQVV9USFJFQURJTkdfUlVOVElNRSBE
Tk5MX1JVTlRJTUVfU0VRDQo+ICsNCj4gKy8vIEROTkwgQ1BVIGVuZ2luZSBydW50aW1lDQo+ICsj
ZGVmaW5lIEROTkxfQ1BVX1JVTlRJTUUgRE5OTF9SVU5USU1FX1NFUQ0KPiArDQo+ICsvLyBETk5M
IEdQVSBlbmdpbmUgcnVudGltZQ0KPiArI2RlZmluZSBETk5MX0dQVV9SVU5USU1FIEROTkxfUlVO
VElNRV9OT05FDQo+ICsNCj4gKy8vIGNsYW5nLWZvcm1hdCBvbg0KPiArDQo+ICsjaWYgZGVmaW5l
ZChETk5MX0NQVV9SVU5USU1FKSAmJiBkZWZpbmVkKEROTkxfR1BVX1JVTlRJTUUpDQo+ICsjaWYg
KEROTkxfQ1BVX1JVTlRJTUUgPT0gRE5OTF9SVU5USU1FX05PTkUpIFwNCj4gKyAgICAgICAgfHwg
KEROTkxfQ1BVX1JVTlRJTUUgPT0gRE5OTF9SVU5USU1FX09DTCkNCj4gKyNlcnJvciAiVW5leHBl
Y3RlZCBETk5MX0NQVV9SVU5USU1FIg0KPiArI2VuZGlmDQo+ICsjaWYgKEROTkxfR1BVX1JVTlRJ
TUUgIT0gRE5OTF9SVU5USU1FX05PTkUpIFwNCj4gKyAgICAgICAgJiYgKEROTkxfR1BVX1JVTlRJ
TUUgIT0gRE5OTF9SVU5USU1FX09DTCkNCj4gKyNlcnJvciAiVW5leHBlY3RlZCBETk5MX0dQVV9S
VU5USU1FIg0KPiArI2VuZGlmDQo+ICsjZWxzZQ0KPiArI2Vycm9yICJCT1RIIEROTkxfQ1BVX1JV
TlRJTUUgYW5kIEROTkxfR1BVX1JVTlRJTUUgbXVzdCBiZSBkZWZpbmVkIg0KPiArI2VuZGlmDQo+
ICsNCj4gKyNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kbm5sX3ZlcnNpb24uaCBiL2lu
Y2x1ZGUvZG5ubF92ZXJzaW9uLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw
MDAwMC4uNTc3MTViOA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2luY2x1ZGUvZG5ubF92ZXJz
aW9uLmgNCj4gQEAgLTAsMCArMSwzNiBAQA0KPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4g
KyogQ29weXJpZ2h0IDIwMTkgSW50ZWwgQ29ycG9yYXRpb24NCj4gKyoNCj4gKyogTGljZW5zZWQg
dW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQo+
ICsqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0
aGUgTGljZW5zZS4NCj4gKyogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0
DQo+ICsqDQo+ICsqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y
LjANCj4gKyoNCj4gKyogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVl
ZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KPiArKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGlj
ZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KPiArKiBXSVRIT1VUIFdB
UlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1w
bGllZC4NCj4gKyogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292
ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KPiArKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5z
ZS4NCj4gKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQo+ICsNCj4gKyNpZm5kZWYgRE5OTF9WRVJT
SU9OX0gNCj4gKyNkZWZpbmUgRE5OTF9WRVJTSU9OX0gNCj4gKw0KPiArLy8gY2xhbmctZm9ybWF0
IG9mZg0KPiArDQo+ICsvLy8gTWFqb3IgdmVyc2lvbg0KPiArI2RlZmluZSBETk5MX1ZFUlNJT05f
TUFKT1IgMQ0KPiArDQo+ICsvLy8gTWlub3IgdmVyc2lvbg0KPiArI2RlZmluZSBETk5MX1ZFUlNJ
T05fTUlOT1IgMg0KPiArDQo+ICsvLy8gUGF0Y2ggdmVyc2lvbg0KPiArI2RlZmluZSBETk5MX1ZF
UlNJT05fUEFUQ0ggMA0KPiArDQo+ICsvLy8gR2l0IGNvbW1pdCBoYXNoDQo+ICsjZGVmaW5lIERO
TkxfVkVSU0lPTl9IQVNIICAiTi9BIg0KPiArDQo+ICsvLyBjbGFuZy1mb3JtYXQgb24NCj4gKw0K
PiArI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMDEtcHJldmVudC1jbG9iYmVyaW5n
LWJhcnJpZXItbWFjcm8ucGF0Y2ggYi9wYXRjaGVzLzAwMDEtcHJldmVudC1jbG9iYmVyaW5nLWJh
cnJpZXItbWFjcm8ucGF0Y2gNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAw
MC4uNWE0NDQ5Mg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3BhdGNoZXMvMDAwMS1wcmV2ZW50
LWNsb2JiZXJpbmctYmFycmllci1tYWNyby5wYXRjaA0KPiBAQCAtMCwwICsxLDExIEBADQo+ICst
LS0gYS9zcmMvY3B1L2NwdV9iYXJyaWVyLmhwcAkyMDIwLTAyLTAxIDIyOjE1OjUyLjk5OTkwMjA2
MiArMDEwMA0KPiArKysrIGIvc3JjL2NwdS9jcHVfYmFycmllci5ocHAJMjAyMC0wMi0wMSAyMjox
NjowMy40ODc3ODc1NDUgKzAxMDANCj4gK0BAIC0yMiw2ICsyMiw4IEBADQo+ICsgI2luY2x1ZGUg
ImppdF9nZW5lcmF0b3IuaHBwIg0KPiArICNpbmNsdWRlICJ1dGlscy5ocHAiDQo+ICsNCj4gKysj
dW5kZWYgYmFycmllcg0KPiArKw0KPiArIG5hbWVzcGFjZSBkbm5sIHsNCj4gKyBuYW1lc3BhY2Ug
aW1wbCB7DQo+ICsgbmFtZXNwYWNlIGNwdSB7DQo+IGRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMDIt
cHJldmVudC1jbG9iYmVyaW5nLUItbWFjcm8ucGF0Y2ggYi9wYXRjaGVzLzAwMDItcHJldmVudC1j
bG9iYmVyaW5nLUItbWFjcm8ucGF0Y2gNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg
MDAwMDAwMC4uMGFlMzNiMA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3BhdGNoZXMvMDAwMi1w
cmV2ZW50LWNsb2JiZXJpbmctQi1tYWNyby5wYXRjaA0KPiBAQCAtMCwwICsxLDExIEBADQo+ICst
LS0gYS9zcmMvY29tbW9uL3RhZ190cmFpdHMuaHBwCTIwMjAtMDItMDIgMTg6MjA6MTguMzQ5MTYw
ODEyICswMTAwDQo+ICsrKysgYi9zcmMvY29tbW9uL3RhZ190cmFpdHMuaHBwCTIwMjAtMDItMDIg
MTg6MjA6MzIuNDIxMDA2Mjg5ICswMTAwDQo+ICtAQCAtMjIsNiArMjIsOCBAQA0KPiArICNpbmNs
dWRlICJjX3R5cGVzX21hcC5ocHAiDQo+ICsgI2luY2x1ZGUgInV0aWxzLmhwcCINCj4gKw0KPiAr
KyN1bmRlZiBfQg0KPiArKw0KPiArIG5hbWVzcGFjZSBkbm5sIHsNCj4gKyBuYW1lc3BhY2UgaW1w
bCB7DQo+ICsNCj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDAwMy1wcmV2ZW50LWNsb2JiZXJpbmct
bm9wLW1hY3JvLnBhdGNoIGIvcGF0Y2hlcy8wMDAzLXByZXZlbnQtY2xvYmJlcmluZy1ub3AtbWFj
cm8ucGF0Y2gNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uMjdmNzI2
Nw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3BhdGNoZXMvMDAwMy1wcmV2ZW50LWNsb2JiZXJp
bmctbm9wLW1hY3JvLnBhdGNoDQo+IEBAIC0wLDAgKzEsMTEgQEANCj4gKy0tLSBhL3NyYy9jcHUv
eGJ5YWsveGJ5YWsuaAkyMDIwLTAyLTA0IDE1OjEyOjMyLjU4NjE3NjA1MSArMDEwMA0KPiArKysr
IGIvc3JjL2NwdS94Ynlhay94Ynlhay5oCTIwMjAtMDItMDQgMTU6MTI6NDIuNzU4MDU4MDM4ICsw
MTAwDQo+ICtAQCAtNzIsNiArNzIsOCBAQA0KPiArICNpbmNsdWRlIDxpb3N0cmVhbT4NCj4gKyAj
ZW5kaWYNCj4gKw0KPiArKyN1bmRlZiBub3ANCj4gKysNCj4gKyAvLyAjZGVmaW5lIFhCWUFLX0RJ
U0FCTEVfQVZYNTEyDQo+ICsNCj4gKyAvLyNkZWZpbmUgWEJZQUtfVVNFX01NQVBfQUxMT0NBVE9S
DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 10:01:53 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 10:01:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izdyq-0001K2-7u; Thu, 06 Feb 2020 10:01:52 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4PvT=32=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izdyp-0001Jx-1G
 for minios-devel@lists.xen.org; Thu, 06 Feb 2020 10:01:51 +0000
X-Inumbo-ID: b07f5b46-48c7-11ea-af1e-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id b07f5b46-48c7-11ea-af1e-12813bfff9fa;
 Thu, 06 Feb 2020 10:01:49 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 32003F2022;
 Thu,  6 Feb 2020 11:01:48 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id lk2v-T0J8eyg; Thu,  6 Feb 2020 11:01:48 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 0ED77F2006
 for <minios-devel@lists.xen.org>; Thu,  6 Feb 2020 11:01:46 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 11:01:45 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Thu, 6 Feb 2020 11:01:43 +0100
Message-ID: <20200206100143.4538-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] doc: Enable referencing of sections
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QWRkcyB0aGUgU3BoaW54IGV4dGVuc2lvbiBgYXV0b3NlY3Rpb25sYWJlbGAgd2hpY2ggYXV0b21h
dGljYWxseQpjcmVhdGVzIGxhYmVscyBmb3IgZWFjaCBzZWN0aW9uLiBCYXNlZCBvbiB0aGlzLCBT
cGhpbnggY2FuIGNvbnZlcnQKcmVmZXJlbmNlcyBgOnJlZjpgIGludG8gbGlua3MgdG8gb3RoZXIg
c2VjdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5l
Y2xhYi5ldT4KLS0tCiBkb2MvZ3VpZGVzL2NvbmYucHkgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAx
IGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvY29uZi5weSBiL2RvYy9ndWlk
ZXMvY29uZi5weQppbmRleCA1NWVlYjdiZS4uNjQ3OTk1ZGIgMTAwNjQ0Ci0tLSBhL2RvYy9ndWlk
ZXMvY29uZi5weQorKysgYi9kb2MvZ3VpZGVzL2NvbmYucHkKQEAgLTMxLDYgKzMxLDcgQEAgaW1w
b3J0IG9zCiBleHRlbnNpb25zID0gWwogICAgICdzcGhpbnguZXh0LnRvZG8nLAogICAgICdzcGhp
bnguZXh0LnZpZXdjb2RlJywKKyAgICAnc3BoaW54LmV4dC5hdXRvc2VjdGlvbmxhYmVsJywKIF0K
IAogIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiB0ZW1wbGF0ZXMgaGVyZSwgcmVsYXRpdmUg
dG8gdGhpcyBkaXJlY3RvcnkuCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 10:02:41 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 10:02:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izdzd-0001Lt-BQ; Thu, 06 Feb 2020 10:02:41 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4PvT=32=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izdzc-0001Lo-Om
 for minios-devel@lists.xen.org; Thu, 06 Feb 2020 10:02:40 +0000
X-Inumbo-ID: ce74a066-48c7-11ea-af1e-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id ce74a066-48c7-11ea-af1e-12813bfff9fa;
 Thu, 06 Feb 2020 10:02:39 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 84B57F2022;
 Thu,  6 Feb 2020 11:02:38 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id BfA6ZqJoj23k; Thu,  6 Feb 2020 11:02:38 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 5D957F2006
 for <minios-devel@lists.xen.org>; Thu,  6 Feb 2020 11:02:36 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 11:02:35 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Thu, 6 Feb 2020 11:02:32 +0100
Message-ID: <20200206100232.4632-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] doc: Update tracepoint section
 under debugging
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VXBkYXRlcyB0aGUgZGVidWdnaW5nIGRvY3VtZW50YXRpb246IHRyYWNlcG9pbnRzCgpTaWduZWQt
b2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KLS0tCiBkb2Mv
Z3VpZGVzL2RldmVsb3BlcnMtZGVidWdnaW5nLnJzdCB8IDE4NSArKysrKysrKysrKysrKy0tLS0t
LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgOTAgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9kZXZlbG9wZXJzLWRlYnVnZ2luZy5yc3QgYi9k
b2MvZ3VpZGVzL2RldmVsb3BlcnMtZGVidWdnaW5nLnJzdAppbmRleCA0OTIwNzM5Ny4uYjgwYTM5
YjAgMTAwNjQ0Ci0tLSBhL2RvYy9ndWlkZXMvZGV2ZWxvcGVycy1kZWJ1Z2dpbmcucnN0CisrKyBi
L2RvYy9ndWlkZXMvZGV2ZWxvcGVycy1kZWJ1Z2dpbmcucnN0CkBAIC0xMDAsMTA1ICsxMDAsMTI5
IEBAIFlvdSBzaG91bGQgYmUgYWxzbyBhYmxlIHRvIHVzZSB0aGUgZGVidWdnaW5nIGZpbGUKIGlt
YWdlLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1UcmFjZSBwb2ludHMKK1RyYWNl
cG9pbnRzCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIERlcGVuZGVuY2llcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
VGhlIGZpbGUgYGBzdXBwb3J0L3NjcmlwdHMvdWtfdHJhY2UvdHJhY2UucHlgYCBkZXBlbmRzIG9u
IHRoZSBjbGljawotYW5kIHRhYnVsYXRlIFB5dGhvbiBtb2R1bGVzOyB5b3UgY2FuIGluc3RhbGwg
dGhlbSBieSBydW5uaW5nOiA6OgorV2UgcHJvdmlkZSBzb21lIHRvb2xzIHRvIHJlYWQgYW5kIGV4
cG9ydCB0cmFjZSBkYXRhIHRoYXQgd2VyZSBjb2xsZWN0ZWQgd2l0aAorVW5pa3JhZnQncyB0cmFj
ZXBvaW50IHN5c3RlbS4gVGhlIHRvb2xzIGRlcGVuZCBvbiBQeXRob24zLCBhcyB3ZWxsIGFzIHRo
ZQorYGNsaWNrYCBhbmQgYHRhYnVsYXRlYCBtb2R1bGVzLiBZb3UgY2FuIGluc3RhbGwgdGhlbSBi
eSBydW5uaW5nCisoRGViaWFuL1VidW50dSk6CiAKLSAgc3VkbyBhcHQtZ2V0IGluc3RhbGwgcHl0
aG9uMy1jbGljayBweXRob24zLXRhYnVsYXRlCisuLiBjb2RlLWJsb2NrOjogc2gKIAotT3IsIHlv
dSBjYW4gaW5zdGFsbCB0cmFjZS5weSBpbnRvIGEgbG9jYWwgdmlydHVhbCBlbnZpcm9ubWVudDog
OjoKKyAgc3VkbyBhcHQtZ2V0IGluc3RhbGwgcHl0aG9uMyBweXRob24zLWNsaWNrIHB5dGhvbjMt
dGFidWxhdGUKIAotICBweXRob24zIC1tIHZlbnYgZW52Ci0gIC4gZW52L2Jpbi9hY3RpdmF0ZQot
ICBjZCBzdXBwb3J0L3NjcmlwdHMvdWtfdHJhY2UKLSAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHBp
cCBzZXR1cHRvb2xzIHdoZWVsCi0gIHBpcCBpbnN0YWxsIC0tZWRpdGFibGUgLgotICBkZWFjdGl2
YXRlCi0gIGNkIC0KKy0tLS0tLS0tLS0tLS0tLS0KK0VuYWJsaW5nIFRyYWNpbmcKKy0tLS0tLS0t
LS0tLS0tLS0KK1RyYWNlcG9pbnRzIGFyZSBwcm92aWRlZCBieSBgbGliL3VrZGVidWdgLiBUbyBl
bmFibGUgVW5pa3JhZnQgdG8gY29sbGVjdAordHJhY2UgZGF0YSwgZW5hYmxlIHRoZSBvcHRpb24g
YGBDT05GSUdfTElCVUtERUJVR19UUkFDRVBPSU5UU2BgIGluIHlvdXIKK2NvbmZpZ3VyYXRpb24g
KHZpYSBgYG1ha2UgbWVudWNvbmZpZ2BgIHVuZGVyIGBMaWJyYXJ5IENvbmZpZ3VyYXRpb25gIC0+
CitgdWtkZWJ1Z2AgLT4gYEVuYWJsZSB0cmFjZXBvaW50c2ApLgogCi1BbGwgdGhlIGRlcGVuZGVu
Y2llcyB3aWxsIGJlIGluc3RhbGxlZCBpbiB0aGUgJ2VudicgZm9sZGVyLCBub3QKLXlvdXIgbWFj
aGluZS4gWW91IGRvIG5vdCBoYXZlIHRvIGVudGVyIHlvdXIgdmlydHVhbCBlbnZpcm9ubWVudCwg
eW91Ci1jYW4gY2FsbCB0aGUgaW5zdGFsbGVkIHNjcmlwdCBkaXJlY3RseTogOjoKK1RoZSBjb25m
aWd1cmF0aW9uIG9wdGlvbiBgYENPTkZJR19MSUJVS0RFQlVHX0FMTF9UUkFDRVBPSU5UU2BgIGFj
dGl2YXRlcworKiphbGwqKiBleGlzdGluZyB0cmFjZXBvaW50cy4gQmVjYXVzZSB0cmFjZXBvaW50
cyBtYXkgbm90aWNlYWJseQorYWZmZWN0IHBlcmZvcm1hbmNlLCB5b3UgY2FuIGFsdGVybmF0aXZl
bHkgZW5hYmxlIHRyYWNlcG9pbnRzIG9ubHkgZm9yCitjb21waWxhdGlvbiB1bml0cyB0aGF0IHlv
dSBhcmUgaW50ZXJlc3RlZCBpbi4KIAotICBlbnYvYmluL3VrLXRyYWNlIC0taGVscAorVGhpcyBj
YW4gYmUgZG9uZSB3aXRoIHRoZSBgYE1ha2VmaWxlLnVrYGAgb2YgZWFjaCBsaWJyYXJ5OgogCi1C
ZWNhdXNlIG9mIHRoZSBgYC0tZWRpdGFibGVgYCBmbGFnLCBhbnkgbW9kaWZpY2F0aW9ucyBtYWRl
IHRvCi1gYHN1cHBvcnQvc2NyaXB0cy91a190cmFjZS90cmFjZS5weWBgIHdpbGwgYmUgcmVmbGVj
dGVkIGluIHRoZQotaW5zdGFsbGVkIGZpbGUuCisuLiBjb2RlLWJsb2NrOjogbWFrZQogCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SZWFkaW5nIFRyYWNlcG9pbnRzCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAjIEVuYWJsZSB0cmFjZXBvaW50cyBmb3IgYSB3aG9sZSBs
aWJyYXJ5CisgICBMSUJOQU1FX0NGTEFHUy15ICs9IC1EVUtfREVCVUdfVFJBQ0UKKyAgIExJQk5B
TUVfQ1hYRkxBR1MteSArPSAtRFVLX0RFQlVHX1RSQUNFCiAKLVRyYWNlcG9pbnRzIGFyZSBwcm92
aWRlZCBieSBgYGxpYnVrZGVidWdgYC4gVG8gbWFrZSBVbmlrcmFmdCBjb2xsZWN0Ci10cmFjaW5n
IGRhdGEsIGVuYWJsZSB0aGUgb3B0aW9uIGBgQ09ORklHX0xJQlVLREVCVUdfVFJBQ0VQT0lOVFNg
YCBpbiB5b3VyCi1jb25maWcgKHZpYSBgYG1ha2UgbWVudWNvbmZpZ2BgKS4KKyAgICMgQWx0ZXJu
YXRpdmVseSwgZW5hYmxlIHRyYWNlcG9pbnRzIG9mIHNvdXJjZSBmaWxlcyB5b3UgYXJlIGludGVy
ZXN0ZWQgaW4KKyAgIExJQk5BTUVfRklMRU5BTUUxX0ZMQUdTLXkgKz0gLURVS19ERUJVR19UUkFD
RQorICAgTElCTkFNRV9GSUxFTkFNRTJfRkxBR1MteSArPSAtRFVLX0RFQlVHX1RSQUNFCiAKLUJl
Y2F1c2UgdHJhY2Vwb2ludHMgY2FuIG5vdGljZWFibHkgYWZmZWN0IHBlcmZvcm1hbmNlLCBzZWxl
Y3RpdmUKLWVuYWJsaW5nIGlzIGltcGxlbWVudGVkLiBUaGUgYGBDT05GSUdfTElCVUtERUJVR19U
UkFDRVBPSU5UU2BgIG9wdGlvbgotanVzdCBlbmFibGVzIHRoZSBmdW5jdGlvbmFsaXR5LCBidXQg
YWxsIHRoZSB0cmFjZXBvaW50cyBhcmUgY29tcGlsZWQKLWludG8gbm90aGluZyBieSBkZWZhdWx0
IChpLmUuLCB0aGV5IGhhdmUgbm8gZWZmZWN0KS4gSWYgeW91IHdvdWxkIGxpa2UKLWEgbGlicmFy
eSB0byBjb2xsZWN0IHRyYWNpbmcgZGF0YSwgYWRkIHRoZSBmb2xsb3dpbmcgdG8gaXRzIE1ha2Vm
aWxlLnVrOiA6OgorVGhpcyBjYW4gYWxzbyBiZSBkb25lIGJ5IGRlZmluaW5nIGBgVUtfREVCVUdf
VFJBQ0VgYCBpbiB0aGUgaGVhZCBvZiB5b3VyIHNvdXJjZQorZmlsZShzKS4gUGxlYXNlIG1ha2Ug
c3VyZSB0aGF0IGBgVUtfREVCVUdfVFJBQ0VgYCBpcyBkZWZpbmVkICoqYmVmb3JlKioKK2BgPHVr
L3RyYWNlLmg+YGAgaXMgaW5jbHVkZWQ6CiAKLS4uIGNvZGUtYmxvY2s6OiBtYWtlCisuLiBjb2Rl
LWJsb2NrOjogYwogCi0gICBMSUJBUFBOQU1FX0NGTEFHUyArPSAtRFVLX0RFQlVHX1RSQUNFCisg
ICAjaWZuZGVmIFVLX0RFQlVHX1RSQUNFCisgICAjZGVmaW5lIFVLX0RFQlVHX1RSQUNFCisgICAj
ZW5kaWYKIAotSWYgeW91IG5lZWQganVzdCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdHJhY2Vwb2lu
dHMgaW4gb25lIGZpbGUsIGRlZmluZQotYGBVS19ERUJVR19UUkFDRWBgICoqYmVmb3JlKiogYGAj
aW5jbHVkZSA8dWsvdHJhY2UuaD5gYC4KKyAgICNpbmNsdWRlIDx1ay90cmFjZS5oPgogCi1JZiB5
b3Ugd2lzaCB0byBlbmFibGUgKipBTEwqKiBleGlzdGluZyB0cmFjZXBvaW50cywgZW5hYmxlCi1g
YENPTkZJR19MSUJVS0RFQlVHX0FMTF9UUkFDRVBPSU5UU2BgIGluIG1lbnVjb25maWcuCitBcyBz
b29uIGFzIHRyYWNpbmcgaXMgZW5hYmxlZCwgVW5pa3JhZnQgd2lsbCBzdG9yZSBzYW1wbGVzIG9m
IGVhY2ggZW5hYmxlZAordHJhY2Vwb2ludCBpbnRvIGFuIGludGVybmFsIHRyYWNlIGJ1ZmZlci4g
Q3VycmVudGx5IHRoaXMgaXMgbm90IGEgY2lyY3VsYXIKK2J1ZmZlci4gVGhpcyBtZWFucyB0aGF0
IGFzIHNvb24gYXMgaXQgaXMgZnVsbCwgVW5pa3JhZnQgd2lsbCBzdG9wIGNvbGxlY3RpbmcKK2Z1
cnRoZXIgc2FtcGxlcy4KIAotV2hlbiB0cmFjaW5nIGlzIGVuYWJsZWQsIFVuaWtyYWZ0IHdpbGwg
d3JpdGUgc2FtcGxlcyBpbnRvIGFuIGludGVybmFsCi10cmFjZSBidWZmZXIuIEN1cnJlbnRseSB0
aGlzIGlzIG5vdCBhIGNpcmN1bGFyIGJ1ZmZlciwgc28gYXMgc29vbiBhcwotaXQgb3ZlcmZsb3dz
LCBVbmlrcmFmdCB3aWxsIHN0b3AgY29sbGVjdGluZyBkYXRhLgorLS0tLS0tLS0tLS0tLS0tLS0t
CitSZWFkaW5nIFRyYWNlIERhdGEKKy0tLS0tLS0tLS0tLS0tLS0tLQorVW5pa3JhZnQgaXMgc3Rv
cmluZyB0cmFjZSBkYXRhIHRvIGFuIGludGVybmFsIGJ1ZmZlciB0aGF0IHJlc2lkZXMgaW4gdGhl
CitndWVzdCdzIG1haW4gbWVtb3J5LiBZb3UgY2FuIHVzZSBgZ2RiYCB0byByZWFkIGFuZCBleHBv
cnQgaXQuCitGb3IgdGhpcyBwdXJwb3NlLCB5b3Ugd2lsbCBuZWVkIHRvIGxvYWQgYGB1ay1nZGIu
cHlgYCBoZWxwZXIgaW50byB5b3VyCitgZ2RiYCBzZXNzaW9uLiBJdCBhZGRzIGFkZGl0aW9uYWwg
Y29tbWFuZHMgdGhhdCBhbGxvdyB5b3UgdG8gbGlzdCBhbmQgc3RvcmUKK3RoZSB0cmFjZSBkYXRh
LiBXZSByZWNvbW1lbmQgdG8gYXV0b21hdGljYWxseSBsb2FkIHRoZSBzY3JpcHQgdG8gYGdkYmAu
CitGb3IgdGhpcyBwdXJwb3NlLCBhZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHlvdXIKK2Bgfi8u
Z2RiaW5pdGBgOiA6OgogCi1UbyByZWFkIHRoZSBjb2xsZWN0ZWQgZGF0YSB5b3UgaGF2ZSAyIG9w
dGlvbnM6CisgIHNvdXJjZSAvcGF0aC90by95b3VyL2J1aWxkL3VrLWdkYi5weQogCi0xLiBVc2Ug
Z2RiCitJbiBvcmRlciB0byBjb2xsZWN0IHRoZSBkYXRhLCBvcGVuIGBnZGJgIHdpdGggdGhlIGRl
YnVnIGltYWdlIGFuZCBjb25uZWN0IHRvCit5b3VyIFVuaWtyYWZ0IGluc3RhbmNlIGFzIGRlc2Ny
aWJlZCBpbiBTZWN0aW9uIDpyZWY6YFVzaW5nIEdEQmA6CiAKLTIuIFVzZSB0cmFjZS5weQorLi4g
Y29kZS1ibG9jazo6IHNoCiAKLUZvciB0aGUgZmlyc3Qgb3B0aW9uLCB5b3UgbmVlZCB0aGUgJ3Vr
LWdkYi5weScgaGVscGVyIGxvYWRlZCBpbnRvIHRoZQotZ2RiIHNlc3Npb24uIFRvIG1ha2UgdGhp
cyBoYXBwZW4gYWxsIHlvdSBuZWVkIHRvIGRvIGlzIGFkZCB0aGUKLWZvbGxvd2luZyBsaW5lIGlu
dG8gfi8uZ2RiaW5pdDogOjoKKyAgZ2RiIGhlbGxvd29ybGQvYnVpbGQvaGVsbG93b3JsZF9rdm0t
eDg2XzY0LmRiZwogCi0gIGFkZC1hdXRvLWxvYWQtc2FmZS1wYXRoIC9wYXRoL3RvL3lvdXIvYnVp
bGQvZGlyZWN0b3J5CisuLiBub3RlOjogVGhlIGBgLmRiZ2BgIGltYWdlIGlzIHJlcXVpcmVkIGJl
Y2F1c2UgaXQgY29udGFpbnMgb2ZmbGluZSBkYXRhIG5lZWRlZAorICAgICAgICAgIGZvciBwYXJz
aW5nIHRoZSB0cmFjZSBidWZmZXIuCiAKLVdpdGggdGhpcywgZ2RiIHdpbGwgbG9hZCB0aGUgaGVs
cGVyIGF1dG9tYXRpY2FsbHkgZWFjaCB0aW1lIHlvdSBzdGFydCBnZGIKLXdpdGggYSBcKi5kYmcg
aW1hZ2UuIEZvciBleGFtcGxlIDo6CitBcyBzb29uIGFzIHlvdSBsZXQgcnVuIHlvdXIgZ3Vlc3Qs
IHNhbXBsZXMgc2hvdWxkIGJlIHN0b3JlZCBpbiBVbmlrcmFmdCdzIHRyYWNlCitidWZmZXIuIFlv
dSBjYW4gcHJpbnQgdGhlbSBieSBpc3N1aW5nIHRoZSBgZ2RiYCBjb21tYW5kIGBgdWsgdHJhY2Vg
YDogOjoKIAotICBnZGIgaGVsbG93b3JsZC9idWlsZC9oZWxsb3dvcmxkX2t2bS14ODZfNjQuZGJn
CisgIChnZGIpIHVrIHRyYWNlCiAKLU5vdyB5b3UgY2FuIHByaW50IHRoZSB0cmFjaW5nIGxvZyBi
eSBpc3N1aW5nIHRoZSBjb21tYW5kIGBgdWsKLXRyYWNlYGAuIEFsdGVybmF0aXZlbHksIHlvdSBj
YW4gc2F2ZSBhbGwgdHJhY2UgZGF0YSBpbnRvIGEgYmluYXJ5IGZpbGUKLXdpdGggYGB1ayB0cmFj
ZSBzYXZlIDxmaWxlbmFtZT5gYC4gVGhpcyB0cmFjZWZpbGUgY2FuIGJlIHByb2Nlc3NlZAotbGF0
ZXIgb2ZmbGluZSB1c2luZyB0aGUgdHJhY2UucHkgc2NyaXB0OiA6OgorQWx0ZXJuYXRpdmVseSwg
eW91IGNhbiBzYXZlIGFsbCB0cmFjZSBkYXRhIHRvIGRpc2sgd2l0aAorYGB1ayB0cmFjZSBzYXZl
IDxmaWxlbmFtZT5gYDogOjoKIAotICBzdXBwb3J0L3NjcmlwdHMvdWtfdHJhY2UvdHJhY2UucHkg
bGlzdCA8ZmlsZW5hbWU+CisgIChnZGIpIHVrIHNhdmUgdHJhY2VzLmRhdAogCi1XaGljaCBicmlu
Z3MgdXMgdG8gdGhlIHNlY29uZCBvcHRpb246IHRyYWNlLnB5IGNhbiBydW4gZ2RiIGFuZCBmZXRj
aAotdGhlIHRyYWNlZmlsZSBmb3IgeW91LiBKdXN0IHJ1bjogOjoKKy4uIG5vdGU6OiBJdCBtYXkg
bWFrZSBzZW5zZSB0byBjb25uZWN0IHdpdGggYGdkYmAgYWZ0ZXIgdGhlIGd1ZXN0IGV4ZWN1dGlv
biBoYXMKKwkgIGJlZW4gZmluaXNoZWQgKGFuZCB0aGUgdHJhY2UgYnVmZmVyIGdvdCBmaWxsZWQp
LiBGb3IgdGhpcyBwdXJwb3NlLAorCSAgbWFrZSBzdXJlIHRoYXQgeW91ciBoeXBlcnZpc29yIGlz
IG5vdCBkZXN0cm95aW5nIHRoZSBpbnN0YW5jZSBhZnRlcgorCSAgZ3Vlc3Qgc2h1dCBkb3duIChv
biBgcWVtdWAsIGFkZCBgYC0tbm8tc2h1dGRvd25gYCBhbmQgYGAtLW5vLXJlYm9vdGBgCisJICBw
YXJhbWV0ZXJzKS4KIAotICBzdXBwb3J0L3NjcmlwdHMvdWtfdHJhY2UvdHJhY2UucHkgZmV0Y2gg
IDx5b3VyX3VuaWtyYWZ0X2ltYWdlPi5kYmcKKy4uIG5vdGU6OiBJZiB5b3UgYXJlIHNlZWluZyB0
aGUgZXJyb3IgbWVzc2FnZQorCSAgYGBFcnJvciBnZXR0aW5nIHRoZSB0cmFjZSBidWZmZXIuIElz
IHRyYWNpbmcgZW5hYmxlZD9gYCwgeW91CisJICBwcm9iYWJseSBkaWQgbm90IGVuYWJsZSB0cmFj
aW5nIG9yIFVuaWtyYWZ0J3MgdHJhY2UgYnVmZmVyIGlzCisJICBlbXB0eS4gVGhpcyBjYW4gaGFw
cGVuIHdoZW4gbm8gdHJhY2Vwb2ludCB3YXMgZXZlciBjYWxsZWQuCiAKLS4uIG5vdGU6OiBUaGUg
XCouZGJnIGltYWdlIGlzIHJlcXVpcmVkLCBhcyBpdCBoYXZlIG9mZmxpbmUgZGF0YSBuZWVkZWQK
LSAgICAgICAgICBmb3IgcGFyc2luZyB0aGUgdHJhY2UgYnVmZmVyLgogCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1BZGRpbmcgeW91ciB0cmFjZXBvaW50cwotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotQmVsbG93IGlzIGEgc25pcHBldCBmb3IgdXNpbmcgdHJhY2Vwb2ludHM6
CitBbnkgc2F2ZWQgdHJhY2UgZmlsZSBjYW4gYmUgbGF0ZXIgcHJvY2Vzc2VkIHdpdGggdGhlIGBg
dHJhY2UucHlgYCBzY3JpcHQuCitJbiBvdXIgZXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHNo
CisKKyAgc3VwcG9ydC9zY3JpcHRzL3VrX3RyYWNlL3RyYWNlLnB5IGxpc3QgdHJhY2VzLmRhdAor
CistLS0tLS0tLS0tLS0tLS0tLS0tLQorQ3JlYXRpbmcgVHJhY2Vwb2ludHMKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tCitJbnN0cnVtZW50aW5nIHlvdXIgY29kZSB3aXRoIHRyYWNlcG9pbnRzIGlzIGRv
bmUgYnkgdHdvIHN0ZXBzLiBGaXJzdCwgeW91IGRlZmluZQorYW5kIHJlZ2lzdGVyIGEgdHJhY2Vw
b2ludCBoYW5kbGVyIHdpdGggdGhlIGBgVUtfVFJBQ0VQT0lOVCgpYGAgbWFjcm8uCitTZWNvbmQs
IHlvdSBwbGFjZSBjYWxscyB0byB0aGUgZ2VuZXJhdGVkIGhhbmRsZXIgYXQgdGhvc2UgcGxhY2Vz
IGluIHlvdXIgY29kZQord2hlcmUgeW91ciB3YW50IHRvIHRyYWNlIGFuIGV2ZW50OgogCiAuLiBj
b2RlLWJsb2NrOjogYwogCisgICNpbmNsdWRlIDx1ay90cmFjZS5oPgorCiAgIFVLX1RSQUNFUE9J
TlQodHJhY2VfdmZzX29wZW4sICJcIiVzXCIgMHgleCAwJTBvIiwgY29uc3QgY2hhciosIGludCwg
bW9kZV90KTsKKwogICBpbnQgb3Blbihjb25zdCBjaGFyICpwYXRobmFtZSwgaW50IGZsYWdzLCAu
Li4pCiAgIHsKICAgCXRyYWNlX3Zmc19vcGVuKHBhdGhuYW1lLCBmbGFncywgbW9kZSk7CkBAIC0y
MDgsMzAgKzIzMiwxMSBAQCBCZWxsb3cgaXMgYSBzbmlwcGV0IGZvciB1c2luZyB0cmFjZXBvaW50
czoKICAgCXJldHVybiAwOwogICB9CiAKLVRoZSBtYWNybyBgYFVLX1RSQUNFUE9JTlQodHJhY2Vf
bmFtZSwgZm10LCB0eXBlMSwgdHlwZTIsIC4uLiB0eXBlTilgYAotZ2VuZXJhdGVzIGEgc3RhdGlj
IGZ1bmN0aW9uIGB0cmFjZV9uYW1lKClgLCBhY2NlcHRpbmcgTiBwYXJhbWV0ZXJzIG9mCi10eXBl
cyAqKnR5cGUxKiosICoqdHlwZTIqKiBhbmQgc28gb24uIFVwIHRvIDcgcGFyYW1ldGVycyBhcmUg
c3VwcG9ydGVkLiBUaGUKLSoqZm10KiogaXMgYSBwcmludGYtc3R5bGUgZm9ybWF0IHdoaWNoIHdp
bGwgYmUgdXNlZCB0byBmb3JtIGEgbWVzc2FnZQotY29ycmVzcG9uZGluZyB0byB0aGUgdHJhY2Ug
c2FtcGxlLgotCi1UaGUgKipmbXQqKiBpcyBzdGF0aWMgYW5kIHN0b3JlZCBvZmZsaW5lLiBPbmx5
IHBhcmFtZXRlciB2YWx1ZXMgYXJlCi1zYXZlZCBvbiB0aGUgdHJhY2UgYnVmZmVyLiBJdCBpcyB0
aGUgam9iIG9mIHRoZSBvZmZsaW5lIHBhcnNlciB0bwotbWF0Y2ggdGhlbSB0b2dldGhlciBhbmQg
cHJpbnQgb3V0IHJlc3VsdGluZyBtZXNzYWdlcy4KLQotTm93IHlvdSBjYW4gY2FsbCB0aGUgZ2Vu
ZXJhdGVkIGZ1bmN0aW9uIGZyb20gdGhlIHBvaW50IG9mCi1pbnRlcmVzdC4gWW91IGFyZSBleHBl
Y3RlZCB0byBjYWxsIG9uZSB0cmFjZXBvaW50IGZyb20gZXhhY3RseSBvbmUKLXBsYWNlIGluIHlv
dXIgY29kZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotVHJvdWJsZXNob290aW5n
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JZiB5b3UgYXJlIGdldHRpbmcgdGhlIG1l
c3NhZ2U6OgotCi0gIEVycm9yIGdldHRpbmcgdGhlIHRyYWNlIGJ1ZmZlci4gSXMgdHJhY2luZyBl
bmFibGVkPwotCi1UaGlzIG1pZ2h0IGJlIGJlY2F1c2U6Ci0KLTEuIFlvdSBpbmRlZWQgbmVlZCB0
byBlbmFibGUgdHJhY2luZy4KLQotMi4gTm90IGEgc2luZ2xlIHRyYWNlcG9pbnQgaGFzIGJlZW4g
Y2FsbGVkLCBhbmQgZGVhZC1jb2RlIGVsaW1pbmF0aW9uCi0gICByZW1vdmVkIChyaWdodGZ1bGx5
KSB0aGUgdHJhY2luZyBmdW5jdGlvbmFsaXR5LgorYGBVS19UUkFDRVBPSU5UKHRyYWNlX25hbWUs
IGZtdCwgdHlwZTEsIHR5cGUyLCAuLi4gdHlwZU4pYGAgZ2VuZXJhdGVzCit0aGUgaGFuZGxlciBg
YHRyYWNlX25hbWUoKWBgIChzdGF0aWMgZnVuY3Rpb24pLiBJdCB3aWxsIGFjY2VwdCB1cAordG8g
NyBwYXJhbWV0ZXJzIG9mIHR5cGUgYGB0eXBlMWBgLCBgYHR5cGUyYGAsIGV0Yy4gVGhlIGdpdmVu
IGZvcm1hdCBzdHJpbmcKK2BgZm10YGAgaXMgYSBgcHJpbnRmYC1zdHlsZSBmb3JtYXQgd2hpY2gg
d2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBtZWFuaW5nZnVsCittZXNzYWdlcyBiYXNlZCBvbiB0aGUg
Y29sbGVjdGVkIHRyYWNlIHBhcmFtZXRlcnMuIFRoaXMgZm9ybWF0IHN0cmluZyBpcworb25seSBr
ZXB0IGluIHRoZSBkZWJ1ZyBpbWFnZSBhbmQgaXMgdXNlZCBieSB0aGUgdG9vbHMgdG8gcmVhZCBh
bmQgcGFyc2UgdGhlCit0cmFjZSBkYXRhLiBVbmlrcmFmdCdzIHRyYWNlIGJ1ZmZlciBzdG9yZXMg
Zm9yIGVhY2ggc2FtcGxlIGEgdGltZXN0YW1wLAordGhlIG5hbWUgb2YgdGhlIHRyYWNlcG9pbnQs
IGFuZCB0aGUgZ2l2ZW4gcGFyYW1ldGVycy4KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QK
TWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 10:03:46 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 10:03:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ize0f-0001OF-Fo; Thu, 06 Feb 2020 10:03:45 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=dB2o=32=lancaster.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1ize0e-0001OA-AB
 for minios-devel@lists.xen.org; Thu, 06 Feb 2020 10:03:44 +0000
X-Inumbo-ID: f42eccfb-48c7-11ea-af1e-12813bfff9fa
Received: from GBR01-LO2-obe.outbound.protection.outlook.com (unknown
 [40.107.10.108]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id f42eccfb-48c7-11ea-af1e-12813bfff9fa;
 Thu, 06 Feb 2020 10:03:43 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=b+1BQC+9IOtWjWaPKLoYbgcHECxftmeJIziNCHOH4m5t6jvKr6CBUBxPbOXV/pjaYf84VTeNP0sVDb4aeUw5PIUqpvu6yrRYtX8K+/U2aSb2eB4KXt8M2Zi53bViYqsmz0DbZOId0HKUUa3KqV6eNtE5fK1hg5Nl66j6csybEx+VN2loqjtk7y7YSLyD/9N30bSk6iG3nX8u+NxftwgexhkDOyJx6FHFmoiO90ur4larzk2IrUk7Czy2/MG7IvhUdcWb40p9DU9++RVYa1zqT9uyGLH7Cy1wgoArKuhIH1/ILpsH82E/PaIJTmYBV56jJCizzITGOtcahJwjZImoIg==
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=/Eg9SbdTLpJNb10Ta8z60RObsMdiC1ANoBmwwsBug3M=;
 b=H3Xgw+xW+A2H7bib/7HRDG1xHQXPGd4MZMRnIam+HaALGBLIyNgNnPyzAwbnAByZ92CkpMkDs6NR9QcEUXFE5E8Y04us942PJBqvc/rRInegmr0Rol2NTzkrvhjJRU727DKXK8eZWScXjkZq/kW3EbbCJ+KHqI74cGXC6ZNQsI2CgxotwO9QZZNL+v9OIoXK9fgwnfvAEBnZ0TjQTNWFYziVP05MbDhZ03XMhQVbwmUWv7c+ljgmC0ar04X1WtLigvmwx5BjuLy2Ckla++YSgYITUXZ73biB+IVTDi3mOCNQ+Jl6FTL/moFO8vgzwkYokTMQYZqqa9qwoZGe3zW/qQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=lancaster.ac.uk; dmarc=pass action=none
 header.from=lancaster.ac.uk; dkim=pass header.d=lancaster.ac.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=livelancsac.onmicrosoft.com; s=selector2-livelancsac-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/Eg9SbdTLpJNb10Ta8z60RObsMdiC1ANoBmwwsBug3M=;
 b=GOTOSPRLkAffxYIs/fnQSuyq85DMCfde97s7O4k5BNNaoFTPzqFihbG/iq8/vtgbHrnW+x41yTOFCIgZhBIldExunhjG2eemu3V9+vVGT1SVbnBvF3z/pJV+s4cNDQ3a7j6NVbapZ4MdlIX7cRZsDKKR09Srj4wDc2wCeb0R6Qc=
Received: from LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM (20.176.134.21) by
 LNXP265MB1051.GBRP265.PROD.OUTLOOK.COM (20.176.136.18) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2707.21; Thu, 6 Feb 2020 10:03:41 +0000
Received: from LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM
 ([fe80::79ac:67a5:15cd:8e8d]) by LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM
 ([fe80::79ac:67a5:15cd:8e8d%7]) with mapi id 15.20.2707.020; Thu, 6 Feb 2020
 10:03:41 +0000
From: "Jung, Alexander" <a.jung@lancaster.ac.uk>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT PATCH] doc: Enable referencing of
 sections
Thread-Index: AQHV3NS1g+dFQgjM20aKDEf8X+FaWg==
Date: Thu, 6 Feb 2020 10:03:41 +0000
Message-ID: <E5F74694-A20B-440F-A5C8-8137DD734BA3@lancaster.ac.uk>
References: <20200206100143.4538-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200206100143.4538-1-simon.kuenzer@neclab.eu>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=a.jung@lancaster.ac.uk; 
x-originating-ip: [195.37.70.100]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 22d66c1e-b1da-42c3-c31e-08d7aaebd814
x-ms-traffictypediagnostic: LNXP265MB1051:
x-microsoft-antispam-prvs: <LNXP265MB10512385F89D66285DCA1C59CE1D0@LNXP265MB1051.GBRP265.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:6108;
x-forefront-prvs: 0305463112
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10019020)(4636009)(366004)(199004)(189003)(6486002)(6512007)(33656002)(4744005)(966005)(6506007)(498600001)(5660300002)(86362001)(91956017)(76116006)(66946007)(66476007)(66556008)(64756008)(66446008)(6916009)(71200400001)(81156014)(8676002)(26005)(81166006)(186003)(36756003)(2906002)(2616005)(8936002);
 DIR:OUT; SFP:1102; SCL:1; SRVR:LNXP265MB1051;
 H:LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: lancaster.ac.uk does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: /EM6D/Q0C1+3vwhYqmMRqf9M/oNxEh5Sg8gULFhIfjwfChvnXhuRcFIoKrAgjZdWrWnWGiy4jTjlGlbLZ3252NmA17i5UZHSlZ2gVHaR1dkFQhk3EctFhwCds/svN2HY3hYkFZVA6YtQ/WwZn5QkQydBEchcLjqB7MVOmJazMmtknH3YdEjKavyPSwsKqo7UNzw9F3nCGgmqhiK0RwgPN9Bnr9gIuYjyZMP9e1G2H/kGb7DvYmgg8kz+Sadw1u8qLnq2lB3slilEZrS64QxA0WVobu03neAVPZnrt5bb/J4dm+vqM256Nw6p9qVIceoBkANYxWmr+fj5hS8iv/F1iQMyi5WlDOoh4Qav6AIKOjJ9fsOb5seqkspoHizYKDPxcbVQ7SZrE3MAl2e77Z7I5TpyjtsHVCYippzMP0g3GR1JhButsh1Hpy0W64utN664YGYUFYaQ2jYWFx+WV8Av/VXjyTYlTdgX7G2BA2Z1lhIQN1k7KZ0vEA7nhP4MM+dHiBmJikzvMTERobh6dnS4zQ==
x-ms-exchange-antispam-messagedata: VTW64xF8PRuhah1ZmQaNIN98Qryha8EPx71g+HxDNK0lO8vdiK+SOleiySoCGk5NAPVva1Ak1XtEhskwwnJ0fHqRvgpDG+GZL4H00olaWkCKlRLOKFQFZeQgwdX8BZI35bd0/m+A6RwcL46q6dWfaA==
x-ms-exchange-transport-forked: True
Content-ID: <04256DDA68287A47B2B296A765C1D03D@GBRP265.PROD.OUTLOOK.COM>
MIME-Version: 1.0
X-OriginatorOrg: lancaster.ac.uk
X-MS-Exchange-CrossTenant-Network-Message-Id: 22d66c1e-b1da-42c3-c31e-08d7aaebd814
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2020 10:03:41.3861 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 9c9bcd11-977a-4e9c-a9a0-bc734090164a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: PjOVwrmBD231MlBr8HwXr8uZ/RwYVTXjyGZArvx53Bs+n8ADO1l1rZW/2Dsmox9uofICnIBrbXD/lTmhF5dVRA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LNXP265MB1051
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] doc: Enable referencing of
 sections
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmV2aWV3ZWQtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+DQoNCu+7v09u
IDA2LjAyLjIwLCAxMTowMiwgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3Vlbnpl
ciIgPG1pbmlvcy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBv
ZiBzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBBZGRzIHRoZSBTcGhpbngg
ZXh0ZW5zaW9uIGBhdXRvc2VjdGlvbmxhYmVsYCB3aGljaCBhdXRvbWF0aWNhbGx5DQogICAgY3Jl
YXRlcyBsYWJlbHMgZm9yIGVhY2ggc2VjdGlvbi4gQmFzZWQgb24gdGhpcywgU3BoaW54IGNhbiBj
b252ZXJ0DQogICAgcmVmZXJlbmNlcyBgOnJlZjpgIGludG8gbGlua3MgdG8gb3RoZXIgc2VjdGlv
bnMuDQogICAgDQogICAgU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3Vlbnpl
ckBuZWNsYWIuZXU+DQogICAgLS0tDQogICAgIGRvYy9ndWlkZXMvY29uZi5weSB8IDEgKw0KICAg
ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykNCiAgICANCiAgICBkaWZmIC0tZ2l0IGEv
ZG9jL2d1aWRlcy9jb25mLnB5IGIvZG9jL2d1aWRlcy9jb25mLnB5DQogICAgaW5kZXggNTVlZWI3
YmUuLjY0Nzk5NWRiIDEwMDY0NA0KICAgIC0tLSBhL2RvYy9ndWlkZXMvY29uZi5weQ0KICAgICsr
KyBiL2RvYy9ndWlkZXMvY29uZi5weQ0KICAgIEBAIC0zMSw2ICszMSw3IEBAIGltcG9ydCBvcw0K
ICAgICBleHRlbnNpb25zID0gWw0KICAgICAgICAgJ3NwaGlueC5leHQudG9kbycsDQogICAgICAg
ICAnc3BoaW54LmV4dC52aWV3Y29kZScsDQogICAgKyAgICAnc3BoaW54LmV4dC5hdXRvc2VjdGlv
bmxhYmVsJywNCiAgICAgXQ0KICAgICANCiAgICAgIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFp
biB0ZW1wbGF0ZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuDQogICAgLS0gDQog
ICAgMi4yMC4xDQogICAgDQogICAgDQogICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18NCiAgICBNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0DQogICAgTWlu
aW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQogICAgaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA0KDQpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0
Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 10:04:57 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 10:04:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1ize1o-0001S9-UU; Thu, 06 Feb 2020 10:04:56 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=dB2o=32=lancaster.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1ize1o-0001S3-Au
 for minios-devel@lists.xen.org; Thu, 06 Feb 2020 10:04:56 +0000
X-Inumbo-ID: 1eff8fb4-48c8-11ea-af1e-12813bfff9fa
Received: from GBR01-LO2-obe.outbound.protection.outlook.com (unknown
 [40.107.10.92]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 1eff8fb4-48c8-11ea-af1e-12813bfff9fa;
 Thu, 06 Feb 2020 10:04:54 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=TUSU959oUA3sRkgyjJgeqc1wRIjlJF4mm+rqhd1bunVUfNSBUiK36eS+v/w+jk+mUx4dEBMY9FVaKEAPGxDfAa9lqaGsgYfZOUrGdlyw1BvIW8A5Pqbh7v5hENoQqAbmrQTtm3c1nZZC9oAldHdRIvb3yQEImNq1ggqEhIBFmXVRgoF9CFPBm8npSuDx6+jCdF4nFfFK0njTJ8HQRC5na2rOan47liwmLbwxAMHtJg5TaoBgmXpEusqRTd1KLPTZKXAf/stSUwj2Qq5LQjNwCRiJDalASuFra9e3f+vg33ukn6fZMyuLJ8Aax0wzRABxu4QtMRIEcH9+5ftHuEogAA==
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=gFu9RqLlSk4yhBtOe6ltFUGXna30OLKVpxDSoaakzw8=;
 b=Z1Ho0sed4aOi0fYRxX5+NLiF5Ht3n097rCCooLuAkxCQayvdo9xdKKPnBgsZdYfUbgsnHFq3hdJZw52mQ5E46yQQ2OZM/eE4lOTkWHJAXl1u8WwMacqNjBPv+JJRF8xnnck7lU6Wg2q19GPbgwu8U6cvCbSZNXBOyyeFDSXSEdcVauc+7gVuEK98/q58w+js05tFC2FhItXbn94wXVEEKbmNWlfD40Dc/4CjXJC4t8Tftr2gqOOoS2JMUXfQTb1zRjk9J8FNOI3nG1vG54DRqBW+biLU8PgVYKkpbBwgAp58Udr4jt1QEYpb2yhgmQLs5fqwNOl9l0gSXCPr4piWtg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=lancaster.ac.uk; dmarc=pass action=none
 header.from=lancaster.ac.uk; dkim=pass header.d=lancaster.ac.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=livelancsac.onmicrosoft.com; s=selector2-livelancsac-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gFu9RqLlSk4yhBtOe6ltFUGXna30OLKVpxDSoaakzw8=;
 b=AgMQLSjfV9xQR+93MjxhFXNeYd84Paoya8ZYmwCst6g+xqH3NauMNZ3V0FdHunVPhSGaTLBHEqdNw7UJ1rgBggIcCRbX0F8uNZGrcY1FKQCq2mkD+c4szlfzINsDnkHg+h8mW03kloe3XhcSy9hFPQatl6MxM5uRLNiKDM3SAeM=
Received: from LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM (20.176.134.21) by
 LNXP265MB1051.GBRP265.PROD.OUTLOOK.COM (20.176.136.18) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2707.21; Thu, 6 Feb 2020 10:04:47 +0000
Received: from LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM
 ([fe80::79ac:67a5:15cd:8e8d]) by LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM
 ([fe80::79ac:67a5:15cd:8e8d%7]) with mapi id 15.20.2707.020; Thu, 6 Feb 2020
 10:04:47 +0000
From: "Jung, Alexander" <a.jung@lancaster.ac.uk>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT PATCH] doc: Update tracepoint section
 under debugging
Thread-Index: AQHV3NTc1sz2BIbh20+nYZZbaQq0ZQ==
Date: Thu, 6 Feb 2020 10:04:47 +0000
Message-ID: <8D6CE733-E5D7-41C2-AC06-0483E2877B1F@lancaster.ac.uk>
References: <20200206100232.4632-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200206100232.4632-1-simon.kuenzer@neclab.eu>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=a.jung@lancaster.ac.uk; 
x-originating-ip: [195.37.70.100]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f0775a17-f4b6-4663-04dc-08d7aaebff64
x-ms-traffictypediagnostic: LNXP265MB1051:
x-microsoft-antispam-prvs: <LNXP265MB105137F3E87D17058EE12F6DCE1D0@LNXP265MB1051.GBRP265.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:1265;
x-forefront-prvs: 0305463112
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10019020)(4636009)(366004)(396003)(136003)(376002)(346002)(39860400002)(199004)(189003)(6486002)(6512007)(33656002)(966005)(6506007)(5660300002)(86362001)(478600001)(91956017)(76116006)(66946007)(66476007)(66556008)(64756008)(66446008)(71200400001)(316002)(81156014)(110136005)(8676002)(26005)(786003)(81166006)(186003)(36756003)(15650500001)(2906002)(2616005)(8936002);
 DIR:OUT; SFP:1102; SCL:1; SRVR:LNXP265MB1051;
 H:LNXP265MB1468.GBRP265.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: lancaster.ac.uk does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: lyJRo4x0BCsUiPrePavbQ3zSff+ZSnsQmw+Qo6sm9PxlDf7hOddw8KeHHhsvSmQGB2882gM49ymaBdQrTsxQW6NUerZZ9VMksw0XdQO9yHvbgkMLNPrPzB63RT5GZjjFiVmLx8aUuwc+SyQ1DwrsakXni7pWfcp3EFZGODLgiuCb0/jFP8s61qFaaH0abeFgikONisaSH3dos6YkDdGtnN2upRC+md0JUwbIE/uj1Bdj2Vfg68J349v0q/jrG80zXcRfmPV8jxAiCT7u0H2Nc//chKcHLFJ5dV/+w7YCf+F4ky8FBNz1t9RVPY7/UNIjOCrkhTGwAD0Nee1n6G9WMl8/3P8jclrKpwTwQUu/Igp837/Tvm4qm2gEzIwIVL3l4+qIjBERRDOxkHelTEOeothCcqgKJpHwDKvIB/KGX/nTzqY6fGSob+YUTxMxpWNwENI2WbYH0GmLayN72V+5eBCkbYPnixrkKcHjKImXiJGXXWc6cdLdPQd23iEbprOwZ0eoJtEshRIE/yby/ixtQQ==
x-ms-exchange-antispam-messagedata: p4QYisKiBT0SAEY2AnwP5KXv0sOzKPC/+Mn8A1w9jaJhsxPNVGUkwxcph9g20pRgpMsMsP6mu9FV499sJabDzhGOO8FPyTUuNeZkZOZVunS20xA1hg2it2aO4/e4kFVoZ+DkPFGtHQRYteEyO1ahuA==
x-ms-exchange-transport-forked: True
Content-ID: <7B339FB09441EC48AF33B4CC295559B5@GBRP265.PROD.OUTLOOK.COM>
MIME-Version: 1.0
X-OriginatorOrg: lancaster.ac.uk
X-MS-Exchange-CrossTenant-Network-Message-Id: f0775a17-f4b6-4663-04dc-08d7aaebff64
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2020 10:04:47.3286 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 9c9bcd11-977a-4e9c-a9a0-bc734090164a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 3Kc7mC99BtaewxHEV/QYrdNgCW2E3vZaGW99GraOcgG9u8pmM5jcm7lBq8pG0c98CkiUDkyX1n/b3yXe6Xmpkw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LNXP265MB1051
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] doc: Update tracepoint section
 under debugging
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmV2aWV3ZWQtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+DQoNCu+7v09u
IDA2LjAyLjIwLCAxMTowMywgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3Vlbnpl
ciIgPG1pbmlvcy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBv
ZiBzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBVcGRhdGVzIHRoZSBkZWJ1
Z2dpbmcgZG9jdW1lbnRhdGlvbjogdHJhY2Vwb2ludHMNCiAgICANCiAgICBTaWduZWQtb2ZmLWJ5
OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4NCiAgICAtLS0NCiAgICAg
ZG9jL2d1aWRlcy9kZXZlbG9wZXJzLWRlYnVnZ2luZy5yc3QgfCAxODUgKysrKysrKysrKysrKyst
LS0tLS0tLS0tLS0tLQ0KICAgICAxIGZpbGUgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgOTAg
ZGVsZXRpb25zKC0pDQogICAgDQogICAgZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvZGV2ZWxvcGVy
cy1kZWJ1Z2dpbmcucnN0IGIvZG9jL2d1aWRlcy9kZXZlbG9wZXJzLWRlYnVnZ2luZy5yc3QNCiAg
ICBpbmRleCA0OTIwNzM5Ny4uYjgwYTM5YjAgMTAwNjQ0DQogICAgLS0tIGEvZG9jL2d1aWRlcy9k
ZXZlbG9wZXJzLWRlYnVnZ2luZy5yc3QNCiAgICArKysgYi9kb2MvZ3VpZGVzL2RldmVsb3BlcnMt
ZGVidWdnaW5nLnJzdA0KICAgIEBAIC0xMDAsMTA1ICsxMDAsMTI5IEBAIFlvdSBzaG91bGQgYmUg
YWxzbyBhYmxlIHRvIHVzZSB0aGUgZGVidWdnaW5nIGZpbGUNCiAgICAgaW1hZ2UuDQogICAgIA0K
ICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgLVRyYWNlIHBvaW50cw0KICAg
ICtUcmFjZXBvaW50cw0KICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgIA0K
ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgIERlcGVuZGVuY2llcw0KICAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgLVRoZSBmaWxlIGBgc3VwcG9ydC9z
Y3JpcHRzL3VrX3RyYWNlL3RyYWNlLnB5YGAgZGVwZW5kcyBvbiB0aGUgY2xpY2sNCiAgICAtYW5k
IHRhYnVsYXRlIFB5dGhvbiBtb2R1bGVzOyB5b3UgY2FuIGluc3RhbGwgdGhlbSBieSBydW5uaW5n
OiA6Og0KICAgICtXZSBwcm92aWRlIHNvbWUgdG9vbHMgdG8gcmVhZCBhbmQgZXhwb3J0IHRyYWNl
IGRhdGEgdGhhdCB3ZXJlIGNvbGxlY3RlZCB3aXRoDQogICAgK1VuaWtyYWZ0J3MgdHJhY2Vwb2lu
dCBzeXN0ZW0uIFRoZSB0b29scyBkZXBlbmQgb24gUHl0aG9uMywgYXMgd2VsbCBhcyB0aGUNCiAg
ICArYGNsaWNrYCBhbmQgYHRhYnVsYXRlYCBtb2R1bGVzLiBZb3UgY2FuIGluc3RhbGwgdGhlbSBi
eSBydW5uaW5nDQogICAgKyhEZWJpYW4vVWJ1bnR1KToNCiAgICAgDQogICAgLSAgc3VkbyBhcHQt
Z2V0IGluc3RhbGwgcHl0aG9uMy1jbGljayBweXRob24zLXRhYnVsYXRlDQogICAgKy4uIGNvZGUt
YmxvY2s6OiBzaA0KICAgICANCiAgICAtT3IsIHlvdSBjYW4gaW5zdGFsbCB0cmFjZS5weSBpbnRv
IGEgbG9jYWwgdmlydHVhbCBlbnZpcm9ubWVudDogOjoNCiAgICArICBzdWRvIGFwdC1nZXQgaW5z
dGFsbCBweXRob24zIHB5dGhvbjMtY2xpY2sgcHl0aG9uMy10YWJ1bGF0ZQ0KICAgICANCiAgICAt
ICBweXRob24zIC1tIHZlbnYgZW52DQogICAgLSAgLiBlbnYvYmluL2FjdGl2YXRlDQogICAgLSAg
Y2Qgc3VwcG9ydC9zY3JpcHRzL3VrX3RyYWNlDQogICAgLSAgcGlwIGluc3RhbGwgLS11cGdyYWRl
IHBpcCBzZXR1cHRvb2xzIHdoZWVsDQogICAgLSAgcGlwIGluc3RhbGwgLS1lZGl0YWJsZSAuDQog
ICAgLSAgZGVhY3RpdmF0ZQ0KICAgIC0gIGNkIC0NCiAgICArLS0tLS0tLS0tLS0tLS0tLQ0KICAg
ICtFbmFibGluZyBUcmFjaW5nDQogICAgKy0tLS0tLS0tLS0tLS0tLS0NCiAgICArVHJhY2Vwb2lu
dHMgYXJlIHByb3ZpZGVkIGJ5IGBsaWIvdWtkZWJ1Z2AuIFRvIGVuYWJsZSBVbmlrcmFmdCB0byBj
b2xsZWN0DQogICAgK3RyYWNlIGRhdGEsIGVuYWJsZSB0aGUgb3B0aW9uIGBgQ09ORklHX0xJQlVL
REVCVUdfVFJBQ0VQT0lOVFNgYCBpbiB5b3VyDQogICAgK2NvbmZpZ3VyYXRpb24gKHZpYSBgYG1h
a2UgbWVudWNvbmZpZ2BgIHVuZGVyIGBMaWJyYXJ5IENvbmZpZ3VyYXRpb25gIC0+DQogICAgK2B1
a2RlYnVnYCAtPiBgRW5hYmxlIHRyYWNlcG9pbnRzYCkuDQogICAgIA0KICAgIC1BbGwgdGhlIGRl
cGVuZGVuY2llcyB3aWxsIGJlIGluc3RhbGxlZCBpbiB0aGUgJ2VudicgZm9sZGVyLCBub3QNCiAg
ICAteW91ciBtYWNoaW5lLiBZb3UgZG8gbm90IGhhdmUgdG8gZW50ZXIgeW91ciB2aXJ0dWFsIGVu
dmlyb25tZW50LCB5b3UNCiAgICAtY2FuIGNhbGwgdGhlIGluc3RhbGxlZCBzY3JpcHQgZGlyZWN0
bHk6IDo6DQogICAgK1RoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBgYENPTkZJR19MSUJVS0RFQlVH
X0FMTF9UUkFDRVBPSU5UU2BgIGFjdGl2YXRlcw0KICAgICsqKmFsbCoqIGV4aXN0aW5nIHRyYWNl
cG9pbnRzLiBCZWNhdXNlIHRyYWNlcG9pbnRzIG1heSBub3RpY2VhYmx5DQogICAgK2FmZmVjdCBw
ZXJmb3JtYW5jZSwgeW91IGNhbiBhbHRlcm5hdGl2ZWx5IGVuYWJsZSB0cmFjZXBvaW50cyBvbmx5
IGZvcg0KICAgICtjb21waWxhdGlvbiB1bml0cyB0aGF0IHlvdSBhcmUgaW50ZXJlc3RlZCBpbi4N
CiAgICAgDQogICAgLSAgZW52L2Jpbi91ay10cmFjZSAtLWhlbHANCiAgICArVGhpcyBjYW4gYmUg
ZG9uZSB3aXRoIHRoZSBgYE1ha2VmaWxlLnVrYGAgb2YgZWFjaCBsaWJyYXJ5Og0KICAgICANCiAg
ICAtQmVjYXVzZSBvZiB0aGUgYGAtLWVkaXRhYmxlYGAgZmxhZywgYW55IG1vZGlmaWNhdGlvbnMg
bWFkZSB0bw0KICAgIC1gYHN1cHBvcnQvc2NyaXB0cy91a190cmFjZS90cmFjZS5weWBgIHdpbGwg
YmUgcmVmbGVjdGVkIGluIHRoZQ0KICAgIC1pbnN0YWxsZWQgZmlsZS4NCiAgICArLi4gY29kZS1i
bG9jazo6IG1ha2UNCiAgICAgDQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAg
ICAtUmVhZGluZyBUcmFjZXBvaW50cw0KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQogICAgKyAgICMgRW5hYmxlIHRyYWNlcG9pbnRzIGZvciBhIHdob2xlIGxpYnJhcnkNCiAgICAr
ICAgTElCTkFNRV9DRkxBR1MteSArPSAtRFVLX0RFQlVHX1RSQUNFDQogICAgKyAgIExJQk5BTUVf
Q1hYRkxBR1MteSArPSAtRFVLX0RFQlVHX1RSQUNFDQogICAgIA0KICAgIC1UcmFjZXBvaW50cyBh
cmUgcHJvdmlkZWQgYnkgYGBsaWJ1a2RlYnVnYGAuIFRvIG1ha2UgVW5pa3JhZnQgY29sbGVjdA0K
ICAgIC10cmFjaW5nIGRhdGEsIGVuYWJsZSB0aGUgb3B0aW9uIGBgQ09ORklHX0xJQlVLREVCVUdf
VFJBQ0VQT0lOVFNgYCBpbiB5b3VyDQogICAgLWNvbmZpZyAodmlhIGBgbWFrZSBtZW51Y29uZmln
YGApLg0KICAgICsgICAjIEFsdGVybmF0aXZlbHksIGVuYWJsZSB0cmFjZXBvaW50cyBvZiBzb3Vy
Y2UgZmlsZXMgeW91IGFyZSBpbnRlcmVzdGVkIGluDQogICAgKyAgIExJQk5BTUVfRklMRU5BTUUx
X0ZMQUdTLXkgKz0gLURVS19ERUJVR19UUkFDRQ0KICAgICsgICBMSUJOQU1FX0ZJTEVOQU1FMl9G
TEFHUy15ICs9IC1EVUtfREVCVUdfVFJBQ0UNCiAgICAgDQogICAgLUJlY2F1c2UgdHJhY2Vwb2lu
dHMgY2FuIG5vdGljZWFibHkgYWZmZWN0IHBlcmZvcm1hbmNlLCBzZWxlY3RpdmUNCiAgICAtZW5h
YmxpbmcgaXMgaW1wbGVtZW50ZWQuIFRoZSBgYENPTkZJR19MSUJVS0RFQlVHX1RSQUNFUE9JTlRT
YGAgb3B0aW9uDQogICAgLWp1c3QgZW5hYmxlcyB0aGUgZnVuY3Rpb25hbGl0eSwgYnV0IGFsbCB0
aGUgdHJhY2Vwb2ludHMgYXJlIGNvbXBpbGVkDQogICAgLWludG8gbm90aGluZyBieSBkZWZhdWx0
IChpLmUuLCB0aGV5IGhhdmUgbm8gZWZmZWN0KS4gSWYgeW91IHdvdWxkIGxpa2UNCiAgICAtYSBs
aWJyYXJ5IHRvIGNvbGxlY3QgdHJhY2luZyBkYXRhLCBhZGQgdGhlIGZvbGxvd2luZyB0byBpdHMg
TWFrZWZpbGUudWs6IDo6DQogICAgK1RoaXMgY2FuIGFsc28gYmUgZG9uZSBieSBkZWZpbmluZyBg
YFVLX0RFQlVHX1RSQUNFYGAgaW4gdGhlIGhlYWQgb2YgeW91ciBzb3VyY2UNCiAgICArZmlsZShz
KS4gUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGBgVUtfREVCVUdfVFJBQ0VgYCBpcyBkZWZpbmVkICoq
YmVmb3JlKioNCiAgICArYGA8dWsvdHJhY2UuaD5gYCBpcyBpbmNsdWRlZDoNCiAgICAgDQogICAg
LS4uIGNvZGUtYmxvY2s6OiBtYWtlDQogICAgKy4uIGNvZGUtYmxvY2s6OiBjDQogICAgIA0KICAg
IC0gICBMSUJBUFBOQU1FX0NGTEFHUyArPSAtRFVLX0RFQlVHX1RSQUNFDQogICAgKyAgICNpZm5k
ZWYgVUtfREVCVUdfVFJBQ0UNCiAgICArICAgI2RlZmluZSBVS19ERUJVR19UUkFDRQ0KICAgICsg
ICAjZW5kaWYNCiAgICAgDQogICAgLUlmIHlvdSBuZWVkIGp1c3QgdGhlIGluZm9ybWF0aW9uIGFi
b3V0IHRyYWNlcG9pbnRzIGluIG9uZSBmaWxlLCBkZWZpbmUNCiAgICAtYGBVS19ERUJVR19UUkFD
RWBgICoqYmVmb3JlKiogYGAjaW5jbHVkZSA8dWsvdHJhY2UuaD5gYC4NCiAgICArICAgI2luY2x1
ZGUgPHVrL3RyYWNlLmg+DQogICAgIA0KICAgIC1JZiB5b3Ugd2lzaCB0byBlbmFibGUgKipBTEwq
KiBleGlzdGluZyB0cmFjZXBvaW50cywgZW5hYmxlDQogICAgLWBgQ09ORklHX0xJQlVLREVCVUdf
QUxMX1RSQUNFUE9JTlRTYGAgaW4gbWVudWNvbmZpZy4NCiAgICArQXMgc29vbiBhcyB0cmFjaW5n
IGlzIGVuYWJsZWQsIFVuaWtyYWZ0IHdpbGwgc3RvcmUgc2FtcGxlcyBvZiBlYWNoIGVuYWJsZWQN
CiAgICArdHJhY2Vwb2ludCBpbnRvIGFuIGludGVybmFsIHRyYWNlIGJ1ZmZlci4gQ3VycmVudGx5
IHRoaXMgaXMgbm90IGEgY2lyY3VsYXINCiAgICArYnVmZmVyLiBUaGlzIG1lYW5zIHRoYXQgYXMg
c29vbiBhcyBpdCBpcyBmdWxsLCBVbmlrcmFmdCB3aWxsIHN0b3AgY29sbGVjdGluZw0KICAgICtm
dXJ0aGVyIHNhbXBsZXMuDQogICAgIA0KICAgIC1XaGVuIHRyYWNpbmcgaXMgZW5hYmxlZCwgVW5p
a3JhZnQgd2lsbCB3cml0ZSBzYW1wbGVzIGludG8gYW4gaW50ZXJuYWwNCiAgICAtdHJhY2UgYnVm
ZmVyLiBDdXJyZW50bHkgdGhpcyBpcyBub3QgYSBjaXJjdWxhciBidWZmZXIsIHNvIGFzIHNvb24g
YXMNCiAgICAtaXQgb3ZlcmZsb3dzLCBVbmlrcmFmdCB3aWxsIHN0b3AgY29sbGVjdGluZyBkYXRh
Lg0KICAgICstLS0tLS0tLS0tLS0tLS0tLS0NCiAgICArUmVhZGluZyBUcmFjZSBEYXRhDQogICAg
Ky0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICtVbmlrcmFmdCBpcyBzdG9yaW5nIHRyYWNlIGRhdGEg
dG8gYW4gaW50ZXJuYWwgYnVmZmVyIHRoYXQgcmVzaWRlcyBpbiB0aGUNCiAgICArZ3Vlc3QncyBt
YWluIG1lbW9yeS4gWW91IGNhbiB1c2UgYGdkYmAgdG8gcmVhZCBhbmQgZXhwb3J0IGl0Lg0KICAg
ICtGb3IgdGhpcyBwdXJwb3NlLCB5b3Ugd2lsbCBuZWVkIHRvIGxvYWQgYGB1ay1nZGIucHlgYCBo
ZWxwZXIgaW50byB5b3VyDQogICAgK2BnZGJgIHNlc3Npb24uIEl0IGFkZHMgYWRkaXRpb25hbCBj
b21tYW5kcyB0aGF0IGFsbG93IHlvdSB0byBsaXN0IGFuZCBzdG9yZQ0KICAgICt0aGUgdHJhY2Ug
ZGF0YS4gV2UgcmVjb21tZW5kIHRvIGF1dG9tYXRpY2FsbHkgbG9hZCB0aGUgc2NyaXB0IHRvIGBn
ZGJgLg0KICAgICtGb3IgdGhpcyBwdXJwb3NlLCBhZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHlv
dXINCiAgICArYGB+Ly5nZGJpbml0YGA6IDo6DQogICAgIA0KICAgIC1UbyByZWFkIHRoZSBjb2xs
ZWN0ZWQgZGF0YSB5b3UgaGF2ZSAyIG9wdGlvbnM6DQogICAgKyAgc291cmNlIC9wYXRoL3RvL3lv
dXIvYnVpbGQvdWstZ2RiLnB5DQogICAgIA0KICAgIC0xLiBVc2UgZ2RiDQogICAgK0luIG9yZGVy
IHRvIGNvbGxlY3QgdGhlIGRhdGEsIG9wZW4gYGdkYmAgd2l0aCB0aGUgZGVidWcgaW1hZ2UgYW5k
IGNvbm5lY3QgdG8NCiAgICAreW91ciBVbmlrcmFmdCBpbnN0YW5jZSBhcyBkZXNjcmliZWQgaW4g
U2VjdGlvbiA6cmVmOmBVc2luZyBHREJgOg0KICAgICANCiAgICAtMi4gVXNlIHRyYWNlLnB5DQog
ICAgKy4uIGNvZGUtYmxvY2s6OiBzaA0KICAgICANCiAgICAtRm9yIHRoZSBmaXJzdCBvcHRpb24s
IHlvdSBuZWVkIHRoZSAndWstZ2RiLnB5JyBoZWxwZXIgbG9hZGVkIGludG8gdGhlDQogICAgLWdk
YiBzZXNzaW9uLiBUbyBtYWtlIHRoaXMgaGFwcGVuIGFsbCB5b3UgbmVlZCB0byBkbyBpcyBhZGQg
dGhlDQogICAgLWZvbGxvd2luZyBsaW5lIGludG8gfi8uZ2RiaW5pdDogOjoNCiAgICArICBnZGIg
aGVsbG93b3JsZC9idWlsZC9oZWxsb3dvcmxkX2t2bS14ODZfNjQuZGJnDQogICAgIA0KICAgIC0g
IGFkZC1hdXRvLWxvYWQtc2FmZS1wYXRoIC9wYXRoL3RvL3lvdXIvYnVpbGQvZGlyZWN0b3J5DQog
ICAgKy4uIG5vdGU6OiBUaGUgYGAuZGJnYGAgaW1hZ2UgaXMgcmVxdWlyZWQgYmVjYXVzZSBpdCBj
b250YWlucyBvZmZsaW5lIGRhdGEgbmVlZGVkDQogICAgKyAgICAgICAgICBmb3IgcGFyc2luZyB0
aGUgdHJhY2UgYnVmZmVyLg0KICAgICANCiAgICAtV2l0aCB0aGlzLCBnZGIgd2lsbCBsb2FkIHRo
ZSBoZWxwZXIgYXV0b21hdGljYWxseSBlYWNoIHRpbWUgeW91IHN0YXJ0IGdkYg0KICAgIC13aXRo
IGEgXCouZGJnIGltYWdlLiBGb3IgZXhhbXBsZSA6Og0KICAgICtBcyBzb29uIGFzIHlvdSBsZXQg
cnVuIHlvdXIgZ3Vlc3QsIHNhbXBsZXMgc2hvdWxkIGJlIHN0b3JlZCBpbiBVbmlrcmFmdCdzIHRy
YWNlDQogICAgK2J1ZmZlci4gWW91IGNhbiBwcmludCB0aGVtIGJ5IGlzc3VpbmcgdGhlIGBnZGJg
IGNvbW1hbmQgYGB1ayB0cmFjZWBgOiA6Og0KICAgICANCiAgICAtICBnZGIgaGVsbG93b3JsZC9i
dWlsZC9oZWxsb3dvcmxkX2t2bS14ODZfNjQuZGJnDQogICAgKyAgKGdkYikgdWsgdHJhY2UNCiAg
ICAgDQogICAgLU5vdyB5b3UgY2FuIHByaW50IHRoZSB0cmFjaW5nIGxvZyBieSBpc3N1aW5nIHRo
ZSBjb21tYW5kIGBgdWsNCiAgICAtdHJhY2VgYC4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzYXZl
IGFsbCB0cmFjZSBkYXRhIGludG8gYSBiaW5hcnkgZmlsZQ0KICAgIC13aXRoIGBgdWsgdHJhY2Ug
c2F2ZSA8ZmlsZW5hbWU+YGAuIFRoaXMgdHJhY2VmaWxlIGNhbiBiZSBwcm9jZXNzZWQNCiAgICAt
bGF0ZXIgb2ZmbGluZSB1c2luZyB0aGUgdHJhY2UucHkgc2NyaXB0OiA6Og0KICAgICtBbHRlcm5h
dGl2ZWx5LCB5b3UgY2FuIHNhdmUgYWxsIHRyYWNlIGRhdGEgdG8gZGlzayB3aXRoDQogICAgK2Bg
dWsgdHJhY2Ugc2F2ZSA8ZmlsZW5hbWU+YGA6IDo6DQogICAgIA0KICAgIC0gIHN1cHBvcnQvc2Ny
aXB0cy91a190cmFjZS90cmFjZS5weSBsaXN0IDxmaWxlbmFtZT4NCiAgICArICAoZ2RiKSB1ayBz
YXZlIHRyYWNlcy5kYXQNCiAgICAgDQogICAgLVdoaWNoIGJyaW5ncyB1cyB0byB0aGUgc2Vjb25k
IG9wdGlvbjogdHJhY2UucHkgY2FuIHJ1biBnZGIgYW5kIGZldGNoDQogICAgLXRoZSB0cmFjZWZp
bGUgZm9yIHlvdS4gSnVzdCBydW46IDo6DQogICAgKy4uIG5vdGU6OiBJdCBtYXkgbWFrZSBzZW5z
ZSB0byBjb25uZWN0IHdpdGggYGdkYmAgYWZ0ZXIgdGhlIGd1ZXN0IGV4ZWN1dGlvbiBoYXMNCiAg
ICArCSAgYmVlbiBmaW5pc2hlZCAoYW5kIHRoZSB0cmFjZSBidWZmZXIgZ290IGZpbGxlZCkuIEZv
ciB0aGlzIHB1cnBvc2UsDQogICAgKwkgIG1ha2Ugc3VyZSB0aGF0IHlvdXIgaHlwZXJ2aXNvciBp
cyBub3QgZGVzdHJveWluZyB0aGUgaW5zdGFuY2UgYWZ0ZXINCiAgICArCSAgZ3Vlc3Qgc2h1dCBk
b3duIChvbiBgcWVtdWAsIGFkZCBgYC0tbm8tc2h1dGRvd25gYCBhbmQgYGAtLW5vLXJlYm9vdGBg
DQogICAgKwkgIHBhcmFtZXRlcnMpLg0KICAgICANCiAgICAtICBzdXBwb3J0L3NjcmlwdHMvdWtf
dHJhY2UvdHJhY2UucHkgZmV0Y2ggIDx5b3VyX3VuaWtyYWZ0X2ltYWdlPi5kYmcNCiAgICArLi4g
bm90ZTo6IElmIHlvdSBhcmUgc2VlaW5nIHRoZSBlcnJvciBtZXNzYWdlDQogICAgKwkgIGBgRXJy
b3IgZ2V0dGluZyB0aGUgdHJhY2UgYnVmZmVyLiBJcyB0cmFjaW5nIGVuYWJsZWQ/YGAsIHlvdQ0K
ICAgICsJICBwcm9iYWJseSBkaWQgbm90IGVuYWJsZSB0cmFjaW5nIG9yIFVuaWtyYWZ0J3MgdHJh
Y2UgYnVmZmVyIGlzDQogICAgKwkgIGVtcHR5LiBUaGlzIGNhbiBoYXBwZW4gd2hlbiBubyB0cmFj
ZXBvaW50IHdhcyBldmVyIGNhbGxlZC4NCiAgICAgDQogICAgLS4uIG5vdGU6OiBUaGUgXCouZGJn
IGltYWdlIGlzIHJlcXVpcmVkLCBhcyBpdCBoYXZlIG9mZmxpbmUgZGF0YSBuZWVkZWQNCiAgICAt
ICAgICAgICAgIGZvciBwYXJzaW5nIHRoZSB0cmFjZSBidWZmZXIuDQogICAgIA0KICAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgLUFkZGluZyB5b3VyIHRyYWNlcG9pbnRzDQog
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAtQmVsbG93IGlzIGEgc25pcHBl
dCBmb3IgdXNpbmcgdHJhY2Vwb2ludHM6DQogICAgK0FueSBzYXZlZCB0cmFjZSBmaWxlIGNhbiBi
ZSBsYXRlciBwcm9jZXNzZWQgd2l0aCB0aGUgYGB0cmFjZS5weWBgIHNjcmlwdC4NCiAgICArSW4g
b3VyIGV4YW1wbGU6DQogICAgKw0KICAgICsuLiBjb2RlLWJsb2NrOjogc2gNCiAgICArDQogICAg
KyAgc3VwcG9ydC9zY3JpcHRzL3VrX3RyYWNlL3RyYWNlLnB5IGxpc3QgdHJhY2VzLmRhdA0KICAg
ICsNCiAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICArQ3JlYXRpbmcgVHJhY2Vwb2ludHMN
CiAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICArSW5zdHJ1bWVudGluZyB5b3VyIGNvZGUg
d2l0aCB0cmFjZXBvaW50cyBpcyBkb25lIGJ5IHR3byBzdGVwcy4gRmlyc3QsIHlvdSBkZWZpbmUN
CiAgICArYW5kIHJlZ2lzdGVyIGEgdHJhY2Vwb2ludCBoYW5kbGVyIHdpdGggdGhlIGBgVUtfVFJB
Q0VQT0lOVCgpYGAgbWFjcm8uDQogICAgK1NlY29uZCwgeW91IHBsYWNlIGNhbGxzIHRvIHRoZSBn
ZW5lcmF0ZWQgaGFuZGxlciBhdCB0aG9zZSBwbGFjZXMgaW4geW91ciBjb2RlDQogICAgK3doZXJl
IHlvdXIgd2FudCB0byB0cmFjZSBhbiBldmVudDoNCiAgICAgDQogICAgIC4uIGNvZGUtYmxvY2s6
OiBjDQogICAgIA0KICAgICsgICNpbmNsdWRlIDx1ay90cmFjZS5oPg0KICAgICsNCiAgICAgICBV
S19UUkFDRVBPSU5UKHRyYWNlX3Zmc19vcGVuLCAiXCIlc1wiIDB4JXggMCUwbyIsIGNvbnN0IGNo
YXIqLCBpbnQsIG1vZGVfdCk7DQogICAgKw0KICAgICAgIGludCBvcGVuKGNvbnN0IGNoYXIgKnBh
dGhuYW1lLCBpbnQgZmxhZ3MsIC4uLikNCiAgICAgICB7DQogICAgICAgCXRyYWNlX3Zmc19vcGVu
KHBhdGhuYW1lLCBmbGFncywgbW9kZSk7DQogICAgQEAgLTIwOCwzMCArMjMyLDExIEBAIEJlbGxv
dyBpcyBhIHNuaXBwZXQgZm9yIHVzaW5nIHRyYWNlcG9pbnRzOg0KICAgICAgIAlyZXR1cm4gMDsN
CiAgICAgICB9DQogICAgIA0KICAgIC1UaGUgbWFjcm8gYGBVS19UUkFDRVBPSU5UKHRyYWNlX25h
bWUsIGZtdCwgdHlwZTEsIHR5cGUyLCAuLi4gdHlwZU4pYGANCiAgICAtZ2VuZXJhdGVzIGEgc3Rh
dGljIGZ1bmN0aW9uIGB0cmFjZV9uYW1lKClgLCBhY2NlcHRpbmcgTiBwYXJhbWV0ZXJzIG9mDQog
ICAgLXR5cGVzICoqdHlwZTEqKiwgKip0eXBlMioqIGFuZCBzbyBvbi4gVXAgdG8gNyBwYXJhbWV0
ZXJzIGFyZSBzdXBwb3J0ZWQuIFRoZQ0KICAgIC0qKmZtdCoqIGlzIGEgcHJpbnRmLXN0eWxlIGZv
cm1hdCB3aGljaCB3aWxsIGJlIHVzZWQgdG8gZm9ybSBhIG1lc3NhZ2UNCiAgICAtY29ycmVzcG9u
ZGluZyB0byB0aGUgdHJhY2Ugc2FtcGxlLg0KICAgIC0NCiAgICAtVGhlICoqZm10KiogaXMgc3Rh
dGljIGFuZCBzdG9yZWQgb2ZmbGluZS4gT25seSBwYXJhbWV0ZXIgdmFsdWVzIGFyZQ0KICAgIC1z
YXZlZCBvbiB0aGUgdHJhY2UgYnVmZmVyLiBJdCBpcyB0aGUgam9iIG9mIHRoZSBvZmZsaW5lIHBh
cnNlciB0bw0KICAgIC1tYXRjaCB0aGVtIHRvZ2V0aGVyIGFuZCBwcmludCBvdXQgcmVzdWx0aW5n
IG1lc3NhZ2VzLg0KICAgIC0NCiAgICAtTm93IHlvdSBjYW4gY2FsbCB0aGUgZ2VuZXJhdGVkIGZ1
bmN0aW9uIGZyb20gdGhlIHBvaW50IG9mDQogICAgLWludGVyZXN0LiBZb3UgYXJlIGV4cGVjdGVk
IHRvIGNhbGwgb25lIHRyYWNlcG9pbnQgZnJvbSBleGFjdGx5IG9uZQ0KICAgIC1wbGFjZSBpbiB5
b3VyIGNvZGUuDQogICAgLQ0KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAg
LVRyb3VibGVzaG9vdGluZw0KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAg
LUlmIHlvdSBhcmUgZ2V0dGluZyB0aGUgbWVzc2FnZTo6DQogICAgLQ0KICAgIC0gIEVycm9yIGdl
dHRpbmcgdGhlIHRyYWNlIGJ1ZmZlci4gSXMgdHJhY2luZyBlbmFibGVkPw0KICAgIC0NCiAgICAt
VGhpcyBtaWdodCBiZSBiZWNhdXNlOg0KICAgIC0NCiAgICAtMS4gWW91IGluZGVlZCBuZWVkIHRv
IGVuYWJsZSB0cmFjaW5nLg0KICAgIC0NCiAgICAtMi4gTm90IGEgc2luZ2xlIHRyYWNlcG9pbnQg
aGFzIGJlZW4gY2FsbGVkLCBhbmQgZGVhZC1jb2RlIGVsaW1pbmF0aW9uDQogICAgLSAgIHJlbW92
ZWQgKHJpZ2h0ZnVsbHkpIHRoZSB0cmFjaW5nIGZ1bmN0aW9uYWxpdHkuDQogICAgK2BgVUtfVFJB
Q0VQT0lOVCh0cmFjZV9uYW1lLCBmbXQsIHR5cGUxLCB0eXBlMiwgLi4uIHR5cGVOKWBgIGdlbmVy
YXRlcw0KICAgICt0aGUgaGFuZGxlciBgYHRyYWNlX25hbWUoKWBgIChzdGF0aWMgZnVuY3Rpb24p
LiBJdCB3aWxsIGFjY2VwdCB1cA0KICAgICt0byA3IHBhcmFtZXRlcnMgb2YgdHlwZSBgYHR5cGUx
YGAsIGBgdHlwZTJgYCwgZXRjLiBUaGUgZ2l2ZW4gZm9ybWF0IHN0cmluZw0KICAgICtgYGZtdGBg
IGlzIGEgYHByaW50ZmAtc3R5bGUgZm9ybWF0IHdoaWNoIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUg
bWVhbmluZ2Z1bA0KICAgICttZXNzYWdlcyBiYXNlZCBvbiB0aGUgY29sbGVjdGVkIHRyYWNlIHBh
cmFtZXRlcnMuIFRoaXMgZm9ybWF0IHN0cmluZyBpcw0KICAgICtvbmx5IGtlcHQgaW4gdGhlIGRl
YnVnIGltYWdlIGFuZCBpcyB1c2VkIGJ5IHRoZSB0b29scyB0byByZWFkIGFuZCBwYXJzZSB0aGUN
CiAgICArdHJhY2UgZGF0YS4gVW5pa3JhZnQncyB0cmFjZSBidWZmZXIgc3RvcmVzIGZvciBlYWNo
IHNhbXBsZSBhIHRpbWVzdGFtcCwNCiAgICArdGhlIG5hbWUgb2YgdGhlIHRyYWNlcG9pbnQsIGFu
ZCB0aGUgZ2l2ZW4gcGFyYW1ldGVycy4NCiAgICAtLSANCiAgICAyLjIwLjENCiAgICANCiAgICAN
CiAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KICAg
IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QNCiAgICBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcNCiAgICBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu
Zm8vbWluaW9zLWRldmVsDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m
by9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 10:14:45 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 10:14:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izeBI-0002MB-24; Thu, 06 Feb 2020 10:14:44 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4PvT=32=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izeBG-0002M6-9G
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 10:14:42 +0000
X-Inumbo-ID: 7c694860-48c9-11ea-8080-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 7c694860-48c9-11ea-8080-bc764e2007e4;
 Thu, 06 Feb 2020 10:14:40 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id C62AFF2022;
 Thu,  6 Feb 2020 11:14:39 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id bftpVXrpCGWL; Thu,  6 Feb 2020 11:14:39 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 9C75DF2006
 for <minios-devel@lists.xenproject.org>; Thu,  6 Feb 2020 11:14:37 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 11:14:37 +0100
To: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>,
 <minios-devel@lists.xenproject.org>
References: <bfaa106c5850e4ac473c258ef0821b72c0caa2e4.1580908212.git.hugo.lefeuvre@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <9551636a-ae83-43dd-1fbc-a0a625b05e03@neclab.eu>
Date: Thu, 6 Feb 2020 11:14:36 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <bfaa106c5850e4ac473c258ef0821b72c0caa2e4.1580908212.git.hugo.lefeuvre@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [PATCH] lib/ukallocbbuddy: fix addmem call with
 negative len
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IGZvciB0aGlzIGZpeCEKClJldmlld2VkLWJ5OiBTaW1vbiBLdWVuemVyIDxz
aW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KCk9uIDA1LjAyLjIwIDE0OjEyLCBIdWdvIExlZmV1dnJl
IHdyb3RlOgo+IFdoZW5ldmVyIGxlbiA9PSBtZXRhbGVuLCB0aGUgaW5pdCByZWdpb24gaGFzIGV4
YWN0bHkgdGhlIHNpemUgb2YgdGhlCj4gYWxsb2NhdG9yIG1ldGFkYXRhLiBJbiB0aGlzIGNhc2Ug
dGhlcmUgaXMgbm8gc3BhY2UgbGVmdCBmb3IgYW55dGhpbmcgZWxzZQo+IGFuZCBtYXggLSBtaW4g
LSBtZXRhbGVuIGlzIG5lZ2F0aXZlOiBjYWxsaW5nIGJidWRkeV9hZGRtZW0gZG9lc24ndCBtYWtl
Cj4gc2Vuc2UuCj4gCj4gT25seSBjYWxsIGJidWRkeV9hZGRtZW0gaWYgdGhlcmUncyBtZW1vcnkg
bGVmdCBpbiB0aGUgcmVnaW9uLgo+IC0tLQo+ICAgbGliL3VrYWxsb2NiYnVkZHkvYmJ1ZGR5LmMg
fCA5ICsrKysrKy0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxl
dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL3VrYWxsb2NiYnVkZHkvYmJ1ZGR5LmMgYi9s
aWIvdWthbGxvY2JidWRkeS9iYnVkZHkuYwo+IGluZGV4IDJhMzVkZTAuLjg1ZjNlOGQgMTAwNjQ0
Cj4gLS0tIGEvbGliL3VrYWxsb2NiYnVkZHkvYmJ1ZGR5LmMKPiArKysgYi9saWIvdWthbGxvY2Ji
dWRkeS9iYnVkZHkuYwo+IEBAIC01MDgsOCArNTA4LDExIEBAIHN0cnVjdCB1a19hbGxvYyAqdWtf
YWxsb2NiYnVkZHlfaW5pdCh2b2lkICpiYXNlLCBzaXplX3QgbGVuKQo+ICAgCWEtPmF2YWlsbWVt
ID0gYmJ1ZGR5X2F2YWlsbWVtOwo+ICAgI2VuZGlmCj4gICAKPiAtCS8qIGFkZCBsZWZ0IG1lbW9y
eSAtIGlnbm9yZSByZXR1cm4gdmFsdWUgKi8KPiAtCWJidWRkeV9hZGRtZW0oYSwgKHZvaWQgKiko
bWluICsgbWV0YWxlbiksCj4gLQkJICAgICAgKHNpemVfdCkobWF4IC0gbWluIC0gbWV0YWxlbikp
Owo+ICsJaWYgKG1heCA+IG1pbiArIG1ldGFsZW4pIHsKPiArCQkvKiBhZGQgbGVmdCBtZW1vcnkg
LSBpZ25vcmUgcmV0dXJuIHZhbHVlICovCj4gKwkJYmJ1ZGR5X2FkZG1lbShhLCAodm9pZCAqKSht
aW4gKyBtZXRhbGVuKSwKPiArCQkJCSAoc2l6ZV90KShtYXggLSBtaW4gLSBtZXRhbGVuKSk7Cj4g
Kwl9Cj4gKwo+ICAgCXJldHVybiBhOwo+ICAgfQo+IAoKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3Mt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t
YWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 17:23:04 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 17:23:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izkrl-0007yN-1O; Thu, 06 Feb 2020 17:23:01 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=3Y1W=32=neclab.eu=hugo.lefeuvre@srs-us1.protection.inumbo.net>)
 id 1izkrj-0007yI-Gl
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 17:22:59 +0000
X-Inumbo-ID: 51282644-4905-11ea-b025-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 51282644-4905-11ea-b025-12813bfff9fa;
 Thu, 06 Feb 2020 17:22:58 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id A0C7DF2022;
 Thu,  6 Feb 2020 18:22:56 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id XMfncNRexL45; Thu,  6 Feb 2020 18:22:56 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 70339F2006
 for <minios-devel@lists.xenproject.org>; Thu,  6 Feb 2020 18:22:54 +0100 (CET)
Received: from N-1237.office.hd (192.168.24.96) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 18:22:54 +0100
From: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
To: <minios-devel@lists.xenproject.org>
Date: Thu, 6 Feb 2020 18:22:30 +0100
Message-ID: <cover.1581002331.git.hugo.lefeuvre@neclab.eu>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To titania.office.hd
 (192.168.24.89)
Subject: [Minios-devel] [UNIKRAFT PATCH 0/3] bugfixes in the page allocation
 interface
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhpcyBwYXRjaCBzZXJpZXMgYWRkcmVzc2VzIHR3byBidWdzIGluIHRoZSBwYWdlIGFsbG9jYXRp
b24gaW50ZXJmYWNlOgogLSB1bmRlcmZsb3cgd2hlbiBhbGxvY2F0aW5nIG1lbW9yeSB3aXRoIHVr
X3Bvc2l4X21lbWFsaWduX2lmcGFnZXMgYW5kIGFuCiAgIGFsaWdubWVudCBzbWFsbGVyIHRoYW4g
bWV0YWRhdGEgc2l6ZQogLSBtZW1vcnkgd2FzdGFnZSB3aGVuIGFsbG9jYXRpbmcgYXQgcGFnZSBh
bGlnbm1lbnQKCiJsaWIvdWthbGxvYzogdWtfcG9zaXhfbWVtYWxpZ25faWZwYWdlczogdXNlIHVp
bnRwdHJfdCoiIGlzIGEgc21hbGwgY2xlYW51cAp3aGljaCBtYWtlcyB0aGUgdHdvIHByZXZpb3Vz
bHkgbWVudGlvbmVkIGJ1Z2ZpeGVzIG1vcmUgcmVhZGFibGUuCgpIdWdvIExlZmV1dnJlICgzKToK
ICBsaWIvdWthbGxvYzogdWtfcG9zaXhfbWVtYWxpZ25faWZwYWdlczogdXNlIHVpbnRwdHJfdCoK
ICBsaWIvdWthbGxvYzogZml4IHVuZGVyZmxvdyBpbiB1a19wb3NpeF9tZW1hbGlnbl9pZnBhZ2Vz
CiAgbGliL3VrYWxsb2M6IGZpeCBtZW1vcnkgd2FzdGFnZSBpbiB1a19wb3NpeF9tZW1hbGlnbl9p
ZnBhZ2VzCgogbGliL3VrYWxsb2MvYWxsb2MuYyB8IDQzICsrKysrKysrKysrKysrKysrKysrKysr
KysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAx
NiBkZWxldGlvbnMoLSkKCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h
bi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 17:23:06 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 17:23:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izkrq-0007yk-39; Thu, 06 Feb 2020 17:23:06 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=3Y1W=32=neclab.eu=hugo.lefeuvre@srs-us1.protection.inumbo.net>)
 id 1izkro-0007yd-D9
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 17:23:04 +0000
X-Inumbo-ID: 52e519f6-4905-11ea-b025-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 52e519f6-4905-11ea-b025-12813bfff9fa;
 Thu, 06 Feb 2020 17:23:00 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id F0E2A103D25;
 Thu,  6 Feb 2020 18:22:59 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Vn_4ZWO-Us0I; Thu,  6 Feb 2020 18:22:59 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id D10D4103C21
 for <minios-devel@lists.xenproject.org>; Thu,  6 Feb 2020 18:22:59 +0100 (CET)
Received: from N-1237.office.hd (192.168.24.96) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 18:22:59 +0100
From: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
To: <minios-devel@lists.xenproject.org>
Date: Thu, 6 Feb 2020 18:22:31 +0100
Message-ID: <127baf4337c5e0a1291133ded2e1fa29d7689528.1581009534.git.hugo.lefeuvre@neclab.eu>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <cover.1581009534.git.hugo.lefeuvre@neclab.eu>
References: <cover.1581009534.git.hugo.lefeuvre@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To titania.office.hd
 (192.168.24.89)
Subject: [Minios-devel] [UNIKRAFT PATCH 1/3] lib/ukalloc:
 uk_posix_memalign_ifpages: use uintptr_t*
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VXNpbmcgYSB1aW50cHRyX3QqIHRvIHN0b3JlIHRoZSByZXR1cm4gdmFsdWUgb2YgdWtfcGFsbG9j
IGRvZXMgbm90IG1ha2UKc2Vuc2UgaGVyZTogd2Ugd2FudCB0byBzdG9yZSBhIHBvaW50ZXIsIG5v
dCBhIHBvaW50ZXIgdG8gYSBwb2ludGVyLiBBbHNvLApvdGhlciBmdW5jdGlvbnMgZnJvbSB0aGUg
cGFnZSBhbGxvY2F0aW9uIEFQSSB1c2UgdWludHB0cl90LCBub3QgdWludHB0cl90KgoodWtfbWFs
bG9jX2lmcGFnZXMgZm9yIGluc3RhbmNlKS4KClNpZ25lZC1vZmYtYnk6IEh1Z28gTGVmZXV2cmUg
PGh1Z28ubGVmZXV2cmVAbmVjbGFiLmV1PgotLS0KIGxpYi91a2FsbG9jL2FsbG9jLmMgfCA5ICsr
KystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9saWIvdWthbGxvYy9hbGxvYy5jIGIvbGliL3VrYWxsb2MvYWxsb2MuYwpp
bmRleCAxZjIyNTgzLi5iMTk0NmRjIDEwMDY0NAotLS0gYS9saWIvdWthbGxvYy9hbGxvYy5jCisr
KyBiL2xpYi91a2FsbG9jL2FsbG9jLmMKQEAgLTIzNCw3ICsyMzQsNyBAQCBpbnQgdWtfcG9zaXhf
bWVtYWxpZ25faWZwYWdlcyhzdHJ1Y3QgdWtfYWxsb2MgKmEsCiB7CiAJc3RydWN0IG1ldGFkYXRh
X2lmcGFnZXMgKm1ldGFkYXRhOwogCXVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwotCXVpbnRwdHJf
dCAqaW50cHRyOworCXVpbnRwdHJfdCBpbnRwdHI7CiAJc2l6ZV90IHJlYWxzaXplLCBtZXRhZGF0
YV9zcGFjZTsKIAogCVVLX0FTU0VSVChhKTsKQEAgLTI3MiwxNyArMjcyLDE2IEBAIGludCB1a19w
b3NpeF9tZW1hbGlnbl9pZnBhZ2VzKHN0cnVjdCB1a19hbGxvYyAqYSwKIAkgKi8KIAlyZWFsc2l6
ZSA9IHNpemUgKyBtZXRhZGF0YV9zcGFjZSArIGFsaWduOwogCW51bV9wYWdlcyA9IHNpemVfdG9f
bnVtX3BhZ2VzKHJlYWxzaXplKTsKLQlpbnRwdHIgPSB1a19wYWxsb2MoYSwgbnVtX3BhZ2VzKTsK
KwlpbnRwdHIgPSAodWludHB0cl90KSB1a19wYWxsb2MoYSwgbnVtX3BhZ2VzKTsKIAogCWlmICgh
aW50cHRyKQogCQlyZXR1cm4gRU5PTUVNOwogCi0JKm1lbXB0ciA9ICh2b2lkICopIEFMSUdOX1VQ
KCh1aW50cHRyX3QpaW50cHRyICsgbWV0YWRhdGFfc3BhY2UsCi0JCQkJICAgICh1aW50cHRyX3Qp
YWxpZ24pOworCSptZW1wdHIgPSAodm9pZCAqKSBBTElHTl9VUChpbnRwdHIgKyBtZXRhZGF0YV9z
cGFjZSwgKHVpbnRwdHJfdCkgYWxpZ24pOwogCiAJbWV0YWRhdGEgPSB1a19nZXRfbWV0YWRhdGEo
Km1lbXB0cik7CiAJbWV0YWRhdGEtPm51bV9wYWdlcyA9IG51bV9wYWdlczsKLQltZXRhZGF0YS0+
YmFzZSA9IGludHB0cjsKKwltZXRhZGF0YS0+YmFzZSA9ICh2b2lkICopIGludHB0cjsKIAogCXJl
dHVybiAwOwogfQotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 17:23:10 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 17:23:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izkru-0007zX-5I; Thu, 06 Feb 2020 17:23:10 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=3Y1W=32=neclab.eu=hugo.lefeuvre@srs-us1.protection.inumbo.net>)
 id 1izkrs-0007zC-Nz
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 17:23:08 +0000
X-Inumbo-ID: 5671ef4a-4905-11ea-a677-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5671ef4a-4905-11ea-a677-bc764e2007e4;
 Thu, 06 Feb 2020 17:23:07 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 0E479103D25;
 Thu,  6 Feb 2020 18:23:06 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id qPpQbN8C68xT; Thu,  6 Feb 2020 18:23:05 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id DECF4103C21
 for <minios-devel@lists.xenproject.org>; Thu,  6 Feb 2020 18:23:05 +0100 (CET)
Received: from N-1237.office.hd (192.168.24.96) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 18:23:05 +0100
From: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
To: <minios-devel@lists.xenproject.org>
Date: Thu, 6 Feb 2020 18:22:33 +0100
Message-ID: <2aa2a37bd4705ba354e76772fcb9c2cb7e8eb5be.1581009534.git.hugo.lefeuvre@neclab.eu>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <cover.1581009534.git.hugo.lefeuvre@neclab.eu>
References: <cover.1581009534.git.hugo.lefeuvre@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To titania.office.hd
 (192.168.24.89)
Subject: [Minios-devel] [UNIKRAFT PATCH 3/3] lib/ukalloc: fix memory wastage
 in uk_posix_memalign_ifpages
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SWYgYWxpZ24gPT0gX19QQUdFX1NJWkUsIHdlIGFsd2F5cyBhbGxvY2F0ZSB0d28gcGFnZXMgbW9y
ZSB0aGFuIHRoZQpyZXF1ZXN0ZWQgc2l6ZS4gVGhpcyBpcyBub3QgbmVjZXNzYXJ5LCBiZWNhdXNl
IHdlIGtub3cgdGhhdCB0aGUgcG9pbnRlcgpyZXR1cm5lZCB0byB0aGUgdXNlciB3aWxsIGFsd2F5
cyBiZSBpbnRwdHIgKyBwYWdlIHNpemUuCgpTaWduZWQtb2ZmLWJ5OiBIdWdvIExlZmV1dnJlIDxo
dWdvLmxlZmV1dnJlQG5lY2xhYi5ldT4KLS0tCiBsaWIvdWthbGxvYy9hbGxvYy5jIHwgMTcgKysr
KysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi91a2FsbG9jL2FsbG9jLmMgYi9saWIvdWthbGxvYy9h
bGxvYy5jCmluZGV4IDJkMTYwNTcuLjNhZmQ5N2YgMTAwNjQ0Ci0tLSBhL2xpYi91a2FsbG9jL2Fs
bG9jLmMKKysrIGIvbGliL3VrYWxsb2MvYWxsb2MuYwpAQCAtMjUyLDE0ICsyNTIsMjEgQEAgaW50
IHVrX3Bvc2l4X21lbWFsaWduX2lmcGFnZXMoc3RydWN0IHVrX2FsbG9jICphLAogCSAqIHByZWNl
ZGluZyB0aGUgbWVtb3J5IGJsb2NrLCBidXQgaW5zdGVhZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBwYWdlCiAJICogcHJlY2VkaW5nIHRoZSBtZW1vcnkgcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlv
bi4KIAkgKgotCSAqIGFsaWduIDwgc2l6ZW9mKCptZXRhZGF0YSkgaW1wbGllcyB0aGF0IG1ldGFk
YXRhIGFyZSB0b28gbGFyZ2UgdG8gYmUKLQkgKiBzdG9yZWQgcHJlY2VkaW5nIHRoZSBmaXJzdCBt
ZW1vcnkgYmxvY2sgYXQgZ2l2ZW4gYWxpZ25tZW50LiBJbiB0aGlzCi0JICogY2FzZSwgc2V0IGFs
aWduIHRvIHRoZSBuZXh0IHBvd2VyIG9mIHR3byA+PSBzaXplb2YoKm1ldGFkYXRhKS4gU2luY2UK
LQkgKiBpdCBpcyBhIHBvd2VyIG9mIHR3bywgdGhlIHJldHVybmVkIHBvaW50ZXIgd2lsbCBzdGls
bCBiZSBhbGlnbmVkIGF0Ci0JICogdGhlIHJlcXVlc3RlZCBhbGlnbm1lbnQuCisJICogYWxpZ24g
PCBNRVRBREFUQV9JRlBBR0VTX1NJWkVfUE9XMiBpbXBsaWVzIHRoYXQgbWV0YWRhdGEgYXJlIHRv
bworCSAqIGxhcmdlIHRvIGJlIHN0b3JlZCBwcmVjZWRpbmcgdGhlIGZpcnN0IG1lbW9yeSBibG9j
ayBhdCBnaXZlbgorCSAqIGFsaWdubWVudC4gSW4gdGhpcyBjYXNlLCBzZXQgYWxpZ24gdG8gTUVU
QURBVEFfSUZQQUdFU19TSVpFX1BPVzIsCisJICogdGhlIG5leHQgcG93ZXIgb2YgdHdvID49IHNp
emVvZigqbWV0YWRhdGEpLiBTaW5jZSBpdCBpcyBhIHBvd2VyIG9mCisJICogdHdvLCB0aGUgcmV0
dXJuZWQgcG9pbnRlciB3aWxsIHN0aWxsIGJlIGFsaWduZWQgYXQgdGhlIHJlcXVlc3RlZAorCSAq
IGFsaWdubWVudC4KIAkgKi8KIAlpZiAoYWxpZ24gPj0gX19QQUdFX1NJWkUpIHsKIAkJcGFkZGlu
ZyA9IF9fUEFHRV9TSVpFOworCX0gZWxzZSBpZiAoYWxpZ24gPT0gX19QQUdFX1NJWkUpIHsKKwkJ
LyogTm8gcGFkZGluZyBuZWVkZWQ6IGluIHRoaXMgY2FzZSB3ZSBhbHJlYWR5IGtub3cgdGhhdCB0
aGUgbmV4dAorCQkgKiBhbGlnbmVkIHBvaW50ZXIgd2lsbCBiZSBpbnRwdHIgKGFzIGhhbmRlZCB0
byBieSBwYWxsb2MpICsKKwkJICogX19QQUdFX1NJWkUuCisJCSAqLworCQlwYWRkaW5nID0gMDsK
IAl9IGVsc2UgaWYgKGFsaWduIDwgTUVUQURBVEFfSUZQQUdFU19TSVpFX1BPVzIpIHsKIAkJYWxp
Z24gPSBNRVRBREFUQV9JRlBBR0VTX1NJWkVfUE9XMjsKIAkJcGFkZGluZyA9IDA7Ci0tIAoyLjcu
NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlv
cy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 17:23:10 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 17:23:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izkru-0007zd-6o; Thu, 06 Feb 2020 17:23:10 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=3Y1W=32=neclab.eu=hugo.lefeuvre@srs-us1.protection.inumbo.net>)
 id 1izkrt-0007zN-DC
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 17:23:09 +0000
X-Inumbo-ID: 55d601f2-4905-11ea-b025-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 55d601f2-4905-11ea-b025-12813bfff9fa;
 Thu, 06 Feb 2020 17:23:05 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id F168AF2022;
 Thu,  6 Feb 2020 18:23:04 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id RjF6AaYYhLVt; Thu,  6 Feb 2020 18:23:04 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id CE3C5F2006
 for <minios-devel@lists.xenproject.org>; Thu,  6 Feb 2020 18:23:02 +0100 (CET)
Received: from N-1237.office.hd (192.168.24.96) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 18:23:02 +0100
From: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
To: <minios-devel@lists.xenproject.org>
Date: Thu, 6 Feb 2020 18:22:32 +0100
Message-ID: <24f8e2cc53261b80c9140403977e25b971be1447.1581009534.git.hugo.lefeuvre@neclab.eu>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <cover.1581009534.git.hugo.lefeuvre@neclab.eu>
References: <cover.1581009534.git.hugo.lefeuvre@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To titania.office.hd
 (192.168.24.89)
Subject: [Minios-devel] [UNIKRAFT PATCH 2/3] lib/ukalloc: fix underflow in
 uk_posix_memalign_ifpages
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SWYgYWxpZ24gPCBzaXplb2YoKm1ldGFkYXRhKSwgbWV0YWRhdGFfc3BhY2UgaXMgc2V0IHRvIHpl
cm8uIEluIHRoaXMgY2FzZQpBTElHTl9VUChpbnRwdHIgKyBtZXRhZGF0YV9zcGFjZSwgYWxpZ24p
IHJldHVybnMgaW50cHRyIGlmIGludHB0ciB3YXMKYWxyZWFkeSBhbGlnbmVkIGF0IGFsaWduLCB3
aGljaCBpcyBwcmV0dHkgbXVjaCBhbHdheXMgdGhlIGNhc2UuIFRoYXQgd2F5IHdlCnVuZGVyZmxv
dyB3aGVuIHN0b3JpbmcgbWV0YWRhdGEuCgorIGFkZCBhbiBhc3NlcnQgdG8gZGV0ZWN0IHRoaXMg
a2luZCBvZiB1bmRlcmZsb3dzLgorIGNhbGwgQUxJR05fVVAgd2l0aCBpbnRwdHIgKyBzaXplb2Yo
Km1ldGFkYXRhKSBpbnN0ZWFkIG9mCiAgaW50cHRyICsgbWV0YWRhdGFfc3BhY2UuCisgcmVuYW1l
IG1ldGFkYXRhX3NwYWNlIHRvIHBhZGRpbmcgd2hpY2ggaXMgYSBtb3JlIHNlbnNpYmxlIG5hbWUK
ClNpZ25lZC1vZmYtYnk6IEh1Z28gTGVmZXV2cmUgPGh1Z28ubGVmZXV2cmVAbmVjbGFiLmV1Pgot
LS0KIGxpYi91a2FsbG9jL2FsbG9jLmMgfCAxOSArKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUg
Y2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s
aWIvdWthbGxvYy9hbGxvYy5jIGIvbGliL3VrYWxsb2MvYWxsb2MuYwppbmRleCBiMTk0NmRjLi4y
ZDE2MDU3IDEwMDY0NAotLS0gYS9saWIvdWthbGxvYy9hbGxvYy5jCisrKyBiL2xpYi91a2FsbG9j
L2FsbG9jLmMKQEAgLTIzNSw3ICsyMzUsNyBAQCBpbnQgdWtfcG9zaXhfbWVtYWxpZ25faWZwYWdl
cyhzdHJ1Y3QgdWtfYWxsb2MgKmEsCiAJc3RydWN0IG1ldGFkYXRhX2lmcGFnZXMgKm1ldGFkYXRh
OwogCXVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwogCXVpbnRwdHJfdCBpbnRwdHI7Ci0Jc2l6ZV90
IHJlYWxzaXplLCBtZXRhZGF0YV9zcGFjZTsKKwlzaXplX3QgcmVhbHNpemUsIHBhZGRpbmc7CiAK
IAlVS19BU1NFUlQoYSk7CiAJaWYgKCgoYWxpZ24gLSAxKSAmIGFsaWduKSAhPSAwCkBAIC0yNTks
MjcgKzI1OSwzMiBAQCBpbnQgdWtfcG9zaXhfbWVtYWxpZ25faWZwYWdlcyhzdHJ1Y3QgdWtfYWxs
b2MgKmEsCiAJICogdGhlIHJlcXVlc3RlZCBhbGlnbm1lbnQuCiAJICovCiAJaWYgKGFsaWduID49
IF9fUEFHRV9TSVpFKSB7Ci0JCW1ldGFkYXRhX3NwYWNlID0gX19QQUdFX1NJWkU7Ci0JfSBlbHNl
IGlmIChhbGlnbiA8IHNpemVvZigqbWV0YWRhdGEpKSB7Ci0JCW1ldGFkYXRhX3NwYWNlID0gMDsK
KwkJcGFkZGluZyA9IF9fUEFHRV9TSVpFOworCX0gZWxzZSBpZiAoYWxpZ24gPCBNRVRBREFUQV9J
RlBBR0VTX1NJWkVfUE9XMikgewogCQlhbGlnbiA9IE1FVEFEQVRBX0lGUEFHRVNfU0laRV9QT1cy
OworCQlwYWRkaW5nID0gMDsKIAl9IGVsc2UgewotCQltZXRhZGF0YV9zcGFjZSA9IHNpemVvZigq
bWV0YWRhdGEpOworCQlwYWRkaW5nID0gc2l6ZW9mKCptZXRhZGF0YSk7CiAJfQogCiAJLyogSW4g
YWRkaXRpb24gdG8gbWV0YWRhdGEgc3BhY2UsIGFsbG9jYXRlIGBhbGlnbmAgbW9yZSBieXRlcyBp
bgogCSAqIG9yZGVyIHRvIGJlIHN1cmUgdG8gZmluZCBhbiBhbGlnbmVkIHBvaW50ZXIgcHJlY2Vk
aW5nIGBzaXplYCBieXRlcy4KIAkgKi8KLQlyZWFsc2l6ZSA9IHNpemUgKyBtZXRhZGF0YV9zcGFj
ZSArIGFsaWduOworCXJlYWxzaXplID0gc2l6ZSArIHBhZGRpbmcgKyBhbGlnbjsKIAludW1fcGFn
ZXMgPSBzaXplX3RvX251bV9wYWdlcyhyZWFsc2l6ZSk7CiAJaW50cHRyID0gKHVpbnRwdHJfdCkg
dWtfcGFsbG9jKGEsIG51bV9wYWdlcyk7CiAKIAlpZiAoIWludHB0cikKIAkJcmV0dXJuIEVOT01F
TTsKIAotCSptZW1wdHIgPSAodm9pZCAqKSBBTElHTl9VUChpbnRwdHIgKyBtZXRhZGF0YV9zcGFj
ZSwgKHVpbnRwdHJfdCkgYWxpZ24pOworCSptZW1wdHIgPSAodm9pZCAqKSBBTElHTl9VUChpbnRw
dHIgKyBzaXplb2YoKm1ldGFkYXRhKSwKKwkJCQkgICAgKHVpbnRwdHJfdCkgYWxpZ24pOwogCiAJ
bWV0YWRhdGEgPSB1a19nZXRfbWV0YWRhdGEoKm1lbXB0cik7CisKKwkvKiBjaGVjayBmb3IgdW5k
ZXJmbG93ICovCisJVUtfQVNTRVJUKGludHB0ciA8PSAodWludHB0cl90KSBtZXRhZGF0YSk7CisK
IAltZXRhZGF0YS0+bnVtX3BhZ2VzID0gbnVtX3BhZ2VzOwogCW1ldGFkYXRhLT5iYXNlID0gKHZv
aWQgKikgaW50cHRyOwogCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h
bi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 22:35:43 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 22:35:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izpkK-0007bW-P7; Thu, 06 Feb 2020 22:35:40 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4PvT=32=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izpkJ-0007bR-Fm
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 22:35:39 +0000
X-Inumbo-ID: fe5e1c95-4930-11ea-b0da-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id fe5e1c95-4930-11ea-b0da-12813bfff9fa;
 Thu, 06 Feb 2020 22:35:37 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 038B2F2022;
 Thu,  6 Feb 2020 23:35:36 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id G449_6NoZPH4; Thu,  6 Feb 2020 23:35:35 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id C85E7F2006
 for <minios-devel@lists.xenproject.org>; Thu,  6 Feb 2020 23:35:33 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 23:35:33 +0100
To: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>,
 <minios-devel@lists.xenproject.org>
References: <cover.1581009534.git.hugo.lefeuvre@neclab.eu>
 <2aa2a37bd4705ba354e76772fcb9c2cb7e8eb5be.1581009534.git.hugo.lefeuvre@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <4ac50bf1-1793-f0d0-d1b6-00c5f16d6577@neclab.eu>
Date: Thu, 6 Feb 2020 23:35:32 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <2aa2a37bd4705ba354e76772fcb9c2cb7e8eb5be.1581009534.git.hugo.lefeuvre@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 3/3] lib/ukalloc: fix memory
 wastage in uk_posix_memalign_ifpages
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

T24gMDYuMDIuMjAgMTg6MjIsIEh1Z28gTGVmZXV2cmUgd3JvdGU6Cj4gSWYgYWxpZ24gPT0gX19Q
QUdFX1NJWkUsIHdlIGFsd2F5cyBhbGxvY2F0ZSB0d28gcGFnZXMgbW9yZSB0aGFuIHRoZQo+IHJl
cXVlc3RlZCBzaXplLiBUaGlzIGlzIG5vdCBuZWNlc3NhcnksIGJlY2F1c2Ugd2Uga25vdyB0aGF0
IHRoZSBwb2ludGVyCj4gcmV0dXJuZWQgdG8gdGhlIHVzZXIgd2lsbCBhbHdheXMgYmUgaW50cHRy
ICsgcGFnZSBzaXplLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEh1Z28gTGVmZXV2cmUgPGh1Z28ubGVm
ZXV2cmVAbmVjbGFiLmV1Pgo+IC0tLQo+ICAgbGliL3VrYWxsb2MvYWxsb2MuYyB8IDE3ICsrKysr
KysrKysrKy0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxl
dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL3VrYWxsb2MvYWxsb2MuYyBiL2xpYi91a2Fs
bG9jL2FsbG9jLmMKPiBpbmRleCAyZDE2MDU3Li4zYWZkOTdmIDEwMDY0NAo+IC0tLSBhL2xpYi91
a2FsbG9jL2FsbG9jLmMKPiArKysgYi9saWIvdWthbGxvYy9hbGxvYy5jCj4gQEAgLTI1MiwxNCAr
MjUyLDIxIEBAIGludCB1a19wb3NpeF9tZW1hbGlnbl9pZnBhZ2VzKHN0cnVjdCB1a19hbGxvYyAq
YSwKPiAgIAkgKiBwcmVjZWRpbmcgdGhlIG1lbW9yeSBibG9jaywgYnV0IGluc3RlYWQgYXQgdGhl
IGJlZ2lubmluZyBvZiB0aGUgcGFnZQo+ICAgCSAqIHByZWNlZGluZyB0aGUgbWVtb3J5IHJldHVy
bmVkIGJ5IHRoaXMgZnVuY3Rpb24uCj4gICAJICoKPiAtCSAqIGFsaWduIDwgc2l6ZW9mKCptZXRh
ZGF0YSkgaW1wbGllcyB0aGF0IG1ldGFkYXRhIGFyZSB0b28gbGFyZ2UgdG8gYmUKPiAtCSAqIHN0
b3JlZCBwcmVjZWRpbmcgdGhlIGZpcnN0IG1lbW9yeSBibG9jayBhdCBnaXZlbiBhbGlnbm1lbnQu
IEluIHRoaXMKPiAtCSAqIGNhc2UsIHNldCBhbGlnbiB0byB0aGUgbmV4dCBwb3dlciBvZiB0d28g
Pj0gc2l6ZW9mKCptZXRhZGF0YSkuIFNpbmNlCj4gLQkgKiBpdCBpcyBhIHBvd2VyIG9mIHR3bywg
dGhlIHJldHVybmVkIHBvaW50ZXIgd2lsbCBzdGlsbCBiZSBhbGlnbmVkIGF0Cj4gLQkgKiB0aGUg
cmVxdWVzdGVkIGFsaWdubWVudC4KPiArCSAqIGFsaWduIDwgTUVUQURBVEFfSUZQQUdFU19TSVpF
X1BPVzIgaW1wbGllcyB0aGF0IG1ldGFkYXRhIGFyZSB0b28KPiArCSAqIGxhcmdlIHRvIGJlIHN0
b3JlZCBwcmVjZWRpbmcgdGhlIGZpcnN0IG1lbW9yeSBibG9jayBhdCBnaXZlbgo+ICsJICogYWxp
Z25tZW50LiBJbiB0aGlzIGNhc2UsIHNldCBhbGlnbiB0byBNRVRBREFUQV9JRlBBR0VTX1NJWkVf
UE9XMiwKPiArCSAqIHRoZSBuZXh0IHBvd2VyIG9mIHR3byA+PSBzaXplb2YoKm1ldGFkYXRhKS4g
U2luY2UgaXQgaXMgYSBwb3dlciBvZgo+ICsJICogdHdvLCB0aGUgcmV0dXJuZWQgcG9pbnRlciB3
aWxsIHN0aWxsIGJlIGFsaWduZWQgYXQgdGhlIHJlcXVlc3RlZAo+ICsJICogYWxpZ25tZW50Lgo+
ICAgCSAqLwo+ICAgCWlmIChhbGlnbiA+PSBfX1BBR0VfU0laRSkgewoKSW4gb3JkZXIgdG8gZW5k
IHVwIGluIHRoZSB5b3VyIG5ldyAiZWxzZSBpZiIgY2FzZSwgeW91IHNob3VsZCBjaGFuZ2UgCnRo
aXMgY29uZGl0aW9uIHRvIChhbGlnbiA+IF9fUEFHRV9TSVpFKS4KCj4gICAJCXBhZGRpbmcgPSBf
X1BBR0VfU0laRTsKPiArCX0gZWxzZSBpZiAoYWxpZ24gPT0gX19QQUdFX1NJWkUpIHsKPiArCQkv
KiBObyBwYWRkaW5nIG5lZWRlZDogaW4gdGhpcyBjYXNlIHdlIGFscmVhZHkga25vdyB0aGF0IHRo
ZSBuZXh0Cj4gKwkJICogYWxpZ25lZCBwb2ludGVyIHdpbGwgYmUgaW50cHRyIChhcyBoYW5kZWQg
dG8gYnkgcGFsbG9jKSArCj4gKwkJICogX19QQUdFX1NJWkUuCj4gKwkJICovCj4gKwkJcGFkZGlu
ZyA9IDA7Cj4gICAJfSBlbHNlIGlmIChhbGlnbiA8IE1FVEFEQVRBX0lGUEFHRVNfU0laRV9QT1cy
KSB7Cj4gICAJCWFsaWduID0gTUVUQURBVEFfSUZQQUdFU19TSVpFX1BPVzI7Cj4gICAJCXBhZGRp
bmcgPSAwOwo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlv
cy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 22:36:11 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 22:36:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izpkp-0007ct-SI; Thu, 06 Feb 2020 22:36:11 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4PvT=32=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izpko-0007co-Rj
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 22:36:10 +0000
X-Inumbo-ID: 1209407a-4931-11ea-b0da-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 1209407a-4931-11ea-b0da-12813bfff9fa;
 Thu, 06 Feb 2020 22:36:10 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 1CA34103BA8;
 Thu,  6 Feb 2020 23:36:09 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 8mOmWmhCAkfV; Thu,  6 Feb 2020 23:36:08 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id EBA5610001F
 for <minios-devel@lists.xenproject.org>; Thu,  6 Feb 2020 23:36:08 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 23:36:08 +0100
To: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>,
 <minios-devel@lists.xenproject.org>
References: <cover.1581009534.git.hugo.lefeuvre@neclab.eu>
 <24f8e2cc53261b80c9140403977e25b971be1447.1581009534.git.hugo.lefeuvre@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <862ed41b-db28-712d-d1c4-9e9bf58ac6db@neclab.eu>
Date: Thu, 6 Feb 2020 23:36:08 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <24f8e2cc53261b80c9140403977e25b971be1447.1581009534.git.hugo.lefeuvre@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 2/3] lib/ukalloc: fix underflow
 in uk_posix_memalign_ifpages
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZSwgdGhhbmtzIGEgbG90IGZvciB0aGUgd29yayEKClJldmlld2VkLWJ5OiBTaW1v
biBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KCk9uIDA2LjAyLjIwIDE4OjIyLCBI
dWdvIExlZmV1dnJlIHdyb3RlOgo+IElmIGFsaWduIDwgc2l6ZW9mKCptZXRhZGF0YSksIG1ldGFk
YXRhX3NwYWNlIGlzIHNldCB0byB6ZXJvLiBJbiB0aGlzIGNhc2UKPiBBTElHTl9VUChpbnRwdHIg
KyBtZXRhZGF0YV9zcGFjZSwgYWxpZ24pIHJldHVybnMgaW50cHRyIGlmIGludHB0ciB3YXMKPiBh
bHJlYWR5IGFsaWduZWQgYXQgYWxpZ24sIHdoaWNoIGlzIHByZXR0eSBtdWNoIGFsd2F5cyB0aGUg
Y2FzZS4gVGhhdCB3YXkgd2UKPiB1bmRlcmZsb3cgd2hlbiBzdG9yaW5nIG1ldGFkYXRhLgo+IAo+
ICsgYWRkIGFuIGFzc2VydCB0byBkZXRlY3QgdGhpcyBraW5kIG9mIHVuZGVyZmxvd3MuCj4gKyBj
YWxsIEFMSUdOX1VQIHdpdGggaW50cHRyICsgc2l6ZW9mKCptZXRhZGF0YSkgaW5zdGVhZCBvZgo+
ICAgIGludHB0ciArIG1ldGFkYXRhX3NwYWNlLgo+ICsgcmVuYW1lIG1ldGFkYXRhX3NwYWNlIHRv
IHBhZGRpbmcgd2hpY2ggaXMgYSBtb3JlIHNlbnNpYmxlIG5hbWUKPiAKPiBTaWduZWQtb2ZmLWJ5
OiBIdWdvIExlZmV1dnJlIDxodWdvLmxlZmV1dnJlQG5lY2xhYi5ldT4KPiAtLS0KPiAgIGxpYi91
a2FsbG9jL2FsbG9jLmMgfCAxOSArKysrKysrKysrKystLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdl
ZCwgMTIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGli
L3VrYWxsb2MvYWxsb2MuYyBiL2xpYi91a2FsbG9jL2FsbG9jLmMKPiBpbmRleCBiMTk0NmRjLi4y
ZDE2MDU3IDEwMDY0NAo+IC0tLSBhL2xpYi91a2FsbG9jL2FsbG9jLmMKPiArKysgYi9saWIvdWth
bGxvYy9hbGxvYy5jCj4gQEAgLTIzNSw3ICsyMzUsNyBAQCBpbnQgdWtfcG9zaXhfbWVtYWxpZ25f
aWZwYWdlcyhzdHJ1Y3QgdWtfYWxsb2MgKmEsCj4gICAJc3RydWN0IG1ldGFkYXRhX2lmcGFnZXMg
Km1ldGFkYXRhOwo+ICAgCXVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwo+ICAgCXVpbnRwdHJfdCBp
bnRwdHI7Cj4gLQlzaXplX3QgcmVhbHNpemUsIG1ldGFkYXRhX3NwYWNlOwo+ICsJc2l6ZV90IHJl
YWxzaXplLCBwYWRkaW5nOwo+ICAgCj4gICAJVUtfQVNTRVJUKGEpOwo+ICAgCWlmICgoKGFsaWdu
IC0gMSkgJiBhbGlnbikgIT0gMAo+IEBAIC0yNTksMjcgKzI1OSwzMiBAQCBpbnQgdWtfcG9zaXhf
bWVtYWxpZ25faWZwYWdlcyhzdHJ1Y3QgdWtfYWxsb2MgKmEsCj4gICAJICogdGhlIHJlcXVlc3Rl
ZCBhbGlnbm1lbnQuCj4gICAJICovCj4gICAJaWYgKGFsaWduID49IF9fUEFHRV9TSVpFKSB7Cj4g
LQkJbWV0YWRhdGFfc3BhY2UgPSBfX1BBR0VfU0laRTsKPiAtCX0gZWxzZSBpZiAoYWxpZ24gPCBz
aXplb2YoKm1ldGFkYXRhKSkgewo+IC0JCW1ldGFkYXRhX3NwYWNlID0gMDsKPiArCQlwYWRkaW5n
ID0gX19QQUdFX1NJWkU7Cj4gKwl9IGVsc2UgaWYgKGFsaWduIDwgTUVUQURBVEFfSUZQQUdFU19T
SVpFX1BPVzIpIHsKPiAgIAkJYWxpZ24gPSBNRVRBREFUQV9JRlBBR0VTX1NJWkVfUE9XMjsKPiAr
CQlwYWRkaW5nID0gMDsKPiAgIAl9IGVsc2Ugewo+IC0JCW1ldGFkYXRhX3NwYWNlID0gc2l6ZW9m
KCptZXRhZGF0YSk7Cj4gKwkJcGFkZGluZyA9IHNpemVvZigqbWV0YWRhdGEpOwo+ICAgCX0KPiAg
IAo+ICAgCS8qIEluIGFkZGl0aW9uIHRvIG1ldGFkYXRhIHNwYWNlLCBhbGxvY2F0ZSBgYWxpZ25g
IG1vcmUgYnl0ZXMgaW4KPiAgIAkgKiBvcmRlciB0byBiZSBzdXJlIHRvIGZpbmQgYW4gYWxpZ25l
ZCBwb2ludGVyIHByZWNlZGluZyBgc2l6ZWAgYnl0ZXMuCj4gICAJICovCj4gLQlyZWFsc2l6ZSA9
IHNpemUgKyBtZXRhZGF0YV9zcGFjZSArIGFsaWduOwo+ICsJcmVhbHNpemUgPSBzaXplICsgcGFk
ZGluZyArIGFsaWduOwo+ICAgCW51bV9wYWdlcyA9IHNpemVfdG9fbnVtX3BhZ2VzKHJlYWxzaXpl
KTsKPiAgIAlpbnRwdHIgPSAodWludHB0cl90KSB1a19wYWxsb2MoYSwgbnVtX3BhZ2VzKTsKPiAg
IAo+ICAgCWlmICghaW50cHRyKQo+ICAgCQlyZXR1cm4gRU5PTUVNOwo+ICAgCj4gLQkqbWVtcHRy
ID0gKHZvaWQgKikgQUxJR05fVVAoaW50cHRyICsgbWV0YWRhdGFfc3BhY2UsICh1aW50cHRyX3Qp
IGFsaWduKTsKPiArCSptZW1wdHIgPSAodm9pZCAqKSBBTElHTl9VUChpbnRwdHIgKyBzaXplb2Yo
Km1ldGFkYXRhKSwKPiArCQkJCSAgICAodWludHB0cl90KSBhbGlnbik7Cj4gICAKPiAgIAltZXRh
ZGF0YSA9IHVrX2dldF9tZXRhZGF0YSgqbWVtcHRyKTsKPiArCj4gKwkvKiBjaGVjayBmb3IgdW5k
ZXJmbG93ICovCj4gKwlVS19BU1NFUlQoaW50cHRyIDw9ICh1aW50cHRyX3QpIG1ldGFkYXRhKSA+
ICsKPiAgIAltZXRhZGF0YS0+bnVtX3BhZ2VzID0gbnVtX3BhZ2VzOwo+ICAgCW1ldGFkYXRhLT5i
YXNlID0gKHZvaWQgKikgaW50cHRyOwo+ICAgCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 22:36:50 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 22:36:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izplR-0007dl-VY; Thu, 06 Feb 2020 22:36:49 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4PvT=32=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izplQ-0007dg-IU
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 22:36:48 +0000
X-Inumbo-ID: 280f0256-4931-11ea-b2cb-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 280f0256-4931-11ea-b2cb-bc764e2007e4;
 Thu, 06 Feb 2020 22:36:46 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 0C772F2022;
 Thu,  6 Feb 2020 23:36:46 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id f95xyLvArApy; Thu,  6 Feb 2020 23:36:45 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id D547EF2006
 for <minios-devel@lists.xenproject.org>; Thu,  6 Feb 2020 23:36:43 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 23:36:43 +0100
To: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>,
 <minios-devel@lists.xenproject.org>
References: <cover.1581009534.git.hugo.lefeuvre@neclab.eu>
 <127baf4337c5e0a1291133ded2e1fa29d7689528.1581009534.git.hugo.lefeuvre@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <42fe187a-9d6f-0488-d584-7ebca3ffc8a2@neclab.eu>
Date: Thu, 6 Feb 2020 23:36:42 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <127baf4337c5e0a1291133ded2e1fa29d7689528.1581009534.git.hugo.lefeuvre@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 1/3] lib/ukalloc:
 uk_posix_memalign_ifpages: use uintptr_t*
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IGZvciB0aGVzZSBjaGFuZ2VzIQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56
ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgoKT24gMDYuMDIuMjAgMTg6MjIsIEh1Z28gTGVm
ZXV2cmUgd3JvdGU6Cj4gVXNpbmcgYSB1aW50cHRyX3QqIHRvIHN0b3JlIHRoZSByZXR1cm4gdmFs
dWUgb2YgdWtfcGFsbG9jIGRvZXMgbm90IG1ha2UKPiBzZW5zZSBoZXJlOiB3ZSB3YW50IHRvIHN0
b3JlIGEgcG9pbnRlciwgbm90IGEgcG9pbnRlciB0byBhIHBvaW50ZXIuIEFsc28sCj4gb3RoZXIg
ZnVuY3Rpb25zIGZyb20gdGhlIHBhZ2UgYWxsb2NhdGlvbiBBUEkgdXNlIHVpbnRwdHJfdCwgbm90
IHVpbnRwdHJfdCoKPiAodWtfbWFsbG9jX2lmcGFnZXMgZm9yIGluc3RhbmNlKS4KPiAKPiBTaWdu
ZWQtb2ZmLWJ5OiBIdWdvIExlZmV1dnJlIDxodWdvLmxlZmV1dnJlQG5lY2xhYi5ldT4KPiAtLS0K
PiAgIGxpYi91a2FsbG9jL2FsbG9jLmMgfCA5ICsrKystLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQs
IDQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL3Vr
YWxsb2MvYWxsb2MuYyBiL2xpYi91a2FsbG9jL2FsbG9jLmMKPiBpbmRleCAxZjIyNTgzLi5iMTk0
NmRjIDEwMDY0NAo+IC0tLSBhL2xpYi91a2FsbG9jL2FsbG9jLmMKPiArKysgYi9saWIvdWthbGxv
Yy9hbGxvYy5jCj4gQEAgLTIzNCw3ICsyMzQsNyBAQCBpbnQgdWtfcG9zaXhfbWVtYWxpZ25faWZw
YWdlcyhzdHJ1Y3QgdWtfYWxsb2MgKmEsCj4gICB7Cj4gICAJc3RydWN0IG1ldGFkYXRhX2lmcGFn
ZXMgKm1ldGFkYXRhOwo+ICAgCXVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwo+IC0JdWludHB0cl90
ICppbnRwdHI7Cj4gKwl1aW50cHRyX3QgaW50cHRyOwo+ICAgCXNpemVfdCByZWFsc2l6ZSwgbWV0
YWRhdGFfc3BhY2U7Cj4gICAKPiAgIAlVS19BU1NFUlQoYSk7Cj4gQEAgLTI3MiwxNyArMjcyLDE2
IEBAIGludCB1a19wb3NpeF9tZW1hbGlnbl9pZnBhZ2VzKHN0cnVjdCB1a19hbGxvYyAqYSwKPiAg
IAkgKi8KPiAgIAlyZWFsc2l6ZSA9IHNpemUgKyBtZXRhZGF0YV9zcGFjZSArIGFsaWduOwo+ICAg
CW51bV9wYWdlcyA9IHNpemVfdG9fbnVtX3BhZ2VzKHJlYWxzaXplKTsKPiAtCWludHB0ciA9IHVr
X3BhbGxvYyhhLCBudW1fcGFnZXMpOwo+ICsJaW50cHRyID0gKHVpbnRwdHJfdCkgdWtfcGFsbG9j
KGEsIG51bV9wYWdlcyk7Cj4gICAKPiAgIAlpZiAoIWludHB0cikKPiAgIAkJcmV0dXJuIEVOT01F
TTsKPiAgIAo+IC0JKm1lbXB0ciA9ICh2b2lkICopIEFMSUdOX1VQKCh1aW50cHRyX3QpaW50cHRy
ICsgbWV0YWRhdGFfc3BhY2UsCj4gLQkJCQkgICAgKHVpbnRwdHJfdClhbGlnbik7Cj4gKwkqbWVt
cHRyID0gKHZvaWQgKikgQUxJR05fVVAoaW50cHRyICsgbWV0YWRhdGFfc3BhY2UsICh1aW50cHRy
X3QpIGFsaWduKTsKPiAgIAo+ICAgCW1ldGFkYXRhID0gdWtfZ2V0X21ldGFkYXRhKCptZW1wdHIp
Owo+ICAgCW1ldGFkYXRhLT5udW1fcGFnZXMgPSBudW1fcGFnZXM7Cj4gLQltZXRhZGF0YS0+YmFz
ZSA9IGludHB0cjsKPiArCW1ldGFkYXRhLT5iYXNlID0gKHZvaWQgKikgaW50cHRyOwo+ICAgCj4g
ICAJcmV0dXJuIDA7Cj4gICB9Cj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 22:38:46 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 22:38:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izpnK-0007hD-7C; Thu, 06 Feb 2020 22:38:46 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4PvT=32=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izpnI-0007h8-OX
 for minios-devel@lists.xenproject.org; Thu, 06 Feb 2020 22:38:44 +0000
X-Inumbo-ID: 6d8b4498-4931-11ea-b05b-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6d8b4498-4931-11ea-b05b-bc764e2007e4;
 Thu, 06 Feb 2020 22:38:43 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 93097103BA8;
 Thu,  6 Feb 2020 23:38:42 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id w0yI6ilBXC4D; Thu,  6 Feb 2020 23:38:42 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 60DDA10001F
 for <minios-devel@lists.xenproject.org>; Thu,  6 Feb 2020 23:38:42 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 6 Feb 2020
 23:38:42 +0100
To: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>,
 <minios-devel@lists.xenproject.org>
References: <cover.1581002331.git.hugo.lefeuvre@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <a0814feb-bf37-df4b-9682-4a92c435371a@neclab.eu>
Date: Thu, 6 Feb 2020 23:38:41 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <cover.1581002331.git.hugo.lefeuvre@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 0/3] bugfixes in the page
 allocation interface
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgSHVnbywKCnRoYW5rcyBhIGxvdCBmb3IgeW91ciB3b3JrLiBJIGFjY2VwdGVkIHRoZSBmaXJz
dCB0d28gcGF0Y2hlcyBzaW5jZSB0aGV5IAphcmUgZml4aW5nIGEgY3JpdGljYWwgYnVnIGluIHVr
YWxsb2MuIFRoZSB0aGlyZCBvbmUgbmVlZHMgYSBtaW5vciAKY2hhbmdlLiBZb3UgY2FuIHNlbmQg
YSB2MiBzZXBhcmF0ZWx5LgoKVGhhbmtzLAoKU2ltb24KCk9uIDA2LjAyLjIwIDE4OjIyLCBIdWdv
IExlZmV1dnJlIHdyb3RlOgo+IFRoaXMgcGF0Y2ggc2VyaWVzIGFkZHJlc3NlcyB0d28gYnVncyBp
biB0aGUgcGFnZSBhbGxvY2F0aW9uIGludGVyZmFjZToKPiAgIC0gdW5kZXJmbG93IHdoZW4gYWxs
b2NhdGluZyBtZW1vcnkgd2l0aCB1a19wb3NpeF9tZW1hbGlnbl9pZnBhZ2VzIGFuZCBhbgo+ICAg
ICBhbGlnbm1lbnQgc21hbGxlciB0aGFuIG1ldGFkYXRhIHNpemUKPiAgIC0gbWVtb3J5IHdhc3Rh
Z2Ugd2hlbiBhbGxvY2F0aW5nIGF0IHBhZ2UgYWxpZ25tZW50Cj4gCj4gImxpYi91a2FsbG9jOiB1
a19wb3NpeF9tZW1hbGlnbl9pZnBhZ2VzOiB1c2UgdWludHB0cl90KiIgaXMgYSBzbWFsbCBjbGVh
bnVwCj4gd2hpY2ggbWFrZXMgdGhlIHR3byBwcmV2aW91c2x5IG1lbnRpb25lZCBidWdmaXhlcyBt
b3JlIHJlYWRhYmxlLgo+IAo+IEh1Z28gTGVmZXV2cmUgKDMpOgo+ICAgIGxpYi91a2FsbG9jOiB1
a19wb3NpeF9tZW1hbGlnbl9pZnBhZ2VzOiB1c2UgdWludHB0cl90Kgo+ICAgIGxpYi91a2FsbG9j
OiBmaXggdW5kZXJmbG93IGluIHVrX3Bvc2l4X21lbWFsaWduX2lmcGFnZXMKPiAgICBsaWIvdWth
bGxvYzogZml4IG1lbW9yeSB3YXN0YWdlIGluIHVrX3Bvc2l4X21lbWFsaWduX2lmcGFnZXMKPiAK
PiAgIGxpYi91a2FsbG9jL2FsbG9jLmMgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKyst
LS0tLS0tLS0tLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMTYg
ZGVsZXRpb25zKC0pCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v
bWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 06 23:20:09 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 06 Feb 2020 23:20:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izqRL-000346-Ne; Thu, 06 Feb 2020 23:20:07 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4PvT=32=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izqRK-0002wX-IU
 for minios-devel@lists.xen.org; Thu, 06 Feb 2020 23:20:06 +0000
X-Inumbo-ID: 349c54fa-4937-11ea-a677-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 349c54fa-4937-11ea-a677-bc764e2007e4;
 Thu, 06 Feb 2020 23:20:05 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id D3F54F203A;
 Fri,  7 Feb 2020 00:20:03 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Pgy9remA3jK9; Fri,  7 Feb 2020 00:20:03 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 9F71DF2022
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 00:20:01 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 00:20:01 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 00:19:58 +0100
Message-ID: <20200206231958.15331-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] arch/arm: Copy atomic.h from Arm64
 to Arm32
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Q29waWVzIGF0b21pYy5oIGZyb20gQXJtNjQgdG8gQXJtMzIuIFRoZSBmdW5jdGlvbnMgaW1wbGVt
ZW50ZWQgaW4gdGhpcwpoZWFkZXIgYXJlIGltcGxlbWVudGVkIGJhc2VkIG9uIEdDQyBidWlsdGlu
cy4gVGhlIGFyY2hpdGVjdHVyZSBkb2VzCm5vdCBtYXR0ZXIgZm9yIHRob3NlIGZ1bmN0aW9ucywg
c28gdGhlIGhlYWRlciB3b3JrcyBvbiBib3RoCmFyY2hpdGVjdHVyZXMuCkFzIGxvbmcgYXMgd2Ug
ZGlkIG5vdCBzdGFydCByZXN0cnVjdHVyaW5nIGFyY2gvIGFuZCBwbGF0LywgY29weWluZyB0aGUK
aGVhZGVyIGlzIHRoZSBtb3N0IGZlYXNpYmxlIG9wdGlvbi4gTG9uZ2VyLXRlcm0sIHRoZSBoZWFk
ZXIgY291bGQKYmVjb21lIGdlbmVyaWMuCgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxz
aW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KLS0tCiBhcmNoL2FybS9hcm0vaW5jbHVkZS91ay9hc20v
YXRvbWljLmggfCA2NyArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl
ZCwgNDQgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9h
cm0vYXJtL2luY2x1ZGUvdWsvYXNtL2F0b21pYy5oIGIvYXJjaC9hcm0vYXJtL2luY2x1ZGUvdWsv
YXNtL2F0b21pYy5oCmluZGV4IDkzYWM5ODY3Li43MzE5ZDY2MyAxMDA2NDQKLS0tIGEvYXJjaC9h
cm0vYXJtL2luY2x1ZGUvdWsvYXNtL2F0b21pYy5oCisrKyBiL2FyY2gvYXJtL2FybS9pbmNsdWRl
L3VrL2FzbS9hdG9taWMuaApAQCAtMyw3ICszLDEzIEBACiAgKiBQb3J0IGZyb20gTWluaS1PUzog
aW5jbHVkZS9hcm0vb3MuaAogICovCiAvKgotICogQ29weXJpZ2h0IChjKSAyMDA5IENpdHJpeCBT
eXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBBdXRob3JzOiBLYXJpbSBBbGxh
aCBBaG1lZCA8a2FyaW0uYWxsYWguYWhtZWRAZ21haWwuY29tPgorICogICAgICAgICAgVGhvbWFz
IExlb25hcmQgPHRhbGV4NUBnbWFpbC5jb20+CisgKiAgICAgICAgICBXZWkgQ2hlbiA8V2VpLkNo
ZW5AYXJtLmNvbT4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTQgS2FyaW0gQWxsYWggQWhtZWQK
KyAqIENvcHlyaWdodCAoYykgMjAxNCBUaG9tYXMgTGVvbmFyZAorICogQ29weXJpZ2h0IChjKSAy
MDE4LCBBcm0gTHRkLiwgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzIsMzMgKzM4LDQ4IEBACiAjZW5kaWYKIAogLyoqCi0gKiB1a2FyY2hf
ZmZzbCAtIGZpbmQgZmlyc3QgKGxvd2VzdCkgc2V0IGJpdCBpbiB3b3JkLgorICogdWthcmNoX2Zm
cyAtIGZpbmQgZmlyc3QgKGxvd2VzdCkgc2V0IGJpdCBpbiB3b3JkLgogICogQHdvcmQ6IFRoZSB3
b3JkIHRvIHNlYXJjaAogICoKLSAqIFVuZGVmaW5lZCBpZiBubyBiaXQgZXhpc3RzLCBzbyBjb2Rl
IHNob3VsZCBjaGVjayBhZ2FpbnN0IDAgZmlyc3QuCisgKiBSZXR1cm5zIG9uZSBwbHVzIHRoZSBp
bmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgMS1iaXQgb2YgeCwgb3IKKyAqIGlmIHggaXMg
emVybywgcmV0dXJucyB6ZXJvLgorICogZmZzKDEpPTAsIGZmcygweDgwMDAwMDApPTMxCiAgKi8K
LXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB1a2FyY2hfZmZzbCh1bnNpZ25lZCBsb25nIHdv
cmQpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB1a2FyY2hfZmZzKHVuc2lnbmVkIGludCB4
KQogewotCWludCBjbHo7CisJcmV0dXJuIF9fYnVpbHRpbl9mZnMoeCkgLSAxOworfQogCi0JLyog
eHh4eHgxMDAwMCA9IHdvcmQKLQkgKiB4eHh4eDAxMTExID0gd29yZCAtIDEKLQkgKiAwMDAwMDEx
MTExID0gd29yZCBeICh3b3JkIC0gMSkKLQkgKiAgICAgIDQgICAgID0gMzEgLSBjbHood29yZCBe
ICh3b3JkIC0gMSkpCi0JICovCisvKioKKyAqIHVrYXJjaF9mbHMgLSBmaW5kIGxhc3QgKGhpZ2hl
c3QpIHNldCBiaXQgaW4gd29yZC4KKyAqIEB3b3JkOiBUaGUgd29yZCB0byBzZWFyY2gKKyAqCisg
KiBVbmRlZmluZWQgaWYgbm8gYml0IGV4aXN0cywgc28gY29kZSBzaG91bGQgY2hlY2sgYWdhaW5z
dCAwIGZpcnN0LgorICogZmxzKDEpPTAsIGZscygweDgwMDAwMDApPTMxCisgKi8KK3N0YXRpYyBp
bmxpbmUgdW5zaWduZWQgaW50IHVrYXJjaF9mbHModW5zaWduZWQgaW50IHgpCit7CisJcmV0dXJu
IHNpemVvZih4KSAqIDggLSBfX2J1aWx0aW5fY2x6KHgpIC0gMTsKK30KIAotCV9fYXNtX18oInN1
YiByMCwgJVt3b3JkXSwgIzFcbiIKLQkJImVvciByMCwgcjAsICVbd29yZF1cbiIKLQkJImNseiAl
W2Nsel0sIHIwXG4iCi0JCToKLQkJLyogT3V0cHV0czogKi8KLQkJW2Nsel0gIj1yIihjbHopCi0J
CToKLQkJLyogSW5wdXRzOiAqLwotCQlbd29yZF0gInIiKHdvcmQpCi0JCToKLQkJLyogQ2xvYmJl
cnM6ICovCi0JCSJyMCIpOworLyoqCisgKiB1a2FyY2hfZmZzbCAtIGZpbmQgZmlyc3QgKGxvd2Vz
dCkgc2V0IGJpdCBpbiB3b3JkLgorICogQHdvcmQ6IFRoZSB3b3JkIHRvIHNlYXJjaAorICoKKyAq
IFVuZGVmaW5lZCBpZiBubyBiaXQgZXhpc3RzLCBzbyBjb2RlIHNob3VsZCBjaGVjayBhZ2FpbnN0
IDAgZmlyc3QuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB1a2FyY2hfZmZzbCh1
bnNpZ25lZCBsb25nIHgpCit7CisJcmV0dXJuIF9fYnVpbHRpbl9mZnNsKHgpIC0gMTsKK30KIAot
CXJldHVybiAzMSAtIGNsejsKKy8qKgorICogdWthcmNoX2Zsc2wgLSBmaW5kIGxhc3QgKGhpZ2hl
c3QpIHNldCBiaXQgaW4gd29yZC4KKyAqIEB3b3JkOiBUaGUgd29yZCB0byBzZWFyY2gKKyAqCisg
KiBVbmRlZmluZWQgaWYgbm8gYml0IGV4aXN0cywgc28gY29kZSBzaG91bGQgY2hlY2sgYWdhaW5z
dCAwIGZpcnN0LgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdWthcmNoX2Zsc2wo
dW5zaWduZWQgbG9uZyB4KQoreworCXJldHVybiBzaXplb2YoeCkgKiA4IC0gX19idWlsdGluX2Ns
emwoeCkgLSAxOwogfQotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFu
L2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 08:29:03 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 08:29:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izz0W-0004lh-Se; Fri, 07 Feb 2020 08:29:00 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1izz0V-0004lc-M4
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 08:28:59 +0000
X-Inumbo-ID: e250d39a-4983-11ea-b2cb-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id e250d39a-4983-11ea-b2cb-bc764e2007e4;
 Fri, 07 Feb 2020 08:28:58 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id EDAD71038FD;
 Fri,  7 Feb 2020 09:28:56 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id giUo0LKg-q-R; Fri,  7 Feb 2020 09:28:56 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from Oberon.office.hd (Oberon.office.hd [192.168.24.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id C7744FFB7D
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 09:28:56 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by Oberon.office.hd
 (192.168.24.90) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 09:28:56 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 09:28:56
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT PATCH] arch/arm: Copy atomic.h from
 Arm64 to Arm32
Thread-Index: AQHV3UQFM4g/Eaw4gUWK3XyTOSh1EqgPZr2A
Date: Fri, 7 Feb 2020 08:28:56 +0000
Message-ID: <0C52E87C-759E-4598-8852-E59403A69075@neclab.eu>
References: <20200206231958.15331-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200206231958.15331-1-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <C5B31785BDF3534089B51C820341C8E1@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] arch/arm: Copy atomic.h from
 Arm64 to Arm32
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQoNCu+7v09uIDA3LjAyLjIw
LCAwMDoyMCwgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3VlbnplciIgPG1pbmlv
cy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBvZiBzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBDb3BpZXMgYXRvbWljLmggZnJvbSBBcm02
NCB0byBBcm0zMi4gVGhlIGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbiB0aGlzDQogICAgaGVhZGVy
IGFyZSBpbXBsZW1lbnRlZCBiYXNlZCBvbiBHQ0MgYnVpbHRpbnMuIFRoZSBhcmNoaXRlY3R1cmUg
ZG9lcw0KICAgIG5vdCBtYXR0ZXIgZm9yIHRob3NlIGZ1bmN0aW9ucywgc28gdGhlIGhlYWRlciB3
b3JrcyBvbiBib3RoDQogICAgYXJjaGl0ZWN0dXJlcy4NCiAgICBBcyBsb25nIGFzIHdlIGRpZCBu
b3Qgc3RhcnQgcmVzdHJ1Y3R1cmluZyBhcmNoLyBhbmQgcGxhdC8sIGNvcHlpbmcgdGhlDQogICAg
aGVhZGVyIGlzIHRoZSBtb3N0IGZlYXNpYmxlIG9wdGlvbi4gTG9uZ2VyLXRlcm0sIHRoZSBoZWFk
ZXIgY291bGQNCiAgICBiZWNvbWUgZ2VuZXJpYy4NCiAgICANCiAgICBTaWduZWQtb2ZmLWJ5OiBT
aW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4NCiAgICAtLS0NCiAgICAgYXJj
aC9hcm0vYXJtL2luY2x1ZGUvdWsvYXNtL2F0b21pYy5oIHwgNjcgKysrKysrKysrKysrKysrKysr
LS0tLS0tLS0tLQ0KICAgICAxIGZpbGUgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMjMgZGVs
ZXRpb25zKC0pDQogICAgDQogICAgZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2FybS9pbmNsdWRlL3Vr
L2FzbS9hdG9taWMuaCBiL2FyY2gvYXJtL2FybS9pbmNsdWRlL3VrL2FzbS9hdG9taWMuaA0KICAg
IGluZGV4IDkzYWM5ODY3Li43MzE5ZDY2MyAxMDA2NDQNCiAgICAtLS0gYS9hcmNoL2FybS9hcm0v
aW5jbHVkZS91ay9hc20vYXRvbWljLmgNCiAgICArKysgYi9hcmNoL2FybS9hcm0vaW5jbHVkZS91
ay9hc20vYXRvbWljLmgNCiAgICBAQCAtMyw3ICszLDEzIEBADQogICAgICAqIFBvcnQgZnJvbSBN
aW5pLU9TOiBpbmNsdWRlL2FybS9vcy5oDQogICAgICAqLw0KICAgICAvKg0KICAgIC0gKiBDb3B5
cmlnaHQgKGMpIDIwMDkgQ2l0cml4IFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4N
CiAgICArICogQXV0aG9yczogS2FyaW0gQWxsYWggQWhtZWQgPGthcmltLmFsbGFoLmFobWVkQGdt
YWlsLmNvbT4NCiAgICArICogICAgICAgICAgVGhvbWFzIExlb25hcmQgPHRhbGV4NUBnbWFpbC5j
b20+DQogICAgKyAqICAgICAgICAgIFdlaSBDaGVuIDxXZWkuQ2hlbkBhcm0uY29tPg0KICAgICsg
Kg0KICAgICsgKiBDb3B5cmlnaHQgKGMpIDIwMTQgS2FyaW0gQWxsYWggQWhtZWQNCiAgICArICog
Q29weXJpZ2h0IChjKSAyMDE0IFRob21hcyBMZW9uYXJkDQogICAgKyAqIENvcHlyaWdodCAoYykg
MjAxOCwgQXJtIEx0ZC4sIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogICAgICAqDQogICAgICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dA0KICAgICAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCiAgICBAQCAtMzIsMzMgKzM4LDQ4IEBADQogICAg
ICNlbmRpZg0KICAgICANCiAgICAgLyoqDQogICAgLSAqIHVrYXJjaF9mZnNsIC0gZmluZCBmaXJz
dCAobG93ZXN0KSBzZXQgYml0IGluIHdvcmQuDQogICAgKyAqIHVrYXJjaF9mZnMgLSBmaW5kIGZp
cnN0IChsb3dlc3QpIHNldCBiaXQgaW4gd29yZC4NCiAgICAgICogQHdvcmQ6IFRoZSB3b3JkIHRv
IHNlYXJjaA0KICAgICAgKg0KICAgIC0gKiBVbmRlZmluZWQgaWYgbm8gYml0IGV4aXN0cywgc28g
Y29kZSBzaG91bGQgY2hlY2sgYWdhaW5zdCAwIGZpcnN0Lg0KICAgICsgKiBSZXR1cm5zIG9uZSBw
bHVzIHRoZSBpbmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgMS1iaXQgb2YgeCwgb3INCiAg
ICArICogaWYgeCBpcyB6ZXJvLCByZXR1cm5zIHplcm8uDQogICAgKyAqIGZmcygxKT0wLCBmZnMo
MHg4MDAwMDAwKT0zMQ0KICAgICAgKi8NCiAgICAtc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n
IHVrYXJjaF9mZnNsKHVuc2lnbmVkIGxvbmcgd29yZCkNCiAgICArc3RhdGljIGlubGluZSB1bnNp
Z25lZCBpbnQgdWthcmNoX2Zmcyh1bnNpZ25lZCBpbnQgeCkNCiAgICAgew0KICAgIC0JaW50IGNs
ejsNCiAgICArCXJldHVybiBfX2J1aWx0aW5fZmZzKHgpIC0gMTsNCiAgICArfQ0KICAgICANCiAg
ICAtCS8qIHh4eHh4MTAwMDAgPSB3b3JkDQogICAgLQkgKiB4eHh4eDAxMTExID0gd29yZCAtIDEN
CiAgICAtCSAqIDAwMDAwMTExMTEgPSB3b3JkIF4gKHdvcmQgLSAxKQ0KICAgIC0JICogICAgICA0
ICAgICA9IDMxIC0gY2x6KHdvcmQgXiAod29yZCAtIDEpKQ0KICAgIC0JICovDQogICAgKy8qKg0K
ICAgICsgKiB1a2FyY2hfZmxzIC0gZmluZCBsYXN0IChoaWdoZXN0KSBzZXQgYml0IGluIHdvcmQu
DQogICAgKyAqIEB3b3JkOiBUaGUgd29yZCB0byBzZWFyY2gNCiAgICArICoNCiAgICArICogVW5k
ZWZpbmVkIGlmIG5vIGJpdCBleGlzdHMsIHNvIGNvZGUgc2hvdWxkIGNoZWNrIGFnYWluc3QgMCBm
aXJzdC4NCiAgICArICogZmxzKDEpPTAsIGZscygweDgwMDAwMDApPTMxDQogICAgKyAqLw0KICAg
ICtzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB1a2FyY2hfZmxzKHVuc2lnbmVkIGludCB4KQ0K
ICAgICt7DQogICAgKwlyZXR1cm4gc2l6ZW9mKHgpICogOCAtIF9fYnVpbHRpbl9jbHooeCkgLSAx
Ow0KICAgICt9DQogICAgIA0KICAgIC0JX19hc21fXygic3ViIHIwLCAlW3dvcmRdLCAjMVxuIg0K
ICAgIC0JCSJlb3IgcjAsIHIwLCAlW3dvcmRdXG4iDQogICAgLQkJImNseiAlW2Nsel0sIHIwXG4i
DQogICAgLQkJOg0KICAgIC0JCS8qIE91dHB1dHM6ICovDQogICAgLQkJW2Nsel0gIj1yIihjbHop
DQogICAgLQkJOg0KICAgIC0JCS8qIElucHV0czogKi8NCiAgICAtCQlbd29yZF0gInIiKHdvcmQp
DQogICAgLQkJOg0KICAgIC0JCS8qIENsb2JiZXJzOiAqLw0KICAgIC0JCSJyMCIpOw0KICAgICsv
KioNCiAgICArICogdWthcmNoX2Zmc2wgLSBmaW5kIGZpcnN0IChsb3dlc3QpIHNldCBiaXQgaW4g
d29yZC4NCiAgICArICogQHdvcmQ6IFRoZSB3b3JkIHRvIHNlYXJjaA0KICAgICsgKg0KICAgICsg
KiBVbmRlZmluZWQgaWYgbm8gYml0IGV4aXN0cywgc28gY29kZSBzaG91bGQgY2hlY2sgYWdhaW5z
dCAwIGZpcnN0Lg0KICAgICsgKi8NCiAgICArc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHVr
YXJjaF9mZnNsKHVuc2lnbmVkIGxvbmcgeCkNCiAgICArew0KICAgICsJcmV0dXJuIF9fYnVpbHRp
bl9mZnNsKHgpIC0gMTsNCiAgICArfQ0KICAgICANCiAgICAtCXJldHVybiAzMSAtIGNsejsNCiAg
ICArLyoqDQogICAgKyAqIHVrYXJjaF9mbHNsIC0gZmluZCBsYXN0IChoaWdoZXN0KSBzZXQgYml0
IGluIHdvcmQuDQogICAgKyAqIEB3b3JkOiBUaGUgd29yZCB0byBzZWFyY2gNCiAgICArICoNCiAg
ICArICogVW5kZWZpbmVkIGlmIG5vIGJpdCBleGlzdHMsIHNvIGNvZGUgc2hvdWxkIGNoZWNrIGFn
YWluc3QgMCBmaXJzdC4NCiAgICArICovDQogICAgK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9u
ZyB1a2FyY2hfZmxzbCh1bnNpZ25lZCBsb25nIHgpDQogICAgK3sNCiAgICArCXJldHVybiBzaXpl
b2YoeCkgKiA4IC0gX19idWlsdGluX2NsemwoeCkgLSAxOw0KICAgICB9DQogICAgLS0gDQogICAg
Mi4yMC4xDQogICAgDQogICAgDQogICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18NCiAgICBNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0DQogICAgTWluaW9z
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQogICAgaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA0KDQpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
bmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 08:54:00 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 08:54:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izzOh-0007He-St; Fri, 07 Feb 2020 08:53:59 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izzOg-0007HT-Gd
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 08:53:58 +0000
X-Inumbo-ID: 5f7e0269-4987-11ea-b10f-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 5f7e0269-4987-11ea-b10f-12813bfff9fa;
 Fri, 07 Feb 2020 08:53:57 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id A65B61038FD;
 Fri,  7 Feb 2020 09:53:56 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id DTzFjN2sYTWN; Fri,  7 Feb 2020 09:53:56 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 851BAFFB7D
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 09:53:56 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 09:53:56 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 09:53:53 +0100
Message-ID: <20200207085353.11761-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/ukswrand: Fix typo in default
 choice of seed
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Rml4ZXMgYSB0eXBvIGluIENvbmZpZy51ayB3aGljaCBicm9rZSB0aGUgZGVmYXVsdCBjaG9pY2UK
Zm9yIHRoZSByYW5kb20gc2VlZC4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9u
Lmt1ZW56ZXJAbmVjbGFiLmV1PgotLS0KIGxpYi91a3N3cmFuZC9Db25maWcudWsgfCAyICstCiAx
IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg
YS9saWIvdWtzd3JhbmQvQ29uZmlnLnVrIGIvbGliL3Vrc3dyYW5kL0NvbmZpZy51awppbmRleCAx
OTlmYTYyYi4uYzVhZmIyNTQgMTAwNjQ0Ci0tLSBhL2xpYi91a3N3cmFuZC9Db25maWcudWsKKysr
IGIvbGliL3Vrc3dyYW5kL0NvbmZpZy51awpAQCAtMjEsNyArMjEsNyBAQCBlbmRjaG9pY2UKIAog
Y2hvaWNlCiAgICAgcHJvbXB0ICJJbml0aWFsIHNlZWQiCi0gICAgZGVmYXVsdCBMSUJVS1NXUkFO
RFJfSU5JVElBTFNFRURfVElNRQorICAgIGRlZmF1bHQgTElCVUtTV1JBTkRfSU5JVElBTFNFRURf
VElNRQogCiBjb25maWcgTElCVUtTV1JBTkRfSU5JVElBTFNFRURfVElNRQogICAgIGJvb2wgIlBs
YXRmb3JtIHRpbWVzdGFtcCIKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp
bG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 08:56:53 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 08:56:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izzRU-0007Qf-Mq; Fri, 07 Feb 2020 08:56:52 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1izzRT-0007QY-88
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 08:56:51 +0000
X-Inumbo-ID: c458a454-4987-11ea-a759-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c458a454-4987-11ea-a759-bc764e2007e4;
 Fri, 07 Feb 2020 08:56:45 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id DC11DF2047;
 Fri,  7 Feb 2020 09:56:44 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id bluoDALYhkDt; Fri,  7 Feb 2020 09:56:44 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 9AB71F201E
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 09:56:42 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 09:56:42 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 09:56:42
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH] lib/ukswrand: Fix typo in default choice of seed
Thread-Index: AQHV3ZQhLEqQigRGI0W4W8lQtRlTcqgPbd6A
Date: Fri, 7 Feb 2020 08:56:42 +0000
Message-ID: <168936FB-9B42-456E-86CF-B5A03E182B7B@neclab.eu>
References: <20200207085353.11761-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207085353.11761-1-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <1C810E29D7EE8747B5DF860CC567DD89@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/ukswrand: Fix typo in
 default choice of seed
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAwOTo1MywgIlNpbW9uIEt1ZW56ZXIiIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6
DQoNCiAgICBGaXhlcyBhIHR5cG8gaW4gQ29uZmlnLnVrIHdoaWNoIGJyb2tlIHRoZSBkZWZhdWx0
IGNob2ljZQ0KICAgIGZvciB0aGUgcmFuZG9tIHNlZWQuDQogICAgDQogICAgU2lnbmVkLW9mZi1i
eTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+DQogICAgLS0tDQogICAg
IGxpYi91a3N3cmFuZC9Db25maWcudWsgfCAyICstDQogICAgIDEgZmlsZSBjaGFuZ2VkLCAxIGlu
c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KICAgIA0KICAgIGRpZmYgLS1naXQgYS9saWIvdWtz
d3JhbmQvQ29uZmlnLnVrIGIvbGliL3Vrc3dyYW5kL0NvbmZpZy51aw0KICAgIGluZGV4IDE5OWZh
NjJiLi5jNWFmYjI1NCAxMDA2NDQNCiAgICAtLS0gYS9saWIvdWtzd3JhbmQvQ29uZmlnLnVrDQog
ICAgKysrIGIvbGliL3Vrc3dyYW5kL0NvbmZpZy51aw0KICAgIEBAIC0yMSw3ICsyMSw3IEBAIGVu
ZGNob2ljZQ0KICAgICANCiAgICAgY2hvaWNlDQogICAgICAgICBwcm9tcHQgIkluaXRpYWwgc2Vl
ZCINCiAgICAtICAgIGRlZmF1bHQgTElCVUtTV1JBTkRSX0lOSVRJQUxTRUVEX1RJTUUNCiAgICAr
ICAgIGRlZmF1bHQgTElCVUtTV1JBTkRfSU5JVElBTFNFRURfVElNRQ0KICAgICANCiAgICAgY29u
ZmlnIExJQlVLU1dSQU5EX0lOSVRJQUxTRUVEX1RJTUUNCiAgICAgICAgIGJvb2wgIlBsYXRmb3Jt
IHRpbWVzdGFtcCINCiAgICAtLSANCiAgICAyLjIwLjENCiAgICANCiAgICANCg0KX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxp
bmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 09:00:33 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 09:00:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izzV3-00089x-17; Fri, 07 Feb 2020 09:00:33 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izzV1-00089s-DU
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 09:00:31 +0000
X-Inumbo-ID: 4a3485f2-4988-11ea-b110-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 4a3485f2-4988-11ea-b110-12813bfff9fa;
 Fri, 07 Feb 2020 09:00:30 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 6B906F2025;
 Fri,  7 Feb 2020 10:00:29 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id kt1LfdevV1Zq; Fri,  7 Feb 2020 10:00:29 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 37E2CF201E
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 10:00:27 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 10:00:26 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 10:00:24 +0100
Message-ID: <20200207090024.15852-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/posix-user: Include <stdio.h>
 within grp.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QXMgc29vbiBhcyBfR05VX1NPVVJDRSBpcyBkZWZpbmVkLCB0aGUgaGVhZGVyIGBncnAuaGAgaXMg
cmVmZXJyaW5nCnRvIHRoZSBgRklMRWAgZGF0YSB0eXBlLiBXZSBpbmNsdWRlIGBzdGRpby5oYCB0
byBwcm92aWRlIGl0cwpkZWZpbml0aW9uLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8
c2ltb24ua3VlbnplckBuZWNsYWIuZXU+Ci0tLQogbGliL3Bvc2l4LXVzZXIvbXVzbC1pbXBvcnRl
ZC9pbmNsdWRlL2dycC5oIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRp
ZmYgLS1naXQgYS9saWIvcG9zaXgtdXNlci9tdXNsLWltcG9ydGVkL2luY2x1ZGUvZ3JwLmggYi9s
aWIvcG9zaXgtdXNlci9tdXNsLWltcG9ydGVkL2luY2x1ZGUvZ3JwLmgKaW5kZXggYTM1ZTYxYTMu
LmM3MzhlZWYwIDEwMDY0NAotLS0gYS9saWIvcG9zaXgtdXNlci9tdXNsLWltcG9ydGVkL2luY2x1
ZGUvZ3JwLmgKKysrIGIvbGliL3Bvc2l4LXVzZXIvbXVzbC1pbXBvcnRlZC9pbmNsdWRlL2dycC5o
CkBAIC0xMCw2ICsxMCw3IEBAIGV4dGVybiAiQyIgewogCiAjaWZkZWYgX0dOVV9TT1VSQ0UKICNk
ZWZpbmUgX19ORUVEX0ZJTEUKKyNpbmNsdWRlIDxzdGRpby5oPgogI2VuZGlmCiAKICNpbmNsdWRl
IDxzeXMvdHlwZXMuaD4KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h
bi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 09:05:00 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 09:05:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1izzZL-0008KB-NI; Fri, 07 Feb 2020 09:04:59 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1izzZK-0008K6-NB
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 09:04:58 +0000
X-Inumbo-ID: e9e278c0-4988-11ea-b110-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id e9e278c0-4988-11ea-b110-12813bfff9fa;
 Fri, 07 Feb 2020 09:04:58 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 72FEE1038FD;
 Fri,  7 Feb 2020 10:04:57 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id xm1Egr6xQ_st; Fri,  7 Feb 2020 10:04:57 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 522B2FFB7D
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 10:04:57 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 10:04:56 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 10:04:54 +0100
Message-ID: <20200207090454.18827-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/syscall_shim: Generate
 syscall_nrs2.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

R2VuZXJhdGVzIGEgc2Vjb25kIGhlYWRlciBjb250YWluaW5nIHRoZSBzeXNjYWxsIG51bWJlcnMu
IEluc3RlYWQgb2YKdXNpbmcgdGhlIGZvcm1hdCBTWVNfPG5hbWU+LCBpdCBpbnRyb2R1Y2VzIHRo
ZSBzeXNjYWxsIG51bWJlcgpkZWZpbml0aW9ucyB3aXRoIF9fTlJfPG5hbWU+LiBUaGlzIGNhbiBi
ZSBoYW5keSBmb3Igc29tZSBsaWJjIGFuZApsYW5ndWFnZSBlbnZpcm9ubWVudCBwb3J0cy4KClNp
Z25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgotLS0K
IGxpYi9zeXNjYWxsX3NoaW0vTWFrZWZpbGUudWsgICAgICAgICAgfCAgNyArKysrKystCiBsaWIv
c3lzY2FsbF9zaGltL2dlbl9zeXNjYWxsX25yczIuYXdrIHwgMTMgKysrKysrKysrKysrKwogMiBm
aWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgbGliL3N5c2NhbGxfc2hpbS9nZW5fc3lzY2FsbF9ucnMyLmF3awoKZGlmZiAtLWdp
dCBhL2xpYi9zeXNjYWxsX3NoaW0vTWFrZWZpbGUudWsgYi9saWIvc3lzY2FsbF9zaGltL01ha2Vm
aWxlLnVrCmluZGV4IDE3ZGU0OWNkLi5jMDFlZTQ5NCAxMDA2NDQKLS0tIGEvbGliL3N5c2NhbGxf
c2hpbS9NYWtlZmlsZS51aworKysgYi9saWIvc3lzY2FsbF9zaGltL01ha2VmaWxlLnVrCkBAIC0y
LDcgKzIsNyBAQCAkKGV2YWwgJChjYWxsIGFkZGxpYl9zLGxpYnN5c2NhbGxfc2hpbSwkKENPTkZJ
R19MSUJTWVNDQUxMX1NISU0pKSkKIAogTElCU1lTQ0FMTF9TSElNX0lOQ0xVREVTX1BBVEggOj0g
JChMSUJTWVNDQUxMX1NISU1fQlVJTEQpL2luY2x1ZGUvdWsvYml0cwogCi1MSUJTWVNDQUxMX1NI
SU1fUEhPTllfU1JDIDo9IHN5c2NhbGxfbWFwLmggc3lzY2FsbF9zdHVicy5oIHN5c2NhbGxfbnJz
LmgKK0xJQlNZU0NBTExfU0hJTV9QSE9OWV9TUkMgOj0gc3lzY2FsbF9tYXAuaCBzeXNjYWxsX3N0
dWJzLmggc3lzY2FsbF9ucnMuaCBzeXNjYWxsX25yczIuaAogTElCU1lTQ0FMTF9TSElNX1BIT05Z
X1NSQyA6PSAkKGFkZHByZWZpeCAkKExJQlNZU0NBTExfU0hJTV9JTkNMVURFU19QQVRIKS8sICQo
TElCU1lTQ0FMTF9TSElNX1BIT05ZX1NSQykpCiBMSUJTWVNDQUxMX1NISU1fUEhPTllfU1JDICs9
ICQoTElCU1lTQ0FMTF9TSElNX0JVSUxEKS9wcm92aWRlZF9zeXNjYWxscy5oLmluCiBMSUJTWVND
QUxMX1NISU1fUEhPTllfU1JDX05FVyA6PSAkKGFkZHN1ZmZpeCAubmV3LCAkKExJQlNZU0NBTExf
U0hJTV9QSE9OWV9TUkMpKQpAQCAtMzEsNiArMzEsMTEgQEAgJChMSUJTWVNDQUxMX1NISU1fSU5D
TFVERVNfUEFUSCkvc3lzY2FsbF9ucnMuaC5uZXc6ICQoTElCU1lTQ0FMTF9TSElNX0JBU0UpL2dl
bl8KIAkJJChBV0spIC1mICQoTElCU1lTQ0FMTF9TSElNX0JBU0UpL2dlbl9zeXNjYWxsX25ycy5h
d2sgXAogCQkkKExJQlNZU0NBTExfU0hJTV9URU1QTCkgPiAkQCkKIAorJChMSUJTWVNDQUxMX1NI
SU1fSU5DTFVERVNfUEFUSCkvc3lzY2FsbF9ucnMyLmgubmV3OiAkKExJQlNZU0NBTExfU0hJTV9C
QVNFKS9nZW5fc3lzY2FsbF9ucnMyLmF3ayAkKExJQlNZU0NBTExfU0hJTV9URU1QTCkKKwkkKGNh
bGwgYnVpbGRfY21kLEdFTixsaWJzeXNjYWxsX3NoaW0sJChub3RkaXIgJEApLCBcCisJCSQoQVdL
KSAtZiAkKExJQlNZU0NBTExfU0hJTV9CQVNFKS9nZW5fc3lzY2FsbF9ucnMyLmF3ayBcCisJCSQo
TElCU1lTQ0FMTF9TSElNX1RFTVBMKSA+ICRAKQorCiAkKExJQlNZU0NBTExfU0hJTV9JTkNMVURF
U19QQVRIKS9zeXNjYWxsX21hcC5oLm5ldzogJChMSUJTWVNDQUxMX1NISU1fQkFTRSkvZ2VuX3N5
c2NhbGxfbWFwLmF3ayAkKExJQlNZU0NBTExfU0hJTV9URU1QTCkKIAkkKGNhbGwgYnVpbGRfY21k
LEdFTixsaWJzeXNjYWxsX3NoaW0sJChub3RkaXIgJEApLCBcCiAJCSQoQVdLKSAtZiAgJChMSUJT
WVNDQUxMX1NISU1fQkFTRSkvZ2VuX3N5c2NhbGxfbWFwLmF3ayBcCmRpZmYgLS1naXQgYS9saWIv
c3lzY2FsbF9zaGltL2dlbl9zeXNjYWxsX25yczIuYXdrIGIvbGliL3N5c2NhbGxfc2hpbS9nZW5f
c3lzY2FsbF9ucnMyLmF3awpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZmU2
NThkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvc3lzY2FsbF9zaGltL2dlbl9zeXNjYWxsX25y
czIuYXdrCkBAIC0wLDAgKzEsMTMgQEAKK0JFR0lOIHsKKwlwcmludCAiLyogQXV0b21hdGljYWxs
eSBnZW5lcmF0ZWQgZmlsZTsgRE8gTk9UIEVESVQgKi8iCisJcHJpbnQgIiNpZm5kZWYgX19VS19T
WVNDQUxMX05SU18yX0hfXyIKKwlwcmludCAiI2RlZmluZSBfX1VLX1NZU0NBTExfTlJTXzJfSF9f
IgorfQorCisvI2RlZmluZSBfX05SXy97CisJIHByaW50ZiAiI2RlZmluZSBfX05SXyVzXHRcdCVz
XG4iLCBzdWJzdHIoJDIsNiksJDMKK30KKworRU5EIHsKKwlwcmludCAiI2VuZGlmIC8qIF9fVUtf
U1lTQ0FMTF9OUlNfMl9IX18gKi8iCit9Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
bmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 12:10:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 12:10:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j02Sp-0006zk-54; Fri, 07 Feb 2020 12:10:27 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j02Sn-0006zf-5s
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 12:10:25 +0000
X-Inumbo-ID: d136fcf0-49a2-11ea-b15b-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id d136fcf0-49a2-11ea-b15b-12813bfff9fa;
 Fri, 07 Feb 2020 12:10:23 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 67915F2049;
 Fri,  7 Feb 2020 13:10:22 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id QWgQl1c0vXxf; Fri,  7 Feb 2020 13:10:22 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 2B431F2048
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 13:10:20 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 13:10:19 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 13:10:17 +0100
Message-ID: <20200207121017.32096-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] build: Add -no-pie flag to Go units
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VW5saWtlIG90aGVyIHNvdXJjZSBmaWxlcyAoQXNzZW1ibHksIEMsIEMrKyksIHRoZSAtbm8tcGll
IGFyZ3VtZW50IHdhcwpub3QgaGFuZGVkIG92ZXIgdG8gR28gY29tcGlsYXRpb24gdW5pdHMuIEJl
Y2F1c2Ugb2YgY29uc2lzdGVuY3kKcmVhc29ucyB3ZSBhcmUgaGFuZGluZyB0aGlzIGFyZ3VtZW50
IG5vdyBhbHNvIHRvIHRoZSBHQ0MgR28gY29tcGlsZXIuCgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBL
dWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KLS0tCiBNYWtlZmlsZS51ayB8IDEgKwog
MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsg
Yi9NYWtlZmlsZS51awppbmRleCA2N2MzNzJlNS4uM2YwMWEyNTEgMTAwNjQ0Ci0tLSBhL01ha2Vm
aWxlLnVrCisrKyBiL01ha2VmaWxlLnVrCkBAIC03Niw1ICs3Niw2IEBAIE00RkxBR1MgICs9IC1E
VUtfVkVSU0lPTj0kKFVLX1ZFUlNJT04pLiQoVUtfU1VCVkVSU0lPTikKIEFTRkxBR1MtJChjYWxs
IGdjY192ZXJzaW9uX2dlLDYsMSkJKz0gLW5vLXBpZQogQ0ZMQUdTLSQoY2FsbCBnY2NfdmVyc2lv
bl9nZSw2LDEpCSs9IC1uby1waWUKIENYWEZMQUdTLSQoY2FsbCBnY2NfdmVyc2lvbl9nZSw2LDEp
CSs9IC1uby1waWUKK0dPRkxBR1MtJChjYWxsIGdjY192ZXJzaW9uX2dlLDYsMSkJKz0gLW5vLXBp
ZQogTElCTERGTEFHUy0kKGNhbGwgZ2NjX3ZlcnNpb25fZ2UsNiwxKQkrPSAtbm8tcGllCiBMREZM
QUdTLSQoY2FsbCBnY2NfdmVyc2lvbl9nZSw2LDEpCSs9IC1uby1waWUKLS0gCjIuMjAuMQoKCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 13:26:53 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 13:26:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j03el-0004X0-B7; Fri, 07 Feb 2020 13:26:51 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j03ej-0004Wt-UW
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 13:26:49 +0000
X-Inumbo-ID: 7e2d891a-49ad-11ea-b16f-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 7e2d891a-49ad-11ea-b16f-12813bfff9fa;
 Fri, 07 Feb 2020 13:26:49 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 0F5C2F2047;
 Fri,  7 Feb 2020 14:26:48 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id R1pRLmUm1Ftz; Fri,  7 Feb 2020 14:26:47 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id DCF68F2025
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 14:26:45 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 14:26:45 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 14:26:38 +0100
Message-ID: <20200207132638.17457-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/NEWLIB PATCH] Provide `syscall()` symbol
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UHJvdmlkZXMgdGhlIGBzeXNjYWxsKClgIGZ1bmN0aW9uIHN5bWJvbCAoc29tZSBsYW5ndWFnZSBy
dW50aW1lcyAgbGluawp0byB0aGUgc3ltYm9sIGRpcmVjdGx5KS4gVGhlIGZ1bmN0aW9uIGlzIGNh
bGxpbmcgYHVrX3N5c2NhbGwoKWAgd2hlbgpsaWIvc3lzY2FsbF9zaGltIGlzIGVuYWJsZWQuIE90
aGVyd2lzZSwgYHN5c2NhbGwoKWAgcmV0dXJucyBhbHdheXMKYC0xYCBhbmQgc2V0cyBgZXJybm9g
IHRvIGBFTk9TWVNgLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3Vlbnpl
ckBuZWNsYWIuZXU+Ci0tLQogQ29uZmlnLnVrICAgICAgICAgICAgIHwgIDEgKwogTWFrZWZpbGUu
dWsgICAgICAgICAgIHwgIDEgKwogaW5jbHVkZS9zeXMvc3lzY2FsbC5oIHwgNDcgKysrKysrKysr
KysrKysrKysrKysrKysrKy0tLQogc3lzY2FsbC5jICAgICAgICAgICAgIHwgNzIgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMTcg
aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNjYWxs
LmMKCmRpZmYgLS1naXQgYS9Db25maWcudWsgYi9Db25maWcudWsKaW5kZXggYWIxMjdmMC4uOGNi
MTA1OCAxMDA2NDQKLS0tIGEvQ29uZmlnLnVrCisrKyBiL0NvbmZpZy51awpAQCAtMTMsNiArMTMs
NyBAQCBtZW51Y29uZmlnIExJQk5FV0xJQkMKIAlzZWxlY3QgTElCVkZTQ09SRQogCXNlbGVjdCBM
SUJQT1NJWF9QUk9DRVNTCiAJc2VsZWN0IExJQlBPU0lYX1VTRVIKKwlpbXBseSBMSUJTWVNDQUxM
X1NISU0KIAogaWYgTElCTkVXTElCQwogCWNvbmZpZyBMSUJORVdMSUJDX1dBTlRfSU9fQzk5X0ZP
Uk1BVFMKZGlmZiAtLWdpdCBhL01ha2VmaWxlLnVrIGIvTWFrZWZpbGUudWsKaW5kZXggMzkwZTRm
NC4uNjZjM2I4OCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUudWsKKysrIGIvTWFrZWZpbGUudWsKQEAg
LTEzNSw2ICsxMzUsNyBAQCBMSUJORVdMSUJHTFVFX1NSQ1MteSArPSAkKExJQk5FV0xJQkNfQkFT
RSkvZGV2LmMKIExJQk5FV0xJQkdMVUVfU1JDUy15ICs9ICQoTElCTkVXTElCQ19CQVNFKS9zaWdu
YWwuYwogTElCTkVXTElCR0xVRV9TUkNTLXkgKz0gJChMSUJORVdMSUJDX0JBU0UpL2xpbmsuYwog
TElCTkVXTElCR0xVRV9TUkNTLXkgKz0gJChMSUJORVdMSUJDX0JBU0UpL21udGVudC5jCitMSUJO
RVdMSUJHTFVFX1NSQ1MteSArPSAkKExJQk5FV0xJQkNfQkFTRSkvc3lzY2FsbC5jCiBMSUJORVdM
SUJHTFVFX1NSQ1MteSArPSAkKExJQk5FV0xJQkNfQkFTRSkvbXVzbC1pbXBvcnRlZC9zcmMvbWlz
Yy9zeXNsb2cuYwogTElCTkVXTElCR0xVRV9TUkNTLXkgKz0gJChMSUJORVdMSUJDX0JBU0UpL211
c2wtaW1wb3J0ZWQvc3JjL3Rlcm1pb3MvdGNzZXRhdHRyLmMKIExJQk5FV0xJQkdMVUVfU1JDUy15
ICs9ICQoTElCTkVXTElCQ19CQVNFKS9tdXNsLWltcG9ydGVkL3NyYy90ZXJtaW9zL3RjZ2V0YXR0
ci5jCmRpZmYgLS1naXQgYS9pbmNsdWRlL3N5cy9zeXNjYWxsLmggYi9pbmNsdWRlL3N5cy9zeXNj
YWxsLmgKaW5kZXggNTVhZTA5OC4uMThlZGQ3ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zeXMvc3lz
Y2FsbC5oCisrKyBiL2luY2x1ZGUvc3lzL3N5c2NhbGwuaApAQCAtMSw2ICsxLDQ1IEBACisvKiBT
UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlICovCisvKgorICogQXV0aG9yczog
U2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+CisgKgorICogQ29weXJpZ2h0
IChjKSAyMDIwLCBORUMgRXVyb3BlIEx0ZC4sIE5FQyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5
cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiAgICBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
ICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqCisgKi8KKyNpZm5kZWYgX19TWVNfU1lTQ0FMTF9IX18KKyNkZWZpbmUgX19T
WVNfU1lTQ0FMTF9IX18KKwogI2luY2x1ZGUgPHVrL2NvbmZpZy5oPgorCitsb25nIHN5c2NhbGwo
bG9uZyBudW0sIC4uLik7CisKICNpZiBDT05GSUdfTElCU1lTQ0FMTF9TSElNCi0jaW5jbHVkZSA8
dWsvc3lzY2FsbC5oPgotI2Vsc2UKLSNlcnJvciAiUHJvdmlkZSBhbHRlcm5hdGl2ZSBzeXNjYWxs
LmggaGVhZGVyIgotI2VuZGlmCisvKiBQcm92aWRlIF9fTlJfc3lzY2FsbG5hbWUgdmFyaWFudHMg
Ki8KKyNpbmNsdWRlIDx1ay9iaXRzL3N5c2NhbGxfbnJzMi5oPgorI2VuZGlmIC8qIENPTkZJR19M
SUJTWVNDQUxMX1NISU0gKi8KKworI2VuZGlmIC8qIF9fU1lTX1NZU0NBTExfSF9fICovCmRpZmYg
LS1naXQgYS9zeXNjYWxsLmMgYi9zeXNjYWxsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOTMxY2Q2NAotLS0gL2Rldi9udWxsCisrKyBiL3N5c2NhbGwuYwpAQCAtMCwwICsx
LDcyIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlICovCisvKgor
ICogQXV0aG9yczogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+CisgKgor
ICogQ29weXJpZ2h0IChjKSAyMDIwLCBORUMgRXVyb3BlIEx0ZC4sIE5FQyBDb3Jwb3JhdGlvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1l
IG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiAgICBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgPHVrL2NvbmZpZy5oPgor
I2lmIENPTkZJR19MSUJTWVNDQUxMX1NISU0KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRl
IDx1ay9zeXNjYWxsLmg+CisKK2xvbmcgc3lzY2FsbChsb25nIG51bSwgLi4uKQoreworCXZhX2xp
c3QgdmE7CisJbG9uZyBhcmdbNl07CisKKwl2YV9zdGFydCh2YSwgbnVtKTsKKwlhcmdbMF0gPSB2
YV9hcmcodmEsIGxvbmcpOworCWFyZ1sxXSA9IHZhX2FyZyh2YSwgbG9uZyk7CisJYXJnWzJdID0g
dmFfYXJnKHZhLCBsb25nKTsKKwlhcmdbM10gPSB2YV9hcmcodmEsIGxvbmcpOworCWFyZ1s0XSA9
IHZhX2FyZyh2YSwgbG9uZyk7CisJYXJnWzVdID0gdmFfYXJnKHZhLCBsb25nKTsKKwl2YV9lbmQo
dmEpOworCisJcmV0dXJuIHVrX3N5c2NhbGwobnVtLAorCQkJICBhcmdbMF0sCisJCQkgIGFyZ1sx
XSwKKwkJCSAgYXJnWzJdLAorCQkJICBhcmdbM10sCisJCQkgIGFyZ1s0XSwKKwkJCSAgYXJnWzVd
KTsKK30KKworI2Vsc2UKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHVrL3ByaW50Lmg+
CisjaW5jbHVkZSA8dWsvZXNzZW50aWFscy5oPgorCitsb25nIHN5c2NhbGwobG9uZyBudW0gX19t
YXliZV91bnVzZWQsIC4uLikKK3sKKwl1a19wcl9lcnIoIk5vIHN1Y2ggc3lzdGVtIGNhbGwgJWx1
XG4iLCBudW0pOworCXJldHVybiAtRU5PU1lTOworfQorI2VuZGlmIC8qIENPTkZJR19MSUJTWVND
QUxMX1NISU0gKi8KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s
aXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:36:53 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:36:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j04kT-00036C-Ns; Fri, 07 Feb 2020 14:36:49 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j04kT-000362-5q
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:36:49 +0000
X-Inumbo-ID: 444af700-49b7-11ea-b184-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 444af700-49b7-11ea-b184-12813bfff9fa;
 Fri, 07 Feb 2020 14:36:46 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id EABC210001F;
 Fri,  7 Feb 2020 15:36:45 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 9TyEmEJvthz0; Fri,  7 Feb 2020 15:36:45 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id BDB2BFFD0F
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:36:45 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:36:45 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 15:36:32 +0100
Message-ID: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LIBGO PATCH 0/5] Update to recent Unikraft
 and newlib changes
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VXBkYXRlcyB0aGUgbGliZ28gcG9ydCB0byByZWNlbnQgY2hhbmdlcyBvZiBVbmlrcmFmdCBhbmQg
bmV3bGliLgpTaW1wbGUgaGVsbG8gd29ybGQgZXhhbXBsZXMgY2FuIGJlIGNvbXBpbGVkIHdpdGgg
dGhpcyBwb3J0LgoKU2ltb24gS3VlbnplciAoNSk6CiAgVXNlIHVrX3Bvc2l4X21lbWFsaWduKCkg
Zm9yIHN0YWNrIGFsbG9jYXRpb24KICBVcGRhdGUgZGVwZW5kZW5jeSB0byBsaWIvcG9zaXgtc3lz
aW5mbwogIFJlbW92ZSBzdHVicyBjYXVzaW5nIGR1cGxpY2F0ZWQgc3ltYm9scyBlcnJvcnMKICBS
ZW1vdmUgcnVudGltZS9nby1ub3N5cy5jIGZyb20gYnVpbGQKICBSRUFETUU6IFVwZGF0ZSBsaWJy
YXJ5IG9yZGVyCgogQ29uZmlnLnVrICAgfCAgIDIgKy0KIE1ha2VmaWxlLnVrIHwgICAxIC0KIFJF
QURNRS5tZCAgIHwgIDE4ICsrKy0tLQogZ2x1ZS5jICAgICAgfCAxNzEgKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAx
NTEgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCgotLSAKMi4yMC4xCgoKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxp
bmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:36:53 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:36:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j04kV-00036b-PS; Fri, 07 Feb 2020 14:36:51 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j04kV-00036R-5d
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:36:51 +0000
X-Inumbo-ID: 4606ac2e-49b7-11ea-a759-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 4606ac2e-49b7-11ea-a759-bc764e2007e4;
 Fri, 07 Feb 2020 14:36:49 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id D7785F2025;
 Fri,  7 Feb 2020 15:36:48 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 60kOO-P4qCna; Fri,  7 Feb 2020 15:36:48 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id A3A9AF2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:36:46 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:36:46 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 15:36:33 +0100
Message-ID: <20200207143637.29124-2-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Use uk_posix_memalign() for
 stack allocation
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmVjZW50IGNoYW5nZXMgaW4gVW5pa3JhZnQgbW9kaWZpZWQgdWtfcGFsbG9jKCkncyBzaWduYXR1
cmUgYW5kCmd1YXJhbnRlZXM6IGFsbG9jYXRpb24gc2l6ZXMgYXJlIGdpdmVuIHdpdGggdGhlIG51
bWJlciBvZiBwYWdlcyBhbmQKdGhlIHJldHVybmVkIG1lbW9yeSBpcyBub3QgbmVjZXNzYXJpbHkg
YWxpZ25lZCB0byB0aGUgc2l6ZS4KQnkgdXNpbmcgdWtfcG9zaXhfbWVtYWxpZ24oKSB3ZSByZXN0
b3JlIG91ciBhc3N1bXB0aW9ucyBpbiB0aGUgY29kZS4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1
ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgotLS0KIGdsdWUuYyB8IDUgKysrKy0KIDEg
ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg
YS9nbHVlLmMgYi9nbHVlLmMKaW5kZXggOTRhOTZiOS4uNDRkMmUwOCAxMDA2NDQKLS0tIGEvZ2x1
ZS5jCisrKyBiL2dsdWUuYwpAQCAtMTg3LDcgKzE4NywxMCBAQCB2b2lkIG1ha2Vjb250ZXh0MSAo
dWNvbnRleHRfdCAqX191Y3AsIHZvaWQgKCpfX2Z1bmMpICh2b2lkKSwgaW50IF9fYXJnYywgLi4u
KQogdm9pZCAqYWxsb2Nfc3RhY2soKQogewogCXN0cnVjdCB1a19zY2hlZCAqc2NoZWQgPSB1a19z
Y2hlZF9nZXRfZGVmYXVsdCgpOwotCXZvaWQgKnN0YWNrID0gdWtfcGFsbG9jKHNjaGVkLT5hbGxv
Y2F0b3IsIF9fU1RBQ0tfU0laRV9QQUdFX09SREVSKTsKKwl2b2lkICpzdGFjazsKKworCXVrX3Bv
c2l4X21lbWFsaWduKHNjaGVkLT5hbGxvY2F0b3IsCisJCQkgICZzdGFjaywgX19TVEFDS19TSVpF
LCBfX1NUQUNLX1NJWkUpOwogCWlmIChzdGFjayA9PSBOVUxMKQogCQlwcmludGYoImVycm9yIGFs
bG9jYXRpbmcgc3RhY2tcbiIpOwogCXJldHVybiBzdGFjazsKLS0gCjIuMjAuMQoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWls
aW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:36:56 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:36:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j04ka-00037s-Rt; Fri, 07 Feb 2020 14:36:56 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j04ka-00037e-6r
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:36:56 +0000
X-Inumbo-ID: 473a703a-49b7-11ea-a759-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 473a703a-49b7-11ea-a759-bc764e2007e4;
 Fri, 07 Feb 2020 14:36:51 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id D085AF2027;
 Fri,  7 Feb 2020 15:36:50 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id NV2elof1XzrK; Fri,  7 Feb 2020 15:36:50 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id AC323F2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:36:48 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:36:47 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 15:36:34 +0100
Message-ID: <20200207143637.29124-3-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Update dependency to
 lib/posix-sysinfo
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2l0aGluIHRoZSBVbmlrcmFmdCByZXBvc2l0b3J5LCBVS1NZU0lORk8gZ290IHJlbmFtZWQgdG8g
TElCUE9TSVhfU1lTSU5GTy4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgotLS0KIENvbmZpZy51ayB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx
IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL0NvbmZpZy51ayBiL0Nv
bmZpZy51awppbmRleCBhNDUyZDMzLi5kNGU2NWE1IDEwMDY0NAotLS0gYS9Db25maWcudWsKKysr
IGIvQ29uZmlnLnVrCkBAIC01LDcgKzUsNyBAQCBjb25maWcgTElCR08KIAlzZWxlY3QgTElCVUtB
TExPQwogCXNlbGVjdCBMSUJORVdMSUJDCiAJc2VsZWN0IExJQlVLTU1BUAotCXNlbGVjdCBVS1NZ
U0lORk8KKwlzZWxlY3QgTElCUE9TSVhfU1lTSU5GTwogCXNlbGVjdCBMSUJDT01QSUxFUl9SVAog
CXNlbGVjdCBMSUJVTldJTkQKIAlzZWxlY3QgTElCQ1hYCi0tIAoyLjIwLjEKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGlu
ZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl
bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:37:02 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:37:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j04kf-00039J-Tc; Fri, 07 Feb 2020 14:37:01 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j04kf-000394-78
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:37:01 +0000
X-Inumbo-ID: 487c8abe-49b7-11ea-a759-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 487c8abe-49b7-11ea-a759-bc764e2007e4;
 Fri, 07 Feb 2020 14:36:53 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 00D8EF2025;
 Fri,  7 Feb 2020 15:36:53 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 5mfKARU9UnIQ; Fri,  7 Feb 2020 15:36:52 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id B4919F2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:36:50 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:36:48 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 15:36:35 +0100
Message-ID: <20200207143637.29124-4-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Remove stubs causing
 duplicated symbols errors
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmVjZW50IFVuaWtyYWZ0IGFuZCBsaWJjIHByb3ZpZGUgc3ltYm9scyBmb3IgdGhvc2Ugc3R1YnMu
CgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4K
LS0tCiBnbHVlLmMgfCAzNSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm
aWxlIGNoYW5nZWQsIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dsdWUuYyBiL2dsdWUu
YwppbmRleCA0NGQyZTA4Li4xMTRmYTdkIDEwMDY0NAotLS0gYS9nbHVlLmMKKysrIGIvZ2x1ZS5j
CkBAIC03MiwxNiArNzIsNiBAQCBpbnQgbWluY29yZSh2b2lkICphZGRyIF9fdW51c2VkLCBzaXpl
X3QgbGVuZ3RoIF9fdW51c2VkLCB1bnNpZ25lZCBjaGFyICp2ZWMgX191bgogCXJldHVybiAwOwog
fQogCi1pbnQgcHJjdGwoaW50IG9wdGlvbiBfX3VudXNlZCwgdW5zaWduZWQgbG9uZyBhcmcyIF9f
dW51c2VkLCB1bnNpZ25lZCBsb25nIGFyZzMgX191bnVzZWQsIHVuc2lnbmVkIGxvbmcgYXJnNCBf
X3VudXNlZCwgdW5zaWduZWQgbG9uZyBhcmc1IF9fdW51c2VkKQotewotCXJldHVybiAwOwotfQot
Ci1pbnQgcHRocmVhZF9zaWdtYXNrKGludCBob3cgX191bnVzZWQsIGNvbnN0IHNpZ3NldF90ICpz
ZXQgX191bnVzZWQsIHNpZ3NldF90ICpvbGRzZXQgX191bnVzZWQpCi17Ci0JcmV0dXJuIDA7Ci19
Ci0KIGxvbmcgcHRyYWNlKHZvaWQpCiB7CiAJcmV0dXJuIDA7CkBAIC05NywxMSArODcsNiBAQCBp
bnQgc2NoZWRfZ2V0YWZmaW5pdHkodm9pZCkKIAlyZXR1cm4gMDsKIH0KIAotaW50IHNldGl0aW1l
cihpbnQgd2hpY2ggX191bnVzZWQsIGNvbnN0IHN0cnVjdCBpdGltZXJ2YWwgKm5ld192YWx1ZSBf
X3VudXNlZCwgc3RydWN0IGl0aW1lcnZhbCAqb2xkX3ZhbHVlIF9fdW51c2VkKQotewotCXJldHVy
biAwOwotfQotCiBpbnQgc2V0dGltZW9mZGF5KGNvbnN0IHN0cnVjdCB0aW1ldmFsICp0diBfX3Vu
dXNlZCwgY29uc3Qgc3RydWN0IHRpbWV6b25lICp0eiBfX3VudXNlZCkKIHsKIAlyZXR1cm4gMDsK
QEAgLTExMywxMSArOTgsNiBAQCBpbnQgc2lnYWRkc2V0KHNpZ3NldF90ICpzZXQgX191bnVzZWQs
IGludCBzaWdudW0gX191bnVzZWQpCiAJcmV0dXJuIDA7CiB9CiAKLWludCBzaWdhbHRzdGFjayhj
b25zdCBzdGFja190ICpzcyBfX3VudXNlZCwgc3RhY2tfdCAqb2xkX3NzIF9fdW51c2VkKQotewot
CXJldHVybiAwOwotfQotCiAjdW5kZWYgc2lnZGVsc2V0CiBpbnQgc2lnZGVsc2V0KHNpZ3NldF90
ICpzZXQgX191bnVzZWQsIGludCBzaWdudW0gX191bnVzZWQpCiB7CkBAIC0xMzYsMTEgKzExNiw2
IEBAIGludCBzaWdmaWxsc2V0KHNpZ3NldF90ICpzZXQgX191bnVzZWQpCiAJcmV0dXJuIDA7CiB9
CiAKLWxvbmcgc3lzY2FsbChsb25nIG51bWJlciBfX3VudXNlZCwgLi4uKQotewotCXJldHVybiAw
OwotfQotCiBzc2l6ZV90IHNlbmRmaWxlNjQoaW50IG91dF9mZCBfX3VudXNlZCwgaW50IGluX2Zk
IF9fdW51c2VkLCBvZmZfdCAqb2Zmc2V0ICBfX3VudXNlZCwgc2l6ZV90ICBjb3VudCBfX3VudXNl
ZCkKIHsKIAlyZXR1cm4gMTsKQEAgLTE1MSwyMSArMTI2LDEyIEBAIGludCBnZXRncm91cGxpc3Qo
Y29uc3QgY2hhciAqdXNlciBfX3VudXNlZCwgZ2lkX3QgZ3JvdXAgX191bnVzZWQsIGdpZF90ICpn
cm91cHMKIAlyZXR1cm4gMDsKIH0KIAotaW50IGdldGdybmFtX3IoY29uc3QgY2hhciAqbmFtZSBf
X3VudXNlZCwgc3RydWN0IGdyb3VwICpncnAgX191bnVzZWQsCi0JCWNoYXIgKmJ1ZiBfX3VudXNl
ZCwgc2l6ZV90IGJ1ZmxlbiBfX3VudXNlZCwgc3RydWN0IGdyb3VwICoqcmVzdWx0IF9fdW51c2Vk
KQotewotCXJldHVybiAwOwotfQogaW50IGdldGdyZ2lkX3IoZ2lkX3QgZ2lkIF9fdW51c2VkLCBz
dHJ1Y3QgZ3JvdXAgKmdycCBfX3VudXNlZCwKIAkJY2hhciAqYnVmIF9fdW51c2VkLCBzaXplX3Qg
YnVmbGVuIF9fdW51c2VkLCBzdHJ1Y3QgZ3JvdXAgKipyZXN1bHQgX191bnVzZWQpCiB7CiAJcmV0
dXJuIDA7CiB9CiAKLXZvaWQgdWtfc3lzY2FsbF9mbl9fX05SX2Nsb25lKHZvaWQpCi17Ci19Ci0K
IC8qCiAgKiBHbHVlIGNvZGUKICAqLwpAQCAtMjAwLDQgKzE2NiwzIEBAIHNpemVfdCBnZXRfc3Rh
Y2tfc2l6ZSh2b2lkKQogewogCXJldHVybiBfX1NUQUNLX1NJWkU7CiB9Ci0KLS0gCjIuMjAuMQoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1k
ZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:37:07 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:37:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j04kk-0003AY-Vx; Fri, 07 Feb 2020 14:37:06 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j04kk-0003AI-6f
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:37:06 +0000
X-Inumbo-ID: 49b4cbf8-49b7-11ea-b2cb-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 49b4cbf8-49b7-11ea-b2cb-bc764e2007e4;
 Fri, 07 Feb 2020 14:36:55 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 10F46F2025;
 Fri,  7 Feb 2020 15:36:55 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 7Zc2WJd9IGZ1; Fri,  7 Feb 2020 15:36:54 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id D73F6F2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:36:52 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:36:48 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 15:36:36 +0100
Message-ID: <20200207143637.29124-5-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Remove runtime/go-nosys.c
 from build
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmVtb3ZlcyBydW50aW1lL2dvLW5vc3lzLmMgYmVjYXVzZSBpdCBjYXVzZXMgbXVsdGlwbGUgc3lt
Ym9sCmRlZmluaXRpb25zLiBNaXNzaW5nIHN5bWJvbHMgdGhhdCB3ZXJlIGNvdmVyZWQgYnkgdGhp
cyBmaWxlIGFyZSBhZGRlZAphcyBzdHViIHRvIGdsdWUuYy4KClNpZ25lZC1vZmYtYnk6IFNpbW9u
IEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgotLS0KIE1ha2VmaWxlLnVrIHwgICAx
IC0KIGdsdWUuYyAgICAgIHwgMTQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTQxIGluc2VydGlvbnMoKyksIDEg
ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCmluZGV4
IDI5YzFiOTAuLjljN2U5MjUgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLnVrCisrKyBiL01ha2VmaWxl
LnVrCkBAIC0xMTcsNyArMTE3LDYgQEAgTElCR09fU1JDUy15ICs9ICQoTElCR09fRVhUUkFDVEVE
KS9ydW50aW1lL2dvLW1lbWVxdWFsLmMKIExJQkdPX1NSQ1MteSArPSAkKExJQkdPX0VYVFJBQ1RF
RCkvcnVudGltZS9nby1tZW1tb3ZlLmMKIExJQkdPX1NSQ1MteSArPSAkKExJQkdPX0VYVFJBQ1RF
RCkvcnVudGltZS9nby1uYW5vdGltZS5jCiBMSUJHT19TUkNTLXkgKz0gJChMSUJHT19FWFRSQUNU
RUQpL3J1bnRpbWUvZ28tbmV3LmMKLUxJQkdPX1NSQ1MteSArPSAkKExJQkdPX0VYVFJBQ1RFRCkv
cnVudGltZS9nby1ub3N5cy5jCiBMSUJHT19TUkNTLXkgKz0gJChMSUJHT19FWFRSQUNURUQpL3J1
bnRpbWUvZ28tbm93LmMKIExJQkdPX1NSQ1MteSArPSAkKExJQkdPX0VYVFJBQ1RFRCkvcnVudGlt
ZS9nby1yZWZsZWN0LWNhbGwuYwogTElCR09fU1JDUy15ICs9ICQoTElCR09fRVhUUkFDVEVEKS9y
dW50aW1lL2dvLXJ1bnRpbWUtZXJyb3IuYwpkaWZmIC0tZ2l0IGEvZ2x1ZS5jIGIvZ2x1ZS5jCmlu
ZGV4IDExNGZhN2QuLmQ4ZGQ2OTUgMTAwNjQ0Ci0tLSBhL2dsdWUuYworKysgYi9nbHVlLmMKQEAg
LTUyLDYgKzUyLDEyIEBAIGludCBlcG9sbF9jcmVhdGUoaW50IHNpemUgX191bnVzZWQpCiAJcmV0
dXJuIDA7CiB9CiAKK2ludCBlcG9sbF9jcmVhdGUxKGludCBmbGFncykKK3sKKwllcnJubyA9IEVO
RklMRTsKKwlyZXR1cm4gLTE7Cit9CisKIGludCBlcG9sbF9jdGwoaW50IGVwZmQgX191bnVzZWQs
IGludCBvcCBfX3VudXNlZCwgaW50IGZkIF9fdW51c2VkLCBzdHJ1Y3QgZXBvbGxfZXZlbnQgKmV2
ZW50IF9fdW51c2VkKQogewogCXJldHVybiAwOwpAQCAtMTIxLDYgKzEyNywyMyBAQCBzc2l6ZV90
IHNlbmRmaWxlNjQoaW50IG91dF9mZCBfX3VudXNlZCwgaW50IGluX2ZkIF9fdW51c2VkLCBvZmZf
dCAqb2Zmc2V0ICBfX3VudQogCXJldHVybiAxOwogfQogCit0eXBlZGVmIHZvaWQgbG9mZl90Owor
c3NpemVfdCBzcGxpY2UoaW50IGZkX2luIF9fdW51c2VkLCBsb2ZmX3QgKm9mZl9pbiBfX3VudXNl
ZCwgaW50IGZkX291dCBfX3VudXNlZCwKKwkgICAgICAgbG9mZl90ICpvZmZfb3V0IF9fdW51c2Vk
LCBzaXplX3QgbGVuIF9fdW51c2VkLAorCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MgX191bnVz
ZWQpCit7CisJZXJybm8gPSBFTk9TWVM7CisJcmV0dXJuIC0xOworfQorCitpbnQgc3luY19maWxl
X3JhbmdlKGludCBmZCBfX3VudXNlZCwgb2ZmNjRfdCBvZmZzZXQgX191bnVzZWQsCisJCSAgICBv
ZmY2NF90IG5ieXRlcyBfX3VudXNlZCwgdW5zaWduZWQgaW50IGZsYWdzIF9fdW51c2VkKQorewor
CWVycm5vID0gRUlPOworCXJldHVybiAtMTsKK30KKworc3RydWN0IGdyb3VwOwogaW50IGdldGdy
b3VwbGlzdChjb25zdCBjaGFyICp1c2VyIF9fdW51c2VkLCBnaWRfdCBncm91cCBfX3VudXNlZCwg
Z2lkX3QgKmdyb3VwcyBfX3VudXNlZCwgaW50ICpuZ3JvdXBzIF9fdW51c2VkKQogewogCXJldHVy
biAwOwpAQCAtMTMyLDYgKzE1NSwxMjQgQEAgaW50IGdldGdyZ2lkX3IoZ2lkX3QgZ2lkIF9fdW51
c2VkLCBzdHJ1Y3QgZ3JvdXAgKmdycCBfX3VudXNlZCwKIAlyZXR1cm4gMDsKIH0KIAoraW50IHVu
c2hhcmUoaW50IGZsYWdzIF9fdW51c2VkKQoreworCWVycm5vID0gRU5PU1lTOworCXJldHVybiAt
MTsKK30KKworc3NpemVfdCB0ZWUoaW50IGZkX2luIF9fdW51c2VkLCBpbnQgZmRfb3V0IF9fdW51
c2VkLCBzaXplX3QgbGVuIF9fdW51c2VkLAorCSAgICB1bnNpZ25lZCBpbnQgZmxhZ3MgX191bnVz
ZWQpCit7CisJZXJybm8gPSBFTk9TWVM7CisJcmV0dXJuIC0xOworfQorCit0eXBlZGVmIHZvaWQg
c29ja2xlbl90Oworc3RydWN0IHNvY2thZGRyOworaW50IGFjY2VwdDQoaW50IHNvY2tmZCBfX3Vu
dXNlZCwgc3RydWN0IHNvY2thZGRyICphZGRyIF9fdW51c2VkLAorCSAgICBzb2NrbGVuX3QgKmFk
ZHJsZW4gX191bnVzZWQsIGludCBmbGFncyBfX3VudXNlZCkKK3sKKwllcnJubyA9IEVOT1NZUzsK
KwlyZXR1cm4gLTE7Cit9CisKK2ludCBmY2htb2RhdChpbnQgZGlyZmQgX191bnVzZWQsIGNvbnN0
IGNoYXIgKnBhdGhuYW1lIF9fdW51c2VkLAorCSAgICAgbW9kZV90IG1vZGUgX191bnVzZWQsIGlu
dCBmbGFncyBfX3VudXNlZCkKK3sKKwllcnJubyA9IEVOT1NZUzsKKwlyZXR1cm4gLTE7Cit9CisK
K2ludCBmY2hvd25hdChpbnQgZGlyZmQgX191bnVzZWQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lIF9f
dW51c2VkLAorICAgICAgICAgICAgIHVpZF90IG93bmVyIF9fdW51c2VkLCBnaWRfdCBncm91cCBf
X3VudXNlZCwKKwkgICAgIGludCBmbGFncyBfX3VudXNlZCkKK3sKKwllcnJubyA9IEVOT1NZUzsK
KwlyZXR1cm4gLTE7Cit9CisKK2ludCBta2RpcmF0KGludCBkaXJmZCBfX3VudXNlZCwgY29uc3Qg
Y2hhciAqcGF0aG5hbWUgX191bnVzZWQsCisJICAgIG1vZGVfdCBtb2RlIF9fdW51c2VkKQorewor
CWVycm5vID0gRU5PU1lTOworCXJldHVybiAtMTsKK30KKworaW50IG1rbm9kYXQoaW50IGRpcmZk
IF9fdW51c2VkLCBjb25zdCBjaGFyICpwYXRobmFtZSBfX3VudXNlZCwKKwkgICAgbW9kZV90IG1v
ZGUgX191bnVzZWQsIGRldl90IGRldiBfX3VudXNlZCkKK3sKKwllcnJubyA9IEVOT1NZUzsKKwly
ZXR1cm4gLTE7Cit9CisKK2ludCByZW5hbWVhdChpbnQgb2xkZGlyZmQgX191bnVzZWQsIGNvbnN0
IGNoYXIgKm9sZHBhdGggX191bnVzZWQsCisgICAgICAgICAgICAgaW50IG5ld2RpcmZkIF9fdW51
c2VkLCBjb25zdCBjaGFyICpuZXdwYXRoIF9fdW51c2VkKQoreworCWVycm5vID0gRU5PU1lTOwor
CXJldHVybiAtMTsKK30KKworaW50IHVubGlua2F0KGludCBkaXJmZCBfX3VudXNlZCwgY29uc3Qg
Y2hhciAqcGF0aG5hbWUgX191bnVzZWQsCisJICAgICBpbnQgZmxhZ3MgX191bnVzZWQpCit7CisJ
ZXJybm8gPSBFTk9TWVM7CisJcmV0dXJuIC0xOworfQorCitzc2l6ZV90IGdldHhhdHRyKGNvbnN0
IGNoYXIgKnBhdGggX191bnVzZWQsIGNvbnN0IGNoYXIgKm5hbWUgX191bnVzZWQsCisgICAgICAg
ICAgICAgICAgIHZvaWQgKnZhbHVlIF9fdW51c2VkLCBzaXplX3Qgc2l6ZSBfX3VudXNlZCkKK3sK
KwllcnJubyA9IEVOT1RTVVA7CisJcmV0dXJuIC0xOworfQorCitpbnQgc2V0eGF0dHIoY29uc3Qg
Y2hhciAqcGF0aCBfX3VudXNlZCwgY29uc3QgY2hhciAqbmFtZSBfX3VudXNlZCwKKwkgICAgIGNv
bnN0IHZvaWQgKnZhbHVlIF9fdW51c2VkLCBzaXplX3Qgc2l6ZSBfX3VudXNlZCwKKwkgICAgIGlu
dCBmbGFncyBfX3VudXNlZCkKK3sKKwllcnJubyA9IEVOT1RTVVA7CisJcmV0dXJuIC0xOworfQor
CitpbnQgcmVtb3ZleGF0dHIoY29uc3QgY2hhciAqcGF0aCBfX3VudXNlZCwgY29uc3QgY2hhciAq
bmFtZSBfX3VudXNlZCkKK3sKKwllcnJubyA9IEVOT1RTVVA7CisJcmV0dXJuIC0xOworfQorCitz
c2l6ZV90IGxpc3R4YXR0cihjb25zdCBjaGFyICpwYXRoIF9fdW51c2VkLCBjaGFyICpsaXN0IF9f
dW51c2VkLAorCQkgIHNpemVfdCBzaXplIF9fdW51c2VkKQoreworCWVycm5vID0gRU5PVFNVUDsK
KwlyZXR1cm4gLTE7Cit9CisKK2ludCBpbm90aWZ5X2luaXQodm9pZCBfX3VudXNlZCkKK3sKKwll
cnJubyA9IEVOT1NZUzsKKwlyZXR1cm4gLTE7Cit9CisKK2ludCBpbm90aWZ5X2luaXQxKGludCBm
bGFncyBfX3VudXNlZCkKK3sKKwllcnJubyA9IEVOT1NZUzsKKwlyZXR1cm4gLTE7Cit9CisKK2lu
dCBpbm90aWZ5X3JtX3dhdGNoKGludCBmZCBfX3VudXNlZCwgaW50IHdkIF9fdW51c2VkKQorewor
CWVycm5vID0gRU5PU1lTOworCXJldHVybiAtMTsKK30KKworaW50IGlub3RpZnlfYWRkX3dhdGNo
KGludCBmZCBfX3VudXNlZCwgY29uc3QgY2hhciAqcGF0aG5hbWUgX191bnVzZWQsCisJCSAgICAg
IHVpbnQzMl90IG1hc2sgX191bnVzZWQpCit7CisJZXJybm8gPSBFTk9TWVM7CisJcmV0dXJuIC0x
OworfQorCiAvKgogICogR2x1ZSBjb2RlCiAgKi8KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:37:12 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:37:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j04kq-0003By-2g; Fri, 07 Feb 2020 14:37:12 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=spH4=33=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j04kp-0003Bj-6A
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:37:11 +0000
X-Inumbo-ID: 4ae9930a-49b7-11ea-a759-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 4ae9930a-49b7-11ea-a759-bc764e2007e4;
 Fri, 07 Feb 2020 14:36:57 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 17E8BF2025;
 Fri,  7 Feb 2020 15:36:57 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 6WYg25czjBzW; Fri,  7 Feb 2020 15:36:56 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id E0121F2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:36:54 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:36:49 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 7 Feb 2020 15:36:37 +0100
Message-ID: <20200207143637.29124-6-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LIBGO PATCH] README: Update library order
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VXBkYXRlIHRoZSBsaWJyYXJ5IG9yZGVyIHNvIHRoYXQgbGliZ28gY29tcGlsZXMuCgpTaWduZWQt
b2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KLS0tCiBSRUFE
TUUubWQgfCAyMCArKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2Vy
dGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1F
Lm1kCmluZGV4IDU5MGQ4ZDguLmUwMGNiYWQgMTAwNjQ0Ci0tLSBhL1JFQURNRS5tZAorKysgYi9S
RUFETUUubWQKQEAgLTQsMjIgKzQsMjYgQEAgbGliZ28gZm9yIFVuaWtyYWZ0CiBUaGlzIGlzIGEg
cG9ydCBvZiBsaWJnbyBmb3IgVW5pa3JhZnQgYXMgYW4gZXh0ZXJuYWwgbGlicmFyeS4gWW91IHdp
bGwKIG5lZWQgdGhlIGZvbGxvd2luZyBleHRlcm5hbCBsaWJyYXJpZXMgdG8gbWFrZSBpdCB3b3Jr
OgogCi0rIG5ld2xpYgorKyBnY2MKKysgbGliZ28KKysgcHRocmVhZC1lbWJlZGRlZAorKyBsd2lw
CiArIGNvbXBpbGVyLXJ0Ci0rIGxpYnVud2luZAogKyBsaWJjeHgKICsgbGliY3h4YWJpCi0rIHB0
aHJlYWQtZW1iZWRkZWQKLSsgZ2NjCi0rIGx3aXAKKysgbGlidW53aW5kCiArIGxpYnVjb250ZXh0
CisrIG5ld2xpYgogCi1XaGVuIGFkZGluZyB0aGUgbGlicmFyeSBpbiB0aGUgZGVwZW5kZW5jeSBs
aXN0LCBwbGVhc2UgbWFrZSBzdXJlIHRoYXQKLWdjYyBjb21lcyBiZWZvcmUgbGliZ28sIGUuZy46
CitQbGVhc2Ugbm90ZSB0aGF0IHRoZSBsaXN0ZWQgb3JkZXIgaXMgaW1wb3J0YW50LCBpbiBwYXJ0
aWN1bGFyCitnY2MgYmVmb3JlIGxpYmdvLCBlLmcuOgogCiBgYGAKLS4uLiQoVUtfTElCUykvZ2Nj
OiQoVUtfTElCUykvbGliZ286Li4uCisuLi4kKFVLX0xJQlMpL2djYzokKFVLX0xJQlMpL2xpYmdv
OiQoVUtfTElCUykvcHRocmVhZC1lbWJlZGRlZC4uLgorCiBgYGAKIAorQ3VycmVudGx5LCB5b3Ug
bmVlZCB0byBhc3NpZ24gYXQgbGVhc3QgNTEyIE1CIG9mIFJBTSB0byB0aGUgZ3Vlc3QuCisKIFBs
ZWFzZSByZWZlciB0byB0aGUgYFJFQURNRS5tZGAgYXMgd2VsbCBhcyB0aGUgZG9jdW1lbnRhdGlv
biBpbiB0aGUgYGRvYy9gCiBzdWJkaXJlY3Rvcnkgb2YgdGhlIG1haW4gdW5pa3JhZnQgcmVwb3Np
dG9yeS4KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m
by9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:54:24 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:54:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j051T-0005Kk-GY; Fri, 07 Feb 2020 14:54:23 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j051S-0005Kf-Gk
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:54:22 +0000
X-Inumbo-ID: b8d958bc-49b9-11ea-a759-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b8d958bc-49b9-11ea-a759-bc764e2007e4;
 Fri, 07 Feb 2020 14:54:21 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 6BA4AF200C;
 Fri,  7 Feb 2020 15:54:20 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id zJtZlLvZfsVH; Fri,  7 Feb 2020 15:54:20 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 2CC3CF2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:54:18 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:54:17 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:54:17
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH] lib/posix-user: Include <stdio.h> within grp.h
Thread-Index: AQHV3ZUKQ+vuf70vyE+/o0crkzpIZ6gP0caA
Date: Fri, 7 Feb 2020 14:54:17 +0000
Message-ID: <6E29C591-0016-44D0-8E00-A279F6F8618C@neclab.eu>
References: <20200207090024.15852-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207090024.15852-1-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <C83DC8FE56EE934C9209545AF41B666A@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/posix-user: Include
 <stdio.h> within grp.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxMDowMCwgIlNpbW9uIEt1ZW56ZXIiIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6
DQoNCiAgICBBcyBzb29uIGFzIF9HTlVfU09VUkNFIGlzIGRlZmluZWQsIHRoZSBoZWFkZXIgYGdy
cC5oYCBpcyByZWZlcnJpbmcNCiAgICB0byB0aGUgYEZJTEVgIGRhdGEgdHlwZS4gV2UgaW5jbHVk
ZSBgc3RkaW8uaGAgdG8gcHJvdmlkZSBpdHMNCiAgICBkZWZpbml0aW9uLg0KICAgIA0KICAgIFNp
Z25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1Pg0KICAg
IC0tLQ0KICAgICBsaWIvcG9zaXgtdXNlci9tdXNsLWltcG9ydGVkL2luY2x1ZGUvZ3JwLmggfCAx
ICsNCiAgICAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspDQogICAgDQogICAgZGlmZiAt
LWdpdCBhL2xpYi9wb3NpeC11c2VyL211c2wtaW1wb3J0ZWQvaW5jbHVkZS9ncnAuaCBiL2xpYi9w
b3NpeC11c2VyL211c2wtaW1wb3J0ZWQvaW5jbHVkZS9ncnAuaA0KICAgIGluZGV4IGEzNWU2MWEz
Li5jNzM4ZWVmMCAxMDA2NDQNCiAgICAtLS0gYS9saWIvcG9zaXgtdXNlci9tdXNsLWltcG9ydGVk
L2luY2x1ZGUvZ3JwLmgNCiAgICArKysgYi9saWIvcG9zaXgtdXNlci9tdXNsLWltcG9ydGVkL2lu
Y2x1ZGUvZ3JwLmgNCiAgICBAQCAtMTAsNiArMTAsNyBAQCBleHRlcm4gIkMiIHsNCiAgICAgDQog
ICAgICNpZmRlZiBfR05VX1NPVVJDRQ0KICAgICAjZGVmaW5lIF9fTkVFRF9GSUxFDQogICAgKyNp
bmNsdWRlIDxzdGRpby5oPg0KICAgICAjZW5kaWYNCiAgICAgDQogICAgICNpbmNsdWRlIDxzeXMv
dHlwZXMuaD4NCiAgICAtLSANCiAgICAyLjIwLjENCiAgICANCiAgICANCg0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcg
bGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:54:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:54:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j051c-0005Li-Jj; Fri, 07 Feb 2020 14:54:32 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j051b-0005LY-Jk
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:54:31 +0000
X-Inumbo-ID: be911b00-49b9-11ea-b18d-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id be911b00-49b9-11ea-b18d-12813bfff9fa;
 Fri, 07 Feb 2020 14:54:31 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 1FA3110001F;
 Fri,  7 Feb 2020 15:54:30 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id hxVzwsq2h5mz; Fri,  7 Feb 2020 15:54:30 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from Oberon.office.hd (Oberon.office.hd [192.168.24.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id EEB28FFD0F
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:54:29 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by Oberon.office.hd
 (192.168.24.90) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:54:29 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:54:29
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH] lib/syscall_shim: Generate syscall_nrs2.h
Thread-Index: AQHV3ZWrePhzMK6G9UqCeHGhKOL2VagP0dOA
Date: Fri, 7 Feb 2020 14:54:29 +0000
Message-ID: <E9BB5AD7-828E-4AD4-87AB-E365EEFFAEDB@neclab.eu>
References: <20200207090454.18827-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207090454.18827-1-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <4A32B507CA9A2049900AFF23AC550680@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/syscall_shim: Generate
 syscall_nrs2.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxMDowNCwgIlNpbW9uIEt1ZW56ZXIiIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6
DQoNCiAgICBHZW5lcmF0ZXMgYSBzZWNvbmQgaGVhZGVyIGNvbnRhaW5pbmcgdGhlIHN5c2NhbGwg
bnVtYmVycy4gSW5zdGVhZCBvZg0KICAgIHVzaW5nIHRoZSBmb3JtYXQgU1lTXzxuYW1lPiwgaXQg
aW50cm9kdWNlcyB0aGUgc3lzY2FsbCBudW1iZXINCiAgICBkZWZpbml0aW9ucyB3aXRoIF9fTlJf
PG5hbWU+LiBUaGlzIGNhbiBiZSBoYW5keSBmb3Igc29tZSBsaWJjIGFuZA0KICAgIGxhbmd1YWdl
IGVudmlyb25tZW50IHBvcnRzLg0KICAgIA0KICAgIFNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56
ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1Pg0KICAgIC0tLQ0KICAgICBsaWIvc3lzY2FsbF9z
aGltL01ha2VmaWxlLnVrICAgICAgICAgIHwgIDcgKysrKysrLQ0KICAgICBsaWIvc3lzY2FsbF9z
aGltL2dlbl9zeXNjYWxsX25yczIuYXdrIHwgMTMgKysrKysrKysrKysrKw0KICAgICAyIGZpbGVz
IGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCiAgICAgY3JlYXRlIG1v
ZGUgMTAwNjQ0IGxpYi9zeXNjYWxsX3NoaW0vZ2VuX3N5c2NhbGxfbnJzMi5hd2sNCiAgICANCiAg
ICBkaWZmIC0tZ2l0IGEvbGliL3N5c2NhbGxfc2hpbS9NYWtlZmlsZS51ayBiL2xpYi9zeXNjYWxs
X3NoaW0vTWFrZWZpbGUudWsNCiAgICBpbmRleCAxN2RlNDljZC4uYzAxZWU0OTQgMTAwNjQ0DQog
ICAgLS0tIGEvbGliL3N5c2NhbGxfc2hpbS9NYWtlZmlsZS51aw0KICAgICsrKyBiL2xpYi9zeXNj
YWxsX3NoaW0vTWFrZWZpbGUudWsNCiAgICBAQCAtMiw3ICsyLDcgQEAgJChldmFsICQoY2FsbCBh
ZGRsaWJfcyxsaWJzeXNjYWxsX3NoaW0sJChDT05GSUdfTElCU1lTQ0FMTF9TSElNKSkpDQogICAg
IA0KICAgICBMSUJTWVNDQUxMX1NISU1fSU5DTFVERVNfUEFUSCA6PSAkKExJQlNZU0NBTExfU0hJ
TV9CVUlMRCkvaW5jbHVkZS91ay9iaXRzDQogICAgIA0KICAgIC1MSUJTWVNDQUxMX1NISU1fUEhP
TllfU1JDIDo9IHN5c2NhbGxfbWFwLmggc3lzY2FsbF9zdHVicy5oIHN5c2NhbGxfbnJzLmgNCiAg
ICArTElCU1lTQ0FMTF9TSElNX1BIT05ZX1NSQyA6PSBzeXNjYWxsX21hcC5oIHN5c2NhbGxfc3R1
YnMuaCBzeXNjYWxsX25ycy5oIHN5c2NhbGxfbnJzMi5oDQogICAgIExJQlNZU0NBTExfU0hJTV9Q
SE9OWV9TUkMgOj0gJChhZGRwcmVmaXggJChMSUJTWVNDQUxMX1NISU1fSU5DTFVERVNfUEFUSCkv
LCAkKExJQlNZU0NBTExfU0hJTV9QSE9OWV9TUkMpKQ0KICAgICBMSUJTWVNDQUxMX1NISU1fUEhP
TllfU1JDICs9ICQoTElCU1lTQ0FMTF9TSElNX0JVSUxEKS9wcm92aWRlZF9zeXNjYWxscy5oLmlu
DQogICAgIExJQlNZU0NBTExfU0hJTV9QSE9OWV9TUkNfTkVXIDo9ICQoYWRkc3VmZml4IC5uZXcs
ICQoTElCU1lTQ0FMTF9TSElNX1BIT05ZX1NSQykpDQogICAgQEAgLTMxLDYgKzMxLDExIEBAICQo
TElCU1lTQ0FMTF9TSElNX0lOQ0xVREVTX1BBVEgpL3N5c2NhbGxfbnJzLmgubmV3OiAkKExJQlNZ
U0NBTExfU0hJTV9CQVNFKS9nZW5fDQogICAgIAkJJChBV0spIC1mICQoTElCU1lTQ0FMTF9TSElN
X0JBU0UpL2dlbl9zeXNjYWxsX25ycy5hd2sgXA0KICAgICAJCSQoTElCU1lTQ0FMTF9TSElNX1RF
TVBMKSA+ICRAKQ0KICAgICANCiAgICArJChMSUJTWVNDQUxMX1NISU1fSU5DTFVERVNfUEFUSCkv
c3lzY2FsbF9ucnMyLmgubmV3OiAkKExJQlNZU0NBTExfU0hJTV9CQVNFKS9nZW5fc3lzY2FsbF9u
cnMyLmF3ayAkKExJQlNZU0NBTExfU0hJTV9URU1QTCkNCiAgICArCSQoY2FsbCBidWlsZF9jbWQs
R0VOLGxpYnN5c2NhbGxfc2hpbSwkKG5vdGRpciAkQCksIFwNCiAgICArCQkkKEFXSykgLWYgJChM
SUJTWVNDQUxMX1NISU1fQkFTRSkvZ2VuX3N5c2NhbGxfbnJzMi5hd2sgXA0KICAgICsJCSQoTElC
U1lTQ0FMTF9TSElNX1RFTVBMKSA+ICRAKQ0KICAgICsNCiAgICAgJChMSUJTWVNDQUxMX1NISU1f
SU5DTFVERVNfUEFUSCkvc3lzY2FsbF9tYXAuaC5uZXc6ICQoTElCU1lTQ0FMTF9TSElNX0JBU0Up
L2dlbl9zeXNjYWxsX21hcC5hd2sgJChMSUJTWVNDQUxMX1NISU1fVEVNUEwpDQogICAgIAkkKGNh
bGwgYnVpbGRfY21kLEdFTixsaWJzeXNjYWxsX3NoaW0sJChub3RkaXIgJEApLCBcDQogICAgIAkJ
JChBV0spIC1mICAkKExJQlNZU0NBTExfU0hJTV9CQVNFKS9nZW5fc3lzY2FsbF9tYXAuYXdrIFwN
CiAgICBkaWZmIC0tZ2l0IGEvbGliL3N5c2NhbGxfc2hpbS9nZW5fc3lzY2FsbF9ucnMyLmF3ayBi
L2xpYi9zeXNjYWxsX3NoaW0vZ2VuX3N5c2NhbGxfbnJzMi5hd2sNCiAgICBuZXcgZmlsZSBtb2Rl
IDEwMDY0NA0KICAgIGluZGV4IDAwMDAwMDAwLi5mZTY1OGRjYw0KICAgIC0tLSAvZGV2L251bGwN
CiAgICArKysgYi9saWIvc3lzY2FsbF9zaGltL2dlbl9zeXNjYWxsX25yczIuYXdrDQogICAgQEAg
LTAsMCArMSwxMyBAQA0KICAgICtCRUdJTiB7DQogICAgKwlwcmludCAiLyogQXV0b21hdGljYWxs
eSBnZW5lcmF0ZWQgZmlsZTsgRE8gTk9UIEVESVQgKi8iDQogICAgKwlwcmludCAiI2lmbmRlZiBf
X1VLX1NZU0NBTExfTlJTXzJfSF9fIg0KICAgICsJcHJpbnQgIiNkZWZpbmUgX19VS19TWVNDQUxM
X05SU18yX0hfXyINCiAgICArfQ0KICAgICsNCiAgICArLyNkZWZpbmUgX19OUl8vew0KICAgICsJ
IHByaW50ZiAiI2RlZmluZSBfX05SXyVzXHRcdCVzXG4iLCBzdWJzdHIoJDIsNiksJDMNCiAgICAr
fQ0KICAgICsNCiAgICArRU5EIHsNCiAgICArCXByaW50ICIjZW5kaWYgLyogX19VS19TWVNDQUxM
X05SU18yX0hfXyAqLyINCiAgICArfQ0KICAgIC0tIA0KICAgIDIuMjAuMQ0KICAgIA0KICAgIA0K
DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:54:45 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:54:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j051o-0005NN-PC; Fri, 07 Feb 2020 14:54:44 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j051n-0005NF-2s
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:54:43 +0000
X-Inumbo-ID: c589c772-49b9-11ea-b18d-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id c589c772-49b9-11ea-b18d-12813bfff9fa;
 Fri, 07 Feb 2020 14:54:42 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id C38C3F200C;
 Fri,  7 Feb 2020 15:54:41 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id VHxws_ONFLfg; Fri,  7 Feb 2020 15:54:41 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 96932F2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:54:39 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:54:39 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:54:39
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH] build: Add -no-pie flag to Go units
Thread-Index: AQHV3a+RN3NuVB2x2UKnwQC3Z/uaaKgP0aoA
Date: Fri, 7 Feb 2020 14:54:39 +0000
Message-ID: <99B3A9B6-15AF-4A60-9F56-F0C8E84E9437@neclab.eu>
References: <20200207121017.32096-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207121017.32096-1-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <77D57AF6DD607E43BBDD34A1A82CFA0D@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] build: Add -no-pie flag to Go
 units
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxMzoxMCwgIlNpbW9uIEt1ZW56ZXIiIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6
DQoNCiAgICBVbmxpa2Ugb3RoZXIgc291cmNlIGZpbGVzIChBc3NlbWJseSwgQywgQysrKSwgdGhl
IC1uby1waWUgYXJndW1lbnQgd2FzDQogICAgbm90IGhhbmRlZCBvdmVyIHRvIEdvIGNvbXBpbGF0
aW9uIHVuaXRzLiBCZWNhdXNlIG9mIGNvbnNpc3RlbmN5DQogICAgcmVhc29ucyB3ZSBhcmUgaGFu
ZGluZyB0aGlzIGFyZ3VtZW50IG5vdyBhbHNvIHRvIHRoZSBHQ0MgR28gY29tcGlsZXIuDQogICAg
DQogICAgU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIu
ZXU+DQogICAgLS0tDQogICAgIE1ha2VmaWxlLnVrIHwgMSArDQogICAgIDEgZmlsZSBjaGFuZ2Vk
LCAxIGluc2VydGlvbigrKQ0KICAgIA0KICAgIGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01h
a2VmaWxlLnVrDQogICAgaW5kZXggNjdjMzcyZTUuLjNmMDFhMjUxIDEwMDY0NA0KICAgIC0tLSBh
L01ha2VmaWxlLnVrDQogICAgKysrIGIvTWFrZWZpbGUudWsNCiAgICBAQCAtNzYsNSArNzYsNiBA
QCBNNEZMQUdTICArPSAtRFVLX1ZFUlNJT049JChVS19WRVJTSU9OKS4kKFVLX1NVQlZFUlNJT04p
DQogICAgIEFTRkxBR1MtJChjYWxsIGdjY192ZXJzaW9uX2dlLDYsMSkJKz0gLW5vLXBpZQ0KICAg
ICBDRkxBR1MtJChjYWxsIGdjY192ZXJzaW9uX2dlLDYsMSkJKz0gLW5vLXBpZQ0KICAgICBDWFhG
TEFHUy0kKGNhbGwgZ2NjX3ZlcnNpb25fZ2UsNiwxKQkrPSAtbm8tcGllDQogICAgK0dPRkxBR1Mt
JChjYWxsIGdjY192ZXJzaW9uX2dlLDYsMSkJKz0gLW5vLXBpZQ0KICAgICBMSUJMREZMQUdTLSQo
Y2FsbCBnY2NfdmVyc2lvbl9nZSw2LDEpCSs9IC1uby1waWUNCiAgICAgTERGTEFHUy0kKGNhbGwg
Z2NjX3ZlcnNpb25fZ2UsNiwxKQkrPSAtbm8tcGllDQogICAgLS0gDQogICAgMi4yMC4xDQogICAg
DQogICAgDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3Mt
ZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:54:52 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:54:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j051w-0005O4-RT; Fri, 07 Feb 2020 14:54:52 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j051v-0005Nx-6G
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:54:51 +0000
X-Inumbo-ID: ca1c6178-49b9-11ea-b18d-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id ca1c6178-49b9-11ea-b18d-12813bfff9fa;
 Fri, 07 Feb 2020 14:54:50 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 7959E10001F;
 Fri,  7 Feb 2020 15:54:49 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id BC0sECavXptB; Fri,  7 Feb 2020 15:54:49 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 53485FFD0F
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:54:49 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:54:48 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:54:48
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/NEWLIB PATCH] Provide `syscall()` symbol
Thread-Index: AQHV3bpNwj2uURLFLk6omAnTBmI7TagP0aEA
Date: Fri, 7 Feb 2020 14:54:48 +0000
Message-ID: <74BBEB00-3F01-4C0A-9008-6C2582BB8CF1@neclab.eu>
References: <20200207132638.17457-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207132638.17457-1-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <066C91E164D54944AA86FC6C01B465E2@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/NEWLIB PATCH] Provide `syscall()`
 symbol
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxNDoyNywgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3VlbnplciIgPG1pbmlv
cy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBvZiBzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBQcm92aWRlcyB0aGUgYHN5c2NhbGwoKWAg
ZnVuY3Rpb24gc3ltYm9sIChzb21lIGxhbmd1YWdlIHJ1bnRpbWVzICBsaW5rDQogICAgdG8gdGhl
IHN5bWJvbCBkaXJlY3RseSkuIFRoZSBmdW5jdGlvbiBpcyBjYWxsaW5nIGB1a19zeXNjYWxsKClg
IHdoZW4NCiAgICBsaWIvc3lzY2FsbF9zaGltIGlzIGVuYWJsZWQuIE90aGVyd2lzZSwgYHN5c2Nh
bGwoKWAgcmV0dXJucyBhbHdheXMNCiAgICBgLTFgIGFuZCBzZXRzIGBlcnJub2AgdG8gYEVOT1NZ
U2AuDQogICAgDQogICAgU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3Vlbnpl
ckBuZWNsYWIuZXU+DQogICAgLS0tDQogICAgIENvbmZpZy51ayAgICAgICAgICAgICB8ICAxICsN
CiAgICAgTWFrZWZpbGUudWsgICAgICAgICAgIHwgIDEgKw0KICAgICBpbmNsdWRlL3N5cy9zeXNj
YWxsLmggfCA0NyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tDQogICAgIHN5c2NhbGwuYyAg
ICAgICAgICAgICB8IDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysNCiAgICAgNCBmaWxlcyBjaGFuZ2VkLCAxMTcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo
LSkNCiAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2NhbGwuYw0KICAgIA0KICAgIGRpZmYgLS1n
aXQgYS9Db25maWcudWsgYi9Db25maWcudWsNCiAgICBpbmRleCBhYjEyN2YwLi44Y2IxMDU4IDEw
MDY0NA0KICAgIC0tLSBhL0NvbmZpZy51aw0KICAgICsrKyBiL0NvbmZpZy51aw0KICAgIEBAIC0x
Myw2ICsxMyw3IEBAIG1lbnVjb25maWcgTElCTkVXTElCQw0KICAgICAJc2VsZWN0IExJQlZGU0NP
UkUNCiAgICAgCXNlbGVjdCBMSUJQT1NJWF9QUk9DRVNTDQogICAgIAlzZWxlY3QgTElCUE9TSVhf
VVNFUg0KICAgICsJaW1wbHkgTElCU1lTQ0FMTF9TSElNDQogICAgIA0KICAgICBpZiBMSUJORVdM
SUJDDQogICAgIAljb25maWcgTElCTkVXTElCQ19XQU5UX0lPX0M5OV9GT1JNQVRTDQogICAgZGlm
ZiAtLWdpdCBhL01ha2VmaWxlLnVrIGIvTWFrZWZpbGUudWsNCiAgICBpbmRleCAzOTBlNGY0Li42
NmMzYjg4IDEwMDY0NA0KICAgIC0tLSBhL01ha2VmaWxlLnVrDQogICAgKysrIGIvTWFrZWZpbGUu
dWsNCiAgICBAQCAtMTM1LDYgKzEzNSw3IEBAIExJQk5FV0xJQkdMVUVfU1JDUy15ICs9ICQoTElC
TkVXTElCQ19CQVNFKS9kZXYuYw0KICAgICBMSUJORVdMSUJHTFVFX1NSQ1MteSArPSAkKExJQk5F
V0xJQkNfQkFTRSkvc2lnbmFsLmMNCiAgICAgTElCTkVXTElCR0xVRV9TUkNTLXkgKz0gJChMSUJO
RVdMSUJDX0JBU0UpL2xpbmsuYw0KICAgICBMSUJORVdMSUJHTFVFX1NSQ1MteSArPSAkKExJQk5F
V0xJQkNfQkFTRSkvbW50ZW50LmMNCiAgICArTElCTkVXTElCR0xVRV9TUkNTLXkgKz0gJChMSUJO
RVdMSUJDX0JBU0UpL3N5c2NhbGwuYw0KICAgICBMSUJORVdMSUJHTFVFX1NSQ1MteSArPSAkKExJ
Qk5FV0xJQkNfQkFTRSkvbXVzbC1pbXBvcnRlZC9zcmMvbWlzYy9zeXNsb2cuYw0KICAgICBMSUJO
RVdMSUJHTFVFX1NSQ1MteSArPSAkKExJQk5FV0xJQkNfQkFTRSkvbXVzbC1pbXBvcnRlZC9zcmMv
dGVybWlvcy90Y3NldGF0dHIuYw0KICAgICBMSUJORVdMSUJHTFVFX1NSQ1MteSArPSAkKExJQk5F
V0xJQkNfQkFTRSkvbXVzbC1pbXBvcnRlZC9zcmMvdGVybWlvcy90Y2dldGF0dHIuYw0KICAgIGRp
ZmYgLS1naXQgYS9pbmNsdWRlL3N5cy9zeXNjYWxsLmggYi9pbmNsdWRlL3N5cy9zeXNjYWxsLmgN
CiAgICBpbmRleCA1NWFlMDk4Li4xOGVkZDdlIDEwMDY0NA0KICAgIC0tLSBhL2luY2x1ZGUvc3lz
L3N5c2NhbGwuaA0KICAgICsrKyBiL2luY2x1ZGUvc3lzL3N5c2NhbGwuaA0KICAgIEBAIC0xLDYg
KzEsNDUgQEANCiAgICArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZSAq
Lw0KICAgICsvKg0KICAgICsgKiBBdXRob3JzOiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVy
QG5lY2xhYi5ldT4NCiAgICArICoNCiAgICArICogQ29weXJpZ2h0IChjKSAyMDIwLCBORUMgRXVy
b3BlIEx0ZC4sIE5FQyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAgICArICoN
CiAgICArICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0DQogICAgKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KICAgICsgKiBhcmUgbWV0Og0K
ICAgICsgKg0KICAgICsgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KICAgICsgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQogICAgKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0DQogICAgKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCiAgICArICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCiAg
ICArICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhl
IG5hbWVzIG9mIGl0cw0KICAgICsgKiAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQ0KICAgICsgKiAgICB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KICAgICsg
Kg0KICAgICsgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyINCiAgICArICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0K
ICAgICsgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQ0KICAgICsgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFDQogICAg
KyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1INCiAgICArICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YNCiAgICArICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTDQogICAgKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElODQogICAgKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpDQogICAg
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFDQogICAgKyAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
Lg0KICAgICsgKg0KICAgICsgKi8NCiAgICArI2lmbmRlZiBfX1NZU19TWVNDQUxMX0hfXw0KICAg
ICsjZGVmaW5lIF9fU1lTX1NZU0NBTExfSF9fDQogICAgKw0KICAgICAjaW5jbHVkZSA8dWsvY29u
ZmlnLmg+DQogICAgKw0KICAgICtsb25nIHN5c2NhbGwobG9uZyBudW0sIC4uLik7DQogICAgKw0K
ICAgICAjaWYgQ09ORklHX0xJQlNZU0NBTExfU0hJTQ0KICAgIC0jaW5jbHVkZSA8dWsvc3lzY2Fs
bC5oPg0KICAgIC0jZWxzZQ0KICAgIC0jZXJyb3IgIlByb3ZpZGUgYWx0ZXJuYXRpdmUgc3lzY2Fs
bC5oIGhlYWRlciINCiAgICAtI2VuZGlmDQogICAgKy8qIFByb3ZpZGUgX19OUl9zeXNjYWxsbmFt
ZSB2YXJpYW50cyAqLw0KICAgICsjaW5jbHVkZSA8dWsvYml0cy9zeXNjYWxsX25yczIuaD4NCiAg
ICArI2VuZGlmIC8qIENPTkZJR19MSUJTWVNDQUxMX1NISU0gKi8NCiAgICArDQogICAgKyNlbmRp
ZiAvKiBfX1NZU19TWVNDQUxMX0hfXyAqLw0KICAgIGRpZmYgLS1naXQgYS9zeXNjYWxsLmMgYi9z
eXNjYWxsLmMNCiAgICBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAgIGluZGV4IDAwMDAwMDAuLjkz
MWNkNjQNCiAgICAtLS0gL2Rldi9udWxsDQogICAgKysrIGIvc3lzY2FsbC5jDQogICAgQEAgLTAs
MCArMSw3MiBAQA0KICAgICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNl
ICovDQogICAgKy8qDQogICAgKyAqIEF1dGhvcnM6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56
ZXJAbmVjbGFiLmV1Pg0KICAgICsgKg0KICAgICsgKiBDb3B5cmlnaHQgKGMpIDIwMjAsIE5FQyBF
dXJvcGUgTHRkLiwgTkVDIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KICAgICsg
Kg0KICAgICsgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAgICArICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQogICAgKyAqIGFyZSBtZXQ6
DQogICAgKyAqDQogICAgKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogICAgKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCiAgICArICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQNCiAgICArICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KICAgICsgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0K
ICAgICsgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0
aGUgbmFtZXMgb2YgaXRzDQogICAgKyAqICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tDQogICAgKyAqICAgIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogICAg
KyAqDQogICAgKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIg0KICAgICsgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
DQogICAgKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFDQogICAgKyAqIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUNCiAg
ICArICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUg0KICAgICsgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRg0KICAgICsgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MNCiAgICArICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4NCiAgICArICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkNCiAg
ICArICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUNCiAgICArICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuDQogICAgKyAqDQogICAgKyAqLw0KICAgICsNCiAgICArI2luY2x1ZGUgPHVrL2NvbmZpZy5o
Pg0KICAgICsjaWYgQ09ORklHX0xJQlNZU0NBTExfU0hJTQ0KICAgICsjaW5jbHVkZSA8c3RkYXJn
Lmg+DQogICAgKyNpbmNsdWRlIDx1ay9zeXNjYWxsLmg+DQogICAgKw0KICAgICtsb25nIHN5c2Nh
bGwobG9uZyBudW0sIC4uLikNCiAgICArew0KICAgICsJdmFfbGlzdCB2YTsNCiAgICArCWxvbmcg
YXJnWzZdOw0KICAgICsNCiAgICArCXZhX3N0YXJ0KHZhLCBudW0pOw0KICAgICsJYXJnWzBdID0g
dmFfYXJnKHZhLCBsb25nKTsNCiAgICArCWFyZ1sxXSA9IHZhX2FyZyh2YSwgbG9uZyk7DQogICAg
KwlhcmdbMl0gPSB2YV9hcmcodmEsIGxvbmcpOw0KICAgICsJYXJnWzNdID0gdmFfYXJnKHZhLCBs
b25nKTsNCiAgICArCWFyZ1s0XSA9IHZhX2FyZyh2YSwgbG9uZyk7DQogICAgKwlhcmdbNV0gPSB2
YV9hcmcodmEsIGxvbmcpOw0KICAgICsJdmFfZW5kKHZhKTsNCiAgICArDQogICAgKwlyZXR1cm4g
dWtfc3lzY2FsbChudW0sDQogICAgKwkJCSAgYXJnWzBdLA0KICAgICsJCQkgIGFyZ1sxXSwNCiAg
ICArCQkJICBhcmdbMl0sDQogICAgKwkJCSAgYXJnWzNdLA0KICAgICsJCQkgIGFyZ1s0XSwNCiAg
ICArCQkJICBhcmdbNV0pOw0KICAgICt9DQogICAgKw0KICAgICsjZWxzZQ0KICAgICsjaW5jbHVk
ZSA8ZXJybm8uaD4NCiAgICArI2luY2x1ZGUgPHVrL3ByaW50Lmg+DQogICAgKyNpbmNsdWRlIDx1
ay9lc3NlbnRpYWxzLmg+DQogICAgKw0KICAgICtsb25nIHN5c2NhbGwobG9uZyBudW0gX19tYXli
ZV91bnVzZWQsIC4uLikNCiAgICArew0KICAgICsJdWtfcHJfZXJyKCJObyBzdWNoIHN5c3RlbSBj
YWxsICVsdVxuIiwgbnVtKTsNCiAgICArCXJldHVybiAtRU5PU1lTOw0KICAgICt9DQogICAgKyNl
bmRpZiAvKiBDT05GSUdfTElCU1lTQ0FMTF9TSElNICovDQogICAgLS0gDQogICAgMi4yMC4xDQog
ICAgDQogICAgDQogICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18NCiAgICBNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0DQogICAgTWluaW9zLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnDQogICAgaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls
bWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt
YW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:55:01 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:55:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j0524-0005PE-V7; Fri, 07 Feb 2020 14:55:00 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j0523-0005P6-Q7
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:54:59 +0000
X-Inumbo-ID: cf0277ea-49b9-11ea-b2cb-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id cf0277ea-49b9-11ea-b2cb-bc764e2007e4;
 Fri, 07 Feb 2020 14:54:58 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id B5C0D10001F;
 Fri,  7 Feb 2020 15:54:57 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 5Z2JtSfgSBxw; Fri,  7 Feb 2020 15:54:57 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 9343BFFD0F
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:54:57 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:54:57 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:54:57
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Use uk_posix_memalign()
 for stack allocation
Thread-Index: AQHV3cQTYA53h1vrpE+eZ98McLvTI6gP0ZcA
Date: Fri, 7 Feb 2020 14:54:57 +0000
Message-ID: <8ADF48B8-7B3F-419E-B722-E4CDA6F580D6@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
 <20200207143637.29124-2-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207143637.29124-2-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <8E4D4CEA3D27DD42B55C4D7C5F6E9131@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Use uk_posix_memalign()
 for stack allocation
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxNTozNywgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3VlbnplciIgPG1pbmlv
cy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBvZiBzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBSZWNlbnQgY2hhbmdlcyBpbiBVbmlrcmFm
dCBtb2RpZmllZCB1a19wYWxsb2MoKSdzIHNpZ25hdHVyZSBhbmQNCiAgICBndWFyYW50ZWVzOiBh
bGxvY2F0aW9uIHNpemVzIGFyZSBnaXZlbiB3aXRoIHRoZSBudW1iZXIgb2YgcGFnZXMgYW5kDQog
ICAgdGhlIHJldHVybmVkIG1lbW9yeSBpcyBub3QgbmVjZXNzYXJpbHkgYWxpZ25lZCB0byB0aGUg
c2l6ZS4NCiAgICBCeSB1c2luZyB1a19wb3NpeF9tZW1hbGlnbigpIHdlIHJlc3RvcmUgb3VyIGFz
c3VtcHRpb25zIGluIHRoZSBjb2RlLg0KICAgIA0KICAgIFNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1
ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1Pg0KICAgIC0tLQ0KICAgICBnbHVlLmMgfCA1
ICsrKystDQogICAgIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o
LSkNCiAgICANCiAgICBkaWZmIC0tZ2l0IGEvZ2x1ZS5jIGIvZ2x1ZS5jDQogICAgaW5kZXggOTRh
OTZiOS4uNDRkMmUwOCAxMDA2NDQNCiAgICAtLS0gYS9nbHVlLmMNCiAgICArKysgYi9nbHVlLmMN
CiAgICBAQCAtMTg3LDcgKzE4NywxMCBAQCB2b2lkIG1ha2Vjb250ZXh0MSAodWNvbnRleHRfdCAq
X191Y3AsIHZvaWQgKCpfX2Z1bmMpICh2b2lkKSwgaW50IF9fYXJnYywgLi4uKQ0KICAgICB2b2lk
ICphbGxvY19zdGFjaygpDQogICAgIHsNCiAgICAgCXN0cnVjdCB1a19zY2hlZCAqc2NoZWQgPSB1
a19zY2hlZF9nZXRfZGVmYXVsdCgpOw0KICAgIC0Jdm9pZCAqc3RhY2sgPSB1a19wYWxsb2Moc2No
ZWQtPmFsbG9jYXRvciwgX19TVEFDS19TSVpFX1BBR0VfT1JERVIpOw0KICAgICsJdm9pZCAqc3Rh
Y2s7DQogICAgKw0KICAgICsJdWtfcG9zaXhfbWVtYWxpZ24oc2NoZWQtPmFsbG9jYXRvciwNCiAg
ICArCQkJICAmc3RhY2ssIF9fU1RBQ0tfU0laRSwgX19TVEFDS19TSVpFKTsNCiAgICAgCWlmIChz
dGFjayA9PSBOVUxMKQ0KICAgICAJCXByaW50ZigiZXJyb3IgYWxsb2NhdGluZyBzdGFja1xuIik7
DQogICAgIAlyZXR1cm4gc3RhY2s7DQogICAgLS0gDQogICAgMi4yMC4xDQogICAgDQogICAgDQog
ICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiAgICBN
aW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0DQogICAgTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnDQogICAgaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv
L21pbmlvcy1kZXZlbA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v
bWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:55:12 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:55:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j052G-0005QG-0v; Fri, 07 Feb 2020 14:55:12 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j052E-0005Q7-7S
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:55:10 +0000
X-Inumbo-ID: d5a1d0dc-49b9-11ea-a759-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id d5a1d0dc-49b9-11ea-a759-bc764e2007e4;
 Fri, 07 Feb 2020 14:55:09 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id C7858F200C;
 Fri,  7 Feb 2020 15:55:08 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id S5iEBHHvaVfy; Fri,  7 Feb 2020 15:55:08 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 93F63F2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:55:06 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:55:06 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:55:06
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBGO PATCH 0/5] Update to recent
 Unikraft and newlib changes
Thread-Index: AQHV3cQUcjsekEjsUkSGrdIpJ+B50qgP0aGA
Date: Fri, 7 Feb 2020 14:55:06 +0000
Message-ID: <0ACD2314-4A82-4739-AE75-BA56EBAA11CA@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <5DDF00B045330E4A810B454C5B3C0C40@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/LIBGO PATCH 0/5] Update to recent
 Unikraft and newlib changes
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxNTozNywgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3VlbnplciIgPG1pbmlv
cy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBvZiBzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBVcGRhdGVzIHRoZSBsaWJnbyBwb3J0IHRv
IHJlY2VudCBjaGFuZ2VzIG9mIFVuaWtyYWZ0IGFuZCBuZXdsaWIuDQogICAgU2ltcGxlIGhlbGxv
IHdvcmxkIGV4YW1wbGVzIGNhbiBiZSBjb21waWxlZCB3aXRoIHRoaXMgcG9ydC4NCiAgICANCiAg
ICBTaW1vbiBLdWVuemVyICg1KToNCiAgICAgIFVzZSB1a19wb3NpeF9tZW1hbGlnbigpIGZvciBz
dGFjayBhbGxvY2F0aW9uDQogICAgICBVcGRhdGUgZGVwZW5kZW5jeSB0byBsaWIvcG9zaXgtc3lz
aW5mbw0KICAgICAgUmVtb3ZlIHN0dWJzIGNhdXNpbmcgZHVwbGljYXRlZCBzeW1ib2xzIGVycm9y
cw0KICAgICAgUmVtb3ZlIHJ1bnRpbWUvZ28tbm9zeXMuYyBmcm9tIGJ1aWxkDQogICAgICBSRUFE
TUU6IFVwZGF0ZSBsaWJyYXJ5IG9yZGVyDQogICAgDQogICAgIENvbmZpZy51ayAgIHwgICAyICst
DQogICAgIE1ha2VmaWxlLnVrIHwgICAxIC0NCiAgICAgUkVBRE1FLm1kICAgfCAgMTggKysrLS0t
DQogICAgIGdsdWUuYyAgICAgIHwgMTcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKy0tLS0tLS0tLS0NCiAgICAgNCBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9u
cygrKSwgNDEgZGVsZXRpb25zKC0pDQogICAgDQogICAgLS0gDQogICAgMi4yMC4xDQogICAgDQog
ICAgDQogICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N
CiAgICBNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0DQogICAgTWluaW9zLWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnDQogICAgaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xp
c3RpbmZvL21pbmlvcy1kZXZlbA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:55:24 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:55:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j052S-0005R9-2u; Fri, 07 Feb 2020 14:55:24 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j052Q-0005R3-1y
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:55:22 +0000
X-Inumbo-ID: dc5815dc-49b9-11ea-b18d-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id dc5815dc-49b9-11ea-b18d-12813bfff9fa;
 Fri, 07 Feb 2020 14:55:21 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id DD00AF200C;
 Fri,  7 Feb 2020 15:55:20 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id AGYg0FQOhu2s; Fri,  7 Feb 2020 15:55:20 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id B664BF2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:55:18 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:55:18 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:55:18
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Update dependency to
 lib/posix-sysinfo
Thread-Index: AQHV3cQVU+UT2/6QoU+xy/mZ306YZagP0bCA
Date: Fri, 7 Feb 2020 14:55:18 +0000
Message-ID: <DCC72559-C723-4964-A12A-F0073BDC4362@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
 <20200207143637.29124-3-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207143637.29124-3-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <939CFCABEC3F2E4FA8072DB8D057026C@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Update dependency to
 lib/posix-sysinfo
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxNTozNywgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3VlbnplciIgPG1pbmlv
cy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBvZiBzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBXaXRoaW4gdGhlIFVuaWtyYWZ0IHJlcG9z
aXRvcnksIFVLU1lTSU5GTyBnb3QgcmVuYW1lZCB0byBMSUJQT1NJWF9TWVNJTkZPLg0KICAgIA0K
ICAgIFNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1
Pg0KICAgIC0tLQ0KICAgICBDb25maWcudWsgfCAyICstDQogICAgIDEgZmlsZSBjaGFuZ2VkLCAx
IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KICAgIA0KICAgIGRpZmYgLS1naXQgYS9Db25m
aWcudWsgYi9Db25maWcudWsNCiAgICBpbmRleCBhNDUyZDMzLi5kNGU2NWE1IDEwMDY0NA0KICAg
IC0tLSBhL0NvbmZpZy51aw0KICAgICsrKyBiL0NvbmZpZy51aw0KICAgIEBAIC01LDcgKzUsNyBA
QCBjb25maWcgTElCR08NCiAgICAgCXNlbGVjdCBMSUJVS0FMTE9DDQogICAgIAlzZWxlY3QgTElC
TkVXTElCQw0KICAgICAJc2VsZWN0IExJQlVLTU1BUA0KICAgIC0Jc2VsZWN0IFVLU1lTSU5GTw0K
ICAgICsJc2VsZWN0IExJQlBPU0lYX1NZU0lORk8NCiAgICAgCXNlbGVjdCBMSUJDT01QSUxFUl9S
VA0KICAgICAJc2VsZWN0IExJQlVOV0lORA0KICAgICAJc2VsZWN0IExJQkNYWA0KICAgIC0tIA0K
ICAgIDIuMjAuMQ0KICAgIA0KICAgIA0KICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fDQogICAgTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdA0KICAgIE1p
bmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KICAgIGh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWwNCg0KX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlz
dApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:55:35 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:55:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j052d-0005S3-5P; Fri, 07 Feb 2020 14:55:35 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j052b-0005Rw-NA
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:55:33 +0000
X-Inumbo-ID: e3ae50ba-49b9-11ea-a677-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id e3ae50ba-49b9-11ea-a677-bc764e2007e4;
 Fri, 07 Feb 2020 14:55:33 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 5BEDEF200C;
 Fri,  7 Feb 2020 15:55:32 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 69apyOaVYQAz; Fri,  7 Feb 2020 15:55:32 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from Oberon.office.hd (Oberon.office.hd [192.168.24.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 323AAF2001
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:55:30 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by Oberon.office.hd
 (192.168.24.90) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:55:29 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:55:29
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Remove stubs causing
 duplicated symbols errors
Thread-Index: AQHV3cQYu/XSyR9J6USdKv8KLnNdqagP0b6A
Date: Fri, 7 Feb 2020 14:55:29 +0000
Message-ID: <60D073A1-AB61-42FB-8C4D-D959C711D0EF@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
 <20200207143637.29124-4-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207143637.29124-4-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <3A42E4F163C7C2468790D9A83284DD26@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Remove stubs causing
 duplicated symbols errors
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxNTozNywgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3VlbnplciIgPG1pbmlv
cy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBvZiBzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBSZWNlbnQgVW5pa3JhZnQgYW5kIGxpYmMg
cHJvdmlkZSBzeW1ib2xzIGZvciB0aG9zZSBzdHVicy4NCiAgICANCiAgICBTaWduZWQtb2ZmLWJ5
OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4NCiAgICAtLS0NCiAgICAg
Z2x1ZS5jIHwgMzUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgMSBm
aWxlIGNoYW5nZWQsIDM1IGRlbGV0aW9ucygtKQ0KICAgIA0KICAgIGRpZmYgLS1naXQgYS9nbHVl
LmMgYi9nbHVlLmMNCiAgICBpbmRleCA0NGQyZTA4Li4xMTRmYTdkIDEwMDY0NA0KICAgIC0tLSBh
L2dsdWUuYw0KICAgICsrKyBiL2dsdWUuYw0KICAgIEBAIC03MiwxNiArNzIsNiBAQCBpbnQgbWlu
Y29yZSh2b2lkICphZGRyIF9fdW51c2VkLCBzaXplX3QgbGVuZ3RoIF9fdW51c2VkLCB1bnNpZ25l
ZCBjaGFyICp2ZWMgX191bg0KICAgICAJcmV0dXJuIDA7DQogICAgIH0NCiAgICAgDQogICAgLWlu
dCBwcmN0bChpbnQgb3B0aW9uIF9fdW51c2VkLCB1bnNpZ25lZCBsb25nIGFyZzIgX191bnVzZWQs
IHVuc2lnbmVkIGxvbmcgYXJnMyBfX3VudXNlZCwgdW5zaWduZWQgbG9uZyBhcmc0IF9fdW51c2Vk
LCB1bnNpZ25lZCBsb25nIGFyZzUgX191bnVzZWQpDQogICAgLXsNCiAgICAtCXJldHVybiAwOw0K
ICAgIC19DQogICAgLQ0KICAgIC1pbnQgcHRocmVhZF9zaWdtYXNrKGludCBob3cgX191bnVzZWQs
IGNvbnN0IHNpZ3NldF90ICpzZXQgX191bnVzZWQsIHNpZ3NldF90ICpvbGRzZXQgX191bnVzZWQp
DQogICAgLXsNCiAgICAtCXJldHVybiAwOw0KICAgIC19DQogICAgLQ0KICAgICBsb25nIHB0cmFj
ZSh2b2lkKQ0KICAgICB7DQogICAgIAlyZXR1cm4gMDsNCiAgICBAQCAtOTcsMTEgKzg3LDYgQEAg
aW50IHNjaGVkX2dldGFmZmluaXR5KHZvaWQpDQogICAgIAlyZXR1cm4gMDsNCiAgICAgfQ0KICAg
ICANCiAgICAtaW50IHNldGl0aW1lcihpbnQgd2hpY2ggX191bnVzZWQsIGNvbnN0IHN0cnVjdCBp
dGltZXJ2YWwgKm5ld192YWx1ZSBfX3VudXNlZCwgc3RydWN0IGl0aW1lcnZhbCAqb2xkX3ZhbHVl
IF9fdW51c2VkKQ0KICAgIC17DQogICAgLQlyZXR1cm4gMDsNCiAgICAtfQ0KICAgIC0NCiAgICAg
aW50IHNldHRpbWVvZmRheShjb25zdCBzdHJ1Y3QgdGltZXZhbCAqdHYgX191bnVzZWQsIGNvbnN0
IHN0cnVjdCB0aW1lem9uZSAqdHogX191bnVzZWQpDQogICAgIHsNCiAgICAgCXJldHVybiAwOw0K
ICAgIEBAIC0xMTMsMTEgKzk4LDYgQEAgaW50IHNpZ2FkZHNldChzaWdzZXRfdCAqc2V0IF9fdW51
c2VkLCBpbnQgc2lnbnVtIF9fdW51c2VkKQ0KICAgICAJcmV0dXJuIDA7DQogICAgIH0NCiAgICAg
DQogICAgLWludCBzaWdhbHRzdGFjayhjb25zdCBzdGFja190ICpzcyBfX3VudXNlZCwgc3RhY2tf
dCAqb2xkX3NzIF9fdW51c2VkKQ0KICAgIC17DQogICAgLQlyZXR1cm4gMDsNCiAgICAtfQ0KICAg
IC0NCiAgICAgI3VuZGVmIHNpZ2RlbHNldA0KICAgICBpbnQgc2lnZGVsc2V0KHNpZ3NldF90ICpz
ZXQgX191bnVzZWQsIGludCBzaWdudW0gX191bnVzZWQpDQogICAgIHsNCiAgICBAQCAtMTM2LDEx
ICsxMTYsNiBAQCBpbnQgc2lnZmlsbHNldChzaWdzZXRfdCAqc2V0IF9fdW51c2VkKQ0KICAgICAJ
cmV0dXJuIDA7DQogICAgIH0NCiAgICAgDQogICAgLWxvbmcgc3lzY2FsbChsb25nIG51bWJlciBf
X3VudXNlZCwgLi4uKQ0KICAgIC17DQogICAgLQlyZXR1cm4gMDsNCiAgICAtfQ0KICAgIC0NCiAg
ICAgc3NpemVfdCBzZW5kZmlsZTY0KGludCBvdXRfZmQgX191bnVzZWQsIGludCBpbl9mZCBfX3Vu
dXNlZCwgb2ZmX3QgKm9mZnNldCAgX191bnVzZWQsIHNpemVfdCAgY291bnQgX191bnVzZWQpDQog
ICAgIHsNCiAgICAgCXJldHVybiAxOw0KICAgIEBAIC0xNTEsMjEgKzEyNiwxMiBAQCBpbnQgZ2V0
Z3JvdXBsaXN0KGNvbnN0IGNoYXIgKnVzZXIgX191bnVzZWQsIGdpZF90IGdyb3VwIF9fdW51c2Vk
LCBnaWRfdCAqZ3JvdXBzDQogICAgIAlyZXR1cm4gMDsNCiAgICAgfQ0KICAgICANCiAgICAtaW50
IGdldGdybmFtX3IoY29uc3QgY2hhciAqbmFtZSBfX3VudXNlZCwgc3RydWN0IGdyb3VwICpncnAg
X191bnVzZWQsDQogICAgLQkJY2hhciAqYnVmIF9fdW51c2VkLCBzaXplX3QgYnVmbGVuIF9fdW51
c2VkLCBzdHJ1Y3QgZ3JvdXAgKipyZXN1bHQgX191bnVzZWQpDQogICAgLXsNCiAgICAtCXJldHVy
biAwOw0KICAgIC19DQogICAgIGludCBnZXRncmdpZF9yKGdpZF90IGdpZCBfX3VudXNlZCwgc3Ry
dWN0IGdyb3VwICpncnAgX191bnVzZWQsDQogICAgIAkJY2hhciAqYnVmIF9fdW51c2VkLCBzaXpl
X3QgYnVmbGVuIF9fdW51c2VkLCBzdHJ1Y3QgZ3JvdXAgKipyZXN1bHQgX191bnVzZWQpDQogICAg
IHsNCiAgICAgCXJldHVybiAwOw0KICAgICB9DQogICAgIA0KICAgIC12b2lkIHVrX3N5c2NhbGxf
Zm5fX19OUl9jbG9uZSh2b2lkKQ0KICAgIC17DQogICAgLX0NCiAgICAtDQogICAgIC8qDQogICAg
ICAqIEdsdWUgY29kZQ0KICAgICAgKi8NCiAgICBAQCAtMjAwLDQgKzE2NiwzIEBAIHNpemVfdCBn
ZXRfc3RhY2tfc2l6ZSh2b2lkKQ0KICAgICB7DQogICAgIAlyZXR1cm4gX19TVEFDS19TSVpFOw0K
ICAgICB9DQogICAgLQ0KICAgIC0tIA0KICAgIDIuMjAuMQ0KICAgIA0KICAgIA0KICAgIF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQogICAgTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdA0KICAgIE1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0K
ICAgIGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3Mt
ZGV2ZWwNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1k
ZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:55:46 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:55:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j052o-0005Th-7W; Fri, 07 Feb 2020 14:55:46 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j052m-0005TX-GO
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:55:44 +0000
X-Inumbo-ID: e9ee808a-49b9-11ea-b18d-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id e9ee808a-49b9-11ea-b18d-12813bfff9fa;
 Fri, 07 Feb 2020 14:55:43 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id D743610001F;
 Fri,  7 Feb 2020 15:55:42 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Vq5qBdpLtJM6; Fri,  7 Feb 2020 15:55:42 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id B1EC8FFD0F
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:55:42 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:55:42 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:55:42
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Remove runtime/go-nosys.c
 from build
Thread-Index: AQHV3cQaJ9tkuctLNU+YKKaRRIXS/qgP0cyA
Date: Fri, 7 Feb 2020 14:55:42 +0000
Message-ID: <7CD0F491-3122-45F3-9E04-C2E962579C65@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
 <20200207143637.29124-5-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207143637.29124-5-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <4CDDC1474520BD4AA6DB2102E7BCE2D2@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Remove runtime/go-nosys.c
 from build
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxNTozNywgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3VlbnplciIgPG1pbmlv
cy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBvZiBzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBSZW1vdmVzIHJ1bnRpbWUvZ28tbm9zeXMu
YyBiZWNhdXNlIGl0IGNhdXNlcyBtdWx0aXBsZSBzeW1ib2wNCiAgICBkZWZpbml0aW9ucy4gTWlz
c2luZyBzeW1ib2xzIHRoYXQgd2VyZSBjb3ZlcmVkIGJ5IHRoaXMgZmlsZSBhcmUgYWRkZWQNCiAg
ICBhcyBzdHViIHRvIGdsdWUuYy4NCiAgICANCiAgICBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVu
emVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4NCiAgICAtLS0NCiAgICAgTWFrZWZpbGUudWsg
fCAgIDEgLQ0KICAgICBnbHVlLmMgICAgICB8IDE0MSArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrDQogICAgIDIgZmlsZXMgY2hhbmdlZCwgMTQxIGlu
c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCiAgICANCiAgICBkaWZmIC0tZ2l0IGEvTWFrZWZp
bGUudWsgYi9NYWtlZmlsZS51aw0KICAgIGluZGV4IDI5YzFiOTAuLjljN2U5MjUgMTAwNjQ0DQog
ICAgLS0tIGEvTWFrZWZpbGUudWsNCiAgICArKysgYi9NYWtlZmlsZS51aw0KICAgIEBAIC0xMTcs
NyArMTE3LDYgQEAgTElCR09fU1JDUy15ICs9ICQoTElCR09fRVhUUkFDVEVEKS9ydW50aW1lL2dv
LW1lbWVxdWFsLmMNCiAgICAgTElCR09fU1JDUy15ICs9ICQoTElCR09fRVhUUkFDVEVEKS9ydW50
aW1lL2dvLW1lbW1vdmUuYw0KICAgICBMSUJHT19TUkNTLXkgKz0gJChMSUJHT19FWFRSQUNURUQp
L3J1bnRpbWUvZ28tbmFub3RpbWUuYw0KICAgICBMSUJHT19TUkNTLXkgKz0gJChMSUJHT19FWFRS
QUNURUQpL3J1bnRpbWUvZ28tbmV3LmMNCiAgICAtTElCR09fU1JDUy15ICs9ICQoTElCR09fRVhU
UkFDVEVEKS9ydW50aW1lL2dvLW5vc3lzLmMNCiAgICAgTElCR09fU1JDUy15ICs9ICQoTElCR09f
RVhUUkFDVEVEKS9ydW50aW1lL2dvLW5vdy5jDQogICAgIExJQkdPX1NSQ1MteSArPSAkKExJQkdP
X0VYVFJBQ1RFRCkvcnVudGltZS9nby1yZWZsZWN0LWNhbGwuYw0KICAgICBMSUJHT19TUkNTLXkg
Kz0gJChMSUJHT19FWFRSQUNURUQpL3J1bnRpbWUvZ28tcnVudGltZS1lcnJvci5jDQogICAgZGlm
ZiAtLWdpdCBhL2dsdWUuYyBiL2dsdWUuYw0KICAgIGluZGV4IDExNGZhN2QuLmQ4ZGQ2OTUgMTAw
NjQ0DQogICAgLS0tIGEvZ2x1ZS5jDQogICAgKysrIGIvZ2x1ZS5jDQogICAgQEAgLTUyLDYgKzUy
LDEyIEBAIGludCBlcG9sbF9jcmVhdGUoaW50IHNpemUgX191bnVzZWQpDQogICAgIAlyZXR1cm4g
MDsNCiAgICAgfQ0KICAgICANCiAgICAraW50IGVwb2xsX2NyZWF0ZTEoaW50IGZsYWdzKQ0KICAg
ICt7DQogICAgKwllcnJubyA9IEVORklMRTsNCiAgICArCXJldHVybiAtMTsNCiAgICArfQ0KICAg
ICsNCiAgICAgaW50IGVwb2xsX2N0bChpbnQgZXBmZCBfX3VudXNlZCwgaW50IG9wIF9fdW51c2Vk
LCBpbnQgZmQgX191bnVzZWQsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXZlbnQgX191bnVzZWQpDQog
ICAgIHsNCiAgICAgCXJldHVybiAwOw0KICAgIEBAIC0xMjEsNiArMTI3LDIzIEBAIHNzaXplX3Qg
c2VuZGZpbGU2NChpbnQgb3V0X2ZkIF9fdW51c2VkLCBpbnQgaW5fZmQgX191bnVzZWQsIG9mZl90
ICpvZmZzZXQgIF9fdW51DQogICAgIAlyZXR1cm4gMTsNCiAgICAgfQ0KICAgICANCiAgICArdHlw
ZWRlZiB2b2lkIGxvZmZfdDsNCiAgICArc3NpemVfdCBzcGxpY2UoaW50IGZkX2luIF9fdW51c2Vk
LCBsb2ZmX3QgKm9mZl9pbiBfX3VudXNlZCwgaW50IGZkX291dCBfX3VudXNlZCwNCiAgICArCSAg
ICAgICBsb2ZmX3QgKm9mZl9vdXQgX191bnVzZWQsIHNpemVfdCBsZW4gX191bnVzZWQsDQogICAg
KwkgICAgICAgdW5zaWduZWQgaW50IGZsYWdzIF9fdW51c2VkKQ0KICAgICt7DQogICAgKwllcnJu
byA9IEVOT1NZUzsNCiAgICArCXJldHVybiAtMTsNCiAgICArfQ0KICAgICsNCiAgICAraW50IHN5
bmNfZmlsZV9yYW5nZShpbnQgZmQgX191bnVzZWQsIG9mZjY0X3Qgb2Zmc2V0IF9fdW51c2VkLA0K
ICAgICsJCSAgICBvZmY2NF90IG5ieXRlcyBfX3VudXNlZCwgdW5zaWduZWQgaW50IGZsYWdzIF9f
dW51c2VkKQ0KICAgICt7DQogICAgKwllcnJubyA9IEVJTzsNCiAgICArCXJldHVybiAtMTsNCiAg
ICArfQ0KICAgICsNCiAgICArc3RydWN0IGdyb3VwOw0KICAgICBpbnQgZ2V0Z3JvdXBsaXN0KGNv
bnN0IGNoYXIgKnVzZXIgX191bnVzZWQsIGdpZF90IGdyb3VwIF9fdW51c2VkLCBnaWRfdCAqZ3Jv
dXBzIF9fdW51c2VkLCBpbnQgKm5ncm91cHMgX191bnVzZWQpDQogICAgIHsNCiAgICAgCXJldHVy
biAwOw0KICAgIEBAIC0xMzIsNiArMTU1LDEyNCBAQCBpbnQgZ2V0Z3JnaWRfcihnaWRfdCBnaWQg
X191bnVzZWQsIHN0cnVjdCBncm91cCAqZ3JwIF9fdW51c2VkLA0KICAgICAJcmV0dXJuIDA7DQog
ICAgIH0NCiAgICAgDQogICAgK2ludCB1bnNoYXJlKGludCBmbGFncyBfX3VudXNlZCkNCiAgICAr
ew0KICAgICsJZXJybm8gPSBFTk9TWVM7DQogICAgKwlyZXR1cm4gLTE7DQogICAgK30NCiAgICAr
DQogICAgK3NzaXplX3QgdGVlKGludCBmZF9pbiBfX3VudXNlZCwgaW50IGZkX291dCBfX3VudXNl
ZCwgc2l6ZV90IGxlbiBfX3VudXNlZCwNCiAgICArCSAgICB1bnNpZ25lZCBpbnQgZmxhZ3MgX191
bnVzZWQpDQogICAgK3sNCiAgICArCWVycm5vID0gRU5PU1lTOw0KICAgICsJcmV0dXJuIC0xOw0K
ICAgICt9DQogICAgKw0KICAgICt0eXBlZGVmIHZvaWQgc29ja2xlbl90Ow0KICAgICtzdHJ1Y3Qg
c29ja2FkZHI7DQogICAgK2ludCBhY2NlcHQ0KGludCBzb2NrZmQgX191bnVzZWQsIHN0cnVjdCBz
b2NrYWRkciAqYWRkciBfX3VudXNlZCwNCiAgICArCSAgICBzb2NrbGVuX3QgKmFkZHJsZW4gX191
bnVzZWQsIGludCBmbGFncyBfX3VudXNlZCkNCiAgICArew0KICAgICsJZXJybm8gPSBFTk9TWVM7
DQogICAgKwlyZXR1cm4gLTE7DQogICAgK30NCiAgICArDQogICAgK2ludCBmY2htb2RhdChpbnQg
ZGlyZmQgX191bnVzZWQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lIF9fdW51c2VkLA0KICAgICsJICAg
ICBtb2RlX3QgbW9kZSBfX3VudXNlZCwgaW50IGZsYWdzIF9fdW51c2VkKQ0KICAgICt7DQogICAg
KwllcnJubyA9IEVOT1NZUzsNCiAgICArCXJldHVybiAtMTsNCiAgICArfQ0KICAgICsNCiAgICAr
aW50IGZjaG93bmF0KGludCBkaXJmZCBfX3VudXNlZCwgY29uc3QgY2hhciAqcGF0aG5hbWUgX191
bnVzZWQsDQogICAgKyAgICAgICAgICAgICB1aWRfdCBvd25lciBfX3VudXNlZCwgZ2lkX3QgZ3Jv
dXAgX191bnVzZWQsDQogICAgKwkgICAgIGludCBmbGFncyBfX3VudXNlZCkNCiAgICArew0KICAg
ICsJZXJybm8gPSBFTk9TWVM7DQogICAgKwlyZXR1cm4gLTE7DQogICAgK30NCiAgICArDQogICAg
K2ludCBta2RpcmF0KGludCBkaXJmZCBfX3VudXNlZCwgY29uc3QgY2hhciAqcGF0aG5hbWUgX191
bnVzZWQsDQogICAgKwkgICAgbW9kZV90IG1vZGUgX191bnVzZWQpDQogICAgK3sNCiAgICArCWVy
cm5vID0gRU5PU1lTOw0KICAgICsJcmV0dXJuIC0xOw0KICAgICt9DQogICAgKw0KICAgICtpbnQg
bWtub2RhdChpbnQgZGlyZmQgX191bnVzZWQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lIF9fdW51c2Vk
LA0KICAgICsJICAgIG1vZGVfdCBtb2RlIF9fdW51c2VkLCBkZXZfdCBkZXYgX191bnVzZWQpDQog
ICAgK3sNCiAgICArCWVycm5vID0gRU5PU1lTOw0KICAgICsJcmV0dXJuIC0xOw0KICAgICt9DQog
ICAgKw0KICAgICtpbnQgcmVuYW1lYXQoaW50IG9sZGRpcmZkIF9fdW51c2VkLCBjb25zdCBjaGFy
ICpvbGRwYXRoIF9fdW51c2VkLA0KICAgICsgICAgICAgICAgICAgaW50IG5ld2RpcmZkIF9fdW51
c2VkLCBjb25zdCBjaGFyICpuZXdwYXRoIF9fdW51c2VkKQ0KICAgICt7DQogICAgKwllcnJubyA9
IEVOT1NZUzsNCiAgICArCXJldHVybiAtMTsNCiAgICArfQ0KICAgICsNCiAgICAraW50IHVubGlu
a2F0KGludCBkaXJmZCBfX3VudXNlZCwgY29uc3QgY2hhciAqcGF0aG5hbWUgX191bnVzZWQsDQog
ICAgKwkgICAgIGludCBmbGFncyBfX3VudXNlZCkNCiAgICArew0KICAgICsJZXJybm8gPSBFTk9T
WVM7DQogICAgKwlyZXR1cm4gLTE7DQogICAgK30NCiAgICArDQogICAgK3NzaXplX3QgZ2V0eGF0
dHIoY29uc3QgY2hhciAqcGF0aCBfX3VudXNlZCwgY29uc3QgY2hhciAqbmFtZSBfX3VudXNlZCwN
CiAgICArICAgICAgICAgICAgICAgICB2b2lkICp2YWx1ZSBfX3VudXNlZCwgc2l6ZV90IHNpemUg
X191bnVzZWQpDQogICAgK3sNCiAgICArCWVycm5vID0gRU5PVFNVUDsNCiAgICArCXJldHVybiAt
MTsNCiAgICArfQ0KICAgICsNCiAgICAraW50IHNldHhhdHRyKGNvbnN0IGNoYXIgKnBhdGggX191
bnVzZWQsIGNvbnN0IGNoYXIgKm5hbWUgX191bnVzZWQsDQogICAgKwkgICAgIGNvbnN0IHZvaWQg
KnZhbHVlIF9fdW51c2VkLCBzaXplX3Qgc2l6ZSBfX3VudXNlZCwNCiAgICArCSAgICAgaW50IGZs
YWdzIF9fdW51c2VkKQ0KICAgICt7DQogICAgKwllcnJubyA9IEVOT1RTVVA7DQogICAgKwlyZXR1
cm4gLTE7DQogICAgK30NCiAgICArDQogICAgK2ludCByZW1vdmV4YXR0cihjb25zdCBjaGFyICpw
YXRoIF9fdW51c2VkLCBjb25zdCBjaGFyICpuYW1lIF9fdW51c2VkKQ0KICAgICt7DQogICAgKwll
cnJubyA9IEVOT1RTVVA7DQogICAgKwlyZXR1cm4gLTE7DQogICAgK30NCiAgICArDQogICAgK3Nz
aXplX3QgbGlzdHhhdHRyKGNvbnN0IGNoYXIgKnBhdGggX191bnVzZWQsIGNoYXIgKmxpc3QgX191
bnVzZWQsDQogICAgKwkJICBzaXplX3Qgc2l6ZSBfX3VudXNlZCkNCiAgICArew0KICAgICsJZXJy
bm8gPSBFTk9UU1VQOw0KICAgICsJcmV0dXJuIC0xOw0KICAgICt9DQogICAgKw0KICAgICtpbnQg
aW5vdGlmeV9pbml0KHZvaWQgX191bnVzZWQpDQogICAgK3sNCiAgICArCWVycm5vID0gRU5PU1lT
Ow0KICAgICsJcmV0dXJuIC0xOw0KICAgICt9DQogICAgKw0KICAgICtpbnQgaW5vdGlmeV9pbml0
MShpbnQgZmxhZ3MgX191bnVzZWQpDQogICAgK3sNCiAgICArCWVycm5vID0gRU5PU1lTOw0KICAg
ICsJcmV0dXJuIC0xOw0KICAgICt9DQogICAgKw0KICAgICtpbnQgaW5vdGlmeV9ybV93YXRjaChp
bnQgZmQgX191bnVzZWQsIGludCB3ZCBfX3VudXNlZCkNCiAgICArew0KICAgICsJZXJybm8gPSBF
Tk9TWVM7DQogICAgKwlyZXR1cm4gLTE7DQogICAgK30NCiAgICArDQogICAgK2ludCBpbm90aWZ5
X2FkZF93YXRjaChpbnQgZmQgX191bnVzZWQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lIF9fdW51c2Vk
LA0KICAgICsJCSAgICAgIHVpbnQzMl90IG1hc2sgX191bnVzZWQpDQogICAgK3sNCiAgICArCWVy
cm5vID0gRU5PU1lTOw0KICAgICsJcmV0dXJuIC0xOw0KICAgICt9DQogICAgKw0KICAgICAvKg0K
ICAgICAgKiBHbHVlIGNvZGUNCiAgICAgICovDQogICAgLS0gDQogICAgMi4yMC4xDQogICAgDQog
ICAgDQogICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N
CiAgICBNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0DQogICAgTWluaW9zLWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnDQogICAgaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xp
c3RpbmZvL21pbmlvcy1kZXZlbA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 07 14:55:56 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 07 Feb 2020 14:55:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j052y-0005Uh-BH; Fri, 07 Feb 2020 14:55:56 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=PAwo=33=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j052y-0005Ub-1t
 for minios-devel@lists.xen.org; Fri, 07 Feb 2020 14:55:56 +0000
X-Inumbo-ID: f0f9d4a6-49b9-11ea-a759-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id f0f9d4a6-49b9-11ea-a759-bc764e2007e4;
 Fri, 07 Feb 2020 14:55:55 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id B249010001F;
 Fri,  7 Feb 2020 15:55:54 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Efbqut2x1jZl; Fri,  7 Feb 2020 15:55:54 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 8EDB4FFD0F
 for <minios-devel@lists.xen.org>; Fri,  7 Feb 2020 15:55:54 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 7 Feb 2020
 15:55:54 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 7 Feb 2020 15:55:54
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [Minios-devel] [UNIKRAFT/LIBGO PATCH] README: Update library
 order
Thread-Index: AQHV3cQciCr+DNy36EeUeqIqfaxrmagP0dqA
Date: Fri, 7 Feb 2020 14:55:53 +0000
Message-ID: <AA66D3C4-67D1-4C7E-902D-98C77149CA05@neclab.eu>
References: <20200207143637.29124-1-simon.kuenzer@neclab.eu>
 <20200207143637.29124-6-simon.kuenzer@neclab.eu>
In-Reply-To: <20200207143637.29124-6-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <09FF96BA8222E04E85BAE65B51251047@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/LIBGO PATCH] README: Update library
 order
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDA3LjAyLjIw
LCAxNTozNywgIk1pbmlvcy1kZXZlbCBvbiBiZWhhbGYgb2YgU2ltb24gS3VlbnplciIgPG1pbmlv
cy1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnIG9uIGJlaGFsZiBvZiBzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6DQoNCiAgICBVcGRhdGUgdGhlIGxpYnJhcnkgb3JkZXIg
c28gdGhhdCBsaWJnbyBjb21waWxlcy4NCiAgICANCiAgICBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBL
dWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4NCiAgICAtLS0NCiAgICAgUkVBRE1FLm1k
IHwgMjAgKysrKysrKysrKysrLS0tLS0tLS0NCiAgICAgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2Vy
dGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQogICAgDQogICAgZGlmZiAtLWdpdCBhL1JFQURNRS5t
ZCBiL1JFQURNRS5tZA0KICAgIGluZGV4IDU5MGQ4ZDguLmUwMGNiYWQgMTAwNjQ0DQogICAgLS0t
IGEvUkVBRE1FLm1kDQogICAgKysrIGIvUkVBRE1FLm1kDQogICAgQEAgLTQsMjIgKzQsMjYgQEAg
bGliZ28gZm9yIFVuaWtyYWZ0DQogICAgIFRoaXMgaXMgYSBwb3J0IG9mIGxpYmdvIGZvciBVbmlr
cmFmdCBhcyBhbiBleHRlcm5hbCBsaWJyYXJ5LiBZb3Ugd2lsbA0KICAgICBuZWVkIHRoZSBmb2xs
b3dpbmcgZXh0ZXJuYWwgbGlicmFyaWVzIHRvIG1ha2UgaXQgd29yazoNCiAgICAgDQogICAgLSsg
bmV3bGliDQogICAgKysgZ2NjDQogICAgKysgbGliZ28NCiAgICArKyBwdGhyZWFkLWVtYmVkZGVk
DQogICAgKysgbHdpcA0KICAgICArIGNvbXBpbGVyLXJ0DQogICAgLSsgbGlidW53aW5kDQogICAg
ICsgbGliY3h4DQogICAgICsgbGliY3h4YWJpDQogICAgLSsgcHRocmVhZC1lbWJlZGRlZA0KICAg
IC0rIGdjYw0KICAgIC0rIGx3aXANCiAgICArKyBsaWJ1bndpbmQNCiAgICAgKyBsaWJ1Y29udGV4
dA0KICAgICsrIG5ld2xpYg0KICAgICANCiAgICAtV2hlbiBhZGRpbmcgdGhlIGxpYnJhcnkgaW4g
dGhlIGRlcGVuZGVuY3kgbGlzdCwgcGxlYXNlIG1ha2Ugc3VyZSB0aGF0DQogICAgLWdjYyBjb21l
cyBiZWZvcmUgbGliZ28sIGUuZy46DQogICAgK1BsZWFzZSBub3RlIHRoYXQgdGhlIGxpc3RlZCBv
cmRlciBpcyBpbXBvcnRhbnQsIGluIHBhcnRpY3VsYXINCiAgICArZ2NjIGJlZm9yZSBsaWJnbywg
ZS5nLjoNCiAgICAgDQogICAgIGBgYA0KICAgIC0uLi4kKFVLX0xJQlMpL2djYzokKFVLX0xJQlMp
L2xpYmdvOi4uLg0KICAgICsuLi4kKFVLX0xJQlMpL2djYzokKFVLX0xJQlMpL2xpYmdvOiQoVUtf
TElCUykvcHRocmVhZC1lbWJlZGRlZC4uLg0KICAgICsNCiAgICAgYGBgDQogICAgIA0KICAgICtD
dXJyZW50bHksIHlvdSBuZWVkIHRvIGFzc2lnbiBhdCBsZWFzdCA1MTIgTUIgb2YgUkFNIHRvIHRo
ZSBndWVzdC4NCiAgICArDQogICAgIFBsZWFzZSByZWZlciB0byB0aGUgYFJFQURNRS5tZGAgYXMg
d2VsbCBhcyB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgYGRvYy9gDQogICAgIHN1YmRpcmVjdG9y
eSBvZiB0aGUgbWFpbiB1bmlrcmFmdCByZXBvc2l0b3J5Lg0KICAgIC0tIA0KICAgIDIuMjAuMQ0K
ICAgIA0KICAgIA0KICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fDQogICAgTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdA0KICAgIE1pbmlvcy1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZw0KICAgIGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp
bG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWwNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls
bWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Sat Feb 08 10:42:43 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 08 Feb 2020 10:42:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j0NZQ-0006W2-Ce; Sat, 08 Feb 2020 10:42:40 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4/if=34=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j0NZP-0006Vx-51
 for minios-devel@lists.xen.org; Sat, 08 Feb 2020 10:42:39 +0000
X-Inumbo-ID: b8839d22-4a5f-11ea-a759-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b8839d22-4a5f-11ea-a759-bc764e2007e4;
 Sat, 08 Feb 2020 10:42:37 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id BEEAB102C8A;
 Sat,  8 Feb 2020 11:42:35 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id GcjKUKnE0DUf; Sat,  8 Feb 2020 11:42:35 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 8FE3AFFEF2
 for <minios-devel@lists.xen.org>; Sat,  8 Feb 2020 11:42:35 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sat, 8 Feb 2020
 11:42:34 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Sat, 8 Feb 2020 11:42:31 +0100
Message-ID: <20200208104231.29644-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/uksched: Add newlines at end of
 messages in sched.c
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QWRkcyBuZXdsaW5lcyBhdCB0aGUgZW5kIG9mIG1lc3NhZ2VzIGluIHNjaGVkLmMuIFRoZSBtZXNz
YWdlIGxldmVsIGlzCmFsc28gaW5jcmVhc2VkIGZyb20gd2FybmluZyB0byBlcnJvciBiZWNhdXNl
IHRoaW5ncyBhcmUgZmFpbGluZy4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9u
Lmt1ZW56ZXJAbmVjbGFiLmV1PgotLS0KIGxpYi91a3NjaGVkL3NjaGVkLmMgfCAxNCArKysrKysr
Ky0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9saWIvdWtzY2hlZC9zY2hlZC5jIGIvbGliL3Vrc2NoZWQvc2NoZWQuYwpp
bmRleCA5NGFjNWFhYS4uNTkwM2ZlNWEgMTAwNjQ0Ci0tLSBhL2xpYi91a3NjaGVkL3NjaGVkLmMK
KysrIGIvbGliL3Vrc2NoZWQvc2NoZWQuYwpAQCAtMTE5LDcgKzExOSw3IEBAIHN0cnVjdCB1a19z
Y2hlZCAqdWtfc2NoZWRfY3JlYXRlKHN0cnVjdCB1a19hbGxvYyAqYSwgc2l6ZV90IHBydl9zaXpl
KQogCiAJc2NoZWQgPSB1a19tYWxsb2MoYSwgc2l6ZW9mKHN0cnVjdCB1a19zY2hlZCkgKyBwcnZf
c2l6ZSk7CiAJaWYgKHNjaGVkID09IE5VTEwpIHsKLQkJdWtfcHJfd2FybigiQ291bGQgbm90IGFs
bG9jYXRlIHNjaGVkdWxlci4iKTsKKwkJdWtfcHJfd2FybigiRmFpbGVkIHRvIGFsbG9jYXRlIHNj
aGVkdWxlclxuIik7CiAJCXJldHVybiBOVUxMOwogCX0KIApAQCAtMTQzLDcgKzE0Myw3IEBAIHN0
YXRpYyB2b2lkICpjcmVhdGVfc3RhY2soc3RydWN0IHVrX2FsbG9jICphbGxvY2F0b3IpCiAKIAl1
a19wb3NpeF9tZW1hbGlnbihhbGxvY2F0b3IsICZzdGFjaywgU1RBQ0tfU0laRSwgU1RBQ0tfU0la
RSk7CiAJaWYgKHN0YWNrID09IE5VTEwpIHsKLQkJdWtfcHJfd2FybigiRXJyb3IgYWxsb2NhdGlu
ZyB0aHJlYWQgc3RhY2suIik7CisJCXVrX3ByX2VycigiRmFpbGVkIHRvIGFsbG9jYXRlIHRocmVh
ZCBzdGFja1xuIik7CiAJCXJldHVybiBOVUxMOwogCX0KIApAQCAtMTU1LDggKzE1NSwxMCBAQCBz
dGF0aWMgdm9pZCAqdWtfdGhyZWFkX3Rsc19jcmVhdGUoc3RydWN0IHVrX2FsbG9jICphbGxvY2F0
b3IpCiAJdm9pZCAqdGxzOwogCiAJaWYgKHVrX3Bvc2l4X21lbWFsaWduKGFsbG9jYXRvciwgJnRs
cywgdWthcmNoX3Rsc19hcmVhX2FsaWduKCksCi0JCQkJdWthcmNoX3Rsc19hcmVhX3NpemUoKSkp
CisJCQkgICAgICB1a2FyY2hfdGxzX2FyZWFfc2l6ZSgpKSkgeworCQl1a19wcl9lcnIoIkZhaWxl
ZCB0byBhbGxvY2F0ZSB0aHJlYWQgVExTIGFyZWFcbiIpOwogCQlyZXR1cm4gTlVMTDsKKwl9CiAJ
dWthcmNoX3Rsc19hcmVhX2NvcHkodGxzKTsKIAlyZXR1cm4gdGxzOwogfQpAQCAtMTg4LDcgKzE5
MCw3IEBAIHZvaWQgdWtfc2NoZWRfaWRsZV9pbml0KHN0cnVjdCB1a19zY2hlZCAqc2NoZWQsCiAJ
cmV0dXJuOwogCiBvdXRfY3Jhc2g6Ci0JVUtfQ1JBU0goIkVycm9yIGluaXRpYWxpemluZyB0aGUg
aWRsZSB0aHJlYWQuIik7CisJVUtfQ1JBU0goIkZhaWxlZCB0byBpbml0aWFsaXplIGBpZGxlYCB0
aHJlYWRcbiIpOwogfQogCiBzdHJ1Y3QgdWtfdGhyZWFkICp1a19zY2hlZF90aHJlYWRfY3JlYXRl
KHN0cnVjdCB1a19zY2hlZCAqc2NoZWQsCkBAIC0yMDIsNyArMjA0LDcgQEAgc3RydWN0IHVrX3Ro
cmVhZCAqdWtfc2NoZWRfdGhyZWFkX2NyZWF0ZShzdHJ1Y3QgdWtfc2NoZWQgKnNjaGVkLAogCiAJ
dGhyZWFkID0gdWtfbWFsbG9jKHNjaGVkLT5hbGxvY2F0b3IsIHNpemVvZihzdHJ1Y3QgdWtfdGhy
ZWFkKSk7CiAJaWYgKHRocmVhZCA9PSBOVUxMKSB7Ci0JCXVrX3ByX3dhcm4oIkVycm9yIGFsbG9j
YXRpbmcgbWVtb3J5IGZvciB0aHJlYWQuIik7CisJCXVrX3ByX2VycigiRmFpbGVkIHRvIGFsbG9j
YXRlIHRocmVhZFxuIik7CiAJCWdvdG8gZXJyOwogCX0KIApAQCAtMjc3LDUgKzI3OSw1IEBAIHZv
aWQgdWtfc2NoZWRfdGhyZWFkX2V4aXQodm9pZCkKIAl0aHJlYWQgPSB1a190aHJlYWRfY3VycmVu
dCgpOwogCVVLX0FTU0VSVCh0aHJlYWQtPnNjaGVkKTsKIAl1a19zY2hlZF90aHJlYWRfcmVtb3Zl
KHRocmVhZC0+c2NoZWQsIHRocmVhZCk7Ci0JVUtfQ1JBU0goIkVycm9yIHN0b3BwaW5nIHRocmVh
ZC4iKTsKKwlVS19DUkFTSCgiRmFpbGVkIHRvIHN0b3AgdGhlIHRocmVhZFxuIik7CiB9Ci0tIAoy
LjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpN
aW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRl
dmVs

From minios-devel-bounces@lists.xenproject.org Sat Feb 08 10:42:54 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 08 Feb 2020 10:42:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j0NZe-0006Wt-Fc; Sat, 08 Feb 2020 10:42:54 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4/if=34=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j0NZd-0006Wj-9v
 for minios-devel@lists.xen.org; Sat, 08 Feb 2020 10:42:53 +0000
X-Inumbo-ID: c14b8dde-4a5f-11ea-b2cb-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c14b8dde-4a5f-11ea-b2cb-bc764e2007e4;
 Sat, 08 Feb 2020 10:42:51 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 195AAF2012;
 Sat,  8 Feb 2020 11:42:51 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id o8Pxi-dHaoG9; Sat,  8 Feb 2020 11:42:50 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id EA1E1F2010
 for <minios-devel@lists.xen.org>; Sat,  8 Feb 2020 11:42:48 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sat, 8 Feb 2020
 11:42:48 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Sat, 8 Feb 2020 11:42:45 +0100
Message-ID: <20200208104245.29715-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/uksched,
 plat/*: Fix error handling with uk_posix_memalign()
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SW4gdGhlIGNhc2VzIG9mIGZhaWxlZCBhbGxvY2F0aW9uLCBgdWtfcG9zaXhfbWVtYWxpZ24oKWAg
aXMgcmV0dXJuaW5nCmFuIGVycm5vIG51bWJlciBidXQgZG9lcyBub3QgY2hhbmdlIGBtZW1wdHJg
LiBJbnN0ZWFkIG9mIGNoZWNraW5nCmBtZW1wdHJgIGJlaW5nIE5VTEwsIHdlIHRlc3QgZmFpbHVy
ZXMgd2l0aCBgdWtfcG9zaXhfbWVtYWxpZ24oKWAncwpyZXR1cm4gY29kZXMuCgpTaWduZWQtb2Zm
LWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KLS0tCiBsaWIvdWtz
Y2hlZC9zY2hlZC5jICAgICAgICAgICAgICAgfCA2ICsrKy0tLQogcGxhdC9kcml2ZXJzL3ZpcnRp
by92aXJ0aW9fcmluZy5jIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr
KSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvdWtzY2hlZC9zY2hlZC5jIGIvbGli
L3Vrc2NoZWQvc2NoZWQuYwppbmRleCA1OTAzZmU1YS4uZWYxOTVjM2EgMTAwNjQ0Ci0tLSBhL2xp
Yi91a3NjaGVkL3NjaGVkLmMKKysrIGIvbGliL3Vrc2NoZWQvc2NoZWQuYwpAQCAtMTQxLDggKzE0
MSw4IEBAIHN0YXRpYyB2b2lkICpjcmVhdGVfc3RhY2soc3RydWN0IHVrX2FsbG9jICphbGxvY2F0
b3IpCiB7CiAJdm9pZCAqc3RhY2s7CiAKLQl1a19wb3NpeF9tZW1hbGlnbihhbGxvY2F0b3IsICZz
dGFjaywgU1RBQ0tfU0laRSwgU1RBQ0tfU0laRSk7Ci0JaWYgKHN0YWNrID09IE5VTEwpIHsKKwlp
ZiAodWtfcG9zaXhfbWVtYWxpZ24oYWxsb2NhdG9yLCAmc3RhY2ssCisJCQkgICAgICBTVEFDS19T
SVpFLCBTVEFDS19TSVpFKSAhPSAwKSB7CiAJCXVrX3ByX2VycigiRmFpbGVkIHRvIGFsbG9jYXRl
IHRocmVhZCBzdGFja1xuIik7CiAJCXJldHVybiBOVUxMOwogCX0KQEAgLTE1NSw3ICsxNTUsNyBA
QCBzdGF0aWMgdm9pZCAqdWtfdGhyZWFkX3Rsc19jcmVhdGUoc3RydWN0IHVrX2FsbG9jICphbGxv
Y2F0b3IpCiAJdm9pZCAqdGxzOwogCiAJaWYgKHVrX3Bvc2l4X21lbWFsaWduKGFsbG9jYXRvciwg
JnRscywgdWthcmNoX3Rsc19hcmVhX2FsaWduKCksCi0JCQkgICAgICB1a2FyY2hfdGxzX2FyZWFf
c2l6ZSgpKSkgeworCQkJICAgICAgdWthcmNoX3Rsc19hcmVhX3NpemUoKSkgIT0gMCkgewogCQl1
a19wcl9lcnIoIkZhaWxlZCB0byBhbGxvY2F0ZSB0aHJlYWQgVExTIGFyZWFcbiIpOwogCQlyZXR1
cm4gTlVMTDsKIAl9CmRpZmYgLS1naXQgYS9wbGF0L2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5n
LmMgYi9wbGF0L2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMKaW5kZXggYTMxMGE0MzEuLjIz
NTY3OWQyIDEwMDY0NAotLS0gYS9wbGF0L2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMKKysr
IGIvcGxhdC9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jCkBAIC0zNzksOCArMzc5LDggQEAg
c3RydWN0IHZpcnRxdWV1ZSAqdmlydHF1ZXVlX2NyZWF0ZShfX3UxNiBxdWV1ZV9pZCwgX191MTYg
bnJfZGVzY3MsIF9fdTE2IGFsaWduLAogCXZycS0+dnJpbmdfbWVtID0gTlVMTDsKIAogCXJpbmdf
c2l6ZSA9IHZyaW5nX3NpemUobnJfZGVzY3MsIGFsaWduKTsKLQl1a19wb3NpeF9tZW1hbGlnbihh
LCAodm9pZCAqKikmdnJxLT52cmluZ19tZW0sIF9fUEFHRV9TSVpFLCByaW5nX3NpemUpOwotCWlm
ICghdnJxLT52cmluZ19tZW0pIHsKKwlpZiAodWtfcG9zaXhfbWVtYWxpZ24oYSwgJnZycS0+dnJp
bmdfbWVtLAorCQkJICAgICAgX19QQUdFX1NJWkUsIHJpbmdfc2l6ZSkgIT0gMCkgewogCQl1a19w
cl9lcnIoIkFsbG9jYXRpb24gb2YgdnJpbmcgZmFpbGVkXG4iKTsKIAkJcmMgPSAtRU5PTUVNOwog
CQlnb3RvIGVycl9mcmVldnE7Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Sat Feb 08 10:47:23 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 08 Feb 2020 10:47:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j0Ndz-0006f7-Jt; Sat, 08 Feb 2020 10:47:23 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4/if=34=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j0Ndy-0006ey-TD
 for minios-devel@lists.xen.org; Sat, 08 Feb 2020 10:47:22 +0000
X-Inumbo-ID: 606098ba-4a60-11ea-b2da-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 606098ba-4a60-11ea-b2da-12813bfff9fa;
 Sat, 08 Feb 2020 10:47:19 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 0D989102C8A;
 Sat,  8 Feb 2020 11:47:18 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id wRiGpJM36RGz; Sat,  8 Feb 2020 11:47:17 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id E1A64FFEF2
 for <minios-devel@lists.xen.org>; Sat,  8 Feb 2020 11:47:17 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sat, 8 Feb 2020
 11:47:17 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Sat, 8 Feb 2020 11:47:14 +0100
Message-ID: <20200208104714.30472-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Fix error handling with
 uk_posix_memalign()
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SW4gdGhlIGNhc2VzIG9mIGZhaWxlZCBhbGxvY2F0aW9uLCBgdWtfcG9zaXhfbWVtYWxpZ24oKWAg
aXMgcmV0dXJuaW5nCmFuIGVycm5vIG51bWJlciBidXQgZG9lcyBub3QgY2hhbmdlIGBtZW1wdHJg
LiBJbnN0ZWFkIG9mIGNoZWNraW5nCmBtZW1wdHJgIGJlaW5nIE5VTEwsIHdlIHRlc3QgZmFpbHVy
ZXMgd2l0aCBgdWtfcG9zaXhfbWVtYWxpZ24oKWAncwpyZXR1cm4gY29kZXMuCgpTaWduZWQtb2Zm
LWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KLS0tCiBnbHVlLmMg
fCA1ICsrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL2dsdWUuYyBiL2dsdWUuYwppbmRleCBkOGRkNjk1Li4zMDFiMGRiIDEw
MDY0NAotLS0gYS9nbHVlLmMKKysrIGIvZ2x1ZS5jCkBAIC0yOTYsOSArMjk2LDggQEAgdm9pZCAq
YWxsb2Nfc3RhY2soKQogCXN0cnVjdCB1a19zY2hlZCAqc2NoZWQgPSB1a19zY2hlZF9nZXRfZGVm
YXVsdCgpOwogCXZvaWQgKnN0YWNrOwogCi0JdWtfcG9zaXhfbWVtYWxpZ24oc2NoZWQtPmFsbG9j
YXRvciwKLQkJCSAgJnN0YWNrLCBfX1NUQUNLX1NJWkUsIF9fU1RBQ0tfU0laRSk7Ci0JaWYgKHN0
YWNrID09IE5VTEwpCisJaWYgKHVrX3Bvc2l4X21lbWFsaWduKHNjaGVkLT5hbGxvY2F0b3IsICZz
dGFjaywKKwkJCSAgICAgIF9fU1RBQ0tfU0laRSwgX19TVEFDS19TSVpFKSAhPSAwKQogCQlwcmlu
dGYoImVycm9yIGFsbG9jYXRpbmcgc3RhY2tcbiIpOwogCXJldHVybiBzdGFjazsKIH0KLS0gCjIu
MjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1p
bmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2
ZWw=

From minios-devel-bounces@lists.xenproject.org Sat Feb 08 21:02:25 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 08 Feb 2020 21:02:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j0XF8-0008Os-8g; Sat, 08 Feb 2020 21:02:22 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=jUpH=34=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j0XF7-0008On-0p
 for minios-devel@lists.xen.org; Sat, 08 Feb 2020 21:02:21 +0000
X-Inumbo-ID: 4b73e208-4ab6-11ea-b2cb-bc764e2007e4
Received: from mail-ua1-x941.google.com (unknown [2607:f8b0:4864:20::941])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 4b73e208-4ab6-11ea-b2cb-bc764e2007e4;
 Sat, 08 Feb 2020 21:02:20 +0000 (UTC)
Received: by mail-ua1-x941.google.com with SMTP id 59so1111702uap.12
 for <minios-devel@lists.xen.org>; Sat, 08 Feb 2020 13:02:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=oSzO6As+0qoRKpqaFTk80rl4Z6SVdsotgoWd0LmnlJM=;
 b=jeHhchmXRjjvEXOcFH4Hobwxtv87v99Gvecy3xcpCMdtnsbUgpjzexh+7o8IXbCIsB
 DItuY3oQ4pOGvNe8JzT+aYWU+hYc03qMpbT+m9UwHepIDhBg2PDIOY/YNxZOwSoEH+a7
 S+yWynQrC0BVZtvfPrS+o32P+OeUhtTihtOpSzpW02PLus2ZfyucDk2Ikn5kFtCCUhAU
 l6t/JrQI+po11PPSqk4nKqwGHafcvGkv8gQN2xkqiFWSEYGWu0jekNjN9/NKLcx1ekaL
 EBUb/Bf0kdBDOdHO6SUs1P3Ap3jsIoiwBB6ZXXWXXfv1cMjtXoj6g/2v792kOj+obwhA
 IpEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=oSzO6As+0qoRKpqaFTk80rl4Z6SVdsotgoWd0LmnlJM=;
 b=ocCwM83OPbc1u3/Ywerbw8dsPPAq/qsS1AOR5Q9aw2yycdxIHhpRmX9xaA8To4lRZq
 41WOFZOlhd0PsbkDBP6nwtbyfkiPUwOC0oDKTILOD8HSeHAhTO9xGXHeAUjnrfzypYVd
 EHlLPHwqPJrq4KvGISw5tb4fqc8Ub9DDfHnkReVFj6lwr0JYZvGbSgqwwKGX7PI2vOc4
 NGd3SW+7ErPty+b01GlXsxzzyiz0aGUuzm0AoUcznU+PkGFIpAgtBDbPXq4+oP185Gnc
 ybrYr4pRJzDbpygGmVdJe3dy/YtSbz+rdb1DmGbdz1uJ89BqM/vUnBtWfPDt1897xebB
 N6VA==
X-Gm-Message-State: APjAAAX3wco4qulm/ZYBYMGSLiDmHdMjALEdJdScqpI15hYSu6TSU7CY
 zm6Z2nt0rDyJaexo926AvfcWPzfQDQv1BkaGFfQ=
X-Google-Smtp-Source: APXvYqwVmADYRMtx5tKLEG4fQa8r03TYa09pavtNc0CuXqCR22lCNr11k4ejdH67HuNiGUL7Vez3t5WY1nY2H63hOws=
X-Received: by 2002:ab0:704b:: with SMTP id v11mr2755470ual.36.1581195739538; 
 Sat, 08 Feb 2020 13:02:19 -0800 (PST)
MIME-Version: 1.0
References: <20200208104245.29715-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200208104245.29715-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Sat, 8 Feb 2020 22:02:08 +0100
Message-ID: <CAEX4t-MXQyw7ZdARGHCp=7_rYVH4C+dsG0Tok0DgoyTL5emgjw@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/uksched,
 plat/*: Fix error handling with uk_posix_memalign()
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCi0tIEZlbGlwZQoKUmV2aWV3ZWQtYnk6IEZl
bGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KCk9uIFNhdCwgRmViIDgsIDIwMjAg
YXQgMTE6NDMgQU0gU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+IHdyb3Rl
Ogo+Cj4gSW4gdGhlIGNhc2VzIG9mIGZhaWxlZCBhbGxvY2F0aW9uLCBgdWtfcG9zaXhfbWVtYWxp
Z24oKWAgaXMgcmV0dXJuaW5nCj4gYW4gZXJybm8gbnVtYmVyIGJ1dCBkb2VzIG5vdCBjaGFuZ2Ug
YG1lbXB0cmAuIEluc3RlYWQgb2YgY2hlY2tpbmcKPiBgbWVtcHRyYCBiZWluZyBOVUxMLCB3ZSB0
ZXN0IGZhaWx1cmVzIHdpdGggYHVrX3Bvc2l4X21lbWFsaWduKClgJ3MKPiByZXR1cm4gY29kZXMu
Cj4KPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5l
dT4KPiAtLS0KPiAgbGliL3Vrc2NoZWQvc2NoZWQuYyAgICAgICAgICAgICAgIHwgNiArKystLS0K
PiAgcGxhdC9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jIHwgNCArKy0tCj4gIDIgZmlsZXMg
Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBh
L2xpYi91a3NjaGVkL3NjaGVkLmMgYi9saWIvdWtzY2hlZC9zY2hlZC5jCj4gaW5kZXggNTkwM2Zl
NWEuLmVmMTk1YzNhIDEwMDY0NAo+IC0tLSBhL2xpYi91a3NjaGVkL3NjaGVkLmMKPiArKysgYi9s
aWIvdWtzY2hlZC9zY2hlZC5jCj4gQEAgLTE0MSw4ICsxNDEsOCBAQCBzdGF0aWMgdm9pZCAqY3Jl
YXRlX3N0YWNrKHN0cnVjdCB1a19hbGxvYyAqYWxsb2NhdG9yKQo+ICB7Cj4gICAgICAgICB2b2lk
ICpzdGFjazsKPgo+IC0gICAgICAgdWtfcG9zaXhfbWVtYWxpZ24oYWxsb2NhdG9yLCAmc3RhY2ss
IFNUQUNLX1NJWkUsIFNUQUNLX1NJWkUpOwo+IC0gICAgICAgaWYgKHN0YWNrID09IE5VTEwpIHsK
PiArICAgICAgIGlmICh1a19wb3NpeF9tZW1hbGlnbihhbGxvY2F0b3IsICZzdGFjaywKPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFDS19TSVpFLCBTVEFDS19TSVpFKSAhPSAwKSB7
Cj4gICAgICAgICAgICAgICAgIHVrX3ByX2VycigiRmFpbGVkIHRvIGFsbG9jYXRlIHRocmVhZCBz
dGFja1xuIik7Cj4gICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+ICAgICAgICAgfQo+IEBA
IC0xNTUsNyArMTU1LDcgQEAgc3RhdGljIHZvaWQgKnVrX3RocmVhZF90bHNfY3JlYXRlKHN0cnVj
dCB1a19hbGxvYyAqYWxsb2NhdG9yKQo+ICAgICAgICAgdm9pZCAqdGxzOwo+Cj4gICAgICAgICBp
ZiAodWtfcG9zaXhfbWVtYWxpZ24oYWxsb2NhdG9yLCAmdGxzLCB1a2FyY2hfdGxzX2FyZWFfYWxp
Z24oKSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1a2FyY2hfdGxzX2FyZWFfc2l6
ZSgpKSkgewo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVrYXJjaF90bHNfYXJlYV9z
aXplKCkpICE9IDApIHsKPiAgICAgICAgICAgICAgICAgdWtfcHJfZXJyKCJGYWlsZWQgdG8gYWxs
b2NhdGUgdGhyZWFkIFRMUyBhcmVhXG4iKTsKPiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7
Cj4gICAgICAgICB9Cj4gZGlmZiAtLWdpdCBhL3BsYXQvZHJpdmVycy92aXJ0aW8vdmlydGlvX3Jp
bmcuYyBiL3BsYXQvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYwo+IGluZGV4IGEzMTBhNDMx
Li4yMzU2NzlkMiAxMDA2NDQKPiAtLS0gYS9wbGF0L2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5n
LmMKPiArKysgYi9wbGF0L2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMKPiBAQCAtMzc5LDgg
KzM3OSw4IEBAIHN0cnVjdCB2aXJ0cXVldWUgKnZpcnRxdWV1ZV9jcmVhdGUoX191MTYgcXVldWVf
aWQsIF9fdTE2IG5yX2Rlc2NzLCBfX3UxNiBhbGlnbiwKPiAgICAgICAgIHZycS0+dnJpbmdfbWVt
ID0gTlVMTDsKPgo+ICAgICAgICAgcmluZ19zaXplID0gdnJpbmdfc2l6ZShucl9kZXNjcywgYWxp
Z24pOwo+IC0gICAgICAgdWtfcG9zaXhfbWVtYWxpZ24oYSwgKHZvaWQgKiopJnZycS0+dnJpbmdf
bWVtLCBfX1BBR0VfU0laRSwgcmluZ19zaXplKTsKPiAtICAgICAgIGlmICghdnJxLT52cmluZ19t
ZW0pIHsKPiArICAgICAgIGlmICh1a19wb3NpeF9tZW1hbGlnbihhLCAmdnJxLT52cmluZ19tZW0s
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19QQUdFX1NJWkUsIHJpbmdfc2l6ZSkg
IT0gMCkgewo+ICAgICAgICAgICAgICAgICB1a19wcl9lcnIoIkFsbG9jYXRpb24gb2YgdnJpbmcg
ZmFpbGVkXG4iKTsKPiAgICAgICAgICAgICAgICAgcmMgPSAtRU5PTUVNOwo+ICAgICAgICAgICAg
ICAgICBnb3RvIGVycl9mcmVldnE7Cj4gLS0KPiAyLjIwLjEKPgo+Cj4gX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBNaW5pb3MtZGV2ZWwgbWFpbGluZyBs
aXN0Cj4gTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbAoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcg
bGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Sat Feb 08 21:02:48 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 08 Feb 2020 21:02:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j0XFY-0008QZ-BT; Sat, 08 Feb 2020 21:02:48 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=jUpH=34=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j0XFX-0008QT-5Q
 for minios-devel@lists.xen.org; Sat, 08 Feb 2020 21:02:47 +0000
X-Inumbo-ID: 5b657b86-4ab6-11ea-b2cb-bc764e2007e4
Received: from mail-vk1-xa42.google.com (unknown [2607:f8b0:4864:20::a42])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5b657b86-4ab6-11ea-b2cb-bc764e2007e4;
 Sat, 08 Feb 2020 21:02:46 +0000 (UTC)
Received: by mail-vk1-xa42.google.com with SMTP id m195so765142vkh.10
 for <minios-devel@lists.xen.org>; Sat, 08 Feb 2020 13:02:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=QgbhD+2XCLTpMfMjhW53uELmPRD93v3dm16deAoPlQk=;
 b=K1UU+Y47IE0gj0az4jzpK+SgybYUYloJDJZJldSxvIeQ1VQd6E/DusuRmzpmNiVW/S
 C3iqoSiQeiQvv3CmZaHP84pCnadnXAP6ql+Z+/pP+p6tQKFxzyS18ZMtmEEOxeUnSKTB
 brSYYyr5sFq99liPUBe5ipr+J7MD8MzJ0Acd7l+1mn+Nq0Lf++NQgO304rxU+PnzaBD1
 Kv9O+85Rg1cQ5dnc3fPKyVDERev0Lpx/cOV+TNx4asKCyaQ13Yoz2nfkhz9acSS0JuaL
 vezL5qQct/wPD6M5s+W9ZZITwthIdlU8v6EZwuWPH4lQzpZ6vsIqZ7otortqX5545WfI
 tGJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=QgbhD+2XCLTpMfMjhW53uELmPRD93v3dm16deAoPlQk=;
 b=YYIlTyObn3DVvX4jFzLuDOjV/0Vq45hXqbo9IANeB2cyvpxqavpi1bOKNqyd1I68EH
 tocviXMMUgMEJQfTBOEp3ALI/OtEpdkImaZ4BZuu4rXbrSappl1IDtkUAJ3wVVfLSnES
 e+6/bUCNxygDlv3+yZTtFtBhEOwg1el6GIPg1vOaGZzUTnopli5DnM2Uk+sr1tJYh9DT
 LkX/bDWx4oROpDvsyozu6PmYnAkj1FhA8sjHGM4FxyTwoMr8hLzjoQK3xnUtHlfNEPF5
 oa7JdlsEUPczsx5riMh3yhzqjYoW1tJS9MPqgracJX3mpoMmsfgvzTmenflCcw6cLJxA
 zThg==
X-Gm-Message-State: APjAAAV/svivpNfr79Sqw02f23GVrCU77AjtA1dFJ+vql5N3e1dSCoXb
 rNYfQtPLpAu1hgtwhTaaXi0HEJrAV375DAgHggrnqfim
X-Google-Smtp-Source: APXvYqzNEuyQmixicX0nChSD8J+KkgCz76ENimyN6tef/DCgYOpe37EdOW93X2BXA4Nb6VRn4frHOfwNdyuzNpn1JrQ=
X-Received: by 2002:a1f:7cc2:: with SMTP id x185mr2812294vkc.1.1581195766331; 
 Sat, 08 Feb 2020 13:02:46 -0800 (PST)
MIME-Version: 1.0
References: <20200208104231.29644-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200208104231.29644-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Sat, 8 Feb 2020 22:02:35 +0100
Message-ID: <CAEX4t-OzQSZQZoNBCUxavXNpgRaca9ona7GGEt1d+0wDwR=10w@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/uksched: Add newlines at
 end of messages in sched.c
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCi0tIEZlbGlwZQoKUmV2aWV3ZWQtYnk6IEZl
bGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KCk9uIFNhdCwgRmViIDgsIDIwMjAg
YXQgMTE6NDIgQU0gU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+IHdyb3Rl
Ogo+Cj4gQWRkcyBuZXdsaW5lcyBhdCB0aGUgZW5kIG9mIG1lc3NhZ2VzIGluIHNjaGVkLmMuIFRo
ZSBtZXNzYWdlIGxldmVsIGlzCj4gYWxzbyBpbmNyZWFzZWQgZnJvbSB3YXJuaW5nIHRvIGVycm9y
IGJlY2F1c2UgdGhpbmdzIGFyZSBmYWlsaW5nLgo+Cj4gU2lnbmVkLW9mZi1ieTogU2ltb24gS3Vl
bnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+Cj4gLS0tCj4gIGxpYi91a3NjaGVkL3NjaGVk
LmMgfCAxNCArKysrKysrKy0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp
LCA2IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2xpYi91a3NjaGVkL3NjaGVkLmMgYi9s
aWIvdWtzY2hlZC9zY2hlZC5jCj4gaW5kZXggOTRhYzVhYWEuLjU5MDNmZTVhIDEwMDY0NAo+IC0t
LSBhL2xpYi91a3NjaGVkL3NjaGVkLmMKPiArKysgYi9saWIvdWtzY2hlZC9zY2hlZC5jCj4gQEAg
LTExOSw3ICsxMTksNyBAQCBzdHJ1Y3QgdWtfc2NoZWQgKnVrX3NjaGVkX2NyZWF0ZShzdHJ1Y3Qg
dWtfYWxsb2MgKmEsIHNpemVfdCBwcnZfc2l6ZSkKPgo+ICAgICAgICAgc2NoZWQgPSB1a19tYWxs
b2MoYSwgc2l6ZW9mKHN0cnVjdCB1a19zY2hlZCkgKyBwcnZfc2l6ZSk7Cj4gICAgICAgICBpZiAo
c2NoZWQgPT0gTlVMTCkgewo+IC0gICAgICAgICAgICAgICB1a19wcl93YXJuKCJDb3VsZCBub3Qg
YWxsb2NhdGUgc2NoZWR1bGVyLiIpOwo+ICsgICAgICAgICAgICAgICB1a19wcl93YXJuKCJGYWls
ZWQgdG8gYWxsb2NhdGUgc2NoZWR1bGVyXG4iKTsKPiAgICAgICAgICAgICAgICAgcmV0dXJuIE5V
TEw7Cj4gICAgICAgICB9Cj4KPiBAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyB2b2lkICpjcmVh
dGVfc3RhY2soc3RydWN0IHVrX2FsbG9jICphbGxvY2F0b3IpCj4KPiAgICAgICAgIHVrX3Bvc2l4
X21lbWFsaWduKGFsbG9jYXRvciwgJnN0YWNrLCBTVEFDS19TSVpFLCBTVEFDS19TSVpFKTsKPiAg
ICAgICAgIGlmIChzdGFjayA9PSBOVUxMKSB7Cj4gLSAgICAgICAgICAgICAgIHVrX3ByX3dhcm4o
IkVycm9yIGFsbG9jYXRpbmcgdGhyZWFkIHN0YWNrLiIpOwo+ICsgICAgICAgICAgICAgICB1a19w
cl9lcnIoIkZhaWxlZCB0byBhbGxvY2F0ZSB0aHJlYWQgc3RhY2tcbiIpOwo+ICAgICAgICAgICAg
ICAgICByZXR1cm4gTlVMTDsKPiAgICAgICAgIH0KPgo+IEBAIC0xNTUsOCArMTU1LDEwIEBAIHN0
YXRpYyB2b2lkICp1a190aHJlYWRfdGxzX2NyZWF0ZShzdHJ1Y3QgdWtfYWxsb2MgKmFsbG9jYXRv
cikKPiAgICAgICAgIHZvaWQgKnRsczsKPgo+ICAgICAgICAgaWYgKHVrX3Bvc2l4X21lbWFsaWdu
KGFsbG9jYXRvciwgJnRscywgdWthcmNoX3Rsc19hcmVhX2FsaWduKCksCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1a2FyY2hfdGxzX2FyZWFfc2l6ZSgpKSkKPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1a2FyY2hfdGxzX2FyZWFfc2l6ZSgpKSkgewo+ICsgICAgICAg
ICAgICAgICB1a19wcl9lcnIoIkZhaWxlZCB0byBhbGxvY2F0ZSB0aHJlYWQgVExTIGFyZWFcbiIp
Owo+ICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPiArICAgICAgIH0KPiAgICAgICAgIHVr
YXJjaF90bHNfYXJlYV9jb3B5KHRscyk7Cj4gICAgICAgICByZXR1cm4gdGxzOwo+ICB9Cj4gQEAg
LTE4OCw3ICsxOTAsNyBAQCB2b2lkIHVrX3NjaGVkX2lkbGVfaW5pdChzdHJ1Y3QgdWtfc2NoZWQg
KnNjaGVkLAo+ICAgICAgICAgcmV0dXJuOwo+Cj4gIG91dF9jcmFzaDoKPiAtICAgICAgIFVLX0NS
QVNIKCJFcnJvciBpbml0aWFsaXppbmcgdGhlIGlkbGUgdGhyZWFkLiIpOwo+ICsgICAgICAgVUtf
Q1JBU0goIkZhaWxlZCB0byBpbml0aWFsaXplIGBpZGxlYCB0aHJlYWRcbiIpOwo+ICB9Cj4KPiAg
c3RydWN0IHVrX3RocmVhZCAqdWtfc2NoZWRfdGhyZWFkX2NyZWF0ZShzdHJ1Y3QgdWtfc2NoZWQg
KnNjaGVkLAo+IEBAIC0yMDIsNyArMjA0LDcgQEAgc3RydWN0IHVrX3RocmVhZCAqdWtfc2NoZWRf
dGhyZWFkX2NyZWF0ZShzdHJ1Y3QgdWtfc2NoZWQgKnNjaGVkLAo+Cj4gICAgICAgICB0aHJlYWQg
PSB1a19tYWxsb2Moc2NoZWQtPmFsbG9jYXRvciwgc2l6ZW9mKHN0cnVjdCB1a190aHJlYWQpKTsK
PiAgICAgICAgIGlmICh0aHJlYWQgPT0gTlVMTCkgewo+IC0gICAgICAgICAgICAgICB1a19wcl93
YXJuKCJFcnJvciBhbGxvY2F0aW5nIG1lbW9yeSBmb3IgdGhyZWFkLiIpOwo+ICsgICAgICAgICAg
ICAgICB1a19wcl9lcnIoIkZhaWxlZCB0byBhbGxvY2F0ZSB0aHJlYWRcbiIpOwo+ICAgICAgICAg
ICAgICAgICBnb3RvIGVycjsKPiAgICAgICAgIH0KPgo+IEBAIC0yNzcsNSArMjc5LDUgQEAgdm9p
ZCB1a19zY2hlZF90aHJlYWRfZXhpdCh2b2lkKQo+ICAgICAgICAgdGhyZWFkID0gdWtfdGhyZWFk
X2N1cnJlbnQoKTsKPiAgICAgICAgIFVLX0FTU0VSVCh0aHJlYWQtPnNjaGVkKTsKPiAgICAgICAg
IHVrX3NjaGVkX3RocmVhZF9yZW1vdmUodGhyZWFkLT5zY2hlZCwgdGhyZWFkKTsKPiAtICAgICAg
IFVLX0NSQVNIKCJFcnJvciBzdG9wcGluZyB0aHJlYWQuIik7Cj4gKyAgICAgICBVS19DUkFTSCgi
RmFpbGVkIHRvIHN0b3AgdGhlIHRocmVhZFxuIik7Cj4gIH0KPiAtLQo+IDIuMjAuMQo+Cj4KPiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IE1pbmlvcy1k
ZXZlbCBtYWlsaW5nIGxpc3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBo
dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Sat Feb 08 21:03:02 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 08 Feb 2020 21:03:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j0XFm-0008RS-Ds; Sat, 08 Feb 2020 21:03:02 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=jUpH=34=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j0XFk-0008RL-BJ
 for minios-devel@lists.xen.org; Sat, 08 Feb 2020 21:03:00 +0000
X-Inumbo-ID: 633e9af4-4ab6-11ea-a759-bc764e2007e4
Received: from mail-vk1-xa41.google.com (unknown [2607:f8b0:4864:20::a41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 633e9af4-4ab6-11ea-a759-bc764e2007e4;
 Sat, 08 Feb 2020 21:02:59 +0000 (UTC)
Received: by mail-vk1-xa41.google.com with SMTP id g7so761267vkl.12
 for <minios-devel@lists.xen.org>; Sat, 08 Feb 2020 13:02:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=MzSNRroyvhrX4p4VNxX3zZuGQA8tqU39AFu4f0ANZkg=;
 b=UzB+k6MQqAvjz3NkkHBM+fEWp6E/FAamVVa6Hwin94IMY/8wb6g4BgjVJ0yfU2QIPD
 yelwyA6uvio4SRTKHME0+cVIpJMMYDJKm1FsQZ1Qf0S2IEsStEfUBvT1iX3N4o+sqkV/
 GckqvEtaoPgTeNszeCwdsOGFZPbMzfGrgkoKhUVCrAVL/g1AepUfhW+CqfjplswiYv1F
 45LcBOXlgoNHi60EbDA0DXU7i5APyWAMKB8EH8GNwVFlQTKcZEUpsmuk/AzSzfSYVyMS
 PeIo5TP3EHJdB15llKd0sh/pq10v/NuRaWbjwJ2DzopF92hK7wISxqicHempfzfwJd68
 +YCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=MzSNRroyvhrX4p4VNxX3zZuGQA8tqU39AFu4f0ANZkg=;
 b=MNsI72EyyhkzJPSfxya+YJ5r2Xg7SHHbz86WqP54BTJJ1SKhxn2bMhcJkpOgPpdHjv
 Wja96wrd4Y91kY6y85k2BBeTu6Al4l1G8DJlVQku6oYQvNH+Mm0cKThnEa7sHdGy+/1U
 0Q0pqTTKNFFetprRHDFPa5+mzLzt2e9frFS3XHqhfL1QQtC/4UgwNZfxrnKp9hqnbOV8
 slq9m6FZNhT82SzeaxAd5P+6Xw+PeNuTDljDS6WIPMd67Yk4IPMVRXg8/VMcI5V+s3M2
 /Txt/fdo/PnJmUxi9M2bTzdIkX8YgFWgUbhrarXtWJn3Pc3NChQc/d2Lxggp7eKssV/A
 I9yw==
X-Gm-Message-State: APjAAAU6n19wNincn7BLMwrzhj8l4xlP4eS8nuWXoKnLZg7ROmvpca2Q
 KX0YPHbGtI9iqQ1vOUDc6AL5a+Vp0uj+oY1BjcaR7qB2
X-Google-Smtp-Source: APXvYqwNyFdz+P0947569D/Za+N/0iuG6kv6LhTHjfGx90Ab4EaBg6iSvVR2dlYn787/3RwO8d+ENaS1zr6cZf+tydw=
X-Received: by 2002:a1f:9785:: with SMTP id z127mr2862322vkd.48.1581195779505; 
 Sat, 08 Feb 2020 13:02:59 -0800 (PST)
MIME-Version: 1.0
References: <20200208104714.30472-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200208104714.30472-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Sat, 8 Feb 2020 22:02:48 +0100
Message-ID: <CAEX4t-PkrCTo47tZ0p4RVoHCYVJgDmF7N+EhW1gjCZyL_QD92A@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Fix error handling with
 uk_posix_memalign()
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCi0tIEZlbGlwZQoKUmV2aWV3ZWQtYnk6IEZl
bGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KCk9uIFNhdCwgRmViIDgsIDIwMjAg
YXQgMTE6NDcgQU0gU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+IHdyb3Rl
Ogo+Cj4gSW4gdGhlIGNhc2VzIG9mIGZhaWxlZCBhbGxvY2F0aW9uLCBgdWtfcG9zaXhfbWVtYWxp
Z24oKWAgaXMgcmV0dXJuaW5nCj4gYW4gZXJybm8gbnVtYmVyIGJ1dCBkb2VzIG5vdCBjaGFuZ2Ug
YG1lbXB0cmAuIEluc3RlYWQgb2YgY2hlY2tpbmcKPiBgbWVtcHRyYCBiZWluZyBOVUxMLCB3ZSB0
ZXN0IGZhaWx1cmVzIHdpdGggYHVrX3Bvc2l4X21lbWFsaWduKClgJ3MKPiByZXR1cm4gY29kZXMu
Cj4KPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5l
dT4KPiAtLS0KPiAgZ2x1ZS5jIHwgNSArKy0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp
b25zKCspLCAzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2dsdWUuYyBiL2dsdWUuYwo+
IGluZGV4IGQ4ZGQ2OTUuLjMwMWIwZGIgMTAwNjQ0Cj4gLS0tIGEvZ2x1ZS5jCj4gKysrIGIvZ2x1
ZS5jCj4gQEAgLTI5Niw5ICsyOTYsOCBAQCB2b2lkICphbGxvY19zdGFjaygpCj4gICAgICAgICBz
dHJ1Y3QgdWtfc2NoZWQgKnNjaGVkID0gdWtfc2NoZWRfZ2V0X2RlZmF1bHQoKTsKPiAgICAgICAg
IHZvaWQgKnN0YWNrOwo+Cj4gLSAgICAgICB1a19wb3NpeF9tZW1hbGlnbihzY2hlZC0+YWxsb2Nh
dG9yLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgJnN0YWNrLCBfX1NUQUNLX1NJWkUsIF9f
U1RBQ0tfU0laRSk7Cj4gLSAgICAgICBpZiAoc3RhY2sgPT0gTlVMTCkKPiArICAgICAgIGlmICh1
a19wb3NpeF9tZW1hbGlnbihzY2hlZC0+YWxsb2NhdG9yLCAmc3RhY2ssCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX19TVEFDS19TSVpFLCBfX1NUQUNLX1NJWkUpICE9IDApCj4gICAg
ICAgICAgICAgICAgIHByaW50ZigiZXJyb3IgYWxsb2NhdGluZyBzdGFja1xuIik7Cj4gICAgICAg
ICByZXR1cm4gc3RhY2s7Cj4gIH0KPiAtLQo+IDIuMjAuMQo+Cj4KPiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxp
c3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhl
bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVsCgpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBs
aXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 10 12:19:39 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 10 Feb 2020 12:19:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j182J-0000ZQ-JR; Mon, 10 Feb 2020 12:19:35 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=wfj5=36=arm.com=jianyong.wu@srs-us1.protection.inumbo.net>)
 id 1j182H-0000ZL-Mn
 for minios-devel@lists.xenproject.org; Mon, 10 Feb 2020 12:19:33 +0000
X-Inumbo-ID: 968ab902-4bff-11ea-852a-bc764e2007e4
Received: from EUR05-VI1-obe.outbound.protection.outlook.com (unknown
 [2a01:111:f400:7d00::627])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 968ab902-4bff-11ea-852a-bc764e2007e4;
 Mon, 10 Feb 2020 12:19:31 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; 
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gFkCSSi5Suy8Q6zWj4CIsvIVFlx4rUFrk1s3XkUhEbI=;
 b=6bbkMnQucS3TjJaY6TzYOP6OuH2O54quIZT09k8uTyP9DFdsjNPEtt0rAWzroPzH9rSitHs6S1wznZh/IzIs2BCL06lzhbktBbSVBJEiuN8Mo8dvvljounaR2ez2EUDTYY09PD24MJyQDyQp8Gxn04AA4ScA5/PBTq+i4b77T5g=
Received: from VI1PR08CA0120.eurprd08.prod.outlook.com (2603:10a6:800:d4::22)
 by AM5PR0801MB1843.eurprd08.prod.outlook.com (2603:10a6:203:3a::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21; Mon, 10 Feb
 2020 12:19:28 +0000
Received: from AM5EUR03FT017.eop-EUR03.prod.protection.outlook.com
 (2a01:111:f400:7e08::200) by VI1PR08CA0120.outlook.office365.com
 (2603:10a6:800:d4::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.24 via Frontend
 Transport; Mon, 10 Feb 2020 12:19:28 +0000
Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; lists.xenproject.org; dkim=pass (signature was
 verified) header.d=armh.onmicrosoft.com;lists.xenproject.org;
 dmarc=bestguesspass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM5EUR03FT017.mail.protection.outlook.com (10.152.16.89) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2665.18 via Frontend Transport; Mon, 10 Feb 2020 12:19:28 +0000
Received: ("Tessian outbound d1ceabc7047e:v42");
 Mon, 10 Feb 2020 12:19:27 +0000
X-CR-MTA-TID: 64aa7808
Received: from 32cbd72089ee.2
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 D237E7F8-32C8-4B61-BC5C-D14C585DB487.1; 
 Mon, 10 Feb 2020 12:19:22 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 32cbd72089ee.2
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 10 Feb 2020 12:19:22 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=cqlDjSZ2eDc2CZA413KKzndc4uJb/HEGYYtAJZvtV01g0f1Yw7XqdR8sclE2Njze461y6Fv/TxdbwgsrZCeA310mBCg1yLk04Wzzm/jTGX+2P6FSeU+5VjdF4TMYMOixrVBn1o3aZHYn3sy8jxOFItryw0INKp0GrFjc/8pVEmx9ZOIJkwB56zNFSLlSw/0hk8adL/a9Nd6wbn/eT5fIwjv35oBYitQLBLO+s6hIObwHmYYVUIVOD2Taq0L3emctK61O32dmrs6t0eRM3NF+0ECVhj5TZ86bycyI0xFxlp0woBBoJKgSJtNxX0YG3vrYueJhrgp9WlNoQ2SnWWpggw==
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=gFkCSSi5Suy8Q6zWj4CIsvIVFlx4rUFrk1s3XkUhEbI=;
 b=L14zJJX+xh5DXCsNg6i6+jtXseSo52r/VQOMH2kqrPw1erF0HguhBlpUt/7PF1goxCs2hvs9o9+CKk62Yz36R/RUlbmtrYQSKORI+tZ6Exl8ZD0zpDpydOsXfgEAUaBiSVR+ICIcJFCJtctzafOZUaEpOxOs8RlJhnwEQZQtbtdegXr7tL9mTnB/JcCXvIzXv9oTsGwjSuw8yi/0DU3/wt8bWTsmJzoLTOEz9tPTuHYeuasPGvqC93gTY3HZl8xSbC9tdTFVydYsC2+cqYB8p+jxo6fV2AedJp1DNO8U4zvWzmNl8hmMVymIX+qPJJ5LDi6PwZdKoBbScmSXdwBMww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; 
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gFkCSSi5Suy8Q6zWj4CIsvIVFlx4rUFrk1s3XkUhEbI=;
 b=6bbkMnQucS3TjJaY6TzYOP6OuH2O54quIZT09k8uTyP9DFdsjNPEtt0rAWzroPzH9rSitHs6S1wznZh/IzIs2BCL06lzhbktBbSVBJEiuN8Mo8dvvljounaR2ez2EUDTYY09PD24MJyQDyQp8Gxn04AA4ScA5/PBTq+i4b77T5g=
Received: from HE1PR0801MB1676.eurprd08.prod.outlook.com (10.168.146.150) by
 HE1PR0801MB1980.eurprd08.prod.outlook.com (10.168.94.150) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2707.25; Mon, 10 Feb 2020 12:19:20 +0000
Received: from HE1PR0801MB1676.eurprd08.prod.outlook.com
 ([fe80::49c0:e8df:b9be:724f]) by HE1PR0801MB1676.eurprd08.prod.outlook.com
 ([fe80::49c0:e8df:b9be:724f%8]) with mapi id 15.20.2707.028; Mon, 10 Feb 2020
 12:19:19 +0000
From: Jianyong Wu <Jianyong.Wu@arm.com>
To: "minios-devel@lists.xenproject.org" <minios-devel@lists.xenproject.org>,
 "sharan.santhanam@neclab.eu" <sharan.santhanam@neclab.eu>,
 "simon.kuenzer@neclab.eu" <simon.kuenzer@neclab.eu>,
 "Santiago.Pagani@neclab.eu" <Santiago.Pagani@neclab.eu>
Thread-Topic: [PATCH 1/2] enable rtc pl031 for arm
Thread-Index: AQHVnPzfe4v0mQBl+UuwBaRMcV16w6gU3l8g
Date: Mon, 10 Feb 2020 12:19:19 +0000
Message-ID: <HE1PR0801MB16765635A3088BD51D103EA6F4190@HE1PR0801MB1676.eurprd08.prod.outlook.com>
References: <20191117040935.22718-1-jianyong.wu@arm.com>
 <20191117040935.22718-2-jianyong.wu@arm.com>
In-Reply-To: <20191117040935.22718-2-jianyong.wu@arm.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ts-tracking-id: 1e74e867-940f-40f0-8f24-85c12f37f913.1
x-checkrecipientchecked: true
Authentication-Results-Original: spf=none (sender IP is )
 smtp.mailfrom=Jianyong.Wu@arm.com; 
x-originating-ip: [113.29.88.7]
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-HT: Tenant
X-MS-Office365-Filtering-Correlation-Id: 1a418758-b0b9-45ac-84ec-08d7ae237977
X-MS-TrafficTypeDiagnostic: HE1PR0801MB1980:|HE1PR0801MB1980:|AM5PR0801MB1843:
x-ms-exchange-transport-forked: True
X-Microsoft-Antispam-PRVS: <AM5PR0801MB1843B9F501C08954F75AFAE1F4190@AM5PR0801MB1843.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508;
x-forefront-prvs: 03094A4065
X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;
 SFS:(10009020)(4636009)(376002)(136003)(346002)(39860400002)(396003)(366004)(199004)(189003)(7696005)(2906002)(186003)(110136005)(81166006)(8936002)(8676002)(316002)(478600001)(55016002)(81156014)(5660300002)(4326008)(71200400001)(26005)(6506007)(66446008)(66946007)(66476007)(64756008)(66556008)(53546011)(33656002)(86362001)(9686003)(76116006)(55236004)(52536014);
 DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB1980;
 H:HE1PR0801MB1676.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: arm.com does not designate
 permitted sender hosts)
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original: OU2r8l2SAn620y5Ad3GMeEFuseEolNQsUn2CqDDC9DrFNYTNuUDxkANRG6PM64XDW1VwCpPHMWfkRYdjcWAeYVGsGp2FMqVd8utCiX2Zd28USW+fzvTHYiqn1Js3Hpn3Ni0DDU3X3eJ1RyPRPfo1e9O/qtO6jZ200PC8XK4WFZdBre/58Cv3XTnAhngO0dBROeBvavURp+HgL7I0vQaun/e+6qnJYzvDOAmPBLNKj7f6QezAXP76sEcFOFX7yGONiwvq7rZEgFSmV8JsjF2NpkegqJNER1ypMCjzvq2Ee3SSfS5yd5mwkc6cLLFYpiR2psm+cC57H+1s9jYMF+ca5FWY1oqI+iN0CSxQF2QDm5kTnQHj00iMZmZbdJszWTIGKTRA7K8TGJqwnfx6gKdCW8nrSo/e/P6cXRHZTB/it7+Qz4iRLWsJlqIrPrNz8rD+
x-ms-exchange-antispam-messagedata: jdcMVf1qE9t5hCWT8CXj4ZmcQ2wKmeUViuajOfJznIQarxWHQ42EliWbhrQONYAHCCEnXMzp94F/WMGDNOYBB+DCq8BRVRBEfnu8bIH9MBx1e3z+s/rhfzXP1mOnuz1ufLDYKUczvy1EFCs6DRFH6A==
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1980
Original-Authentication-Results: spf=none (sender IP is )
 smtp.mailfrom=Jianyong.Wu@arm.com; 
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT017.eop-EUR03.prod.protection.outlook.com
X-Forefront-Antispam-Report: CIP:63.35.35.123; IPV:CAL; SCL:-1; CTRY:IE;
 EFV:NLI; SFV:NSPM;
 SFS:(10009020)(4636009)(39860400002)(396003)(376002)(136003)(346002)(199004)(189003)(7696005)(26826003)(478600001)(336012)(356004)(110136005)(4326008)(316002)(36906005)(8936002)(8676002)(55016002)(52536014)(81156014)(5660300002)(9686003)(81166006)(70586007)(70206006)(33656002)(26005)(186003)(53546011)(6506007)(86362001)(2906002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0801MB1843;
 H:64aa7808-outbound-1.mta.getcheckrecipient.com; FPR:; SPF:Pass; LANG:en;
 PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; A:1; MX:1; 
X-MS-Office365-Filtering-Correlation-Id-Prvs: dc36a13b-bb50-4d8e-4e92-08d7ae23749a
X-Forefront-PRVS: 03094A4065
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: akdU7VhOwB+pE9f4cs36wlMGbuLHKjAxVPLzB2v38stdTIeUg4sWgPJYJbtD6itdOFb6OraLdZR/A2jzgVrEdPXUTAhH9YWzOulcRrbwFQA38rWGVbprQp2nIN93qLFgKeh/sbXYjAHk070ecsaalPtMoXl8AGQJObkz+5WZP49YViRjljswqtR4Xv/hthUJG2IGSfDCWAvj7RBneO2FchisIH6TWysi6PGKkRHvKEqsy2Qs6YSrhmpIko6GARnsT1jgKA3hQq4jESkyYG2DYtXwxMvfjLtNDHZ9kxyf3tG24iucR65F2dqaARF4Ro+hGB3FP1/7wzsa9jWQIYlZvtzctYR8CK4IjykREd2qFSeKx+oYUut8pSXPRK9IL6pBbNUOnDAHvPiT6L+re+bephD3TlZ0l/Rzj1hB41zfcQb9G6+R+9VaEXr6HNZcw/6v
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2020 12:19:28.0528 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a418758-b0b9-45ac-84ec-08d7ae237977
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123];
 Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1843
Subject: Re: [Minios-devel] [PATCH 1/2] enable rtc pl031 for arm
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Justin He <Justin.He@arm.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGksCgpBbnkgY29tbWVudHMgZm9yIHRoaXM/CgpUaGFua3MKSmlhbnlvbmcKCj4gLS0tLS1Pcmln
aW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBKaWFueW9uZyBXdSA8amlhbnlvbmcud3VAYXJtLmNv
bT4KPiBTZW50OiBTdW5kYXksIE5vdmVtYmVyIDE3LCAyMDE5IDEyOjEwIFBNCj4gVG86IG1pbmlv
cy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgc2hhcmFuLnNhbnRoYW5hbUBuZWNsYWIuZXU7
Cj4gc2ltb24ua3VlbnplckBuZWNsYWIuZXU7IFNhbnRpYWdvLlBhZ2FuaUBuZWNsYWIuZXUKPiBD
YzogSnVzdGluIEhlIChBcm0gVGVjaG5vbG9neSBDaGluYSkgPEp1c3Rpbi5IZUBhcm0uY29tPjsg
SmlhbnlvbmcgV3UKPiAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIDxKaWFueW9uZy5XdUBhcm0uY29t
Pgo+IFN1YmplY3Q6IFtQQVRDSCAxLzJdIGVuYWJsZSBydGMgcGwwMzEgZm9yIGFybQo+Cj4gQ3Vy
cmVudGx5LCBhcyBydGMgaXMgbm90IGVuYWJsZWQgaW4gYXJtLCB3YWxsIHRpbWUgY2FuJ3QgYmUg
b2ZmZXJlZCBjdXJyZWN0bHkuCj4gcGwwMzEgaXMgY2hvc2VuIGFzIHRoZSBydGMgZGV2aWNlIGZv
ciBhcm0uCj4gTmVhcmx5IGFsbCBvZiB0aGUgZnVuY3Rpb24gdGhlIGRldmljZSBvZmZlcnMgaGFz
IGJlZW4gaW1wbGVtZW50ZWQuCj4gLS0tCj4gIHBsYXQvY29tbW9uL2FybS9ydGMuYyAgICAgfCAx
NDQKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBwbGF0L2NvbW1v
bi9pbmNsdWRlL3J0Yy5oIHwgIDQ1ICsrKysrKysrKysrKwo+ICBwbGF0L2t2bS9NYWtlZmlsZS51
ayAgICAgIHwgICAxICsKPiAgcGxhdC9rdm0vYXJtL3NldHVwLmMgICAgICB8ICAgMyArCj4gIDQg
ZmlsZXMgY2hhbmdlZCwgMTkzIGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHBs
YXQvY29tbW9uL2FybS9ydGMuYyAgY3JlYXRlIG1vZGUgMTAwNjQ0Cj4gcGxhdC9jb21tb24vaW5j
bHVkZS9ydGMuaAo+Cj4gZGlmZiAtLWdpdCBhL3BsYXQvY29tbW9uL2FybS9ydGMuYyBiL3BsYXQv
Y29tbW9uL2FybS9ydGMuYyBuZXcgZmlsZSBtb2RlCj4gMTAwNjQ0IGluZGV4IDAwMDAwMDAuLjcz
YTI3MTYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvcGxhdC9jb21tb24vYXJtL3J0Yy5jCj4gQEAg
LTAsMCArMSwxNDQgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVz
ZSAqLwo+ICsvKgo+ICsgKiBBdXRob3JzOiBXZWkgQ2hlbiA8V2VpLkNoZW5AYXJtLmNvbT4KPiAr
ICogICAgICAgICAgSmlhbnlvbmcgV3UgPEppYW55b25nLld1QGFybS5jb20+Cj4gKyAqCj4gKyAq
IENvcHlyaWdodCAoYykgMjAxOCwgQXJtIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KPiArICoK
PiArICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Cj4gKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwo+ICsgKiBhcmUgbWV0Ogo+ICsgKgo+ICsg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAo+ICsgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCj4gKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cj4gKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKPiArICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KPiArICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0
aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwo+ICsgKiAgICBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQo+ICsgKiAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgo+ICsgKgo+ICsgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQKPiBDT05UUklCVVRPUlMgIkFTIElTIgo+ICsgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKPiBM
SU1JVEVECj4gK1RPLCBUSEUKPiArICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQQo+IFBBUlRJQ1VMQVIKPiArUFVSUE9TRQo+ICsgKiBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKPiAr
Q09OVFJJQlVUT1JTIEJFCj4gKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKPiBPUgo+ICsgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAo+IFBST0NVUkVNRU5UIE9GCj4g
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUgo+ICtCVVNJTkVTUwo+ICsgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKPiBXSEVUSEVSCj4gK0lOCj4gKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
Ugo+ICtPVEhFUldJU0UpCj4gKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCj4gQURWSVNFRAo+ICtPRiBUSEUKPiArICogUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCj4gKyAqCj4gKyAqIFRISVMgSEVBREVSIE1BWSBOT1QgQkUg
RVhUUkFDVEVEIE9SIE1PRElGSUVEIElOIEFOWSBXQVkuCj4gKyAqLwo+ICsjaW5jbHVkZSA8c3Ry
aW5nLmg+Cj4gKyNpbmNsdWRlIDxsaWJmZHQuaD4KPiArI2luY2x1ZGUgPHVrL2Fzc2VydC5oPgo+
ICsjaW5jbHVkZSA8dWsvZXNzZW50aWFscy5oPgo+ICsjaW5jbHVkZSA8dWsvcHJpbnQuaD4KPiAr
I2luY2x1ZGUgPGFybS9jcHUuaD4KPiArI2luY2x1ZGUgPG9mdy9mZHQuaD4KPiArI2luY2x1ZGUg
PHN0ZGlvLmg+Cj4gKwo+ICtzdGF0aWMgdWludDY0X3QgcnRjX2Jhc2VfYWRkcjsKPiArdWludDMy
X3QgcnRjX2Jvb3Rfc2Vjb25kczsKPiArCj4gKy8qIERlZmluZSBvZmZzZXQgb2YgUlRDIHJlZ2lz
dGVycyAqLwo+ICsjZGVmaW5lIFJUQ19SRUdfRFIwCj4gKyNkZWZpbmUgUlRDX1JFR19NUjB4NAo+
ICsjZGVmaW5lIFJUQ19SRUdfTFIweDgKPiArI2RlZmluZSBSVENfUkVHX0NSMHhjCj4gKyNkZWZp
bmUgUlRDX1JFR19JTVNDMHgxMAo+ICsjZGVmaW5lIFJUQ19SRUdfUklTMHgxNAo+ICsjZGVmaW5l
IFJUQ19SRUdfTUlTMHgxOAo+ICsjZGVmaW5lIFJUQ19SRUdfSUNSMHgxYwo+ICsKPiArI2RlZmlu
ZSBSVENfUkVHKHIpKHJ0Y19iYXNlX2FkZHIgKyAocikpCj4gKwo+ICtzdGF0aWMgY29uc3QgY2hh
ciAqcnRjX2RldmljZV9saXN0W10gPSB7Cj4gKyJhcm0scGwwMzEiLAo+ICt9Owo+ICsKPiArc3Rh
dGljIHVpbnQzMl90IHJ0Y19yZWFkKHZvaWQpCj4gK3sKPiArcmV0dXJuIGlvcmVnX3JlYWQzMihS
VENfUkVHKFJUQ19SRUdfRFIpKTsKPiArfQo+ICsKPiArLyoKPiArICogc2V0IHJ0YyBtYXRjaCBy
ZWdpc3RlciBjb21wYXJpbmcgd2l0aCBjb3VudGVyCj4gKyAqIHZhbHVlIHRvIGdlbmVyYXQgYSBp
bnRlcnJ1cHQKPiArICovCj4gK3ZvaWQgcnRjX3NldF9tYXRjaCh1aW50MzJfdCBhbGFtKQo+ICt7
Cj4gK2lvcmVnX3dyaXRlMzIoUlRDX1JFRyhSVENfUkVHX01SKSwgYWxhbSk7IH0KPiArCj4gK3Zv
aWQgcnRjX3VwZGF0ZSh1aW50MzJfdCB2YWwpCj4gK3sKPiAraW9yZWdfd3JpdGUzMihSVENfUkVH
KFJUQ19SRUdfTFIpLCB2YWwpOyB9Cj4gKwo+ICt2b2lkIHJ0Y19lbmFibGUodm9pZCkKPiArewo+
ICtpb3JlZ193cml0ZTMyKFJUQ19SRUcoUlRDX1JFR19DUiksIDEpOyB9Cj4gKwo+ICsvKiByZXR1
cm4gcnRjIHN0YXR1cywgMSBkZW5vdGVzIGVuYWJsZSBhbmQgMCBkZW5vdGVzIGRpc2FibGUgKi8K
PiArdWludDMyX3QgcnRjX2dldF9zdGF0dXModm9pZCkgewo+ICt1aW50MzJfdCB2YWw7Cj4gKwo+
ICt2YWwgPSBpb3JlZ19yZWFkMzIoUlRDX1JFRyhSVENfUkVHX0NSKSk7Cj4gK3ZhbCAmPSAweDE7
Cj4gK3JldHVybiB2YWw7Cj4gK30KPiArCj4gKy8qIG1hc2sgYWxhbSAqLwo+ICt2b2lkIHJ0Y19t
YXNrX2ludHIodm9pZCkKPiArewo+ICtpb3JlZ193cml0ZTMyKFJUQ19SRUcoUlRDX1JFR19JTVND
KSwgMSk7IH0KPiArCj4gKy8qIGNsZWFyIGFsYW0gbWFzayAqLwo+ICt2b2lkIHJ0Y191bm1hc2tf
aW50cih2b2lkKQo+ICt7Cj4gK2lvcmVnX3dyaXRlMzIoUlRDX1JFRyhSVENfUkVHX0lNU0MpLCAw
KTsgfQo+ICsKPiArLyogcmV0dXJuIHRoZSByYXcgc3RhdGUgb2YgcnRjIGludGVycnVwdCBiZWZv
cmUgbWFza2luZyovIHVpbnQzMl90Cj4gK3J0Y19nZXRfaW50cl9yYXdfc3RhdGUodm9pZCkgewo+
ICtyZXR1cm4gaW9yZWdfcmVhZDMyKFJUQ19SRUcoUlRDX1JFR19SSVMpKTsKPiArfQo+ICsKPiAr
LyogcmV0dXJuIGludGVycnVwdCBzdGF0ZSBhZnRlciBpbnRlcnJ1cHQgbWFza2luZyAqLyB1aW50
MzJfdAo+ICtydGNfZ2V0X2ludHJfc3RhdGUodm9pZCkgewo+ICtyZXR1cm4gaW9yZWdfcmVhZDMy
KFJUQ19SRUcoUlRDX1JFR19NSVMpKTsKPiArfQo+ICsKPiArdm9pZCBydGNfY2xlYXJfaW50cih2
b2lkKQo+ICt7Cj4gK2lvcmVnX3dyaXRlMzIoUlRDX1JFRyhSVENfUkVHX0lDUiksIDEpOyB9Cj4g
Kwo+ICt2b2lkIF9kdGJfaW5pdF9ydGModm9pZCAqZHRiKQo+ICt7Cj4gK3VpbnQ2NF90IHNpemU7
Cj4gK2ludCBmZHRfcnRjLCByZXQ7Cj4gKwo+ICt1a19wcl9pbmZvKCJQcm9iaW5nIFJUQy4uLlxu
Iik7Cj4gK2ZkdF9ydGMgPSBmZHRfbm9kZV9vZmZzZXRfYnlfY29tcGF0aWJsZV9saXN0KGR0Yiwg
LTEsIHJ0Y19kZXZpY2VfbGlzdCk7Cj4gK2lmIChmZHRfcnRjIDwgMCkKPiArVUtfQ1JBU0goIkNv
dWxkIG5vdCBmaW5kIHJ0YyBkZXZpY2UhXG4iKTsKPiArCj4gK3JldCA9IGZkdF9nZXRfYWRkcmVz
cyhkdGIsIGZkdF9ydGMsIDAsICZydGNfYmFzZV9hZGRyLCAmc2l6ZSk7Cj4gK2lmIChyZXQgPCAw
KQo+ICtVS19DUkFTSCgiQ291bGQgbm90IGdldCBydGMgYWRkcmVzc1xuIik7Cj4gKwo+ICsvKiBS
ZWNvcmQgdGhlIGJvb3Qgc2Vjb25kcyAqLwo+ICtydGNfYm9vdF9zZWNvbmRzID0gcnRjX3JlYWQo
KTsKPiArCj4gK3VrX3ByX2luZm8oIkZvdW5kIFJUQyBvbjogJXBcbiIsIHJ0Y19iYXNlX2FkZHIp
OyB9Cj4gZGlmZiAtLWdpdCBhL3BsYXQvY29tbW9uL2luY2x1ZGUvcnRjLmggYi9wbGF0L2NvbW1v
bi9pbmNsdWRlL3J0Yy5oIG5ldyBmaWxlCj4gbW9kZSAxMDA2NDQgaW5kZXggMDAwMDAwMC4uYjc2
NGMzMgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9wbGF0L2NvbW1vbi9pbmNsdWRlL3J0Yy5oCj4g
QEAgLTAsMCArMSw0NSBAQAo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xh
dXNlICovCj4gKy8qCj4gKyAqIEF1dGhvcnM6IFdlaSBDaGVuIDxXZWkuQ2hlbkBhcm0uY29tPgo+
ICsgKiAgICAgICAgICBKaWFueW9uZyBXdSA8SmlhbnlvbmcuV3VAYXJtLmNvbT4KPiArICoKPiAr
ICogQ29weXJpZ2h0IChjKSAyMDE5LCBBcm0gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgo+ICsg
Kgo+ICsgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKPiArICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCj4gKyAqIGFyZSBtZXQ6Cj4gKyAqCj4g
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Cj4gKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KPiArICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKPiArICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQo+ICsgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgo+ICsgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9m
IHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzCj4gKyAqICAgIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCj4gKyAqICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCj4gKyAqCj4gKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORAo+IENPTlRSSUJVVE9SUyAiQVMgSVMiCj4gKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAo+
IExJTUlURUQKPiArVE8sIFRIRQo+ICsgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBCj4gUEFSVElDVUxBUgo+ICtQVVJQT1NFCj4gKyAqIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgo+
ICtDT05UUklCVVRPUlMgQkUKPiArICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAo+IE9SCj4gKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCj4gUFJPQ1VSRU1FTlQgT0YK
PiArICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SCj4gK0JVU0lORVNTCj4gKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAo+IFdIRVRIRVIKPiArSU4KPiArICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SCj4gK09USEVSV0lTRSkKPiArICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKPiBBRFZJU0VECj4gK09GIFRIRQo+ICsgKiBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KPiArICoKPiArICogVEhJUyBIRUFERVIgTUFZIE5PVCBC
RSBFWFRSQUNURUQgT1IgTU9ESUZJRUQgSU4gQU5ZIFdBWS4KPiArICovCj4gKwo+ICsjaWZuZGVm
IF9fUExBVF9DTU5fQVJNX1JUQ19IX18KPiArI2RlZmluZSBfX1BMQVRfQ01OX0FSTV9SVENfSF9f
Cj4gKwo+ICsjaW5jbHVkZSA8c3RkaW50Lmg+Cj4gKwo+ICtleHRlcm4gdWludDMyX3QgcnRjX2Jv
b3Rfc2Vjb25kczsKPiArCj4gK2ludCBfZHRiX2luaXRfcnRjKHZvaWQgKmR0Yik7Cj4gKwo+ICsj
ZW5kaWYgLy9fX1BMQVRfQ01OX0FSTV9HSUNWMl9IX18KPiBkaWZmIC0tZ2l0IGEvcGxhdC9rdm0v
TWFrZWZpbGUudWsgYi9wbGF0L2t2bS9NYWtlZmlsZS51ayBpbmRleAo+IGM5MDBkNDUuLjIzMTg3
ZmIgMTAwNjQ0Cj4gLS0tIGEvcGxhdC9rdm0vTWFrZWZpbGUudWsKPiArKysgYi9wbGF0L2t2bS9N
YWtlZmlsZS51awo+IEBAIC03NCw2ICs3NCw3IEBAIGVuZGlmCj4gIGlmZXEgKCQoZmluZHN0cmlu
ZyB5LCQoQ09ORklHX0tWTV9LRVJORUxfU0VSSUFMX0NPTlNPTEUpCj4gJChDT05GSUdfS1ZNX0RF
QlVHX1NFUklBTF9DT05TT0xFKSkseSkKPiAgTElCS1ZNUExBVF9TUkNTLSQoQ09ORklHX0FSQ0hf
QVJNXzY0KSArPQo+ICQoVUtfUExBVF9DT01NT05fQkFTRSkvYXJtL3BsMDExLmN8Y29tbW9uCj4g
IGVuZGlmCj4gK0xJQktWTVBMQVRfU1JDUy0kKENPTkZJR19BUkNIX0FSTV82NCkgKz0KPiArJChV
S19QTEFUX0NPTU1PTl9CQVNFKS9hcm0vcnRjLmN8Y29tbW9uCj4gIExJQktWTVBMQVRfU1JDUy0k
KENPTkZJR19BUkNIX0FSTV82NCkgKz0KPiAkKFVLX1BMQVRfQ09NTU9OX0JBU0UpL2FybS9jcHVf
bmF0aXZlLmN8Y29tbW9uCj4gIExJQktWTVBMQVRfU1JDUy0kKENPTkZJR19BUkNIX0FSTV82NCkg
Kz0KPiAkKFVLX1BMQVRfQ09NTU9OX0JBU0UpL2FybS9jYWNoZTY0LlN8Y29tbW9uCj4gIExJQktW
TVBMQVRfU1JDUy0kKENPTkZJR19BUkNIX0FSTV82NCkgKz0KPiAkKFVLX1BMQVRfQ09NTU9OX0JB
U0UpL2FybS9wc2NpX2FybTY0LlN8Y29tbW9uCj4gZGlmZiAtLWdpdCBhL3BsYXQva3ZtL2FybS9z
ZXR1cC5jIGIvcGxhdC9rdm0vYXJtL3NldHVwLmMgaW5kZXgKPiAzMDQ2NjQ2Li5iMjBiYjc5IDEw
MDY0NAo+IC0tLSBhL3BsYXQva3ZtL2FybS9zZXR1cC5jCj4gKysrIGIvcGxhdC9rdm0vYXJtL3Nl
dHVwLmMKPiBAQCAtMjIxLDYgKzIyMSw5IEBAIHZvaWQgX2xpYmt2bXBsYXRfc3RhcnQodm9pZCAq
ZHRiX3BvaW50ZXIpCj4gIC8qIEluaXRpYWxpemUgbWVtb3J5IGZyb20gRFRCICovCj4gIF9pbml0
X2R0Yl9tZW0oKTsKPgo+ICsvKiBJbml0aWFsaXplIHJ0YyAqLwo+ICtfZHRiX2luaXRfcnRjKGR0
Yl9wb2ludGVyKTsKPiArCj4gIC8qIEluaXRpYWxpemUgaW50ZXJydXB0IGNvbnRyb2xsZXIgKi8K
PiAgaW50Y3RybF9pbml0KCk7Cj4KPiAtLQo+IDIuMTcuMQoKSU1QT1JUQU5UIE5PVElDRTogVGhl
IGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBhcmUgY29uZmlkZW50
aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5k
ZWQgcmVjaXBpZW50LCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRv
IG5vdCBkaXNjbG9zZSB0aGUgY29udGVudHMgdG8gYW55IG90aGVyIHBlcnNvbiwgdXNlIGl0IGZv
ciBhbnkgcHVycG9zZSwgb3Igc3RvcmUgb3IgY29weSB0aGUgaW5mb3JtYXRpb24gaW4gYW55IG1l
ZGl1bS4gVGhhbmsgeW91LgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv
L21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Tue Feb 11 12:44:41 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 11 Feb 2020 12:44:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1Uu7-0000FV-BT; Tue, 11 Feb 2020 12:44:39 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <SRS0=fDue=37=gmail.com=dunlapg@srs-us1.protection.inumbo.net>)
 id 1j1Uu6-0000F8-Gp
 for minios-devel@lists.xenproject.org; Tue, 11 Feb 2020 12:44:38 +0000
X-Inumbo-ID: 391f6e48-4ccc-11ea-a96e-bc764e2007e4
Received: from mail-ed1-x531.google.com (unknown [2a00:1450:4864:20::531])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 391f6e48-4ccc-11ea-a96e-bc764e2007e4;
 Tue, 11 Feb 2020 12:44:21 +0000 (UTC)
Received: by mail-ed1-x531.google.com with SMTP id e10so4444200edv.9;
 Tue, 11 Feb 2020 04:44:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=umich.edu; s=google-2016-06-03;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=iDWuii/zfe4GgbIfH1wMCIRclcZzouS9voyvgx61kAQ=;
 b=e3sNhb5CfwKSfjOROJFYtYvkffLlB28N4jBBOoEoyZIm2pWH8/cnpZTE4uv1WAmWY1
 rum55qG+9xAkCcRzjrOaKjyreK9in2oXqRgXpBN0ngqiXQU1SbxnUQv3lPb946NhHult
 T584VsUp81bdRHKhwAtQxzXdUFybNJX/WRe6BU2CwZ90aa2H0TMmtFT+e0Hlb/O1kLg8
 byBQ8j9nsJs4Br7zOOu8H0SuI0lfdpeFy/cqeQF9ht9SgXVOtmRqh2xg7xl0ay/N2GGM
 1LhOfif3njtyvjAUd9YIMfQk0XirxGac68/j0m+/+qf/35M6DP8O+LIylx3Ho0sD91ot
 pNaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=iDWuii/zfe4GgbIfH1wMCIRclcZzouS9voyvgx61kAQ=;
 b=h9ARkQ/O8H3YmDR+IDnIJP1KPBHasOlf5LruLOsB5W4OczrdZkArbK/Uo7OfGn/mnH
 Foy+XKJbdxuW4OKipfbNbzTeAJkAPsRkqsDeHvU4XE2Ow3Sd3yoMUIK7ISeL3n8bWveo
 WGTLYw752xXq4Auz9fum8e1guUfXw4u2ndkn6mJ7CsCwicr9idGa/1SWD8huu5Brt9Gm
 QsGVzoPIL4z5cQGSiiEfjB+2LNVOy8RdyH2UvUGRK8BtDIK/ZXeEWIzG9JQvZ5zlCiuJ
 +28DEBBA6dX482zwE+U7Nt3LhNqrddvo3vfhtpDnXmOax9DB8TKBczQ+h91iNm0f/3Zv
 Qh+w==
X-Gm-Message-State: APjAAAW1GFfRxgpGZoBTF+lspPJ80/CTqOndZPjSzp/BJlADwm6c05Zc
 olQYh2laZif0qwBjfzW0pER7Rry7t5paCMK1ros=
X-Google-Smtp-Source: APXvYqzkmD3DPUNzAWRo4Yg+DqiRX+apOIA073wHzNiL2AVG6LhUIaO6fWEGJXSGGM7vhikx5AhCHUJihYkq6feiD8s=
X-Received: by 2002:a17:906:4e46:: with SMTP id
 g6mr5581994ejw.309.1581425059996; 
 Tue, 11 Feb 2020 04:44:19 -0800 (PST)
MIME-Version: 1.0
References: <63005C11-CF8C-4794-B9E4-C3856CCF41C1@citrix.com>
In-Reply-To: <63005C11-CF8C-4794-B9E4-C3856CCF41C1@citrix.com>
From: George Dunlap <dunlapg@umich.edu>
Date: Tue, 11 Feb 2020 12:44:08 +0000
Message-ID: <CAFLBxZYkFdQMM56KRSetj6yLfMoWz0JyzpVope3tfRJQ6x-csw@mail.gmail.com>
To: Lars Kurth <lars.kurth@citrix.com>
Subject: [Minios-devel] UPDATE [Vote] For Xen Project Code of Conduct
 (deadline March 31st)
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "xen-api@lists.xenproject.org" <xen-api@lists.xenproject.org>,
 "minios-devel@lists.xenproject.org" <minios-devel@lists.xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>,
 "mirageos-devel@lists.xenproject.org" <mirageos-devel@lists.xenproject.org>,
 xen-devel <xen-devel@lists.xenproject.org>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Content-Type: multipart/mixed; boundary="===============5637658673453120519=="
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

--===============5637658673453120519==
Content-Type: multipart/alternative; boundary="000000000000f0a836059e4c36ae"

--000000000000f0a836059e4c36ae
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

FYI, If you have voted in private for this (by replying directly to Lars),
you'll need to re-send your vote to <community.manager@xenproject.org>
(which is currently being redirected to Ian Jackson and myself).

 -George

On Fri, Jan 17, 2020 at 7:13 PM Lars Kurth <lars.kurth@citrix.com> wrote:

> I propose to tally the votes after March 31st. You can reply via
> +1: for proposal
> -1: against proposal
> in public or private.
>
> Votes will be tallied by subproject =E2=80=93 aka the Hypervisor and XAPI=
 project
> by %
> for the proposal - and then averaged across sub-projects that achieved th=
e
> quorum. The vote needs to achieve a 2/3 majority to pass.
>
> Sub-project needs to achieve the following quorum of votes in favour for
> the
> sub-project=E2=80=99s vote to count
> Hypervisor: 3 + votes
> XAPI: 2 + votes
> Windows PV Drivers: 1 + votes
>
>

--000000000000f0a836059e4c36ae
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>FYI, If you have voted in private for this (by replyi=
ng directly to Lars), you&#39;ll need to re-send your vote to &lt;<a href=
=3D"mailto:community.manager@xenproject.org">community.manager@xenproject.o=
rg</a>&gt; (which is currently being redirected to Ian Jackson and myself).=
<br></div><div><br></div><div>=C2=A0-George<br></div><div><br></div><div>On=
 Fri, Jan 17, 2020 at 7:13 PM Lars Kurth &lt;<a href=3D"mailto:lars.kurth@c=
itrix.com">lars.kurth@citrix.com</a>&gt; wrote:</div><div class=3D"gmail_qu=
ote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex">I propose to tally t=
he votes after March 31st. You can reply via<br>
+1: for proposal<br>
-1: against proposal<br>
in public or private.<br>
<br>
Votes will be tallied by subproject =E2=80=93 aka the Hypervisor and XAPI p=
roject by %<br>
for the proposal - and then averaged across sub-projects that achieved the<=
br>
quorum. The vote needs to achieve a 2/3 majority to pass.<br>
<br>
Sub-project needs to achieve the following quorum of votes in favour for th=
e<br>
sub-project=E2=80=99s vote to count<br>
Hypervisor: 3 + votes<br>
XAPI: 2 + votes<br>
Windows PV Drivers: 1 + votes<br>
<br>
</blockquote></div></div>

--000000000000f0a836059e4c36ae--


--===============5637658673453120519==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

--===============5637658673453120519==--


From minios-devel-bounces@lists.xenproject.org Wed Feb 12 09:35:28 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 09:35:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1oQW-0002lh-AE; Wed, 12 Feb 2020 09:35:24 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4drI=4A=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j1oQU-0002lc-Pb
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 09:35:22 +0000
X-Inumbo-ID: fcad5164-4d7a-11ea-bc8e-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id fcad5164-4d7a-11ea-bc8e-bc764e2007e4;
 Wed, 12 Feb 2020 09:35:21 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 81D7A404B6;
 Wed, 12 Feb 2020 10:35:20 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Wed, 12 Feb 2020 10:35:19 +0100
Message-Id: <20200212093519.27039-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBPTHREAD-EMBEDDED PATCH] Supress warning
 to have a clean build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0K
IE1ha2VmaWxlLnVrIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl
bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awppbmRleCA4
OWViMzQ1Li5iOWI3NDU2IDEwMDY0NAotLS0gYS9NYWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51
awpAQCAtNTMsNyArNTMsNyBAQCBDWFhJTkNMVURFUy0kKENPTkZJR19MSUJQVEhSRUFEX0VNQkVE
REVEKSArPSAtSSQoTElCUFRIUkVBRC1FTUJFRERFRF9FWFRSQUNURUQpLwogIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMKIExJQlBUSFJFQUQtRU1CRURERURfU1VQUFJFU1NfRkxBR1MgKz0gLVduby11
bnVzZWQtcGFyYW1ldGVyIFwKIC1Xbm8tdW51c2VkLXZhcmlhYmxlIC1Xbm8tdW51c2VkLXZhbHVl
IC1Xbm8tdW51c2VkLWZ1bmN0aW9uIFwKLS1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMK
Ky1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1zdHJpY3QtYWxpYXNpbmcKIAog
TElCUFRIUkVBRC1FTUJFRERFRF9DRkxBR1MteSAgICs9ICQoTElCUFRIUkVBRC1FTUJFRERFRF9T
VVBQUkVTU19GTEFHUykgXAogCS1Xbm8tcG9pbnRlci10by1pbnQtY2FzdCAtV25vLWludC10by1w
b2ludGVyLWNhc3QKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s
aXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 13:54:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 13:54:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1sTE-0008Rx-FO; Wed, 12 Feb 2020 13:54:28 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4drI=4A=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j1sTC-0008Rm-SY
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 13:54:26 +0000
X-Inumbo-ID: 2d09e128-4d9f-11ea-ade5-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 2d09e128-4d9f-11ea-ade5-bc764e2007e4;
 Wed, 12 Feb 2020 13:54:24 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 97359411B0;
 Wed, 12 Feb 2020 14:54:23 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Wed, 12 Feb 2020 14:54:22 +0100
Message-Id: <20200212135422.28229-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/DUKTAPE PATCH] Provide main(),
 jump into interactive mode.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QWRkIHRoZSBhYmlsaXR5IGZvciB0aGUgZHVrdGFwZSBsaWJyYXJ5IHRvIHByb3ZpZGUgYSBtYWlu
KCkgc28gdGhhdAp0aGUgYXBwbGljYXRpb24gZG9lc24ndCBoYXZlIHRvIChzZWxlY3RhYmxlIGZy
b20gdGhlIG1lbnUpLiBJbgphZGRpdGlvbiwgZHVrdGFwZSBub3cgZ29lcyBzdHJhaWdodCBpbnRv
IGludGVyYWN0aXZlIG1vZGU7IHByZXZpb3N1bHkKaXQgd2FzIGFzc3VtaW5nIHRoYXQgdGhlIC0t
YXBwZW5kIHBhcmFtZXRlciB3YXMgYSBmaWxlIG5hbWUgdG8gYmUKcmVhZCBhbmQgZXhlY3V0ZWQs
IHdoaWNoIHdhcyBicm9rZW4uIEF0IHNvbWUgcG9pbnQgd2Ugc2hvdWxkIGFkZAppbml0cmQgc3Vw
cG9ydCB0byB0aGlzIHBvcnQuCgpTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5o
dWljaUBuZWNsYWIuZXU+Ci0tLQogQ29uZmlnLnVrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDggKysrKystCiBNYWtlZmlsZS51ayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgOCArKysrKysKIGdsdWUuYyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDExICsrKysrKysrCiBwYXRjaGVzLzAwMDEtanVtcC1pbnRvLWludGVy
YWN0aXZlLW1vZGUucGF0Y2ggfCAyOCArKysrKysrKysrKysrKysrKysrCiBwYXRjaGVzLzAwMDEt
cmVuYW1lLW1haW4tZnVuY3Rpb24ucGF0Y2ggICAgICAgfCAxMSAtLS0tLS0tLQogNSBmaWxlcyBj
aGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBnbHVlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAwMDEtanVtcC1pbnRvLWlu
dGVyYWN0aXZlLW1vZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAwMDEtcmVu
YW1lLW1haW4tZnVuY3Rpb24ucGF0Y2gKCmRpZmYgLS1naXQgYS9Db25maWcudWsgYi9Db25maWcu
dWsKaW5kZXggNmEzYzU5Yy4uYjllMjI3NCAxMDA2NDQKLS0tIGEvQ29uZmlnLnVrCisrKyBiL0Nv
bmZpZy51awpAQCAtMSw0ICsxLDEwIEBACi1jb25maWcgRFVLVEFQRQorbWVudWNvbmZpZyBEVUtU
QVBFCiAJICAgYm9vbCAiRHVrdGFwZSAtIGFuIGVtYmVkZGFibGUgSmF2YXNjcmlwdCBlbmdpbmUi
CiAJICAgZGVmYXVsdCBuCiAgICAgICAgICAgIHNlbGVjdCBMSUJORVdMSUJDCisKK2lmIERVS1RB
UEUKK2NvbmZpZyBEVUtUQVBFX01BSU5fRlVOQ1RJT04KKyAgICAgICBib29sICJQcm92aWRlIG1h
aW4gZnVuY3Rpb24iCisgICAgICAgZGVmYXVsdCB5CitlbmRpZgpkaWZmIC0tZ2l0IGEvTWFrZWZp
bGUudWsgYi9NYWtlZmlsZS51awppbmRleCA0NWRmZmNjLi5iY2IzZGVmIDEwMDY0NAotLS0gYS9N
YWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51awpAQCAtNjAsOSArNjAsMTcgQEAgRFVLVEFQRV9H
RU5FUkFURUQ9JChEVUtUQVBFX0VYVFJBQ1RFRCkvZHVrdGFwZS1zcmMKIENJTkNMVURFUy0kKENP
TkZJR19EVUtUQVBFKSArPSAtSSQoRFVLVEFQRV9FWFRSQUNURUQpL2R1a3RhcGUtc3JjCiBDWFhJ
TkNMVURFUy0kKENPTkZJR19EVUtUQVBFKSArPSAtSSQoRFVLVEFQRV9FWFRSQUNURUQpL2R1a3Rh
cGUtc3JjCiAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIExpYnJhcnkgZmxhZ3MKKyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCitEVUtUQVBFX0NGTEFHUy15ICs9IC1Xbm8tdW51c2VkLWZ1bmN0
aW9uCitEVUtUQVBFX0NYWEZMQUdTLXkgKz0gLVduby11bnVzZWQtZnVuY3Rpb24KKwogIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMKICMgU291cmNlcwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK0RV
S1RBUEVfRFVLX0NNRExJTkVfRkxBR1MteSArPSAtRG1haW49ZHVrdGFwZV9tYWluCitEVUtUQVBF
X1NSQ1MtJChDT05GSUdfRFVLVEFQRV9NQUlOX0ZVTkNUSU9OKSArPSAkKERVS1RBUEVfQkFTRSkv
Z2x1ZS5jCiBEVUtUQVBFX1NSQ1MteSArPSAkKERVS1RBUEVfR0VORVJBVEVEKS9kdWt0YXBlLmMK
IERVS1RBUEVfU1JDUy15ICs9ICQoRFVLVEFQRV9FWFRSQUNURUQpL2V4YW1wbGVzL2NtZGxpbmUv
ZHVrX2NtZGxpbmUuYwogCmRpZmYgLS1naXQgYS9nbHVlLmMgYi9nbHVlLmMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NlZTUyZAotLS0gL2Rldi9udWxsCisrKyBiL2dsdWUu
YwpAQCAtMCwwICsxLDExIEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKworLyogSW1wb3J0IHVzZXIg
Y29uZmlndXJhdGlvbjogKi8KKyNpbmNsdWRlIDx1ay9jb25maWcuaD4KKworZXh0ZXJuIGludCBk
dWt0YXBlX21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7CisKK2ludCBtYWluKGludCBhcmdj
LCBjaGFyICphcmd2W10pCit7CisgIHJldHVybiBkdWt0YXBlX21haW4oYXJnYywgYXJndik7Cit9
CmRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMDEtanVtcC1pbnRvLWludGVyYWN0aXZlLW1vZGUucGF0
Y2ggYi9wYXRjaGVzLzAwMDEtanVtcC1pbnRvLWludGVyYWN0aXZlLW1vZGUucGF0Y2gKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JhMmYwMQotLS0gL2Rldi9udWxsCisrKyBi
L3BhdGNoZXMvMDAwMS1qdW1wLWludG8taW50ZXJhY3RpdmUtbW9kZS5wYXRjaApAQCAtMCwwICsx
LDI4IEBACistLS0gYS9leGFtcGxlcy9jbWRsaW5lL2R1a19jbWRsaW5lLmMJMjAyMC0wMi0xMiAx
NDo0MzoxOS41OTk3NzI3NjEgKzAxMDAKKysrKyBiL2V4YW1wbGVzL2NtZGxpbmUvZHVrX2NtZGxp
bmUuYwkyMDIwLTAyLTEyIDE0OjQxOjIzLjM5MzEwNjY5MCArMDEwMAorQEAgLTEyNjUsNyArMTI2
NSw3IEBACisgCWludCByZXR2YWwgPSAwOworIAlpbnQgaGF2ZV9maWxlcyA9IDA7CisgCWludCBo
YXZlX2V2YWwgPSAwOworLQlpbnQgaW50ZXJhY3RpdmUgPSAwOworKwlpbnQgaW50ZXJhY3RpdmUg
PSAxOworIAlpbnQgbWVtbGltaXRfaGlnaCA9IDE7CisgCWludCBhbGxvY19wcm92aWRlciA9IEFM
TE9DX0RFRkFVTFQ7CisgCWludCBsb3dtZW1fbG9nID0gMDsKK0BAIC0xNDU2LDYgKzE0NTYsNyBA
QAorIAkJCWNvbnRpbnVlOworIAkJfQorIAorKwkJLyoKKyAJCWlmICh2ZXJib3NlKSB7CisgCQkJ
ZnByaW50ZihzdGRlcnIsICIqKiogRXhlY3V0aW5nIGZpbGU6ICVzXG4iLCBhcmcpOworIAkJCWZm
bHVzaChzdGRlcnIpOworQEAgLTE0NjUsNyArMTQ2Niw3IEBACisgCQkJcmV0dmFsID0gMTsKKyAJ
CQlnb3RvIGNsZWFudXA7CisgCQl9CistCisrCQkqLworIAkJaWYgKHJlY3JlYXRlX2hlYXApIHsK
KyAJCQlpZiAodmVyYm9zZSkgeworIAkJCQlmcHJpbnRmKHN0ZGVyciwgIioqKiBSZWNyZWF0aW5n
IGhlYXAuLi5cbiIpOwpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDAxLXJlbmFtZS1tYWluLWZ1bmN0
aW9uLnBhdGNoIGIvcGF0Y2hlcy8wMDAxLXJlbmFtZS1tYWluLWZ1bmN0aW9uLnBhdGNoCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzRhOGNjLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMv
MDAwMS1yZW5hbWUtbWFpbi1mdW5jdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICsw
LDAgQEAKLS0tLSBhL2V4YW1wbGVzL2NtZGxpbmUvZHVrX2NtZGxpbmUuYwkyMDE5LTA5LTA5IDA4
OjIzOjE1Ljg5MTI4NDcwNCArMDIwMAotKysrIGIvZXhhbXBsZXMvY21kbGluZS9kdWtfY21kbGlu
ZS5jCTIwMTktMDktMDkgMDg6MjI6NTcuNzgzNDcyMjUxICswMjAwCi1AQCAtMTI2MCw3ICsxMjYw
LDcgQEAKLSAgKiAgTWFpbgotICAqLwotIAotLWludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2
W10pIHsKLStpbnQgZHVrdGFwZV9tYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSAJZHVr
X2NvbnRleHQgKmN0eCA9IE5VTEw7Ci0gCWludCByZXR2YWwgPSAwOwotIAlpbnQgaGF2ZV9maWxl
cyA9IDA7Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu
Zm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 14:03:40 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 14:03:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1sc7-0001HY-Ft; Wed, 12 Feb 2020 14:03:39 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fA++=4A=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j1sc6-0001HO-06
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 14:03:38 +0000
X-Inumbo-ID: 75c22622-4da0-11ea-b760-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 75c22622-4da0-11ea-b760-12813bfff9fa;
 Wed, 12 Feb 2020 14:03:36 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 28C021001CF;
 Wed, 12 Feb 2020 15:03:35 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id KSp_AnV-t5r9; Wed, 12 Feb 2020 15:03:35 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 0413F10006C
 for <minios-devel@lists.xen.org>; Wed, 12 Feb 2020 15:03:35 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Feb
 2020 15:03:34 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200212135422.28229-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <a4ca738e-d277-0874-d2e8-adbd0c06f96c@neclab.eu>
Date: Wed, 12 Feb 2020 15:03:33 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200212135422.28229-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/DUKTAPE PATCH] Provide main(),
 jump into interactive mode.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZSB0byBtZS4gVGhhbmtzIQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNp
bW9uLmtldW56ZXJAbmVjbGFiLmV1PgoKT24gMTIuMDIuMjAgMTQ6NTQsIEZlbGlwZSBIdWljaSB3
cm90ZToKPiBBZGQgdGhlIGFiaWxpdHkgZm9yIHRoZSBkdWt0YXBlIGxpYnJhcnkgdG8gcHJvdmlk
ZSBhIG1haW4oKSBzbyB0aGF0Cj4gdGhlIGFwcGxpY2F0aW9uIGRvZXNuJ3QgaGF2ZSB0byAoc2Vs
ZWN0YWJsZSBmcm9tIHRoZSBtZW51KS4gSW4KPiBhZGRpdGlvbiwgZHVrdGFwZSBub3cgZ29lcyBz
dHJhaWdodCBpbnRvIGludGVyYWN0aXZlIG1vZGU7IHByZXZpb3N1bHkKPiBpdCB3YXMgYXNzdW1p
bmcgdGhhdCB0aGUgLS1hcHBlbmQgcGFyYW1ldGVyIHdhcyBhIGZpbGUgbmFtZSB0byBiZQo+IHJl
YWQgYW5kIGV4ZWN1dGVkLCB3aGljaCB3YXMgYnJva2VuLiBBdCBzb21lIHBvaW50IHdlIHNob3Vs
ZCBhZGQKPiBpbml0cmQgc3VwcG9ydCB0byB0aGlzIHBvcnQuCj4gCj4gU2lnbmVkLW9mZi1ieTog
RmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1Pgo+IC0tLQo+ICAgQ29uZmlnLnVr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKystCj4gICBNYWtl
ZmlsZS51ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysrKysKPiAg
IGdsdWUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysr
KysrCj4gICBwYXRjaGVzLzAwMDEtanVtcC1pbnRvLWludGVyYWN0aXZlLW1vZGUucGF0Y2ggfCAy
OCArKysrKysrKysrKysrKysrKysrCj4gICBwYXRjaGVzLzAwMDEtcmVuYW1lLW1haW4tZnVuY3Rp
b24ucGF0Y2ggICAgICAgfCAxMSAtLS0tLS0tLQo+ICAgNSBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNl
cnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBnbHVlLmMK
PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAwMDEtanVtcC1pbnRvLWludGVyYWN0aXZl
LW1vZGUucGF0Y2gKPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAwMDEtcmVuYW1lLW1h
aW4tZnVuY3Rpb24ucGF0Y2gKPiAKPiBkaWZmIC0tZ2l0IGEvQ29uZmlnLnVrIGIvQ29uZmlnLnVr
Cj4gaW5kZXggNmEzYzU5Yy4uYjllMjI3NCAxMDA2NDQKPiAtLS0gYS9Db25maWcudWsKPiArKysg
Yi9Db25maWcudWsKPiBAQCAtMSw0ICsxLDEwIEBACj4gLWNvbmZpZyBEVUtUQVBFCj4gK21lbnVj
b25maWcgRFVLVEFQRQo+ICAgCSAgIGJvb2wgIkR1a3RhcGUgLSBhbiBlbWJlZGRhYmxlIEphdmFz
Y3JpcHQgZW5naW5lIgo+ICAgCSAgIGRlZmF1bHQgbgo+ICAgICAgICAgICAgICBzZWxlY3QgTElC
TkVXTElCQwo+ICsKPiAraWYgRFVLVEFQRQo+ICtjb25maWcgRFVLVEFQRV9NQUlOX0ZVTkNUSU9O
Cj4gKyAgICAgICBib29sICJQcm92aWRlIG1haW4gZnVuY3Rpb24iCj4gKyAgICAgICBkZWZhdWx0
IHkKPiArZW5kaWYKPiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awo+IGlu
ZGV4IDQ1ZGZmY2MuLmJjYjNkZWYgMTAwNjQ0Cj4gLS0tIGEvTWFrZWZpbGUudWsKPiArKysgYi9N
YWtlZmlsZS51awo+IEBAIC02MCw5ICs2MCwxNyBAQCBEVUtUQVBFX0dFTkVSQVRFRD0kKERVS1RB
UEVfRVhUUkFDVEVEKS9kdWt0YXBlLXNyYwo+ICAgQ0lOQ0xVREVTLSQoQ09ORklHX0RVS1RBUEUp
ICs9IC1JJChEVUtUQVBFX0VYVFJBQ1RFRCkvZHVrdGFwZS1zcmMKPiAgIENYWElOQ0xVREVTLSQo
Q09ORklHX0RVS1RBUEUpICs9IC1JJChEVUtUQVBFX0VYVFJBQ1RFRCkvZHVrdGFwZS1zcmMKPiAg
IAo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo+ICsjIExpYnJhcnkgZmxhZ3MKPiArIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMKPiArRFVLVEFQRV9DRkxBR1MteSArPSAtV25vLXVudXNlZC1mdW5j
dGlvbgo+ICtEVUtUQVBFX0NYWEZMQUdTLXkgKz0gLVduby11bnVzZWQtZnVuY3Rpb24KPiArCj4g
ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo+ICAgIyBTb3VyY2VzCj4gICAjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIwo+ICtEVUtUQVBFX0RVS19DTURMSU5FX0ZMQUdTLXkgKz0gLURtYWluPWR1a3Rh
cGVfbWFpbgo+ICtEVUtUQVBFX1NSQ1MtJChDT05GSUdfRFVLVEFQRV9NQUlOX0ZVTkNUSU9OKSAr
PSAkKERVS1RBUEVfQkFTRSkvZ2x1ZS5jCj4gICBEVUtUQVBFX1NSQ1MteSArPSAkKERVS1RBUEVf
R0VORVJBVEVEKS9kdWt0YXBlLmMKPiAgIERVS1RBUEVfU1JDUy15ICs9ICQoRFVLVEFQRV9FWFRS
QUNURUQpL2V4YW1wbGVzL2NtZGxpbmUvZHVrX2NtZGxpbmUuYwo+ICAgCj4gZGlmZiAtLWdpdCBh
L2dsdWUuYyBiL2dsdWUuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4u
N2NlZTUyZAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9nbHVlLmMKPiBAQCAtMCwwICsxLDExIEBA
Cj4gKyNpbmNsdWRlIDxzdGRpby5oPgo+ICsKPiArLyogSW1wb3J0IHVzZXIgY29uZmlndXJhdGlv
bjogKi8KPiArI2luY2x1ZGUgPHVrL2NvbmZpZy5oPgo+ICsKPiArZXh0ZXJuIGludCBkdWt0YXBl
X21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7Cj4gKwo+ICtpbnQgbWFpbihpbnQgYXJnYywg
Y2hhciAqYXJndltdKQo+ICt7Cj4gKyAgcmV0dXJuIGR1a3RhcGVfbWFpbihhcmdjLCBhcmd2KTsK
PiArfQo+IGRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMDEtanVtcC1pbnRvLWludGVyYWN0aXZlLW1v
ZGUucGF0Y2ggYi9wYXRjaGVzLzAwMDEtanVtcC1pbnRvLWludGVyYWN0aXZlLW1vZGUucGF0Y2gK
PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjdiYTJmMDEKPiAtLS0gL2Rl
di9udWxsCj4gKysrIGIvcGF0Y2hlcy8wMDAxLWp1bXAtaW50by1pbnRlcmFjdGl2ZS1tb2RlLnBh
dGNoCj4gQEAgLTAsMCArMSwyOCBAQAo+ICstLS0gYS9leGFtcGxlcy9jbWRsaW5lL2R1a19jbWRs
aW5lLmMJMjAyMC0wMi0xMiAxNDo0MzoxOS41OTk3NzI3NjEgKzAxMDAKPiArKysrIGIvZXhhbXBs
ZXMvY21kbGluZS9kdWtfY21kbGluZS5jCTIwMjAtMDItMTIgMTQ6NDE6MjMuMzkzMTA2NjkwICsw
MTAwCj4gK0BAIC0xMjY1LDcgKzEyNjUsNyBAQAo+ICsgCWludCByZXR2YWwgPSAwOwo+ICsgCWlu
dCBoYXZlX2ZpbGVzID0gMDsKPiArIAlpbnQgaGF2ZV9ldmFsID0gMDsKPiArLQlpbnQgaW50ZXJh
Y3RpdmUgPSAwOwo+ICsrCWludCBpbnRlcmFjdGl2ZSA9IDE7Cj4gKyAJaW50IG1lbWxpbWl0X2hp
Z2ggPSAxOwo+ICsgCWludCBhbGxvY19wcm92aWRlciA9IEFMTE9DX0RFRkFVTFQ7Cj4gKyAJaW50
IGxvd21lbV9sb2cgPSAwOwo+ICtAQCAtMTQ1Niw2ICsxNDU2LDcgQEAKPiArIAkJCWNvbnRpbnVl
Owo+ICsgCQl9Cj4gKwo+ICsrCQkvKgo+ICsgCQlpZiAodmVyYm9zZSkgewo+ICsgCQkJZnByaW50
ZihzdGRlcnIsICIqKiogRXhlY3V0aW5nIGZpbGU6ICVzXG4iLCBhcmcpOwo+ICsgCQkJZmZsdXNo
KHN0ZGVycik7Cj4gK0BAIC0xNDY1LDcgKzE0NjYsNyBAQAo+ICsgCQkJcmV0dmFsID0gMTsKPiAr
IAkJCWdvdG8gY2xlYW51cDsKPiArIAkJfQo+ICstCj4gKysJCSovCj4gKyAJCWlmIChyZWNyZWF0
ZV9oZWFwKSB7Cj4gKyAJCQlpZiAodmVyYm9zZSkgewo+ICsgCQkJCWZwcmludGYoc3RkZXJyLCAi
KioqIFJlY3JlYXRpbmcgaGVhcC4uLlxuIik7Cj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDAwMS1y
ZW5hbWUtbWFpbi1mdW5jdGlvbi5wYXRjaCBiL3BhdGNoZXMvMDAwMS1yZW5hbWUtbWFpbi1mdW5j
dGlvbi5wYXRjaAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDhjNGE4Y2MuLjAw
MDAwMDAKPiAtLS0gYS9wYXRjaGVzLzAwMDEtcmVuYW1lLW1haW4tZnVuY3Rpb24ucGF0Y2gKPiAr
KysgL2Rldi9udWxsCj4gQEAgLTEsMTEgKzAsMCBAQAo+IC0tLS0gYS9leGFtcGxlcy9jbWRsaW5l
L2R1a19jbWRsaW5lLmMJMjAxOS0wOS0wOSAwODoyMzoxNS44OTEyODQ3MDQgKzAyMDAKPiAtKysr
IGIvZXhhbXBsZXMvY21kbGluZS9kdWtfY21kbGluZS5jCTIwMTktMDktMDkgMDg6MjI6NTcuNzgz
NDcyMjUxICswMjAwCj4gLUBAIC0xMjYwLDcgKzEyNjAsNyBAQAo+IC0gICogIE1haW4KPiAtICAq
Lwo+IC0KPiAtLWludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKPiAtK2ludCBkdWt0
YXBlX21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewo+IC0gCWR1a19jb250ZXh0ICpjdHgg
PSBOVUxMOwo+IC0gCWludCByZXR2YWwgPSAwOwo+IC0gCWludCBoYXZlX2ZpbGVzID0gMDsKPiAK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1k
ZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 14:07:26 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 14:07:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1sfl-0001Nm-7s; Wed, 12 Feb 2020 14:07:25 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fA++=4A=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j1sfj-0001Nf-J5
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 14:07:23 +0000
X-Inumbo-ID: fc5b5000-4da0-11ea-bc8e-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fc5b5000-4da0-11ea-bc8e-bc764e2007e4;
 Wed, 12 Feb 2020 14:07:21 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id F09691001CF;
 Wed, 12 Feb 2020 15:07:20 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id KCx1GFDaZmSm; Wed, 12 Feb 2020 15:07:20 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id C321F10006C
 for <minios-devel@lists.xen.org>; Wed, 12 Feb 2020 15:07:20 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Feb
 2020 15:07:20 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200212093519.27039-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <7ee1093c-6ec2-cec7-fc2c-e80c78c0c0fc@neclab.eu>
Date: Wed, 12 Feb 2020 15:07:19 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200212093519.27039-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBPTHREAD-EMBEDDED PATCH] Supress
 warning to have a clean build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZSB0byBtZS4gV2Ugc2hvdWxkIGF0IHNvbWUgcG9pbnQgcmV2aXNpdCAic3RyaWN0
IGFsaWFzaW5nIi4gSSAKaG9wZSBpdCBkb2VzIG5vdCBicmVhayBhbnl0aGluZyBhdCBzb21lIHBv
aW50LiBJZiB5ZXMsIHdlIHNob3VsZCBhZGQgCmAtZm5vLXN0cmljdC1hbGlhc2luZ2AgZ2xvYmFs
bHkgdG8gdGhlIGJ1aWxkIGJ5IHRoaXMgbGlicmFyeS4KClJldmlld2VkLWJ5OiBTaW1vbiBLdWVu
emVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KCk9uIDEyLjAyLjIwIDEwOjM1LCBGZWxpcGUg
SHVpY2kgd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lA
bmVjbGFiLmV1Pgo+IC0tLQo+ICAgTWFrZWZpbGUudWsgfCAyICstCj4gICAxIGZpbGUgY2hhbmdl
ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKPiAKPiBkaWZmIC0tZ2l0IGEvTWFrZWZp
bGUudWsgYi9NYWtlZmlsZS51awo+IGluZGV4IDg5ZWIzNDUuLmI5Yjc0NTYgMTAwNjQ0Cj4gLS0t
IGEvTWFrZWZpbGUudWsKPiArKysgYi9NYWtlZmlsZS51awo+IEBAIC01Myw3ICs1Myw3IEBAIENY
WElOQ0xVREVTLSQoQ09ORklHX0xJQlBUSFJFQURfRU1CRURERUQpICs9IC1JJChMSUJQVEhSRUFE
LUVNQkVEREVEX0VYVFJBQ1RFRCkvCj4gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo+ICAgTElC
UFRIUkVBRC1FTUJFRERFRF9TVVBQUkVTU19GTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIg
XAo+ICAgLVduby11bnVzZWQtdmFyaWFibGUgLVduby11bnVzZWQtdmFsdWUgLVduby11bnVzZWQt
ZnVuY3Rpb24gXAo+IC0tV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzCj4gKy1Xbm8tbWlz
c2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1zdHJpY3QtYWxpYXNpbmcKPiAgIAo+ICAgTElC
UFRIUkVBRC1FTUJFRERFRF9DRkxBR1MteSAgICs9ICQoTElCUFRIUkVBRC1FTUJFRERFRF9TVVBQ
UkVTU19GTEFHUykgXAo+ICAgCS1Xbm8tcG9pbnRlci10by1pbnQtY2FzdCAtV25vLWludC10by1w
b2ludGVyLWNhc3QKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9t
aW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 14:31:40 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 14:31:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1t3C-0003jJ-Lx; Wed, 12 Feb 2020 14:31:38 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fA++=4A=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j1t3B-0003jE-Jb
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 14:31:37 +0000
X-Inumbo-ID: 5f38e720-4da4-11ea-b76d-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 5f38e720-4da4-11ea-b76d-12813bfff9fa;
 Wed, 12 Feb 2020 14:31:36 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 512BBF2008;
 Wed, 12 Feb 2020 15:31:35 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id cYLZmU8m52ov; Wed, 12 Feb 2020 15:31:35 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 2A463C024C
 for <minios-devel@lists.xen.org>; Wed, 12 Feb 2020 15:31:33 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Feb
 2020 15:31:32 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Wed, 12 Feb 2020 15:31:29 +0100
Message-ID: <20200212143129.10923-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LWIP PATCH] ppoll()/generic select() only
 available with libc
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhlIG9wdGlvbnMgTFdJUF9TT0NLRVRfU0VMRUNUX0dFTkVSSUNfRkRTIGFuZCBMV0lQX1NPQ0tF
VF9QUE9MTCBhcmUKb25seSBtYWRlIGF2YWlsYWJsZSB3aGVuIGEgcHJvcGVyIGxpYmMgKEhBVkVf
TElCQykgaXMgYWRkZWQgYW5kCmVuYWJsZWQgdG8gdGhlIGJ1aWxkLiBUaGVzZSBvcHRpb25zIGRv
IG5vdCB3b3JrIHdpdGggbm9saWJjLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2lt
b24ua3VlbnplckBuZWNsYWIuZXU+Ci0tLQogQ29uZmlnLnVrIHwgMiArKwogMSBmaWxlIGNoYW5n
ZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL0NvbmZpZy51ayBiL0NvbmZpZy51awpp
bmRleCBkZWJmMGM3Li5hYWFhYWUwIDEwMDY0NAotLS0gYS9Db25maWcudWsKKysrIGIvQ29uZmln
LnVrCkBAIC0xNjUsNiArMTY1LDcgQEAgY29uZmlnIExXSVBfU09DS0VUCiBpZiBMV0lQX1NPQ0tF
VAogCWNvbmZpZyBMV0lQX1NPQ0tFVF9TRUxFQ1RfR0VORVJJQ19GRFMKIAkJYm9vbCAiVXNlIHNl
bGVjdCgpIHdpdGggYW55IGZpbGUgZGVzY3JpcHRvciB0eXBlIgorCQlkZXBlbmRzIG9uIEhBVkVf
TElCQwogCQlkZWZhdWx0IHkKIAkJaGVscAogCQkJbHdpcCdzIHNlbGVjdCgpIGltcGxlbWVudGF0
aW9uIHN1cHBvcnRzIG9ubHkgc29ja2V0cy4gVGhpcwpAQCAtMTczLDYgKzE3NCw3IEBAIGlmIExX
SVBfU09DS0VUCiAKIAljb25maWcgTFdJUF9TT0NLRVRfUFBPTEwKIAkJYm9vbCAiRW5hYmxlIHBw
b2xsKCkiCisJCWRlcGVuZHMgb24gSEFWRV9MSUJDCiAJCWRlZmF1bHQgeQogCQloZWxwCiAJCQlF
bmFibGUgcHBvbGwoKSBpbXBsZW1lbnRhdGlvbi4KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 14:31:44 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 14:31:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1t3I-0003js-Nj; Wed, 12 Feb 2020 14:31:44 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fA++=4A=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j1t3H-0003jl-AS
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 14:31:43 +0000
X-Inumbo-ID: 62c2887e-4da4-11ea-bc8e-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 62c2887e-4da4-11ea-bc8e-bc764e2007e4;
 Wed, 12 Feb 2020 14:31:42 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 54C1C1001CF;
 Wed, 12 Feb 2020 15:31:41 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 5Wr0SVCJ9AO5; Wed, 12 Feb 2020 15:31:41 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 34E2110006C
 for <minios-devel@lists.xen.org>; Wed, 12 Feb 2020 15:31:41 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Feb
 2020 15:31:40 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Wed, 12 Feb 2020 15:31:38 +0100
Message-ID: <20200212143138.10986-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LWIP PATCH] Stub getservbyport_r()
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QnVpbGRpbmcgbHdpcCBicmVha3Mgd2hlbiBub2xpYmMgaXMgc2VsZWN0ZWQuIGdldHNlcnZieXBv
cnRfcigpIHdhcwpyZWx5aW5nIG9uIGRlZmluaXRpb25zIHdoaWNoIGFyZW4ndCBhdmFpbGFibGUg
d2l0aCBub2xpYmMuIFRoaXMgY29tbWl0CnN0dWJzIHRoaXMgZnVuY3Rpb24gYmVjYXVzZSBpdCBz
ZWVtcyB0aGF0IGl0IHdhc24ndCB1c2VkIGFuZCB0ZXN0ZWQgc28KZmFyLgoKU2lnbmVkLW9mZi1i
eTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+Ci0tLQogc2Vydi5jIHwg
NTMgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL3NlcnYuYyBiL3NlcnYuYwppbmRleCBiMDhmZmE0Li44MGFlMDM2IDEwMDY0NAotLS0g
YS9zZXJ2LmMKKysrIGIvc2Vydi5jCkBAIC01MSw1MyArNTEsMTAgQEAgc3RydWN0IHNlcnZlbnQg
KmdldHNlcnZieXBvcnQoaW50IHBvcnQgX191bnVzZWQsCiAJcmV0dXJuIE5VTEw7CiB9CiAKLWlu
dCBnZXRzZXJ2Ynlwb3J0X3IoaW50IHBvcnQsIGNvbnN0IGNoYXIgKnByb3RzLCBzdHJ1Y3Qgc2Vy
dmVudCAqc2UsIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbiwgc3RydWN0IHNlcnZlbnQgKipyZXMp
CitpbnQgZ2V0c2VydmJ5cG9ydF9yKGludCBwb3J0IF9fdW51c2VkLCBjb25zdCBjaGFyICpwcm90
cyBfX3VudXNlZCwKKwkJICAgIHN0cnVjdCBzZXJ2ZW50ICpzZSBfX3VudXNlZCwgY2hhciAqYnVm
IF9fdW51c2VkLAorCQkgICAgc2l6ZV90IGJ1ZmxlbiBfX3VudXNlZCwgc3RydWN0IHNlcnZlbnQg
KipyZXMgX191bnVzZWQpCiB7Ci0gIGludCBpOwotICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc2luID0g
ewotICAgIC5zaW5fZmFtaWx5ID0gQUZfSU5FVCwKLSAgICAuc2luX3BvcnQgPSBwb3J0LAotICB9
OwotCi0gIGlmICghcHJvdHMpIHsKLSAgICBpbnQgciA9IGdldHNlcnZieXBvcnRfcihwb3J0LCAi
dGNwIiwgc2UsIGJ1ZiwgYnVmbGVuLCByZXMpOwotICAgIGlmIChyKSByID0gZ2V0c2VydmJ5cG9y
dF9yKHBvcnQsICJ1ZHAiLCBzZSwgYnVmLCBidWZsZW4sIHJlcyk7Ci0gICAgcmV0dXJuIHI7Ci0g
IH0KLSAgKnJlcyA9IDA7Ci0KLSAgLyogQWxpZ24gYnVmZmVyICovCi0gIGkgPSAodWludHB0cl90
KWJ1ZiAmIChzaXplb2YoY2hhciAqKS0xKTsKLSAgaWYgKCFpKSBpID0gc2l6ZW9mKGNoYXIgKik7
Ci0gIGlmIChidWZsZW4gPCAzKnNpemVvZihjaGFyICopLWkpCi0gICAgcmV0dXJuIEVSQU5HRTsK
LSAgYnVmICs9IHNpemVvZihjaGFyICopLWk7Ci0gIGJ1ZmxlbiAtPSBzaXplb2YoY2hhciAqKS1p
OwotCi0gIGlmIChzdHJjbXAocHJvdHMsICJ0Y3AiKSAmJiBzdHJjbXAocHJvdHMsICJ1ZHAiKSkg
cmV0dXJuIEVJTlZBTDsKLQotICBzZS0+c19wb3J0ID0gcG9ydDsKLSAgc2UtPnNfcHJvdG8gPSAo
Y2hhciAqKXByb3RzOwotICBzZS0+c19hbGlhc2VzID0gKHZvaWQgKilidWY7Ci0gIGJ1ZiArPSAy
KnNpemVvZihjaGFyICopOwotICBidWZsZW4gLT0gMipzaXplb2YoY2hhciAqKTsKLSAgc2UtPnNf
YWxpYXNlc1sxXSA9IDA7Ci0gIHNlLT5zX2FsaWFzZXNbMF0gPSBzZS0+c19uYW1lID0gYnVmOwot
Ci0gIHN3aXRjaCAoZ2V0bmFtZWluZm8oKHZvaWQgKikmc2luLCBzaXplb2Ygc2luLCAwLCAwLCBi
dWYsIGJ1ZmxlbiwKLQkJICAgICAgc3RyY21wKHByb3RzLCAidWRwIikgPyAwIDogTklfREdSQU0p
KSB7Ci0gIGNhc2UgRUFJX01FTU9SWToKLSAgY2FzZSBFQUlfU1lTVEVNOgotICAgIHJldHVybiBF
Tk9NRU07Ci0gIGRlZmF1bHQ6Ci0gICAgcmV0dXJuIEVOT0VOVDsKLSAgY2FzZSAwOgotICAgIGJy
ZWFrOwotICB9Ci0KLSAgLyogQSBudW1lcmljIHBvcnQgc3RyaW5nIGlzIG5vdCBhIHNlcnZpY2Ug
cmVjb3JkLiAqLwotICBpZiAoc3RydG9sKGJ1ZiwgMCwgMTApPT1udG9ocyhwb3J0KSkgcmV0dXJu
IEVOT0VOVDsKLQotICAqcmVzID0gc2U7Ci0gIHJldHVybiAwOworCWVycm5vID0gRU5PU1lTOwor
CXJldHVybiBFQUlfU1lTVEVNOwogfQotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5p
b3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 14:34:00 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 14:34:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1t5T-0003nL-Uj; Wed, 12 Feb 2020 14:33:59 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4drI=4A=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j1t5S-0003nG-KX
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 14:33:58 +0000
X-Inumbo-ID: af86c80a-4da4-11ea-b76d-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id af86c80a-4da4-11ea-b76d-12813bfff9fa;
 Wed, 12 Feb 2020 14:33:50 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 0A2FFF2008;
 Wed, 12 Feb 2020 15:33:50 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id QnUfAdk3n3LI; Wed, 12 Feb 2020 15:33:49 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id CB496C024C
 for <minios-devel@lists.xen.org>; Wed, 12 Feb 2020 15:33:47 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Feb
 2020 15:33:47 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Wed, 12 Feb 2020 15:33:47
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT/LWIP PATCH] ppoll()/generic select() only available
 with libc
Thread-Index: AQHV4bEfJBT3hVqvwUKcw9Ev6FSkSqgXn3sA
Date: Wed, 12 Feb 2020 14:33:47 +0000
Message-ID: <9C4634B1-7061-44B2-A792-877A252E2075@neclab.eu>
References: <20200212143129.10923-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200212143129.10923-1-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <5823E8B92EC5DC4586AD465799A8C4A8@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/LWIP PATCH] ppoll()/generic select()
 only available with libc
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQoNCu+7v09uIDEyLjAyLjIw
LCAxNTozMSwgIlNpbW9uIEt1ZW56ZXIiIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6
DQoNCiAgICBUaGUgb3B0aW9ucyBMV0lQX1NPQ0tFVF9TRUxFQ1RfR0VORVJJQ19GRFMgYW5kIExX
SVBfU09DS0VUX1BQT0xMIGFyZQ0KICAgIG9ubHkgbWFkZSBhdmFpbGFibGUgd2hlbiBhIHByb3Bl
ciBsaWJjIChIQVZFX0xJQkMpIGlzIGFkZGVkIGFuZA0KICAgIGVuYWJsZWQgdG8gdGhlIGJ1aWxk
LiBUaGVzZSBvcHRpb25zIGRvIG5vdCB3b3JrIHdpdGggbm9saWJjLg0KICAgIA0KICAgIFNpZ25l
ZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1Pg0KICAgIC0t
LQ0KICAgICBDb25maWcudWsgfCAyICsrDQogICAgIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv
bnMoKykNCiAgICANCiAgICBkaWZmIC0tZ2l0IGEvQ29uZmlnLnVrIGIvQ29uZmlnLnVrDQogICAg
aW5kZXggZGViZjBjNy4uYWFhYWFlMCAxMDA2NDQNCiAgICAtLS0gYS9Db25maWcudWsNCiAgICAr
KysgYi9Db25maWcudWsNCiAgICBAQCAtMTY1LDYgKzE2NSw3IEBAIGNvbmZpZyBMV0lQX1NPQ0tF
VA0KICAgICBpZiBMV0lQX1NPQ0tFVA0KICAgICAJY29uZmlnIExXSVBfU09DS0VUX1NFTEVDVF9H
RU5FUklDX0ZEUw0KICAgICAJCWJvb2wgIlVzZSBzZWxlY3QoKSB3aXRoIGFueSBmaWxlIGRlc2Ny
aXB0b3IgdHlwZSINCiAgICArCQlkZXBlbmRzIG9uIEhBVkVfTElCQw0KICAgICAJCWRlZmF1bHQg
eQ0KICAgICAJCWhlbHANCiAgICAgCQkJbHdpcCdzIHNlbGVjdCgpIGltcGxlbWVudGF0aW9uIHN1
cHBvcnRzIG9ubHkgc29ja2V0cy4gVGhpcw0KICAgIEBAIC0xNzMsNiArMTc0LDcgQEAgaWYgTFdJ
UF9TT0NLRVQNCiAgICAgDQogICAgIAljb25maWcgTFdJUF9TT0NLRVRfUFBPTEwNCiAgICAgCQli
b29sICJFbmFibGUgcHBvbGwoKSINCiAgICArCQlkZXBlbmRzIG9uIEhBVkVfTElCQw0KICAgICAJ
CWRlZmF1bHQgeQ0KICAgICAJCWhlbHANCiAgICAgCQkJRW5hYmxlIHBwb2xsKCkgaW1wbGVtZW50
YXRpb24uDQogICAgLS0gDQogICAgMi4yMC4xDQogICAgDQogICAgDQoNCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 14:34:14 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 14:34:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1t5i-0003oK-1V; Wed, 12 Feb 2020 14:34:14 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4drI=4A=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j1t5g-0003oF-HX
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 14:34:12 +0000
X-Inumbo-ID: bc069dda-4da4-11ea-bc8e-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id bc069dda-4da4-11ea-bc8e-bc764e2007e4;
 Wed, 12 Feb 2020 14:34:11 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 04E02103977;
 Wed, 12 Feb 2020 15:34:11 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id rlj5ZDrFZYLy; Wed, 12 Feb 2020 15:34:10 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id B6ADD1001CF
 for <minios-devel@lists.xen.org>; Wed, 12 Feb 2020 15:34:10 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Feb
 2020 15:34:10 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Wed, 12 Feb 2020 15:34:10
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT/LWIP PATCH] Stub getservbyport_r()
Thread-Index: AQHV4bEkz90+Gbk/xEicqxyKPoDTrKgXn5aA
Date: Wed, 12 Feb 2020 14:34:10 +0000
Message-ID: <257F7ED8-7398-4022-93D3-985A7B7217CA@neclab.eu>
References: <20200212143138.10986-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200212143138.10986-1-simon.kuenzer@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.12.200112
x-originating-ip: [192.168.24.96]
Content-ID: <FAE111A43D203049AC60B5F43E357C00@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/LWIP PATCH] Stub getservbyport_r()
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4NCg0KLS0gRmVsaXBlDQoNClJldmlld2VkLWJ5
OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+DQrvu78NCk9uIDEyLjAyLjIw
LCAxNTozMSwgIlNpbW9uIEt1ZW56ZXIiIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6
DQoNCiAgICBCdWlsZGluZyBsd2lwIGJyZWFrcyB3aGVuIG5vbGliYyBpcyBzZWxlY3RlZC4gZ2V0
c2VydmJ5cG9ydF9yKCkgd2FzDQogICAgcmVseWluZyBvbiBkZWZpbml0aW9ucyB3aGljaCBhcmVu
J3QgYXZhaWxhYmxlIHdpdGggbm9saWJjLiBUaGlzIGNvbW1pdA0KICAgIHN0dWJzIHRoaXMgZnVu
Y3Rpb24gYmVjYXVzZSBpdCBzZWVtcyB0aGF0IGl0IHdhc24ndCB1c2VkIGFuZCB0ZXN0ZWQgc28N
CiAgICBmYXIuDQogICAgDQogICAgU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24u
a3VlbnplckBuZWNsYWIuZXU+DQogICAgLS0tDQogICAgIHNlcnYuYyB8IDUzICsrKysrLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgIDEgZmlsZSBj
aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQ0KICAgIA0KICAgIGRpZmYg
LS1naXQgYS9zZXJ2LmMgYi9zZXJ2LmMNCiAgICBpbmRleCBiMDhmZmE0Li44MGFlMDM2IDEwMDY0
NA0KICAgIC0tLSBhL3NlcnYuYw0KICAgICsrKyBiL3NlcnYuYw0KICAgIEBAIC01MSw1MyArNTEs
MTAgQEAgc3RydWN0IHNlcnZlbnQgKmdldHNlcnZieXBvcnQoaW50IHBvcnQgX191bnVzZWQsDQog
ICAgIAlyZXR1cm4gTlVMTDsNCiAgICAgfQ0KICAgICANCiAgICAtaW50IGdldHNlcnZieXBvcnRf
cihpbnQgcG9ydCwgY29uc3QgY2hhciAqcHJvdHMsIHN0cnVjdCBzZXJ2ZW50ICpzZSwgY2hhciAq
YnVmLCBzaXplX3QgYnVmbGVuLCBzdHJ1Y3Qgc2VydmVudCAqKnJlcykNCiAgICAraW50IGdldHNl
cnZieXBvcnRfcihpbnQgcG9ydCBfX3VudXNlZCwgY29uc3QgY2hhciAqcHJvdHMgX191bnVzZWQs
DQogICAgKwkJICAgIHN0cnVjdCBzZXJ2ZW50ICpzZSBfX3VudXNlZCwgY2hhciAqYnVmIF9fdW51
c2VkLA0KICAgICsJCSAgICBzaXplX3QgYnVmbGVuIF9fdW51c2VkLCBzdHJ1Y3Qgc2VydmVudCAq
KnJlcyBfX3VudXNlZCkNCiAgICAgew0KICAgIC0gIGludCBpOw0KICAgIC0gIHN0cnVjdCBzb2Nr
YWRkcl9pbiBzaW4gPSB7DQogICAgLSAgICAuc2luX2ZhbWlseSA9IEFGX0lORVQsDQogICAgLSAg
ICAuc2luX3BvcnQgPSBwb3J0LA0KICAgIC0gIH07DQogICAgLQ0KICAgIC0gIGlmICghcHJvdHMp
IHsNCiAgICAtICAgIGludCByID0gZ2V0c2VydmJ5cG9ydF9yKHBvcnQsICJ0Y3AiLCBzZSwgYnVm
LCBidWZsZW4sIHJlcyk7DQogICAgLSAgICBpZiAocikgciA9IGdldHNlcnZieXBvcnRfcihwb3J0
LCAidWRwIiwgc2UsIGJ1ZiwgYnVmbGVuLCByZXMpOw0KICAgIC0gICAgcmV0dXJuIHI7DQogICAg
LSAgfQ0KICAgIC0gICpyZXMgPSAwOw0KICAgIC0NCiAgICAtICAvKiBBbGlnbiBidWZmZXIgKi8N
CiAgICAtICBpID0gKHVpbnRwdHJfdClidWYgJiAoc2l6ZW9mKGNoYXIgKiktMSk7DQogICAgLSAg
aWYgKCFpKSBpID0gc2l6ZW9mKGNoYXIgKik7DQogICAgLSAgaWYgKGJ1ZmxlbiA8IDMqc2l6ZW9m
KGNoYXIgKiktaSkNCiAgICAtICAgIHJldHVybiBFUkFOR0U7DQogICAgLSAgYnVmICs9IHNpemVv
ZihjaGFyICopLWk7DQogICAgLSAgYnVmbGVuIC09IHNpemVvZihjaGFyICopLWk7DQogICAgLQ0K
ICAgIC0gIGlmIChzdHJjbXAocHJvdHMsICJ0Y3AiKSAmJiBzdHJjbXAocHJvdHMsICJ1ZHAiKSkg
cmV0dXJuIEVJTlZBTDsNCiAgICAtDQogICAgLSAgc2UtPnNfcG9ydCA9IHBvcnQ7DQogICAgLSAg
c2UtPnNfcHJvdG8gPSAoY2hhciAqKXByb3RzOw0KICAgIC0gIHNlLT5zX2FsaWFzZXMgPSAodm9p
ZCAqKWJ1ZjsNCiAgICAtICBidWYgKz0gMipzaXplb2YoY2hhciAqKTsNCiAgICAtICBidWZsZW4g
LT0gMipzaXplb2YoY2hhciAqKTsNCiAgICAtICBzZS0+c19hbGlhc2VzWzFdID0gMDsNCiAgICAt
ICBzZS0+c19hbGlhc2VzWzBdID0gc2UtPnNfbmFtZSA9IGJ1ZjsNCiAgICAtDQogICAgLSAgc3dp
dGNoIChnZXRuYW1laW5mbygodm9pZCAqKSZzaW4sIHNpemVvZiBzaW4sIDAsIDAsIGJ1ZiwgYnVm
bGVuLA0KICAgIC0JCSAgICAgIHN0cmNtcChwcm90cywgInVkcCIpID8gMCA6IE5JX0RHUkFNKSkg
ew0KICAgIC0gIGNhc2UgRUFJX01FTU9SWToNCiAgICAtICBjYXNlIEVBSV9TWVNURU06DQogICAg
LSAgICByZXR1cm4gRU5PTUVNOw0KICAgIC0gIGRlZmF1bHQ6DQogICAgLSAgICByZXR1cm4gRU5P
RU5UOw0KICAgIC0gIGNhc2UgMDoNCiAgICAtICAgIGJyZWFrOw0KICAgIC0gIH0NCiAgICAtDQog
ICAgLSAgLyogQSBudW1lcmljIHBvcnQgc3RyaW5nIGlzIG5vdCBhIHNlcnZpY2UgcmVjb3JkLiAq
Lw0KICAgIC0gIGlmIChzdHJ0b2woYnVmLCAwLCAxMCk9PW50b2hzKHBvcnQpKSByZXR1cm4gRU5P
RU5UOw0KICAgIC0NCiAgICAtICAqcmVzID0gc2U7DQogICAgLSAgcmV0dXJuIDA7DQogICAgKwll
cnJubyA9IEVOT1NZUzsNCiAgICArCXJldHVybiBFQUlfU1lTVEVNOw0KICAgICB9DQogICAgLS0g
DQogICAgMi4yMC4xDQogICAgDQogICAgDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h
bi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 15:30:45 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 15:30:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1tyL-00005Q-OT; Wed, 12 Feb 2020 15:30:41 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fpPr=4A=neclab.eu=hugo.lefeuvre@srs-us1.protection.inumbo.net>)
 id 1j1tyK-00005L-Bx
 for minios-devel@lists.xenproject.org; Wed, 12 Feb 2020 15:30:40 +0000
X-Inumbo-ID: 9f115cc6-4dac-11ea-b781-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 9f115cc6-4dac-11ea-b781-12813bfff9fa;
 Wed, 12 Feb 2020 15:30:39 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 5B77D1001CF;
 Wed, 12 Feb 2020 16:30:38 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id fTs4dbsysxDB; Wed, 12 Feb 2020 16:30:38 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 33F091000A0
 for <minios-devel@lists.xenproject.org>; Wed, 12 Feb 2020 16:30:38 +0100 (CET)
Received: from N-1237.office.hd (192.168.24.96) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Feb
 2020 16:30:37 +0100
From: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
To: <minios-devel@lists.xenproject.org>
Date: Wed, 12 Feb 2020 16:30:26 +0100
Message-ID: <6585e61f13ecbc8ebac7df4767d6471eaae14f5b.1581521328.git.hugo.lefeuvre@neclab.eu>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To titania.office.hd
 (192.168.24.89)
Subject: [Minios-devel] [UNIKRAFT PATCH] doc: fix two issues in the
 debugging guide
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

KyB1c2UgY29udGludWUgaW5zdGVhZCBvZiBydW4gYWZ0ZXIgc2V0dGluZyB0aGUgaHcgYnJlYWtw
b2ludDogdGhlCiAgZGVidWdnaW5nIHNlc3Npb24gaXMgdHlwaWNhbGx5IGFscmVhZHkgcnVubmlu
ZyBhdCB0aGlzIHN0YWdlCisgdWsgdHJhY2Ugc2F2ZSBpbnN0ZWFkIG9mIHVrIHNhdmUKClNpZ25l
ZC1vZmYtYnk6IEh1Z28gTGVmZXV2cmUgPGh1Z28ubGVmZXV2cmVAbmVjbGFiLmV1PgotLS0KIGRv
Yy9ndWlkZXMvZGV2ZWxvcGVycy1kZWJ1Z2dpbmcucnN0IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl
ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9ndWlk
ZXMvZGV2ZWxvcGVycy1kZWJ1Z2dpbmcucnN0IGIvZG9jL2d1aWRlcy9kZXZlbG9wZXJzLWRlYnVn
Z2luZy5yc3QKaW5kZXggYjgwYTM5Yi4uZjdjOGU3NCAxMDA2NDQKLS0tIGEvZG9jL2d1aWRlcy9k
ZXZlbG9wZXJzLWRlYnVnZ2luZy5yc3QKKysrIGIvZG9jL2d1aWRlcy9kZXZlbG9wZXJzLWRlYnVn
Z2luZy5yc3QKQEAgLTYzLDcgKzYzLDcgQEAgY29ubmVjdCBnZGIgYnkgdXNpbmcgdGhlIGRlYnVn
IGltYWdlIHdpdGg6IDo6CiBVbmxlc3MgeW91J3JlIGRlYnVnZ2luZyBlYXJseSBib290IGNvZGUg
KHVudGlsIGBgX2xpYmt2bXBsYXRfc3RhcnQzMmBgKSwgeW91J2xsIG5lZWQgdG8gc2V0IGEgaGFy
ZHdhcmUgYnJlYWsgcG9pbnQ6IDo6CiAKICAgaGJyZWFrIFtsb2NhdGlvbl0KLSAgcnVuCisgIGNv
bnRpbnVlCiAKIFdlJ2xsIG5vdyBuZWVkIHRvIHNldCB0aGUgcmlnaHQgQ1BVIGFyY2hpdGVjdHVy
ZTogOjoKIApAQCAtMTg4LDcgKzE4OCw3IEBAIGJ1ZmZlci4gWW91IGNhbiBwcmludCB0aGVtIGJ5
IGlzc3VpbmcgdGhlIGBnZGJgIGNvbW1hbmQgYGB1ayB0cmFjZWBgOiA6OgogQWx0ZXJuYXRpdmVs
eSwgeW91IGNhbiBzYXZlIGFsbCB0cmFjZSBkYXRhIHRvIGRpc2sgd2l0aAogYGB1ayB0cmFjZSBz
YXZlIDxmaWxlbmFtZT5gYDogOjoKIAotICAoZ2RiKSB1ayBzYXZlIHRyYWNlcy5kYXQKKyAgKGdk
YikgdWsgdHJhY2Ugc2F2ZSB0cmFjZXMuZGF0CiAKIC4uIG5vdGU6OiBJdCBtYXkgbWFrZSBzZW5z
ZSB0byBjb25uZWN0IHdpdGggYGdkYmAgYWZ0ZXIgdGhlIGd1ZXN0IGV4ZWN1dGlvbiBoYXMKIAkg
IGJlZW4gZmluaXNoZWQgKGFuZCB0aGUgdHJhY2UgYnVmZmVyIGdvdCBmaWxsZWQpLiBGb3IgdGhp
cyBwdXJwb3NlLAotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 18:51:09 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 18:51:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1x6I-0001ac-JC; Wed, 12 Feb 2020 18:51:06 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=4drI=4A=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j1x6H-0001aV-KR
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 18:51:05 +0000
X-Inumbo-ID: 9dcc9576-4dc8-11ea-b7c1-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 9dcc9576-4dc8-11ea-b7c1-12813bfff9fa;
 Wed, 12 Feb 2020 18:51:02 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 91EE0404B6;
 Wed, 12 Feb 2020 19:51:01 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Wed, 12 Feb 2020 19:51:00 +0100
Message-Id: <20200212185100.22039-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBLUA PATCH] Fix broken behaviour when
 given append parameter.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IEx1YSBub3cgZ29lcyBzdHJhaWdodCBpbnRvIGlu
dGVyYWN0aXZlCm1vZGUgd2hlbiBub3QgZ2l2ZW4gaW5pdHJkIGFzIGEgcGFyYW1ldGVyOyBwcmV2
aW9zdWx5IGl0IHdhcyBhc3N1bWluZwp0aGF0IHRoZSAtLWFwcGVuZCBwYXJhbWV0ZXIgd2FzIGEg
ZmlsZSBuYW1lIHRvIGJlIHJlYWQgYW5kIGV4ZWN1dGVkLAp3aGljaCB3YXMgYnJva2VuLgoKU2ln
bmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0KIE1h
a2VmaWxlLnVrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAuLi50
LnBhdGNoID0+IDAwMDEtbHVhLW1haW4tYWRkLWluaXRyZC5wYXRjaH0gfCAyMyArKysrKysrKysr
KysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25z
KC0pCiByZW5hbWUgcGF0Y2hlcy97MDAwMS1hZGQtaW5pdHJkLXJlbmFtZS1lbnRyeS1wb2ludC5w
YXRjaCA9PiAwMDAxLWx1YS1tYWluLWFkZC1pbml0cmQucGF0Y2h9ICg2MCUpCgpkaWZmIC0tZ2l0
IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awppbmRleCAzYzNkMDVhLi40YTg1NWFiIDEwMDY0
NAotLS0gYS9NYWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51awpAQCAtMzksNyArMzksNyBAQCBM
SUJMVUFfU1JDUy0kKENPTkZJR19MSUJMVUFfTUFJTl9GVU5DVElPTikgKz0gJChMSUJMVUFfQkFT
RSkvbWFpbi5jCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBMaWJyYXJ5IGZsYWdzCiAjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIwotTElCTFVBX1NVUFBSRVNTX0ZMQUdTICs9IC1Xbm8taW1wbGlj
aXQtZnVuY3Rpb24tZGVjbGFyYXRpb24KK0xJQkxVQV9TVVBQUkVTU19GTEFHUyArPSAtV25vLWlt
cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIC1Xbm8tdW51c2VkLWZ1bmN0aW9uCiBMSUJMVUFf
RkxBR1MgKz0gLURMVUFfQ09NUEFUXzVfMgogCiBMSUJMVUFfQ0ZMQUdTLXkgKz0gJChMSUJMVUFf
RkxBR1MpICQoTElCTFVBX1NVUFBSRVNTX0ZMQUdTKQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDAx
LWFkZC1pbml0cmQtcmVuYW1lLWVudHJ5LXBvaW50LnBhdGNoIGIvcGF0Y2hlcy8wMDAxLWx1YS1t
YWluLWFkZC1pbml0cmQucGF0Y2gKc2ltaWxhcml0eSBpbmRleCA2MCUKcmVuYW1lIGZyb20gcGF0
Y2hlcy8wMDAxLWFkZC1pbml0cmQtcmVuYW1lLWVudHJ5LXBvaW50LnBhdGNoCnJlbmFtZSB0byBw
YXRjaGVzLzAwMDEtbHVhLW1haW4tYWRkLWluaXRyZC5wYXRjaAppbmRleCAxMzVhMGM0Li5lY2Zi
OGYwIDEwMDY0NAotLS0gYS9wYXRjaGVzLzAwMDEtYWRkLWluaXRyZC1yZW5hbWUtZW50cnktcG9p
bnQucGF0Y2gKKysrIGIvcGF0Y2hlcy8wMDAxLWx1YS1tYWluLWFkZC1pbml0cmQucGF0Y2gKQEAg
LTEsNSArMSw1IEBACiAtLS0gYS9zcmMvbHVhLmMJMjAxNy0wNC0xOSAxOToyOTo1Ny4wMDAwMDAw
MDAgKzAyMDAKLSsrKyBiL3NyYy9sdWEuYwkyMDE5LTA5LTAzIDEzOjM2OjA5LjQzNzgwNzg5MCAr
MDIwMAorKysrIGIvc3JjL2x1YS5jCTIwMjAtMDItMTIgMTk6Mzg6MDkuNzA0NDI4MTYwICswMTAw
CiBAQCAtNiw2ICs2LDggQEAKICAKICAjZGVmaW5lIGx1YV9jCkBAIC0xOSwxOSArMTksMzAgQEAK
ICAgIGludCBhcmdzID0gY29sbGVjdGFyZ3MoYXJndiwgJnNjcmlwdCk7CiAgICBsdWFMX2NoZWNr
dmVyc2lvbihMKTsgIC8qIGNoZWNrIHRoYXQgaW50ZXJwcmV0ZXIgaGFzIGNvcnJlY3QgdmVyc2lv
biAqLwogICAgaWYgKGFyZ3ZbMF0gJiYgYXJndlswXVswXSkgcHJvZ25hbWUgPSBhcmd2WzBdOwot
QEAgLTU4MSw2ICs1ODYsMTEgQEAKLSAgICAgcmV0dXJuIDA7CitAQCAtNTc2LDI0ICs1ODEsMjMg
QEAKKyAgIH0KKyAgIGlmICghcnVuYXJncyhMLCBhcmd2LCBzY3JpcHQpKSAgLyogZXhlY3V0ZSBh
cmd1bWVudHMgLWUgYW5kIC1sICovCisgICAgIHJldHVybiAwOyAgLyogc29tZXRoaW5nIGZhaWxl
ZCAqLworLSAgaWYgKHNjcmlwdCA8IGFyZ2MgJiYgIC8qIGV4ZWN1dGUgbWFpbiBzY3JpcHQgKGlm
IHRoZXJlIGlzIG9uZSkgKi8KKy0gICAgICBoYW5kbGVfc2NyaXB0KEwsIGFyZ3YgKyBzY3JpcHQp
ICE9IExVQV9PSykKKy0gICAgcmV0dXJuIDA7CiAgICBpZiAoYXJncyAmIGhhc19pKSAgLyogLWkg
b3B0aW9uPyAqLwogICAgICBkb1JFUEwoTCk7ICAvKiBkbyByZWFkLWV2YWwtcHJpbnQgbG9vcCAq
LworLSAgZWxzZSBpZiAoc2NyaXB0ID09IGFyZ2MgJiYgIShhcmdzICYgKGhhc19lIHwgaGFzX3Yp
KSkgeyAgLyogbm8gYXJndW1lbnRzPyAqLworLSAgICBpZiAobHVhX3N0ZGluX2lzX3R0eSgpKSB7
ICAvKiBydW5uaW5nIGluIGludGVyYWN0aXZlIG1vZGU/ICovCiArICAvKiBzZWUgaWYgc2NyaXB0
IGlzIGF2YWlsYWJsZSBmcm9tIGluaXRyZCAqLwogKyAgZWxzZSBpZiAodWtwbGF0X21lbXJlZ2lv
bl9maW5kX2luaXRyZDAoJmltZykgPj0gMCkgewogKyAgICBjc3RyID0gKGNoYXIgKilpbWcuYmFz
ZTsKICsgICAgZG9zdHJpbmcoTCwgY3N0ciwgImluaXRyZCIpOwogKyAgfQotICAgZWxzZSBpZiAo
c2NyaXB0ID09IGFyZ2MgJiYgIShhcmdzICYgKGhhc19lIHwgaGFzX3YpKSkgeyAgLyogbm8gYXJn
dW1lbnRzPyAqLwotICAgICBpZiAobHVhX3N0ZGluX2lzX3R0eSgpKSB7ICAvKiBydW5uaW5nIGlu
IGludGVyYWN0aXZlIG1vZGU/ICovCisrICBlbHNlIHsKICAgICAgICBwcmludF92ZXJzaW9uKCk7
Ci1AQCAtNTkzLDcgKzYwMyw3IEBACisgICAgICAgZG9SRVBMKEwpOyAgLyogZG8gcmVhZC1ldmFs
LXByaW50IGxvb3AgKi8KKy0gICAgfQorLSAgICBlbHNlIGRvZmlsZShMLCBOVUxMKTsgIC8qIGV4
ZWN1dGVzIHN0ZGluIGFzIGEgZmlsZSAqLworICAgfQorICAgbHVhX3B1c2hib29sZWFuKEwsIDEp
OyAgLyogc2lnbmFsIG5vIGVycm9ycyAqLworICAgcmV0dXJuIDE7CiAgfQogIAogIAotLSAKMi4y
MC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlu
aW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZl
bA==

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 19:03:19 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 19:03:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1xI5-0002S4-NS; Wed, 12 Feb 2020 19:03:17 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=8/cI=4A=neclab.eu=sharan.santhanam@srs-us1.protection.inumbo.net>)
 id 1j1xI4-0002Rz-62
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 19:03:16 +0000
X-Inumbo-ID: 51a46780-4dca-11ea-b0fd-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 51a46780-4dca-11ea-b0fd-bc764e2007e4;
 Wed, 12 Feb 2020 19:03:14 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 4E0C6F2008;
 Wed, 12 Feb 2020 20:03:13 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ndMcIjQWbv4V; Wed, 12 Feb 2020 20:03:13 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 2185AC024C
 for <minios-devel@lists.xen.org>; Wed, 12 Feb 2020 20:03:11 +0100 (CET)
Received: from N-1309.office.hd (192.168.24.96) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Feb
 2020 20:03:09 +0100
From: Sharan Santhanam <sharan.santhanam@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Wed, 12 Feb 2020 11:02:56 -0800
Message-ID: <1581534176-3947-1-git-send-email-sharan.santhanam@neclab.eu>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] build: Suppress %destructor warning
 in bison 3.3
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Sharan Santhanam <sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QWRkIGJ1aWxkIGZsYWcgdG8gc3VwcHJlc3MgdGhlIGRlc3RydWN0b3Igd2FybmluZyBsYXRlciBi
aXNvbiB2ZXJzaW9uCgpTaWduZWQtb2ZmLWJ5OiBTaGFyYW4gU2FudGhhbmFtIDxzaGFyYW4uc2Fu
dGhhbmFtQG5lY2xhYi5ldT4KLS0tCiBzdXBwb3J0L2tjb25maWcvTWFrZWZpbGUucnVsZXMgfCA0
ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvc3VwcG9ydC9rY29uZmlnL01ha2VmaWxlLnJ1bGVzIGIvc3VwcG9ydC9rY29u
ZmlnL01ha2VmaWxlLnJ1bGVzCmluZGV4IDc4YTljODEuLjIyM2ZlMDIgMTAwNjQ0Ci0tLSBhL3N1
cHBvcnQva2NvbmZpZy9NYWtlZmlsZS5ydWxlcworKysgYi9zdXBwb3J0L2tjb25maWcvTWFrZWZp
bGUucnVsZXMKQEAgLTcyLDEzICs3MiwxMyBAQCAkKG9iaikvJS5sZXguYzogJChzcmMpLyUubCBG
T1JDRQogIyBZQUNDCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogcXVpZXRfY21kX2Jpc29uID0gWUFD
QyAgICAkQAotY21kX2Jpc29uID0gJChZQUNDKSAtbyRAIC10IC1sICQ8CitjbWRfYmlzb24gPSAk
KFlBQ0MpIC1Xbm8teWFjYyAtbyRAIC10IC1sICQ8CiAKICQob2JqKS8lLnRhYi5jOiAkKHNyYykv
JS55IEZPUkNFCiAJJChjYWxsIGlmX2NoYW5nZWQsYmlzb24pCiAKIHF1aWV0X2NtZF9iaXNvbl9o
ID0gWUFDQyAgICAkQAotY21kX2Jpc29uX2ggPSAkKFlBQ0MpIC1vL2Rldi9udWxsIC0tZGVmaW5l
cz0kQCAtdCAtbCAkPAorY21kX2Jpc29uX2ggPSAkKFlBQ0MpIC1Xbm8teWFjYyAtby9kZXYvbnVs
bCAtLWRlZmluZXM9JEAgLXQgLWwgJDwKIAogJChvYmopLyUudGFiLmg6ICQoc3JjKS8lLnkgRk9S
Q0UKIAkkKGNhbGwgaWZfY2hhbmdlZCxiaXNvbl9oKQotLSAKMi43LjQKCgpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBs
aXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 21:14:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 21:14:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j1zL3-0004bI-Fz; Wed, 12 Feb 2020 21:14:29 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=Rntq=4A=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j1zL2-0004al-87
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 21:14:28 +0000
X-Inumbo-ID: a6d1182c-4ddc-11ea-bc8e-bc764e2007e4
Received: from mail-ua1-x942.google.com (unknown [2607:f8b0:4864:20::942])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id a6d1182c-4ddc-11ea-bc8e-bc764e2007e4;
 Wed, 12 Feb 2020 21:14:27 +0000 (UTC)
Received: by mail-ua1-x942.google.com with SMTP id a33so1439894uad.11
 for <minios-devel@lists.xen.org>; Wed, 12 Feb 2020 13:14:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=3Yf/hHOiJtMepwSsBx6vAWfzixlEahxS3NGxcb7R++0=;
 b=TKPdan9rFN/p6SfX1B0T0tHIo9F9DkH69lK15TEDClcJaL8j2FQrQQ73Q+zxt/Tnsp
 gEsD+mxOIg51MnTYqL2nNvv0eOgMSsuVme0UYnMZAIv1M3abqOIU5J3ht15vG0+mZO3u
 xQ/aiesmJoi2raMplSdyd2ORgqkP7N4X6ZW8HpNXJF+rXgM4qVlKOuSiw0xX+N54Swna
 bF1qvMbeMKgTZeOE6ejrf9kdMu9rhDClHdVl0K7XVrFY4cRj5SNqkDOAaNL9sKvzSL9g
 zu+P7TY0lCLyxgXs8EFlBAGodLtzol0/TGI5nkpuFtNPyJkOo8zdW4y2yPj5ZYXS1k0E
 woiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=3Yf/hHOiJtMepwSsBx6vAWfzixlEahxS3NGxcb7R++0=;
 b=CKwvvLly9/I9ZHgvAksgIjH2bhABw7IwtixFgw3KaTeyaQfxQZRVaSQtv4LK1bx7X8
 AHwTnO9Tg0sORlQWnEdLbN88SFYkTDKjUMO/2+Rj9/XeIQS8o4B3JslUXQUV2vvARS0c
 2KlwRM5rwnvM7ydFLGON6QXt1UHfFEsogAmcrXA1NUgEZ+RBm402175/g8F13NskZ2Ey
 WuCuxOIa8QVwow5zxVhGlfNAwkuugM2VMVgBDJ6d6Bnq17EyFsRhePfdAO3EiMQ+s8jb
 6/XFmur78MXd5XL168cSGVesgKDy5tP2fD2lwV19EEyUczisalOPLFhXgcu9VwbDOFTG
 PoFQ==
X-Gm-Message-State: APjAAAXdogK6hkicJZSfT4NkHQDIMRUtiLeM/rXAtYEqggVTzQR90w/H
 iD5ajozJFOr7JpR9rHypefV8LN9d9OnV6ZCJIgZ9uSUt
X-Google-Smtp-Source: APXvYqy6ZTrf946W7nXhXUrfNXKzA8oSQCBfNGJDp9zv8q2CSSNFfgsP/xXZfysHWx/usKFBmg6h2B0jhLsGtUrzUEw=
X-Received: by 2002:ab0:2a93:: with SMTP id h19mr5560202uar.27.1581542067119; 
 Wed, 12 Feb 2020 13:14:27 -0800 (PST)
MIME-Version: 1.0
References: <1581534176-3947-1-git-send-email-sharan.santhanam@neclab.eu>
In-Reply-To: <1581534176-3947-1-git-send-email-sharan.santhanam@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Wed, 12 Feb 2020 22:14:16 +0100
Message-ID: <CAEX4t-MsibFgOEbDb6ii83uLRsJXigcCec1V1J5ESU0U1ky6EA@mail.gmail.com>
To: Sharan Santhanam <sharan.santhanam@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] build: Suppress %destructor
 warning in bison 3.3
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2hhcmFuLCBsb29rcyBnb29kLCB0aGFua3MuCgotLSBGZWxpcGUKClJldmlld2VkLWJ5OiBG
ZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CgpPbiBXZWQsIEZlYiAxMiwgMjAy
MCBhdCA4OjAzIFBNIFNoYXJhbiBTYW50aGFuYW0KPHNoYXJhbi5zYW50aGFuYW1AbmVjbGFiLmV1
PiB3cm90ZToKPgo+IEFkZCBidWlsZCBmbGFnIHRvIHN1cHByZXNzIHRoZSBkZXN0cnVjdG9yIHdh
cm5pbmcgbGF0ZXIgYmlzb24gdmVyc2lvbgo+Cj4gU2lnbmVkLW9mZi1ieTogU2hhcmFuIFNhbnRo
YW5hbSA8c2hhcmFuLnNhbnRoYW5hbUBuZWNsYWIuZXU+Cj4gLS0tCj4gIHN1cHBvcnQva2NvbmZp
Zy9NYWtlZmlsZS5ydWxlcyB8IDQgKystLQo+ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z
KCspLCAyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL3N1cHBvcnQva2NvbmZpZy9NYWtl
ZmlsZS5ydWxlcyBiL3N1cHBvcnQva2NvbmZpZy9NYWtlZmlsZS5ydWxlcwo+IGluZGV4IDc4YTlj
ODEuLjIyM2ZlMDIgMTAwNjQ0Cj4gLS0tIGEvc3VwcG9ydC9rY29uZmlnL01ha2VmaWxlLnJ1bGVz
Cj4gKysrIGIvc3VwcG9ydC9rY29uZmlnL01ha2VmaWxlLnJ1bGVzCj4gQEAgLTcyLDEzICs3Miwx
MyBAQCAkKG9iaikvJS5sZXguYzogJChzcmMpLyUubCBGT1JDRQo+ICAjIFlBQ0MKPiAgIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KPiAgcXVpZXRfY21kX2Jpc29uID0gWUFDQyAgICAkQAo+IC1jbWRfYmlz
b24gPSAkKFlBQ0MpIC1vJEAgLXQgLWwgJDwKPiArY21kX2Jpc29uID0gJChZQUNDKSAtV25vLXlh
Y2MgLW8kQCAtdCAtbCAkPAo+Cj4gICQob2JqKS8lLnRhYi5jOiAkKHNyYykvJS55IEZPUkNFCj4g
ICAgICAgICAkKGNhbGwgaWZfY2hhbmdlZCxiaXNvbikKPgo+ICBxdWlldF9jbWRfYmlzb25faCA9
IFlBQ0MgICAgJEAKPiAtY21kX2Jpc29uX2ggPSAkKFlBQ0MpIC1vL2Rldi9udWxsIC0tZGVmaW5l
cz0kQCAtdCAtbCAkPAo+ICtjbWRfYmlzb25faCA9ICQoWUFDQykgLVduby15YWNjIC1vL2Rldi9u
dWxsIC0tZGVmaW5lcz0kQCAtdCAtbCAkPAo+Cj4gICQob2JqKS8lLnRhYi5oOiAkKHNyYykvJS55
IEZPUkNFCj4gICAgICAgICAkKGNhbGwgaWZfY2hhbmdlZCxiaXNvbl9oKQo+IC0tCj4gMi43LjQK
Pgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBN
aW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlv
cy1kZXZlbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1k
ZXZlbA==

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 23:42:30 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 23:42:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j21eE-0001LC-TO; Wed, 12 Feb 2020 23:42:26 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fA++=4A=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j21eD-0001L7-H3
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 23:42:25 +0000
X-Inumbo-ID: 50dc7456-4df1-11ea-b810-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 50dc7456-4df1-11ea-b810-12813bfff9fa;
 Wed, 12 Feb 2020 23:42:23 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 4F201F201C;
 Thu, 13 Feb 2020 00:42:22 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id EKTmwGcOVW_T; Thu, 13 Feb 2020 00:42:22 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 1308FF2008
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 00:42:20 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 00:42:19 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Thu, 13 Feb 2020 00:42:12 +0100
Message-ID: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH 0/4] build: Simplify console output
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SW5jcmVhc2VzIHRoZSByZWFkYWJpbGl0eSBvZiB0aGUgY29uc29sZSBvdXRwdXQgb2YgdGhlIGJ1
aWxkIHN5c3RlbS4KVW5uZWNlc3NhcnkgbWVzc2FnZXMgYXJlIGhpZGRlbiBmcm9tIHRoZSBvdXRw
dXQgY29uc29sZSAoY2hhbmdlIGRpcnMsCmV4cG9ydHN5bXMudWspLiBUaGUgdmVyYm9zZSBtb2Rl
IGxpc3RzIG5vdyB3aGljaCBzdWItbWFrZWZpbGVzIGFyZSBpbmNsdWRlZC4KZXhwb3J0c3ltcy51
ayB3YXJuaW5ncyBhcmUgb25seSBzaG93biBpbiB2ZXJib3NlIG1vZGUuIFRoZSByZWFzb24gaXMg
dGhhdAp0aGVzZSBmaWxlcyBkbyBub3Qgd29yayB3ZWxsIHdpdGggbmFtZSBtYW5nbGVkIHN5bWJv
bHMgKGUuZy4sIEMrKyBjb2RlKSBhbmQKY2Fubm90IGJlIGdlbmVyYWxseSBhcHBsaWVkIHlldC4g
VGhlIHdhcm5pbmcgbWF5IGNhdXNlIGNvbmZ1c2lvbi4KClNpbW9uIEt1ZW56ZXIgKDQpOgogIGJ1
aWxkOiBIaWRlIHdhcm5pbmcgYWJvdXQgYGV4cG9ydHN5bXMudWtgCiAgYnVpbGQ6IFN1cHByZXNz
IG1lc3NhZ2VzIGFib3V0IGNoYW5naW5nIGRpcmVjdG9yaWVzCiAgYnVpbGQ6IFVzZSAkKEhPU1RM
TikgaW5zdGVhZCBvZiBgbG5gCiAgYnVpbGQ6IFByaW50IGluY2x1ZGluZyBvZiBzdWItTWFrZWZp
bGVzICh2ZXJib3NlIG9ubHkpCgogTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8IDk1ICsr
KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogc3VwcG9ydC9idWlsZC9NYWtlZmls
ZS5ydWxlcyB8IDIxICsrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyks
IDQxIGRlbGV0aW9ucygtKQoKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp
bG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 23:42:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 23:42:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j21eJ-0001Ld-V5; Wed, 12 Feb 2020 23:42:31 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fA++=4A=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j21eI-0001LT-EE
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 23:42:30 +0000
X-Inumbo-ID: 51f90426-4df1-11ea-b810-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 51f90426-4df1-11ea-b810-12813bfff9fa;
 Wed, 12 Feb 2020 23:42:25 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 4E8F2F201E;
 Thu, 13 Feb 2020 00:42:24 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id BwjfQ8Y6NpHF; Thu, 13 Feb 2020 00:42:24 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 208CEF2008
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 00:42:22 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 00:42:21 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Thu, 13 Feb 2020 00:42:13 +0100
Message-ID: <20200212234216.9585-2-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
References: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH 1/4] build: Hide warning about
 `exportsyms.uk`
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2hvd3MgdGhlIHdhcm5pbmcgYWJvdXQgbWlzc2luZyBgZXhwb3J0c3ltcy51a2Agb25seSB3aGVu
IHZlcmJvc2UKbW9kZSAobWFrZSBWPTEpIGlzIGVuYWJsZWQuCgpTaWduZWQtb2ZmLWJ5OiBTaW1v
biBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KLS0tCiBNYWtlZmlsZSAgICAgICAg
ICAgICAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBz
dXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVzIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjkg
aW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9N
YWtlZmlsZQppbmRleCA4NGFkYjE2ZC4uZWVjYjNkZmEgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisr
KyBiL01ha2VmaWxlCkBAIC02NCw2ICs2NCwzNCBAQCBzcGFjZSA6PSAkKGVtcHR5KSAkKGVtcHR5
KQogIyBleHBsaWN0bHkgdGhyb3cgYXdheSBhbnkgb3V0cHV0IGZyb20gJ2NkJyBoZXJlLgogZXhw
b3J0IENEUEFUSCA6PQogCisjIFRvIHB1dCBtb3JlIGZvY3VzIG9uIHdhcm5pbmdzLCBiZSBsZXNz
IHZlcmJvc2UgYXMgZGVmYXVsdAorIyBVc2UgJ21ha2UgVj0xJyB0byBzZWUgdGhlIGZ1bGwgY29t
bWFuZHMKK2lmZXEgKCIkKG9yaWdpbiBWKSIsICJjb21tYW5kIGxpbmUiKQorICBCVUlMRF9WRVJC
T1NFID0gJChWKQorZW5kaWYKK2lmbmRlZiBCVUlMRF9WRVJCT1NFCisgIEJVSUxEX1ZFUkJPU0Ug
PSAwCitlbmRpZgorCitpZmVxICgkKEtCVUlMRF9WRVJCT1NFKSwxKQorICBRID0KK2lmbmRlZiBW
RVJCT1NFCisgIFZFUkJPU0UgPSAxCitlbmRpZgorZXhwb3J0IFZFUkJPU0UKK2Vsc2UKKyAgIFEg
PSBACitlbmRpZgorCisjIEhlbHBlciB0aGF0IHNob3dzIGFuIGBpbmZvYCBtZXNzYWdlIG9ubHkK
KyMgd2hlbiB2ZXJib3NlIG1vZGUgaXMgb24KKyMgdmVyYm9zZV9pbmZvICR2ZXJib3NlbWVzc2Fn
ZQoraWZlcSAoJChCVUlMRF9WRVJCT1NFKSwxKQordmVyYm9zZV9pbmZvID0gJChpbmZvICQoMSkp
CitlbHNlCit2ZXJib3NlX2luZm8gPQorZW5kaWYKKwogIyBVc2UgY3VycmVudCBkaXJlY3Rvcnkg
YXMgYmFzZQogQ09ORklHX1VLX0JBU0UgPz0gJChDVVJESVIpCiBvdmVycmlkZSBDT05GSUdfVUtf
QkFTRSA6PSAkKHJlYWxwYXRoICQoQ09ORklHX1VLX0JBU0UpKQpAQCAtMTkwLDI1ICsyMTgsNiBA
QCBub2NvbmZpZ190YXJnZXRzCTo9IHVrY29uZmlnIG1lbnVjb25maWcgbmNvbmZpZyBnY29uZmln
IHhjb25maWcgY29uZmlnIFwKIAkJCSAgIHNjcmlwdGNvbmZpZyBpc2NyaXB0Y29uZmlnIGttZW51
Y29uZmlnIGd1aWNvbmZpZyBcCiAJCQkgICBkdW1wdmFyc2NvbmZpZyAkKG51bGxfdGFyZ2V0cykK
IAotIyBUbyBwdXQgbW9yZSBmb2N1cyBvbiB3YXJuaW5ncywgYmUgbGVzcyB2ZXJib3NlIGFzIGRl
ZmF1bHQKLSMgVXNlICdtYWtlIFY9MScgdG8gc2VlIHRoZSBmdWxsIGNvbW1hbmRzCi1pZmVxICgi
JChvcmlnaW4gVikiLCAiY29tbWFuZCBsaW5lIikKLSAgQlVJTERfVkVSQk9TRSA9ICQoVikKLWVu
ZGlmCi1pZm5kZWYgQlVJTERfVkVSQk9TRQotICBCVUlMRF9WRVJCT1NFID0gMAotZW5kaWYKLQot
aWZlcSAoJChLQlVJTERfVkVSQk9TRSksMSkKLSAgUSA9Ci1pZm5kZWYgVkVSQk9TRQotICBWRVJC
T1NFID0gMQotZW5kaWYKLWV4cG9ydCBWRVJCT1NFCi1lbHNlCi0gICBRID0gQAotZW5kaWYKLQog
IyB3ZSB3YW50IGJhc2ggYXMgc2hlbGwKIFNIRUxMIDo9ICQoc2hlbGwgaWYgWyAteCAiJCRCQVNI
IiBdOyB0aGVuIGVjaG8gJCRCQVNIOyBcCiAJIGVsc2UgaWYgWyAteCAvYmluL2Jhc2ggXTsgdGhl
biBlY2hvIC9iaW4vYmFzaDsgXApkaWZmIC0tZ2l0IGEvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5y
dWxlcyBiL3N1cHBvcnQvYnVpbGQvTWFrZWZpbGUucnVsZXMKaW5kZXggMjI4NDQ2YjYuLmU4MTdk
ZGNiIDEwMDY0NAotLS0gYS9zdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVzCisrKyBiL3N1cHBv
cnQvYnVpbGQvTWFrZWZpbGUucnVsZXMKQEAgLTY1OSw3ICs2NTksNyBAQCBlbmRlZgogIyBidWls
ZHJ1bGVfb2xpYiAkbGlibmFtZQogZGVmaW5lIGJ1aWxkcnVsZV9vbGliID0KICQoaWYgJCh3aWxk
Y2FyZCAkKCQoY2FsbCB2cHJlZml4X2xpYiwkKDEpLEVYUE9SVFMpKSksLFwKLQkkKHdhcm5pbmcg
V2FybmluZzogRGVmaW5pdGlvbiBvZiBleHBvcnRlZCBzeW1ib2xzIGZvciAkKDEpIG1pc3Npbmc6
ICQoJChjYWxsIHZwcmVmaXhfbGliLCQoMSksRVhQT1JUUykpKSBcCisJJChjYWxsIHZlcmJvc2Vf
aW5mbyxXYXJuaW5nOiBEZWZpbml0aW9uIG9mIGV4cG9ydGVkIHN5bWJvbHMgZm9yICQoMSkgbWlz
c2luZzogJCgkKGNhbGwgdnByZWZpeF9saWIsJCgxKSxFWFBPUlRTKSkpIFwKICkKIAogJChjYWxs
IGxpYm5hbWUycHJlb2xpYiwkKDEpKTogJCgkKGNhbGwgdnByZWZpeF9saWIsJCgxKSxPQkpTKSkg
XAotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21p
bmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 23:42:35 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 23:42:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j21eN-0001Mu-29; Wed, 12 Feb 2020 23:42:35 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fA++=4A=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j21eL-0001Mf-NS
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 23:42:33 +0000
X-Inumbo-ID: 559cb56e-4df1-11ea-ade5-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 559cb56e-4df1-11ea-ade5-bc764e2007e4;
 Wed, 12 Feb 2020 23:42:31 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 7FB21F201C;
 Thu, 13 Feb 2020 00:42:30 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ehOAcDxWFaUN; Thu, 13 Feb 2020 00:42:30 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 5457DF2008
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 00:42:28 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 00:42:26 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Thu, 13 Feb 2020 00:42:16 +0100
Message-ID: <20200212234216.9585-5-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
References: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH 4/4] build: Print including of
 sub-Makefiles (verbose only)
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2hlbiB2ZXJib3NlIG1vZGUgaXMgZW5hYmxlZCAobWFrZSBWPTEpLCBlYWNoIGluY2x1ZGUgY29t
bWFuZCBpcwpwcmludGVkLiBUaGlzIG1heSBiZSBoZWxwZnVsIGZvciBkZWJ1Z2dpbmcgYW5kIHN0
dWR5aW5nIHRoZSBpbmNsdWRlCm9yZGVycyBvZiBzdWItbWFrZWZpbGVzIChlLmcuLCBNYWtlZmls
ZS51aykuCgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xh
Yi5ldT4KLS0tCiBNYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgNDAgKysrKysrKysrKysr
KysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBzdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVzIHwg
MTkgKysrKysrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwg
MTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQppbmRleCBm
MGI2MDQ4Yy4uMTc3MDhiZWYgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBA
IC0xOTMsNiArMTkzLDcgQEAgS0NPTkZJR19QTEFUX0lOICAgICAgIDo9ICQoS0NPTkZJR19ESVIp
L3BsYXQudWsKIFNDUklQVFNfRElSIDo9ICQoQ09ORklHX1VLX0JBU0UpL3N1cHBvcnQvc2NyaXB0
cwogCiAjICMgU2V0IGFuZCBleHBvcnQgdGhlIHZlcnNpb24gc3RyaW5nCiskKGNhbGwgdmVyYm9z
ZV9pbmZvLEluY2x1ZGluZyAkKENPTkZJR19VS19CQVNFKS92ZXJzaW9uLm1rLi4uKQogaW5jbHVk
ZSAkKENPTkZJR19VS19CQVNFKS92ZXJzaW9uLm1rCiAKICMgQ29tcHV0ZSB0aGUgZnVsbCBsb2Nh
bCB2ZXJzaW9uIHN0cmluZyBzbyBwYWNrYWdlcyBjYW4gdXNlIGl0IGFzLWlzCkBAIC0yODYsNiAr
Mjg3LDcgQEAgSU1BR0VfTERGTEFHUy15IDo9CiAjIFB1bGwgaW4gdGhlIHVzZXIncyBjb25maWd1
cmF0aW9uIGZpbGUKIGlmZXEgKCQoZmlsdGVyICQobm9jb25maWdfdGFyZ2V0cyksJChNQUtFQ01E
R09BTFMpKSwpCiBpZm5lcSAoIiQod2lsZGNhcmQgJChVS19DT05GSUcpKSIsIiIpCiskKGNhbGwg
dmVyYm9zZV9pbmZvLEluY2x1ZGluZyAkKFVLX0NPTkZJRykuLi4pCiAtaW5jbHVkZSAkKFVLX0NP
TkZJRykKIFVLX0hBVkVfRE9UX0NPTkZJRyA6PSB5CiBlbmRpZgpAQCAtMzY3LDE0ICszNjksMTYg
QEAgZXhwb3J0IEhPU1RDQ19OT0NDQUNIRSBIT1NUQ1hYX05PQ0NBQ0hFCiAjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIwogIyBNYWtlZmlsZSBoZWxwZXJzCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor
JChjYWxsIHZlcmJvc2VfaW5mbyxJbmNsdWRpbmcgJChDT05GSUdfVUtfQkFTRSkvc3VwcG9ydC9i
dWlsZC9NYWtlZmlsZS5ydWxlcy4uLikKK2luY2x1ZGUgJChDT05GSUdfVUtfQkFTRSkvc3VwcG9y
dC9idWlsZC9NYWtlZmlsZS5ydWxlcworCiAjIFdlIG5lZWQgdG8gaW5jbHVkZSB0aGlzIGZpbGUg
ZWFybHkgKGJlZm9yZSBhbnkgcnVsZSBpcyBkZWZpbmVkKQogIyBidXQgYWZ0ZXIgd2UgaGF2ZSB0
cmllZCB0byBsb2FkIGEgLmNvbmZpZyBhbmQgYWZ0ZXIgaGF2aW5nIG91ciB0b29scyBkZWZpbmVk
Ci0kKGZvcmVhY2ggTSwkKHN0cmlwICQod2lsZGNhcmQgJChhZGRzdWZmaXggTWFrZWZpbGUucnVs
ZXMsXAotCSAgICQoQ09ORklHX1VLX0JBU0UpL3N1cHBvcnQvYnVpbGQvICQoQ09ORklHX1VLX0JB
U0UpL2xpYi8qL1wKLQkgICAkKENPTkZJR19VS19CQVNFKS9wbGF0LyovICQoYWRkc3VmZml4IC8s
JChFTElCX0RJUikpICQoQVBQX0RJUikvKVwKLQkgICAgICApKSxcCi0JCSQoaW5mbyBJbmNsdWRl
ICQoTSkpO1wKLQkJJChldmFsIGluY2x1ZGUgJChNKSkpCiskKGZvcmVhY2ggX00sJCh3aWxkY2Fy
ZCAkKGFkZHN1ZmZpeCBNYWtlZmlsZS5ydWxlcyxcCisJICAgJChDT05GSUdfVUtfQkFTRSkvbGli
LyovICQoQ09ORklHX1VLX0JBU0UpL3BsYXQvKi8gXAorCSAgICQoYWRkc3VmZml4IC8sJChFTElC
X0RJUikpICQoQVBQX0RJUikvKSksIFwKKwkJJChldmFsICQoY2FsbCB2ZXJib3NlX2luY2x1ZGUs
JChfTSkpKSBcCispCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENsZWFuIHRhcmdldHMg
dGhhdCBkbyBub3QgaGF2ZSBhbnkgZGVwZW5kZW5jeSBvbiBhIGNvbmZpZ3VyYXRpb24KQEAgLTM5
NSw3ICszOTksNyBAQCBkaXN0Y2xlYW46IHByb3BlcmNsZWFuCiAjIFVuaWtyYWZ0IEFyY2hpdGVj
dHVyZQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgU2V0IHRhcmdldCBhcmNoaWN0dXJlIGFz
IHNldCBpbiBjb25maWcKLWluY2x1ZGUgJChDT05GSUdfVUtfQkFTRSkvYXJjaC9BcmNoLnVrCisk
KGV2YWwgJChjYWxsIHZlcmJvc2VfaW5jbHVkZSwkKENPTkZJR19VS19CQVNFKS9hcmNoL0FyY2gu
dWspKQogaWZlcSAoJChDT05GSUdfVUtfQVJDSCksKQogIyBTZXQgdGFyZ2V0IGFyY2hpY3R1cmUg
YXMgc2V0IGluIGVudmlyb25tZW50CiBpZm5lcSAoJChBUkNIKSwpCkBAIC00OTAsNyArNDk0LDcg
QEAgaWZuZXEgKCIkKG9yaWdpbiBDUk9TU19DT01QSUxFKSIsInVuZGVmaW5lZCIpCiBDT05GSUdf
Q1JPU1NfQ09NUElMRSA6PSAkKENST1NTX0NPTVBJTEU6IiUiPSUpCiBlbmRpZgogCi1pbmNsdWRl
ICQoQ09ORklHX1VLX0JBU0UpL2FyY2gvJChVS19GQU1JTFkpL0NvbXBpbGVyLnVrCiskKGV2YWwg
JChjYWxsIHZlcmJvc2VfaW5jbHVkZSwkKENPTkZJR19VS19CQVNFKS9hcmNoLyQoVUtfRkFNSUxZ
KS9Db21waWxlci51aykpCiAKICMgTWFrZSB2YXJpYWJsZXMgKENDLCBldGMuLi4pCiBMRAkJOj0g
JChDT05GSUdfQ1JPU1NfQ09NUElMRSlnY2MKQEAgLTU1MiwyMSArNTU2LDI0IEBAIGlmbmVxICgk
KENPTkZJR19VS19CQVNFKSwkKENPTkZJR19VS19BUFApKQogJChldmFsICQoY2FsbCBfaW1wb3J0
X2xpYiwkKENPTkZJR19VS19BUFApKSk7CiBlbmRpZgogCi1pbmNsdWRlICQoQ09ORklHX1VLX0JB
U0UpL2xpYi9NYWtlZmlsZS51ayAjIGxpYnJhcmllcworIyBpbnRlcm5hbCBsaWJyYXJpZXMKKyQo
ZXZhbCAkKGNhbGwgdmVyYm9zZV9pbmNsdWRlLCQoQ09ORklHX1VLX0JBU0UpL2xpYi9NYWtlZmls
ZS51aykpCiAKICMgZXh0ZXJuYWwgbGlicmFyaWVzCiAkKGZvcmVhY2ggRSwkKEVMSUJfRElSKSwg
XAogCSQoZXZhbCAkKGNhbGwgX2ltcG9ydF9saWIsJChFKSkpOyBcCiApCi0kKGV2YWwgJChjYWxs
IF9pbXBvcnRfbGliLCQoQ09ORklHX1VLX0JBU0UpL2FyY2gvJChVS19GQU1JTFkpKSkgIyBhcmNo
aXRlY3R1cmUgbGlicmFyaWVzCi1pbmNsdWRlICQoQ09ORklHX1VLX0JBU0UpL3BsYXQvTWFrZWZp
bGUudWsgIyBwbGF0Zm9ybSBsaWJyYXJpZXMKKyMgYXJjaGl0ZWN0dXJlIGxpYnJhcnkKKyQoZXZh
bCAkKGNhbGwgX2ltcG9ydF9saWIsJChDT05GSUdfVUtfQkFTRSkvYXJjaC8kKFVLX0ZBTUlMWSkp
KQorIyBpbnRlcm5hbCBwbGF0Zm9ybSBsaWJyYXJpZXMKKyQoZXZhbCAkKGNhbGwgdmVyYm9zZV9p
bmNsdWRlLCQoQ09ORklHX1VLX0JBU0UpL3BsYXQvTWFrZWZpbGUudWspKQogIyBleHRlcm5hbCBw
bGF0Zm9ybSBsaWJyYXJpZXMKICMgTk9URTogV2UgaW5jbHVkZSB0aGVtIGFmdGVyIGludGVybmFs
IHBsYXRmb3JtIGxpYnMgc28gdGhhdCBhbHNvIGJhc2UgdmFyaWFibGVzCiAjICAgICAgIHByb3Zp
ZGVkIHdpdGggL3BsYXQvTWFrZWZpbGUudWsgYXJlIHBvcHVsYXRlZAogJChmb3JlYWNoIEUsJChF
UExBVF9ESVIpLCBcCiAJJChldmFsICQoY2FsbCBfaW1wb3J0X2xpYiwkKEUpKSk7IFwKICkKLWlu
Y2x1ZGUgJChDT05GSUdfVUtfQkFTRSkvTWFrZWZpbGUudWsgIyBVbmlrcmFmdCBiYXNlCiskKGV2
YWwgJChjYWxsIHZlcmJvc2VfaW5jbHVkZSwkKENPTkZJR19VS19CQVNFKS9NYWtlZmlsZS51aykp
ICMgVW5pa3JhZnQgYmFzZQogCiBpZmVxICgkKGNhbGwgcXN0cmlwLCQoVUtfUExBVFMpICQoVUtf
UExBVFMteSkpLCkKICQod2FybmluZyBZb3UgZGlkIG5vdCBjaG9vc2UgYW55IHRhcmdldCBwbGF0
Zm9ybS4pCkBAIC01ODMsMTAgKzU5MCwxMyBAQCBlbmRpZgogZW5kaWYKIAogIyBHZW5lcmF0ZSBi
dWlsZCBydWxlcwotaW5jbHVkZSAkKENPTkZJR19VS19CQVNFKS9zdXBwb3J0L2J1aWxkL01ha2Vm
aWxlLmJ1aWxkCiskKGV2YWwgJChjYWxsIHZlcmJvc2VfaW5jbHVkZSwkKENPTkZJR19VS19CQVNF
KS9zdXBwb3J0L2J1aWxkL01ha2VmaWxlLmJ1aWxkKSkKIAorIyBJbmNsdWRlIHNvdXJjZSBkZXBl
bmRlbmNpZXMKIGlmbmVxICgkKGNhbGwgcXN0cmlwLCQoVUtfREVQUykgJChVS19ERVBTLXkpKSwp
Ci0taW5jbHVkZSAkKFVLX0RFUFMpICQoVUtfREVQUy15KSAjIGluY2x1ZGUgaGVhZGVyIGRlcGVu
ZGVuY2llcworJChmb3JlYWNoIF9ELCQoVUtfREVQUykgJChVS19ERVBTLXkpLFwKKyAkKGV2YWwg
JChjYWxsIHZlcmJvc2VfaW5jbHVkZV90cnksJChfRCkpKSBcCispCiBlbmRpZgogCiAjIGluY2x1
ZGUgTWFrZWZpbGUgZm9yIHBsYXRmb3JtIGxpbmtpbmcgKGBMaW5rZXIudWtgKQpAQCAtNjI3LDcg
KzYzNyw3IEBAIGFsbDogaW1hZ2VzIGdkYl9oZWxwZXJzCiAjIENsZWFudXAgcnVsZXMKICMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCiAjIEdlbmVyYXRlIGNsZWFuaW5nIHJ1bGVzCi1pbmNsdWRlICQo
Q09ORklHX1VLX0JBU0UpL3N1cHBvcnQvYnVpbGQvTWFrZWZpbGUuY2xlYW4KKyQoZXZhbCAkKGNh
bGwgdmVyYm9zZV9pbmNsdWRlLCQoQ09ORklHX1VLX0JBU0UpL3N1cHBvcnQvYnVpbGQvTWFrZWZp
bGUuY2xlYW4pKQogCiBjbGVhbi1saWJzOiAkKGFkZHByZWZpeCBjbGVhbi0sXAogCSQoZm9yZWFj
aCBQLCQoVUtfUExBVFMpICQoVUtfUExBVFMteSksXApkaWZmIC0tZ2l0IGEvc3VwcG9ydC9idWls
ZC9NYWtlZmlsZS5ydWxlcyBiL3N1cHBvcnQvYnVpbGQvTWFrZWZpbGUucnVsZXMKaW5kZXggZTgx
N2RkY2IuLmExMzE4MGE4IDEwMDY0NAotLS0gYS9zdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVz
CisrKyBiL3N1cHBvcnQvYnVpbGQvTWFrZWZpbGUucnVsZXMKQEAgLTEyNywxNyArMTI3LDMyIEBA
IGVuZGVmCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKKyMgSW5jbHVkZSBhIHN1Yi1tYWtl
ZmlsZQorIyB2ZXJib3NlX2luY2x1ZGUgJHBhdGgKK2RlZmluZSB2ZXJib3NlX2luY2x1ZGUgPQor
JChjYWxsIHZlcmJvc2VfaW5mbyxJbmNsdWRpbmcgJCgxKS4uLikKK2luY2x1ZGUgJCgxKQorZW5k
ZWYKKworIyBUcnkgdG8gaW5jbHVkZSBhIHN1Yi1tYWtlZmlsZQorIyAoZG9lcyBub3QgZmFpbCBp
ZiBpdCBkb2VzIG5vdCBleGlzdCkKKyMgdmVyYm9zZV9pbmNsdWRlX3RyeSAkcGF0aAorZGVmaW5l
IHZlcmJvc2VfaW5jbHVkZV90cnkgPQorJChjYWxsIHZlcmJvc2VfaW5mbyxUcnlpbmcgdG8gaW5j
bHVkZSAkKDEpLi4uKQorLWluY2x1ZGUgJCgxKQorZW5kZWYKKwogIyBJbXBvcnQgYSBsaWJyYXJ5
CiAjIEZvciBpbnRlcm5hbGx5IHVzZSBvbmx5IChVbmlrcmFmdCBtYWluIG1ha2VmaWxlIGFuZCBp
bnRlcm5hbCBsaWJzIE1ha2VmaWtlLnVrKQogIyBfaW1wb3J0X2xpYnJhcnkgJHBhdGgKIGRlZmlu
ZSBfaW1wb3J0X2xpYiA9CiBfSU1QT1JUX0JBU0UgOj0gJCgxKQotaW5jbHVkZSAkKDEpL01ha2Vm
aWxlLnVrCiskKGNhbGwgdmVyYm9zZV9pbmNsdWRlLCQoMSkvTWFrZWZpbGUudWspCiB1bmRlZmlu
ZSBfSU1QT1JUX0JBU0UKIGVuZGVmCiAjIF9pbXBvcnRfbGlua2VyICRwbGF0X25hbWUKIGRlZmlu
ZSBfaW1wb3J0X2xpbmtlciA9Ci0gaW5jbHVkZSAkKFVLX1BMQVRfJChjYWxsIHVjLCQoMSkpX0xJ
TktFUikKKyQoY2FsbCB2ZXJib3NlX2luY2x1ZGUsJChVS19QTEFUXyQoY2FsbCB1YywkKDEpKV9M
SU5LRVIpKQogZW5kZWYKIAogIyBSZWdpc3RlciBhIHBsYXRmb3JtIHRvIHRoZSBidWlsZCBzeXN0
ZW0KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9t
aW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 23:42:37 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 23:42:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j21eP-0001Nc-3s; Wed, 12 Feb 2020 23:42:37 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fA++=4A=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j21eN-0001NF-EX
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 23:42:35 +0000
X-Inumbo-ID: 53314a38-4df1-11ea-b810-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 53314a38-4df1-11ea-b810-12813bfff9fa;
 Wed, 12 Feb 2020 23:42:27 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 5D7A3F201C;
 Thu, 13 Feb 2020 00:42:26 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id zz_RQikmFU0e; Thu, 13 Feb 2020 00:42:26 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 32006F2008
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 00:42:24 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 00:42:22 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Thu, 13 Feb 2020 00:42:14 +0100
Message-ID: <20200212234216.9585-3-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
References: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH 2/4] build: Suppress messages about
 changing directories
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U3VwcHJlc3NlcyBgbWFrZWAgbWVzc2FnZXMgYWJvdXQgY2hhbmdpbmcgdGhlIGN1cnJlbnQgZGly
ZWN0b3J5LgoKU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNs
YWIuZXU+Ci0tLQogTWFrZWZpbGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv
bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQpp
bmRleCBlZWNiM2RmYS4uNzk0ODM0ODEgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2Vm
aWxlCkBAIC02ODIsNyArNjgyLDcgQEAgS0NPTkZJR19UT09MUyA6PSAkKGFkZHByZWZpeCAkKEtD
T05GSUdfRElSKS8sJChLQ09ORklHX1RPT0xTKSkKIAogJChLQ09ORklHX1RPT0xTKToKIAlta2Rp
ciAtcCAkKEBEKS9seGRpYWxvZwotCSQoTUFLRSkgQ0M9IiQoSE9TVENDX05PQ0NBQ0hFKSIgSE9T
VENDPSIkKEhPU1RDQ19OT0NDQUNIRSkiIFwKKwkkKE1BS0UpIC0tbm8tcHJpbnQtZGlyZWN0b3J5
IENDPSIkKEhPU1RDQ19OT0NDQUNIRSkiIEhPU1RDQz0iJChIT1NUQ0NfTk9DQ0FDSEUpIiBcCiAJ
ICAgIG9iaj0kKEBEKSAtQyAkKENPTkZJRykgLWYgTWFrZWZpbGUuYnIgJChAKQogCiBERUZDT05G
SUcgPSAkKGNhbGwgcXN0cmlwLCQoVUtfREVGQ09ORklHKSkKQEAgLTkwNiw3ICs5MDYsNyBAQCAk
KGZpbHRlci1vdXQgX2FsbCAkKEJVSUxEX0RJUikvTWFrZWZpbGUgc3ViLW1ha2UgZGlzdGNsZWFu
IHByb3BlcmNsZWFuIGhlbHAgJChsYQogCUA6CiAKIHN1Yi1tYWtlOiAkKEJVSUxEX0RJUikvTWFr
ZWZpbGUKLQkkKFEpJChNQUtFKSBDT05GSUdfVUtfQkFTRT0kKENPTkZJR19VS19CQVNFKSAtQyAk
KEJVSUxEX0RJUikgLWYgJChCVUlMRF9ESVIpL01ha2VmaWxlICQoTUFLRUNNREdPQUxTKQorCSQo
USkkKE1BS0UpIC0tbm8tcHJpbnQtZGlyZWN0b3J5IENPTkZJR19VS19CQVNFPSQoQ09ORklHX1VL
X0JBU0UpIC1DICQoQlVJTERfRElSKSAtZiAkKEJVSUxEX0RJUikvTWFrZWZpbGUgJChNQUtFQ01E
R09BTFMpCiAKIGVuZGlmCiAKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp
bG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 12 23:42:42 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 12 Feb 2020 23:42:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j21eU-0001Oc-5g; Wed, 12 Feb 2020 23:42:42 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=fA++=4A=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j21eS-0001OJ-EU
 for minios-devel@lists.xen.org; Wed, 12 Feb 2020 23:42:40 +0000
X-Inumbo-ID: 546992f2-4df1-11ea-b810-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 546992f2-4df1-11ea-b810-12813bfff9fa;
 Wed, 12 Feb 2020 23:42:29 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 78BD9F201C;
 Thu, 13 Feb 2020 00:42:28 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id UEDWWsGW_f4W; Thu, 13 Feb 2020 00:42:28 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 419BDF2008
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 00:42:26 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 00:42:24 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Thu, 13 Feb 2020 00:42:15 +0100
Message-ID: <20200212234216.9585-4-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
In-Reply-To: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
References: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH 3/4] build: Use $(HOSTLN) instead of
 `ln`
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VXNlcyAkKEhPU1RMTikgY29tbWFuZCBkZWZpbml0aW9uIGluc3RlYWQgb2YgYGxuYCBkaXJlY3Rs
eS4gVGhpcwphZmZlY3RzIGFuZCB1cGRhdGVzIHRoZSBydWxlcyBvZiBsaW5raW5nIHRoZSBmb2xs
b3dpbmcgZmlsZXMgdG8gdGhlCmBidWlsZC9gIGRpcmVjdG9yeTogdWstZ2RiLnB5LCBNYWtlZmls
ZQoKU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+
Ci0tLQogTWFrZWZpbGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks
IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQppbmRleCA3
OTQ4MzQ4MS4uZjBiNjA0OGMgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBA
IC02MTMsNyArNjEzLDcgQEAgaW1hZ2VzOiAkKFVLX0RFQlVHX0lNQUdFUykgJChVS19ERUJVR19J
TUFHRVMteSkgJChVS19JTUFHRVMpICQoVUtfSU1BR0VTLXkpCiAKIEdEQl9IRUxQRVJfTElOS1Mg
Oj0gJChhZGRzdWZmaXggLmdkYi5weSwkKFVLX0RFQlVHX0lNQUdFUykgJChVS19ERUJVR19JTUFH
RVMteSkpCiAkKEdEQl9IRUxQRVJfTElOS1MpOgotCSQoY2FsbCB2ZXJib3NlX2NtZCxMTiwkKG5v
dGRpciAkQCksIGxuIC1zZiB1ay1nZGIucHkgJEApCisJJChjYWxsIHZlcmJvc2VfY21kLExOLCQo
bm90ZGlyICRAKSwkKEhPU1RMTikgLXNmIHVrLWdkYi5weSAkQCkKIAogU0NSSVBUU19ESVJfQkFD
S1NMQVNIRUQgPSAkKHN1YnN0IC8sXC8sJChTQ1JJUFRTX0RJUikpCiAkKEJVSUxEX0RJUikvdWst
Z2RiLnB5OiAkKFNDUklQVFNfRElSKS91ay1nZGIucHkKQEAgLTg5OSw3ICs4OTksNyBAQCBlbHNl
ICMhKCQoc3ViX21ha2VfZXhlYyksKQogZXhwb3J0IHN1Yl9tYWtlX2V4ZWM6PTEKIAogJChCVUlM
RF9ESVIpL01ha2VmaWxlOgotCWxuIC1zbiAkKENPTkZJR19VS19CQVNFKS9NYWtlZmlsZSAkKEAp
CisJJChjYWxsIHZlcmJvc2VfY21kLExOLCQobm90ZGlyICRAKSwkKEhPU1RMTikgLXNmICQoQ09O
RklHX1VLX0JBU0UpL01ha2VmaWxlICRAKQogCiAkKGZpbHRlci1vdXQgX2FsbCAkKEJVSUxEX0RJ
UikvTWFrZWZpbGUgc3ViLW1ha2UgZGlzdGNsZWFuIHByb3BlcmNsZWFuIGhlbHAgJChsYXN0d29y
ZCAkKE1BS0VGSUxFX0xJU1QpKSwgXAogICAkKE1BS0VDTURHT0FMUykpIGFsbDogc3ViLW1ha2UK
LS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5p
b3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 09:32:36 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 09:32:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2ArL-0003NU-Dn; Thu, 13 Feb 2020 09:32:35 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=HQlG=4B=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2ArK-0003NL-FE
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 09:32:34 +0000
X-Inumbo-ID: c36710f6-4e43-11ea-ade5-bc764e2007e4
Received: from mail-vs1-xe42.google.com (unknown [2607:f8b0:4864:20::e42])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c36710f6-4e43-11ea-ade5-bc764e2007e4;
 Thu, 13 Feb 2020 09:32:33 +0000 (UTC)
Received: by mail-vs1-xe42.google.com with SMTP id k188so3137639vsc.8
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 01:32:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=n/jILi5UeTCtZGtBjq5F2XXrToWAApt7pxyk9hGGV/M=;
 b=rzEUwdvb7My26dRioijumh95Tj/Q7qSzReNccTIoUab0tUVtt0cMxSRWQJir4OIl+n
 BmN4FaJjn2vp98mr3VvZaNSwyz93X7KFLtGOKlgyqJ1HRZ9j6tUf7t8mX+SoXaUirBEk
 FNliPytkQd0gjgUaBJIUVPR3PaRtaruJW588GdSGPvnXl7gVVLyDYXWeWYzh+WdTmqdj
 NqMDf+Vr8xt+2Za1tfXR4vkbbpDoNw//EaBfcfzT4L0TbwjjMjP86HATQQxwCyCb7oP+
 +7ZspCNpEqCFGxVoWke9uwTQ7h75CkuOqwctpRUIv1oOTzPuwt6M3q0gKi3NE6Uc0pgZ
 GJBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=n/jILi5UeTCtZGtBjq5F2XXrToWAApt7pxyk9hGGV/M=;
 b=WVqttDe6s3j0NnXNluVmmot5SKRA58Cyg69b9ScL2z+WXg7eE9eCecZwb9+8ekBGw4
 BJT8cR/T05adVJXMkKO6tMlWBN34SS7DSGRD2VXg+wGcxhV3hH19hJAV4iZ8LVY+zSEf
 hL0YsmFSzMkSGRM6b+RWuQ1oWJxfWxdi1HPaD9mIa1PtobBSM6y3tDLzlpPjrc3KLaSk
 sn1oFAIG9K1obb+/RM8mPxCFRc7BBJzHRoOK/gLYZeOzgeUnuQH1FN6ir4cslISaBiD0
 qTndU7rxQ5HTlTI42XZ3zpD8SK+OvAWaqnhmkKQGDpWjgtdBxc88dOhnW5g5QeTdXVry
 sp1A==
X-Gm-Message-State: APjAAAUrInXAs8pFOg3jyAtDabiv+LPJgcw9/IGGa47Jg5hsKKrQnYAw
 /y2MUU7oGgPXZiFsS9abTapWskFyy9j6WlvY82Q0MGx4
X-Google-Smtp-Source: APXvYqyze6TBXfeIqJkC6uO8Iq9yJLj0XTkmTWy61cN/Ig4uCrCmJfcgiHGX0nf4nNGVOnc9KZ57QjOw6WVbuHLXYVY=
X-Received: by 2002:a05:6102:2f4:: with SMTP id
 j20mr1633964vsj.17.1581586353213; 
 Thu, 13 Feb 2020 01:32:33 -0800 (PST)
MIME-Version: 1.0
References: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
 <20200212234216.9585-2-simon.kuenzer@neclab.eu>
In-Reply-To: <20200212234216.9585-2-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Thu, 13 Feb 2020 10:32:21 +0100
Message-ID: <CAEX4t-NdE0RyTE1rn=nayjsOVHA=JvW5bekkjrnf2vZrp9m8RA@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 1/4] build: Hide warning about
 `exportsyms.uk`
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCi0tIEZlbGlwZQoKUmV2aWV3ZWQtYnk6IEZl
bGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KCk9uIFRodSwgRmViIDEzLCAyMDIw
IGF0IDEyOjQyIEFNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90
ZToKPgo+IFNob3dzIHRoZSB3YXJuaW5nIGFib3V0IG1pc3NpbmcgYGV4cG9ydHN5bXMudWtgIG9u
bHkgd2hlbiB2ZXJib3NlCj4gbW9kZSAobWFrZSBWPTEpIGlzIGVuYWJsZWQuCj4KPiBTaWduZWQt
b2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KPiAtLS0KPiAg
TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKy0t
LS0tLS0tLS0tLS0tLQo+ICBzdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVzIHwgIDIgKy0KPiAg
MiBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKPgo+IGRp
ZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCj4gaW5kZXggODRhZGIxNmQuLmVlY2IzZGZh
IDEwMDY0NAo+IC0tLSBhL01ha2VmaWxlCj4gKysrIGIvTWFrZWZpbGUKPiBAQCAtNjQsNiArNjQs
MzQgQEAgc3BhY2UgOj0gJChlbXB0eSkgJChlbXB0eSkKPiAgIyBleHBsaWN0bHkgdGhyb3cgYXdh
eSBhbnkgb3V0cHV0IGZyb20gJ2NkJyBoZXJlLgo+ICBleHBvcnQgQ0RQQVRIIDo9Cj4KPiArIyBU
byBwdXQgbW9yZSBmb2N1cyBvbiB3YXJuaW5ncywgYmUgbGVzcyB2ZXJib3NlIGFzIGRlZmF1bHQK
PiArIyBVc2UgJ21ha2UgVj0xJyB0byBzZWUgdGhlIGZ1bGwgY29tbWFuZHMKPiAraWZlcSAoIiQo
b3JpZ2luIFYpIiwgImNvbW1hbmQgbGluZSIpCj4gKyAgQlVJTERfVkVSQk9TRSA9ICQoVikKPiAr
ZW5kaWYKPiAraWZuZGVmIEJVSUxEX1ZFUkJPU0UKPiArICBCVUlMRF9WRVJCT1NFID0gMAo+ICtl
bmRpZgo+ICsKPiAraWZlcSAoJChLQlVJTERfVkVSQk9TRSksMSkKPiArICBRID0KPiAraWZuZGVm
IFZFUkJPU0UKPiArICBWRVJCT1NFID0gMQo+ICtlbmRpZgo+ICtleHBvcnQgVkVSQk9TRQo+ICtl
bHNlCj4gKyAgIFEgPSBACj4gK2VuZGlmCj4gKwo+ICsjIEhlbHBlciB0aGF0IHNob3dzIGFuIGBp
bmZvYCBtZXNzYWdlIG9ubHkKPiArIyB3aGVuIHZlcmJvc2UgbW9kZSBpcyBvbgo+ICsjIHZlcmJv
c2VfaW5mbyAkdmVyYm9zZW1lc3NhZ2UKPiAraWZlcSAoJChCVUlMRF9WRVJCT1NFKSwxKQo+ICt2
ZXJib3NlX2luZm8gPSAkKGluZm8gJCgxKSkKPiArZWxzZQo+ICt2ZXJib3NlX2luZm8gPQo+ICtl
bmRpZgo+ICsKPiAgIyBVc2UgY3VycmVudCBkaXJlY3RvcnkgYXMgYmFzZQo+ICBDT05GSUdfVUtf
QkFTRSA/PSAkKENVUkRJUikKPiAgb3ZlcnJpZGUgQ09ORklHX1VLX0JBU0UgOj0gJChyZWFscGF0
aCAkKENPTkZJR19VS19CQVNFKSkKPiBAQCAtMTkwLDI1ICsyMTgsNiBAQCBub2NvbmZpZ190YXJn
ZXRzICAgOj0gdWtjb25maWcgbWVudWNvbmZpZyBuY29uZmlnIGdjb25maWcgeGNvbmZpZyBjb25m
aWcgXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdGNvbmZpZyBpc2NyaXB0Y29u
ZmlnIGttZW51Y29uZmlnIGd1aWNvbmZpZyBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZHVtcHZhcnNjb25maWcgJChudWxsX3RhcmdldHMpCj4KPiAtIyBUbyBwdXQgbW9yZSBmb2N1cyBv
biB3YXJuaW5ncywgYmUgbGVzcyB2ZXJib3NlIGFzIGRlZmF1bHQKPiAtIyBVc2UgJ21ha2UgVj0x
JyB0byBzZWUgdGhlIGZ1bGwgY29tbWFuZHMKPiAtaWZlcSAoIiQob3JpZ2luIFYpIiwgImNvbW1h
bmQgbGluZSIpCj4gLSAgQlVJTERfVkVSQk9TRSA9ICQoVikKPiAtZW5kaWYKPiAtaWZuZGVmIEJV
SUxEX1ZFUkJPU0UKPiAtICBCVUlMRF9WRVJCT1NFID0gMAo+IC1lbmRpZgo+IC0KPiAtaWZlcSAo
JChLQlVJTERfVkVSQk9TRSksMSkKPiAtICBRID0KPiAtaWZuZGVmIFZFUkJPU0UKPiAtICBWRVJC
T1NFID0gMQo+IC1lbmRpZgo+IC1leHBvcnQgVkVSQk9TRQo+IC1lbHNlCj4gLSAgIFEgPSBACj4g
LWVuZGlmCj4gLQo+ICAjIHdlIHdhbnQgYmFzaCBhcyBzaGVsbAo+ICBTSEVMTCA6PSAkKHNoZWxs
IGlmIFsgLXggIiQkQkFTSCIgXTsgdGhlbiBlY2hvICQkQkFTSDsgXAo+ICAgICAgICAgIGVsc2Ug
aWYgWyAteCAvYmluL2Jhc2ggXTsgdGhlbiBlY2hvIC9iaW4vYmFzaDsgXAo+IGRpZmYgLS1naXQg
YS9zdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVzIGIvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5y
dWxlcwo+IGluZGV4IDIyODQ0NmI2Li5lODE3ZGRjYiAxMDA2NDQKPiAtLS0gYS9zdXBwb3J0L2J1
aWxkL01ha2VmaWxlLnJ1bGVzCj4gKysrIGIvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5ydWxlcwo+
IEBAIC02NTksNyArNjU5LDcgQEAgZW5kZWYKPiAgIyBidWlsZHJ1bGVfb2xpYiAkbGlibmFtZQo+
ICBkZWZpbmUgYnVpbGRydWxlX29saWIgPQo+ICAkKGlmICQod2lsZGNhcmQgJCgkKGNhbGwgdnBy
ZWZpeF9saWIsJCgxKSxFWFBPUlRTKSkpLCxcCj4gLSAgICAgICAkKHdhcm5pbmcgV2FybmluZzog
RGVmaW5pdGlvbiBvZiBleHBvcnRlZCBzeW1ib2xzIGZvciAkKDEpIG1pc3Npbmc6ICQoJChjYWxs
IHZwcmVmaXhfbGliLCQoMSksRVhQT1JUUykpKSBcCj4gKyAgICAgICAkKGNhbGwgdmVyYm9zZV9p
bmZvLFdhcm5pbmc6IERlZmluaXRpb24gb2YgZXhwb3J0ZWQgc3ltYm9scyBmb3IgJCgxKSBtaXNz
aW5nOiAkKCQoY2FsbCB2cHJlZml4X2xpYiwkKDEpLEVYUE9SVFMpKSkgXAo+ICApCj4KPiAgJChj
YWxsIGxpYm5hbWUycHJlb2xpYiwkKDEpKTogJCgkKGNhbGwgdnByZWZpeF9saWIsJCgxKSxPQkpT
KSkgXAo+IC0tCj4gMi4yMC4xCj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCj4gTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pbmlvcy1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp
bG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h
bi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 09:32:46 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 09:32:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2ArW-0003Of-FX; Thu, 13 Feb 2020 09:32:46 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=HQlG=4B=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2ArV-0003OW-7r
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 09:32:45 +0000
X-Inumbo-ID: ca0addc0-4e43-11ea-ade5-bc764e2007e4
Received: from mail-vs1-xe43.google.com (unknown [2607:f8b0:4864:20::e43])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id ca0addc0-4e43-11ea-ade5-bc764e2007e4;
 Thu, 13 Feb 2020 09:32:44 +0000 (UTC)
Received: by mail-vs1-xe43.google.com with SMTP id n27so3504816vsa.0
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 01:32:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=xMp9WXWo/MWhjWgvo2skH83eOuizHl2seS/u0hmVTX0=;
 b=X7FuXZ+ORdDAZZuRf3IKypVWQ0tpXlEBbPAXv8wdXSzixCkLkUtpeRgUilOmgvaZir
 W60+QR6uJNSLM/XDl83fGkbIG1hdv6hVCd6YQropSmDPtRvC8lm+rfoobqcZGGzBIyF0
 XKQIj9sPVf0E5L6MtNq5FxCpntLNbENPpnOA9xThLkvzthawjoC39FdtJgjkJteyC2nJ
 otzxRlpvLBJ0OQCSxuqpLYuB7QriFJrU5/df4VJeBPYkRe5YCb04TscChaAZfY8OAf1d
 eVfEx+sKStWorH/TvFCs6k9SC9sLIoL3hguaOIin0eEJcgsIbcicsyiql/Uk/q9AG5EB
 n2UQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=xMp9WXWo/MWhjWgvo2skH83eOuizHl2seS/u0hmVTX0=;
 b=LYHs0aDn0EuNaL1KzzRnRTCs1o/BJGhbgXLBNQx7519tfy63Loo4eXcxFWIsnm9QdT
 x9Rbyl4RIMX7ViQgaAPddAsEyG1wlU9t7vz5BRjRvAbGAd4iIXwhR5Fb2VWX/GJ0u6hH
 54DFYMzNfuFfC9j5s4HryAvBa7J8BZD0s+x1dbWg5f7XCXwejgCm8DgL5ZrzMcWA1Lid
 XsIczcHEqa0cUinRFYqiN3RUY1l0xbScTZqIiBaP4nZRCTtBhHzxTWvwr6JRpMbDir+i
 0irWzyXOfK+csrTczOP/+CdpqHm9hnX5RkutpcRPfAgKq2d9nmyQoFl6q2HSjhoBvGDZ
 0IWQ==
X-Gm-Message-State: APjAAAX2DOfdTq1RSj4Loi6m8MHSo9+I76jbGy9z7Vl5KDNhgHOipoeH
 0765gQgNildJ0sAyctIDl3dK7FHrSylWkyZD+c0=
X-Google-Smtp-Source: APXvYqx3YpUqoaK9cauogS7nYpOMJNpBdi96QwRsAM92RM+GZb7R0RSbk1Ryr8d4GhYYpd6g0MfUNBGLxuxjM1At7rw=
X-Received: by 2002:a05:6102:127c:: with SMTP id
 q28mr14319578vsg.72.1581586364495; 
 Thu, 13 Feb 2020 01:32:44 -0800 (PST)
MIME-Version: 1.0
References: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
 <20200212234216.9585-3-simon.kuenzer@neclab.eu>
In-Reply-To: <20200212234216.9585-3-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Thu, 13 Feb 2020 10:32:33 +0100
Message-ID: <CAEX4t-NODV2dnfDFN-Znv3BTAn63V3sMHORN9GfccUpSZzqPBA@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 2/4] build: Suppress messages
 about changing directories
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCi0tIEZlbGlwZQoKUmV2aWV3ZWQtYnk6IEZl
bGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KCk9uIFRodSwgRmViIDEzLCAyMDIw
IGF0IDEyOjQyIEFNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90
ZToKPgo+IFN1cHByZXNzZXMgYG1ha2VgIG1lc3NhZ2VzIGFib3V0IGNoYW5naW5nIHRoZSBjdXJy
ZW50IGRpcmVjdG9yeS4KPgo+IFNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1Pgo+IC0tLQo+ICBNYWtlZmlsZSB8IDQgKystLQo+ICAxIGZpbGUgY2hh
bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL01h
a2VmaWxlIGIvTWFrZWZpbGUKPiBpbmRleCBlZWNiM2RmYS4uNzk0ODM0ODEgMTAwNjQ0Cj4gLS0t
IGEvTWFrZWZpbGUKPiArKysgYi9NYWtlZmlsZQo+IEBAIC02ODIsNyArNjgyLDcgQEAgS0NPTkZJ
R19UT09MUyA6PSAkKGFkZHByZWZpeCAkKEtDT05GSUdfRElSKS8sJChLQ09ORklHX1RPT0xTKSkK
Pgo+ICAkKEtDT05GSUdfVE9PTFMpOgo+ICAgICAgICAgbWtkaXIgLXAgJChARCkvbHhkaWFsb2cK
PiAtICAgICAgICQoTUFLRSkgQ0M9IiQoSE9TVENDX05PQ0NBQ0hFKSIgSE9TVENDPSIkKEhPU1RD
Q19OT0NDQUNIRSkiIFwKPiArICAgICAgICQoTUFLRSkgLS1uby1wcmludC1kaXJlY3RvcnkgQ0M9
IiQoSE9TVENDX05PQ0NBQ0hFKSIgSE9TVENDPSIkKEhPU1RDQ19OT0NDQUNIRSkiIFwKPiAgICAg
ICAgICAgICBvYmo9JChARCkgLUMgJChDT05GSUcpIC1mIE1ha2VmaWxlLmJyICQoQCkKPgo+ICBE
RUZDT05GSUcgPSAkKGNhbGwgcXN0cmlwLCQoVUtfREVGQ09ORklHKSkKPiBAQCAtOTA2LDcgKzkw
Niw3IEBAICQoZmlsdGVyLW91dCBfYWxsICQoQlVJTERfRElSKS9NYWtlZmlsZSBzdWItbWFrZSBk
aXN0Y2xlYW4gcHJvcGVyY2xlYW4gaGVscCAkKGxhCj4gICAgICAgICBAOgo+Cj4gIHN1Yi1tYWtl
OiAkKEJVSUxEX0RJUikvTWFrZWZpbGUKPiAtICAgICAgICQoUSkkKE1BS0UpIENPTkZJR19VS19C
QVNFPSQoQ09ORklHX1VLX0JBU0UpIC1DICQoQlVJTERfRElSKSAtZiAkKEJVSUxEX0RJUikvTWFr
ZWZpbGUgJChNQUtFQ01ER09BTFMpCj4gKyAgICAgICAkKFEpJChNQUtFKSAtLW5vLXByaW50LWRp
cmVjdG9yeSBDT05GSUdfVUtfQkFTRT0kKENPTkZJR19VS19CQVNFKSAtQyAkKEJVSUxEX0RJUikg
LWYgJChCVUlMRF9ESVIpL01ha2VmaWxlICQoTUFLRUNNREdPQUxTKQo+Cj4gIGVuZGlmCj4KPiAt
LQo+IDIuMjAuMQo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwo+IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vbWluaW9zLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu
Zm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 09:32:54 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 09:32:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2Are-0003RO-HG; Thu, 13 Feb 2020 09:32:54 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=HQlG=4B=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2Ard-0003RA-5G
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 09:32:53 +0000
X-Inumbo-ID: cec4b35e-4e43-11ea-ade5-bc764e2007e4
Received: from mail-vk1-xa43.google.com (unknown [2607:f8b0:4864:20::a43])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id cec4b35e-4e43-11ea-ade5-bc764e2007e4;
 Thu, 13 Feb 2020 09:32:52 +0000 (UTC)
Received: by mail-vk1-xa43.google.com with SMTP id t129so1387229vkg.6
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 01:32:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=+cr1UA02Uk+A6vNle0BZlAwT2cv2UV4+l0CIa++BJ+0=;
 b=IaV40Iktu6T8jk1yhN40fEkbMfAahM6l9dssb+zopnAE6NnTF1IuFoHtm2a6kYmB8v
 CoMoNFA5te5lMOdNvrY44qWOmLy+awLVLzIuTrONG17XXbXit6SxihDc7xdX3sJsKVF/
 9NyYKhpcnEBijQUgw3J86wj0UOqrMphAg6Sb01l7603Pp7PDJqUrbgUTsGILZlg39vzU
 YH6y6ghW9iU9zH1My+xmrM7J5LGV2pyA2Brno1Fw+c/I3TNgO5AYdzayb/zGlBaW0nBo
 oAilAT4xj6AQbUlycFZJFskGK3HlIlj7lEJPEruK4Se3ZL7SZvqIZqDqc16g5t5W7Ovh
 rX5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=+cr1UA02Uk+A6vNle0BZlAwT2cv2UV4+l0CIa++BJ+0=;
 b=dLklm4pcD0IQJ5YDmWFR+B7bWZVY2Kpx82uWbzFGR1Gc3ByIcZDp8Drg8+wde2Hxgk
 IJPpKB1DvUvUW7WVlSyNFTjiGH/WfMz5Q+vSVBUGp+sqb5PjMhZBKM8BwLFWbgS/UXIA
 HDEHnpFcaO9VkVmHW5a5nx0AiHp4/4a9da/ohzipJblW1GHbzFbI/dqUiboWGFnv9ojU
 QFWVADB+UIxf2KEdRTFGMgVmnHw3dJZrqTiw6/Eg3uqm1frK356vCZdbCge04torPJdT
 w6FZZ/TvsLLv4sifGx2h/pVch7jUlC7IFeXzeckYqgGs2MSZnsHNbj/q0w3GKlfSo7CG
 P8rQ==
X-Gm-Message-State: APjAAAXCB2qmJQva2YxxfrycgrJrp4xQCLuiizHJru7E6uhJsP4rPwzv
 9YHbnY+cY2jLijGs8jFYhi/EHWNIul37rbmjXGM=
X-Google-Smtp-Source: APXvYqzK4K1rN4odd8/nRFg3HGNXBAEZ/+q94ZoF7JK3MSv9Er1Ontu6v1w4EXRiwuC6R0ZcDmifAXGFFojO97oOZxE=
X-Received: by 2002:a1f:29c4:: with SMTP id p187mr1377146vkp.99.1581586371994; 
 Thu, 13 Feb 2020 01:32:51 -0800 (PST)
MIME-Version: 1.0
References: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
 <20200212234216.9585-4-simon.kuenzer@neclab.eu>
In-Reply-To: <20200212234216.9585-4-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Thu, 13 Feb 2020 10:32:40 +0100
Message-ID: <CAEX4t-P39L5UK1t1P+cFects9hVOShCWiz7arqjCq+4OKbOEeg@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 3/4] build: Use $(HOSTLN)
 instead of `ln`
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCi0tIEZlbGlwZQoKUmV2aWV3ZWQtYnk6IEZl
bGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KCk9uIFRodSwgRmViIDEzLCAyMDIw
IGF0IDEyOjQyIEFNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90
ZToKPgo+IFVzZXMgJChIT1NUTE4pIGNvbW1hbmQgZGVmaW5pdGlvbiBpbnN0ZWFkIG9mIGBsbmAg
ZGlyZWN0bHkuIFRoaXMKPiBhZmZlY3RzIGFuZCB1cGRhdGVzIHRoZSBydWxlcyBvZiBsaW5raW5n
IHRoZSBmb2xsb3dpbmcgZmlsZXMgdG8gdGhlCj4gYGJ1aWxkL2AgZGlyZWN0b3J5OiB1ay1nZGIu
cHksIE1ha2VmaWxlCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVu
emVyQG5lY2xhYi5ldT4KPiAtLS0KPiAgTWFrZWZpbGUgfCA0ICsrLS0KPiAgMSBmaWxlIGNoYW5n
ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9NYWtl
ZmlsZSBiL01ha2VmaWxlCj4gaW5kZXggNzk0ODM0ODEuLmYwYjYwNDhjIDEwMDY0NAo+IC0tLSBh
L01ha2VmaWxlCj4gKysrIGIvTWFrZWZpbGUKPiBAQCAtNjEzLDcgKzYxMyw3IEBAIGltYWdlczog
JChVS19ERUJVR19JTUFHRVMpICQoVUtfREVCVUdfSU1BR0VTLXkpICQoVUtfSU1BR0VTKSAkKFVL
X0lNQUdFUy15KQo+Cj4gIEdEQl9IRUxQRVJfTElOS1MgOj0gJChhZGRzdWZmaXggLmdkYi5weSwk
KFVLX0RFQlVHX0lNQUdFUykgJChVS19ERUJVR19JTUFHRVMteSkpCj4gICQoR0RCX0hFTFBFUl9M
SU5LUyk6Cj4gLSAgICAgICAkKGNhbGwgdmVyYm9zZV9jbWQsTE4sJChub3RkaXIgJEApLCBsbiAt
c2YgdWstZ2RiLnB5ICRAKQo+ICsgICAgICAgJChjYWxsIHZlcmJvc2VfY21kLExOLCQobm90ZGly
ICRAKSwkKEhPU1RMTikgLXNmIHVrLWdkYi5weSAkQCkKPgo+ICBTQ1JJUFRTX0RJUl9CQUNLU0xB
U0hFRCA9ICQoc3Vic3QgLyxcLywkKFNDUklQVFNfRElSKSkKPiAgJChCVUlMRF9ESVIpL3VrLWdk
Yi5weTogJChTQ1JJUFRTX0RJUikvdWstZ2RiLnB5Cj4gQEAgLTg5OSw3ICs4OTksNyBAQCBlbHNl
ICMhKCQoc3ViX21ha2VfZXhlYyksKQo+ICBleHBvcnQgc3ViX21ha2VfZXhlYzo9MQo+Cj4gICQo
QlVJTERfRElSKS9NYWtlZmlsZToKPiAtICAgICAgIGxuIC1zbiAkKENPTkZJR19VS19CQVNFKS9N
YWtlZmlsZSAkKEApCj4gKyAgICAgICAkKGNhbGwgdmVyYm9zZV9jbWQsTE4sJChub3RkaXIgJEAp
LCQoSE9TVExOKSAtc2YgJChDT05GSUdfVUtfQkFTRSkvTWFrZWZpbGUgJEApCj4KPiAgJChmaWx0
ZXItb3V0IF9hbGwgJChCVUlMRF9ESVIpL01ha2VmaWxlIHN1Yi1tYWtlIGRpc3RjbGVhbiBwcm9w
ZXJjbGVhbiBoZWxwICQobGFzdHdvcmQgJChNQUtFRklMRV9MSVNUKSksIFwKPiAgICAkKE1BS0VD
TURHT0FMUykpIGFsbDogc3ViLW1ha2UKPiAtLQo+IDIuMjAuMQo+Cj4KPiBfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IE1pbmlvcy1kZXZlbCBtYWlsaW5n
IGxpc3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVsCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGlu
ZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl
bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 09:33:01 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 09:33:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2Arl-0003Sd-KJ; Thu, 13 Feb 2020 09:33:01 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=HQlG=4B=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2Ark-0003SQ-CP
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 09:33:00 +0000
X-Inumbo-ID: d2db9912-4e43-11ea-ade5-bc764e2007e4
Received: from mail-vk1-xa42.google.com (unknown [2607:f8b0:4864:20::a42])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id d2db9912-4e43-11ea-ade5-bc764e2007e4;
 Thu, 13 Feb 2020 09:32:59 +0000 (UTC)
Received: by mail-vk1-xa42.google.com with SMTP id b69so1379842vke.9
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 01:32:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=jh2FB1ftYreA90R2y8FvgfpGA4srrVikMiO4yxvMAkA=;
 b=Lm84anMbqL9qs6SiJp1+2yrMxwV9LJ61cAQPKFFnp92K9ocuj2uoKlo11eATPN5rbo
 BmR+ui1gRogEsRcjsrsU209icZMri3ithWFS3NBDAwExpRmR7oIVwn0UhT+dux3ivODf
 vS4QKy+mf0n21yszRXyxX9+qk/XxuUP8GneBQWnT+dK+97GIPdofIqdeORvwYgFsqlX2
 6jwchUL0yMQb877JrqxtzWrAuNzzBrXAwdCqiKyISVPFNYo4zE84VpN+uuXSP5pgQE+h
 vQmQ+0GbbGmD9pTMYNuW/Y6mknLZWUqzpvAQAtf9ZLpmPe348uy8MsLkwpdk0WdQxwG7
 PG1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=jh2FB1ftYreA90R2y8FvgfpGA4srrVikMiO4yxvMAkA=;
 b=JKN8lnTPHgeLp99dtBps2mZ6Bbn+Au8FS5nPPB+k/0H1ew0t1AJwMJF1lMm4mcEdwH
 EuxRuliV3n8h5kcadae6dlB65NewvT+aS5Kf2aP2DPah+EN8U0l2g9brU0ruAgFi8Lie
 5G9nD8ng95+nLWeMRJXuQF1XRU7mt5KGNjKCG//x62o5Gw+wuUWNcbNhkFoFkan5R9ot
 7oqQosgg1SmL/965ii1Sa6CRAOOWSLZ/Ifb29A3U3BRWtqk04UGzeJ9VCezrv+DQT0U7
 MfGc/gFFKHovFBnNtBEnPkJnlBz+ou5KiuHzW8AkcnOdye56Aj/X+gsCxyZQI8/DtYUj
 b2SA==
X-Gm-Message-State: APjAAAWbXFWlUyJvKsF/iQ7dG0wEpZdSe1+wY+rXmqboZLW5F5h1isiJ
 MR2fRbaR2fQSCYa8MNXDEE22+jwzu9w5eMbi/dY=
X-Google-Smtp-Source: APXvYqzrvCOfwbzPQxUs2DuLRDXQDb89Ty0ZXGIXAO34gJa4BRZ2W5dmavYnQN1atmmxpp/sGB3hfoye0AJU4kekFG0=
X-Received: by 2002:a1f:90d4:: with SMTP id s203mr1463971vkd.65.1581586379170; 
 Thu, 13 Feb 2020 01:32:59 -0800 (PST)
MIME-Version: 1.0
References: <20200212234216.9585-1-simon.kuenzer@neclab.eu>
 <20200212234216.9585-5-simon.kuenzer@neclab.eu>
In-Reply-To: <20200212234216.9585-5-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Thu, 13 Feb 2020 10:32:48 +0100
Message-ID: <CAEX4t-PR397bTDOd4FxYyj_wta2jw0cc_KHZs26BM0UBu5YxBA@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 4/4] build: Print including of
 sub-Makefiles (verbose only)
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCi0tIEZlbGlwZQoKUmV2aWV3ZWQtYnk6IEZl
bGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KCk9uIFRodSwgRmViIDEzLCAyMDIw
IGF0IDEyOjQyIEFNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90
ZToKPgo+IFdoZW4gdmVyYm9zZSBtb2RlIGlzIGVuYWJsZWQgKG1ha2UgVj0xKSwgZWFjaCBpbmNs
dWRlIGNvbW1hbmQgaXMKPiBwcmludGVkLiBUaGlzIG1heSBiZSBoZWxwZnVsIGZvciBkZWJ1Z2dp
bmcgYW5kIHN0dWR5aW5nIHRoZSBpbmNsdWRlCj4gb3JkZXJzIG9mIHN1Yi1tYWtlZmlsZXMgKGUu
Zy4sIE1ha2VmaWxlLnVrKS4KPgo+IFNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9u
Lmt1ZW56ZXJAbmVjbGFiLmV1Pgo+IC0tLQo+ICBNYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg
IHwgNDAgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gIHN1cHBvcnQvYnVp
bGQvTWFrZWZpbGUucnVsZXMgfCAxOSArKysrKysrKysrKysrKystLQo+ICAyIGZpbGVzIGNoYW5n
ZWQsIDQyIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL01h
a2VmaWxlIGIvTWFrZWZpbGUKPiBpbmRleCBmMGI2MDQ4Yy4uMTc3MDhiZWYgMTAwNjQ0Cj4gLS0t
IGEvTWFrZWZpbGUKPiArKysgYi9NYWtlZmlsZQo+IEBAIC0xOTMsNiArMTkzLDcgQEAgS0NPTkZJ
R19QTEFUX0lOICAgICAgIDo9ICQoS0NPTkZJR19ESVIpL3BsYXQudWsKPiAgU0NSSVBUU19ESVIg
Oj0gJChDT05GSUdfVUtfQkFTRSkvc3VwcG9ydC9zY3JpcHRzCj4KPiAgIyAjIFNldCBhbmQgZXhw
b3J0IHRoZSB2ZXJzaW9uIHN0cmluZwo+ICskKGNhbGwgdmVyYm9zZV9pbmZvLEluY2x1ZGluZyAk
KENPTkZJR19VS19CQVNFKS92ZXJzaW9uLm1rLi4uKQo+ICBpbmNsdWRlICQoQ09ORklHX1VLX0JB
U0UpL3ZlcnNpb24ubWsKPgo+ICAjIENvbXB1dGUgdGhlIGZ1bGwgbG9jYWwgdmVyc2lvbiBzdHJp
bmcgc28gcGFja2FnZXMgY2FuIHVzZSBpdCBhcy1pcwo+IEBAIC0yODYsNiArMjg3LDcgQEAgSU1B
R0VfTERGTEFHUy15IDo9Cj4gICMgUHVsbCBpbiB0aGUgdXNlcidzIGNvbmZpZ3VyYXRpb24gZmls
ZQo+ICBpZmVxICgkKGZpbHRlciAkKG5vY29uZmlnX3RhcmdldHMpLCQoTUFLRUNNREdPQUxTKSks
KQo+ICBpZm5lcSAoIiQod2lsZGNhcmQgJChVS19DT05GSUcpKSIsIiIpCj4gKyQoY2FsbCB2ZXJi
b3NlX2luZm8sSW5jbHVkaW5nICQoVUtfQ09ORklHKS4uLikKPiAgLWluY2x1ZGUgJChVS19DT05G
SUcpCj4gIFVLX0hBVkVfRE9UX0NPTkZJRyA6PSB5Cj4gIGVuZGlmCj4gQEAgLTM2NywxNCArMzY5
LDE2IEBAIGV4cG9ydCBIT1NUQ0NfTk9DQ0FDSEUgSE9TVENYWF9OT0NDQUNIRQo+ICAjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIwo+ICAjIE1ha2VmaWxlIGhlbHBlcnMKPiAgIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMKPiArJChjYWxsIHZlcmJvc2VfaW5mbyxJbmNsdWRpbmcgJChDT05GSUdfVUtfQkFT
RSkvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5ydWxlcy4uLikKPiAraW5jbHVkZSAkKENPTkZJR19V
S19CQVNFKS9zdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVzCj4gKwo+ICAjIFdlIG5lZWQgdG8g
aW5jbHVkZSB0aGlzIGZpbGUgZWFybHkgKGJlZm9yZSBhbnkgcnVsZSBpcyBkZWZpbmVkKQo+ICAj
IGJ1dCBhZnRlciB3ZSBoYXZlIHRyaWVkIHRvIGxvYWQgYSAuY29uZmlnIGFuZCBhZnRlciBoYXZp
bmcgb3VyIHRvb2xzIGRlZmluZWQKPiAtJChmb3JlYWNoIE0sJChzdHJpcCAkKHdpbGRjYXJkICQo
YWRkc3VmZml4IE1ha2VmaWxlLnJ1bGVzLFwKPiAtICAgICAgICAgICQoQ09ORklHX1VLX0JBU0Up
L3N1cHBvcnQvYnVpbGQvICQoQ09ORklHX1VLX0JBU0UpL2xpYi8qL1wKPiAtICAgICAgICAgICQo
Q09ORklHX1VLX0JBU0UpL3BsYXQvKi8gJChhZGRzdWZmaXggLywkKEVMSUJfRElSKSkgJChBUFBf
RElSKS8pXAo+IC0gICAgICAgICAgICAgKSksXAo+IC0gICAgICAgICAgICAgICAkKGluZm8gSW5j
bHVkZSAkKE0pKTtcCj4gLSAgICAgICAgICAgICAgICQoZXZhbCBpbmNsdWRlICQoTSkpKQo+ICsk
KGZvcmVhY2ggX00sJCh3aWxkY2FyZCAkKGFkZHN1ZmZpeCBNYWtlZmlsZS5ydWxlcyxcCj4gKyAg
ICAgICAgICAkKENPTkZJR19VS19CQVNFKS9saWIvKi8gJChDT05GSUdfVUtfQkFTRSkvcGxhdC8q
LyBcCj4gKyAgICAgICAgICAkKGFkZHN1ZmZpeCAvLCQoRUxJQl9ESVIpKSAkKEFQUF9ESVIpLykp
LCBcCj4gKyAgICAgICAgICAgICAgICQoZXZhbCAkKGNhbGwgdmVyYm9zZV9pbmNsdWRlLCQoX00p
KSkgXAo+ICspCj4KPiAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPiAgIyBDbGVhbiB0YXJnZXRz
IHRoYXQgZG8gbm90IGhhdmUgYW55IGRlcGVuZGVuY3kgb24gYSBjb25maWd1cmF0aW9uCj4gQEAg
LTM5NSw3ICszOTksNyBAQCBkaXN0Y2xlYW46IHByb3BlcmNsZWFuCj4gICMgVW5pa3JhZnQgQXJj
aGl0ZWN0dXJlCj4gICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4gICMgU2V0IHRhcmdldCBhcmNo
aWN0dXJlIGFzIHNldCBpbiBjb25maWcKPiAtaW5jbHVkZSAkKENPTkZJR19VS19CQVNFKS9hcmNo
L0FyY2gudWsKPiArJChldmFsICQoY2FsbCB2ZXJib3NlX2luY2x1ZGUsJChDT05GSUdfVUtfQkFT
RSkvYXJjaC9BcmNoLnVrKSkKPiAgaWZlcSAoJChDT05GSUdfVUtfQVJDSCksKQo+ICAjIFNldCB0
YXJnZXQgYXJjaGljdHVyZSBhcyBzZXQgaW4gZW52aXJvbm1lbnQKPiAgaWZuZXEgKCQoQVJDSCks
KQo+IEBAIC00OTAsNyArNDk0LDcgQEAgaWZuZXEgKCIkKG9yaWdpbiBDUk9TU19DT01QSUxFKSIs
InVuZGVmaW5lZCIpCj4gIENPTkZJR19DUk9TU19DT01QSUxFIDo9ICQoQ1JPU1NfQ09NUElMRToi
JSI9JSkKPiAgZW5kaWYKPgo+IC1pbmNsdWRlICQoQ09ORklHX1VLX0JBU0UpL2FyY2gvJChVS19G
QU1JTFkpL0NvbXBpbGVyLnVrCj4gKyQoZXZhbCAkKGNhbGwgdmVyYm9zZV9pbmNsdWRlLCQoQ09O
RklHX1VLX0JBU0UpL2FyY2gvJChVS19GQU1JTFkpL0NvbXBpbGVyLnVrKSkKPgo+ICAjIE1ha2Ug
dmFyaWFibGVzIChDQywgZXRjLi4uKQo+ICBMRCAgICAgICAgICAgICA6PSAkKENPTkZJR19DUk9T
U19DT01QSUxFKWdjYwo+IEBAIC01NTIsMjEgKzU1NiwyNCBAQCBpZm5lcSAoJChDT05GSUdfVUtf
QkFTRSksJChDT05GSUdfVUtfQVBQKSkKPiAgJChldmFsICQoY2FsbCBfaW1wb3J0X2xpYiwkKENP
TkZJR19VS19BUFApKSk7Cj4gIGVuZGlmCj4KPiAtaW5jbHVkZSAkKENPTkZJR19VS19CQVNFKS9s
aWIvTWFrZWZpbGUudWsgIyBsaWJyYXJpZXMKPiArIyBpbnRlcm5hbCBsaWJyYXJpZXMKPiArJChl
dmFsICQoY2FsbCB2ZXJib3NlX2luY2x1ZGUsJChDT05GSUdfVUtfQkFTRSkvbGliL01ha2VmaWxl
LnVrKSkKPgo+ICAjIGV4dGVybmFsIGxpYnJhcmllcwo+ICAkKGZvcmVhY2ggRSwkKEVMSUJfRElS
KSwgXAo+ICAgICAgICAgJChldmFsICQoY2FsbCBfaW1wb3J0X2xpYiwkKEUpKSk7IFwKPiAgKQo+
IC0kKGV2YWwgJChjYWxsIF9pbXBvcnRfbGliLCQoQ09ORklHX1VLX0JBU0UpL2FyY2gvJChVS19G
QU1JTFkpKSkgIyBhcmNoaXRlY3R1cmUgbGlicmFyaWVzCj4gLWluY2x1ZGUgJChDT05GSUdfVUtf
QkFTRSkvcGxhdC9NYWtlZmlsZS51ayAjIHBsYXRmb3JtIGxpYnJhcmllcwo+ICsjIGFyY2hpdGVj
dHVyZSBsaWJyYXJ5Cj4gKyQoZXZhbCAkKGNhbGwgX2ltcG9ydF9saWIsJChDT05GSUdfVUtfQkFT
RSkvYXJjaC8kKFVLX0ZBTUlMWSkpKQo+ICsjIGludGVybmFsIHBsYXRmb3JtIGxpYnJhcmllcwo+
ICskKGV2YWwgJChjYWxsIHZlcmJvc2VfaW5jbHVkZSwkKENPTkZJR19VS19CQVNFKS9wbGF0L01h
a2VmaWxlLnVrKSkKPiAgIyBleHRlcm5hbCBwbGF0Zm9ybSBsaWJyYXJpZXMKPiAgIyBOT1RFOiBX
ZSBpbmNsdWRlIHRoZW0gYWZ0ZXIgaW50ZXJuYWwgcGxhdGZvcm0gbGlicyBzbyB0aGF0IGFsc28g
YmFzZSB2YXJpYWJsZXMKPiAgIyAgICAgICBwcm92aWRlZCB3aXRoIC9wbGF0L01ha2VmaWxlLnVr
IGFyZSBwb3B1bGF0ZWQKPiAgJChmb3JlYWNoIEUsJChFUExBVF9ESVIpLCBcCj4gICAgICAgICAk
KGV2YWwgJChjYWxsIF9pbXBvcnRfbGliLCQoRSkpKTsgXAo+ICApCj4gLWluY2x1ZGUgJChDT05G
SUdfVUtfQkFTRSkvTWFrZWZpbGUudWsgIyBVbmlrcmFmdCBiYXNlCj4gKyQoZXZhbCAkKGNhbGwg
dmVyYm9zZV9pbmNsdWRlLCQoQ09ORklHX1VLX0JBU0UpL01ha2VmaWxlLnVrKSkgIyBVbmlrcmFm
dCBiYXNlCj4KPiAgaWZlcSAoJChjYWxsIHFzdHJpcCwkKFVLX1BMQVRTKSAkKFVLX1BMQVRTLXkp
KSwpCj4gICQod2FybmluZyBZb3UgZGlkIG5vdCBjaG9vc2UgYW55IHRhcmdldCBwbGF0Zm9ybS4p
Cj4gQEAgLTU4MywxMCArNTkwLDEzIEBAIGVuZGlmCj4gIGVuZGlmCj4KPiAgIyBHZW5lcmF0ZSBi
dWlsZCBydWxlcwo+IC1pbmNsdWRlICQoQ09ORklHX1VLX0JBU0UpL3N1cHBvcnQvYnVpbGQvTWFr
ZWZpbGUuYnVpbGQKPiArJChldmFsICQoY2FsbCB2ZXJib3NlX2luY2x1ZGUsJChDT05GSUdfVUtf
QkFTRSkvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5idWlsZCkpCj4KPiArIyBJbmNsdWRlIHNvdXJj
ZSBkZXBlbmRlbmNpZXMKPiAgaWZuZXEgKCQoY2FsbCBxc3RyaXAsJChVS19ERVBTKSAkKFVLX0RF
UFMteSkpLCkKPiAtLWluY2x1ZGUgJChVS19ERVBTKSAkKFVLX0RFUFMteSkgIyBpbmNsdWRlIGhl
YWRlciBkZXBlbmRlbmNpZXMKPiArJChmb3JlYWNoIF9ELCQoVUtfREVQUykgJChVS19ERVBTLXkp
LFwKPiArICQoZXZhbCAkKGNhbGwgdmVyYm9zZV9pbmNsdWRlX3RyeSwkKF9EKSkpIFwKPiArKQo+
ICBlbmRpZgo+Cj4gICMgaW5jbHVkZSBNYWtlZmlsZSBmb3IgcGxhdGZvcm0gbGlua2luZyAoYExp
bmtlci51a2ApCj4gQEAgLTYyNyw3ICs2MzcsNyBAQCBhbGw6IGltYWdlcyBnZGJfaGVscGVycwo+
ICAjIENsZWFudXAgcnVsZXMKPiAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPiAgIyBHZW5lcmF0
ZSBjbGVhbmluZyBydWxlcwo+IC1pbmNsdWRlICQoQ09ORklHX1VLX0JBU0UpL3N1cHBvcnQvYnVp
bGQvTWFrZWZpbGUuY2xlYW4KPiArJChldmFsICQoY2FsbCB2ZXJib3NlX2luY2x1ZGUsJChDT05G
SUdfVUtfQkFTRSkvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5jbGVhbikpCj4KPiAgY2xlYW4tbGli
czogJChhZGRwcmVmaXggY2xlYW4tLFwKPiAgICAgICAgICQoZm9yZWFjaCBQLCQoVUtfUExBVFMp
ICQoVUtfUExBVFMteSksXAo+IGRpZmYgLS1naXQgYS9zdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1
bGVzIGIvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5ydWxlcwo+IGluZGV4IGU4MTdkZGNiLi5hMTMx
ODBhOCAxMDA2NDQKPiAtLS0gYS9zdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVzCj4gKysrIGIv
c3VwcG9ydC9idWlsZC9NYWtlZmlsZS5ydWxlcwo+IEBAIC0xMjcsMTcgKzEyNywzMiBAQCBlbmRl
Zgo+ICAjCj4gICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPgo+ICsjIEluY2x1ZGUgYSBzdWItbWFr
ZWZpbGUKPiArIyB2ZXJib3NlX2luY2x1ZGUgJHBhdGgKPiArZGVmaW5lIHZlcmJvc2VfaW5jbHVk
ZSA9Cj4gKyQoY2FsbCB2ZXJib3NlX2luZm8sSW5jbHVkaW5nICQoMSkuLi4pCj4gK2luY2x1ZGUg
JCgxKQo+ICtlbmRlZgo+ICsKPiArIyBUcnkgdG8gaW5jbHVkZSBhIHN1Yi1tYWtlZmlsZQo+ICsj
IChkb2VzIG5vdCBmYWlsIGlmIGl0IGRvZXMgbm90IGV4aXN0KQo+ICsjIHZlcmJvc2VfaW5jbHVk
ZV90cnkgJHBhdGgKPiArZGVmaW5lIHZlcmJvc2VfaW5jbHVkZV90cnkgPQo+ICskKGNhbGwgdmVy
Ym9zZV9pbmZvLFRyeWluZyB0byBpbmNsdWRlICQoMSkuLi4pCj4gKy1pbmNsdWRlICQoMSkKPiAr
ZW5kZWYKPiArCj4gICMgSW1wb3J0IGEgbGlicmFyeQo+ICAjIEZvciBpbnRlcm5hbGx5IHVzZSBv
bmx5IChVbmlrcmFmdCBtYWluIG1ha2VmaWxlIGFuZCBpbnRlcm5hbCBsaWJzIE1ha2VmaWtlLnVr
KQo+ICAjIF9pbXBvcnRfbGlicmFyeSAkcGF0aAo+ICBkZWZpbmUgX2ltcG9ydF9saWIgPQo+ICBf
SU1QT1JUX0JBU0UgOj0gJCgxKQo+IC1pbmNsdWRlICQoMSkvTWFrZWZpbGUudWsKPiArJChjYWxs
IHZlcmJvc2VfaW5jbHVkZSwkKDEpL01ha2VmaWxlLnVrKQo+ICB1bmRlZmluZSBfSU1QT1JUX0JB
U0UKPiAgZW5kZWYKPiAgIyBfaW1wb3J0X2xpbmtlciAkcGxhdF9uYW1lCj4gIGRlZmluZSBfaW1w
b3J0X2xpbmtlciA9Cj4gLSBpbmNsdWRlICQoVUtfUExBVF8kKGNhbGwgdWMsJCgxKSlfTElOS0VS
KQo+ICskKGNhbGwgdmVyYm9zZV9pbmNsdWRlLCQoVUtfUExBVF8kKGNhbGwgdWMsJCgxKSlfTElO
S0VSKSkKPiAgZW5kZWYKPgo+ICAjIFJlZ2lzdGVyIGEgcGxhdGZvcm0gdG8gdGhlIGJ1aWxkIHN5
c3RlbQo+IC0tCj4gMi4yMC4xCj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCj4gTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pbmlvcy1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp
bG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h
bi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 09:47:50 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 09:47:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2B66-0004PW-4D; Thu, 13 Feb 2020 09:47:50 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=V73E=4B=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2B64-0004PO-Uc
 for minios-devel@lists.xenproject.org; Thu, 13 Feb 2020 09:47:48 +0000
X-Inumbo-ID: e37610ca-4e45-11ea-b86a-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id e37610ca-4e45-11ea-b86a-12813bfff9fa;
 Thu, 13 Feb 2020 09:47:47 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 1C4FEF2027;
 Thu, 13 Feb 2020 10:47:46 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id O6PBAVjT1WpU; Thu, 13 Feb 2020 10:47:45 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id E8AD6F2026
 for <minios-devel@lists.xenproject.org>; Thu, 13 Feb 2020 10:47:43 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 10:47:43 +0100
To: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>,
 <minios-devel@lists.xenproject.org>
References: <6585e61f13ecbc8ebac7df4767d6471eaae14f5b.1581521328.git.hugo.lefeuvre@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <89794534-a064-7fb4-024d-2e84474ac64b@neclab.eu>
Date: Thu, 13 Feb 2020 10:47:41 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <6585e61f13ecbc8ebac7df4767d6471eaae14f5b.1581521328.git.hugo.lefeuvre@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] doc: fix two issues in the
 debugging guide
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IGZvciBmaXhpbmcgdGhpcyEKClJldmlld2VkLWJ5OiBTaW1vbiBLdWVuemVy
IDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KCk9uIDEyLjAyLjIwIDE2OjMwLCBIdWdvIExlZmV1
dnJlIHdyb3RlOgo+ICsgdXNlIGNvbnRpbnVlIGluc3RlYWQgb2YgcnVuIGFmdGVyIHNldHRpbmcg
dGhlIGh3IGJyZWFrcG9pbnQ6IHRoZQo+ICAgIGRlYnVnZ2luZyBzZXNzaW9uIGlzIHR5cGljYWxs
eSBhbHJlYWR5IHJ1bm5pbmcgYXQgdGhpcyBzdGFnZQo+ICsgdWsgdHJhY2Ugc2F2ZSBpbnN0ZWFk
IG9mIHVrIHNhdmUKPiAKPiBTaWduZWQtb2ZmLWJ5OiBIdWdvIExlZmV1dnJlIDxodWdvLmxlZmV1
dnJlQG5lY2xhYi5ldT4KPiAtLS0KPiAgIGRvYy9ndWlkZXMvZGV2ZWxvcGVycy1kZWJ1Z2dpbmcu
cnN0IHwgNCArKy0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0
aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL2RldmVsb3BlcnMtZGVidWdnaW5n
LnJzdCBiL2RvYy9ndWlkZXMvZGV2ZWxvcGVycy1kZWJ1Z2dpbmcucnN0Cj4gaW5kZXggYjgwYTM5
Yi4uZjdjOGU3NCAxMDA2NDQKPiAtLS0gYS9kb2MvZ3VpZGVzL2RldmVsb3BlcnMtZGVidWdnaW5n
LnJzdAo+ICsrKyBiL2RvYy9ndWlkZXMvZGV2ZWxvcGVycy1kZWJ1Z2dpbmcucnN0Cj4gQEAgLTYz
LDcgKzYzLDcgQEAgY29ubmVjdCBnZGIgYnkgdXNpbmcgdGhlIGRlYnVnIGltYWdlIHdpdGg6IDo6
Cj4gICBVbmxlc3MgeW91J3JlIGRlYnVnZ2luZyBlYXJseSBib290IGNvZGUgKHVudGlsIGBgX2xp
Ymt2bXBsYXRfc3RhcnQzMmBgKSwgeW91J2xsIG5lZWQgdG8gc2V0IGEgaGFyZHdhcmUgYnJlYWsg
cG9pbnQ6IDo6Cj4gICAKPiAgICAgaGJyZWFrIFtsb2NhdGlvbl0KPiAtICBydW4KPiArICBjb250
aW51ZQo+ICAgCj4gICBXZSdsbCBub3cgbmVlZCB0byBzZXQgdGhlIHJpZ2h0IENQVSBhcmNoaXRl
Y3R1cmU6IDo6Cj4gICAKPiBAQCAtMTg4LDcgKzE4OCw3IEBAIGJ1ZmZlci4gWW91IGNhbiBwcmlu
dCB0aGVtIGJ5IGlzc3VpbmcgdGhlIGBnZGJgIGNvbW1hbmQgYGB1ayB0cmFjZWBgOiA6Ogo+ICAg
QWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzYXZlIGFsbCB0cmFjZSBkYXRhIHRvIGRpc2sgd2l0aAo+
ICAgYGB1ayB0cmFjZSBzYXZlIDxmaWxlbmFtZT5gYDogOjoKPiAgIAo+IC0gIChnZGIpIHVrIHNh
dmUgdHJhY2VzLmRhdAo+ICsgIChnZGIpIHVrIHRyYWNlIHNhdmUgdHJhY2VzLmRhdAo+ICAgCj4g
ICAuLiBub3RlOjogSXQgbWF5IG1ha2Ugc2Vuc2UgdG8gY29ubmVjdCB3aXRoIGBnZGJgIGFmdGVy
IHRoZSBndWVzdCBleGVjdXRpb24gaGFzCj4gICAJICBiZWVuIGZpbmlzaGVkIChhbmQgdGhlIHRy
YWNlIGJ1ZmZlciBnb3QgZmlsbGVkKS4gRm9yIHRoaXMgcHVycG9zZSwKPiAKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5n
IGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 09:56:09 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 09:56:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2BE8-0005T4-O0; Thu, 13 Feb 2020 09:56:08 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=ylZ9=4B=neclab.eu=hugo.lefeuvre@srs-us1.protection.inumbo.net>)
 id 1j2BE7-0005Sw-RA
 for minios-devel@lists.xenproject.org; Thu, 13 Feb 2020 09:56:07 +0000
X-Inumbo-ID: 0d176f22-4e47-11ea-bc8e-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 0d176f22-4e47-11ea-bc8e-bc764e2007e4;
 Thu, 13 Feb 2020 09:56:06 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 6A53C1001CF;
 Thu, 13 Feb 2020 10:56:05 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Z9K-3WYArJdI; Thu, 13 Feb 2020 10:56:05 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id EC6BC103BA3
 for <minios-devel@lists.xenproject.org>; Thu, 13 Feb 2020 10:56:04 +0100 (CET)
Received: from N-1237.office.hd (192.168.24.96) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 10:56:04 +0100
From: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
To: <minios-devel@lists.xenproject.org>
Date: Thu, 13 Feb 2020 10:55:58 +0100
Message-ID: <c78d5b3900d0ae2e841d83c67d27c6619a4a13ce.1581587620.git.hugo.lefeuvre@neclab.eu>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To titania.office.hd
 (192.168.24.89)
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/vfscore: vfscore_put_fd: do not
 reject fd <= 2
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmVqZWN0aW5nIGZkIDw9IDIgaXMgbGVnaXRpbWF0ZSBpbiBzb21lIHdheSwgc2luY2UgZnJlZWlu
ZyBzdGQoaW58b3V0fGVycikKbWlnaHQgbGVhZCB0byBjcmFzaCBpZiAuZl9jb3VudCBpcyAxLiBU
aGlzIGlzIGJlY2F1c2Ugc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyCmZwcyBhcmUgc3RhdGljYWxs
eSBhbGxvY2F0ZWQuICBIb3dldmVyLCByZXR1cm5pbmcgLUVCVVNZIGluIHRoaXMgY2FzZSBicmVh
a3MKZHVwMiB3aXRoIHN0ZGluLCBvdXQsIGFuZCBlcnIuICBJZ25vcmluZyB0aGlzIHNob3VsZCBi
ZSBmaW5lIGFzIGxvbmcgYXMgdGhvc2UKYXJlIG5vdCBmZHJvcC1lZCB0d2ljZS4KClNpZ25lZC1v
ZmYtYnk6IEh1Z28gTGVmZXV2cmUgPGh1Z28ubGVmZXV2cmVAbmVjbGFiLmV1PgotLS0KIGxpYi92
ZnNjb3JlL2ZkLmMgfCAxMiArKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlv
bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL3Zmc2NvcmUvZmQuYyBiL2xp
Yi92ZnNjb3JlL2ZkLmMKaW5kZXggNmI3ZjVlYy4uNjg0ZWE1MCAxMDA2NDQKLS0tIGEvbGliL3Zm
c2NvcmUvZmQuYworKysgYi9saWIvdmZzY29yZS9mZC5jCkBAIC05Nyw5ICs5NywxNSBAQCBpbnQg
dmZzY29yZV9wdXRfZmQoaW50IGZkKQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlVS19BU1NF
UlQoZmQgPCAoaW50KSBGRFRBQkxFX01BWF9GSUxFUyk7Ci0JLyogQ3VycmVudGx5IGl0IGlzIG5v
dCBhbGxvd2VkIHRvIGZyZWUgc3RkKGlufG91dHxlcnIpICovCi0JaWYgKGZkIDw9IDIpCi0JCXJl
dHVybiAtRUJVU1k7CisKKwkvKiBGSVhNRSBDdXJyZW50bHkgaXQgaXMgbm90IGFsbG93ZWQgdG8g
ZnJlZSBzdGQoaW58b3V0fGVycik6CisJICogaWYgKGZkIDw9IDIpIHJldHVybiAtRUJVU1k7CisJ
ICoKKwkgKiBIb3dldmVyLCByZXR1cm5pbmcgLUVCVVNZIGluIHRoaXMgY2FzZSBicmVha3MgZHVw
MiB3aXRoIHN0ZGluLCBvdXQsCisJICogZXJyLiBJZ25vcmluZyB0aGlzIHNob3VsZCBiZSBmaW5l
IGFzIGxvbmcgYXMgdGhvc2UgYXJlIG5vdCBmZHJvcC1lZAorCSAqIHR3aWNlLCBpbiB3aGljaCBj
YXNlIHRoZSBzdGF0aWMgZnAgd291bGQgYmUgZnJlZWQsIGFuZCBoZXJlIGJlCisJICogZHJhZ29u
cy4KKwkgKi8KIAogCWZsYWdzID0gdWtwbGF0X2xjcHVfc2F2ZV9pcnFmKCk7CiAJdWtfYml0bWFw
X2NsZWFyKGZkdGFibGUuYml0bWFwLCBmZCwgMSk7Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 09:58:39 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 09:58:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2BGY-0005Y4-Vw; Thu, 13 Feb 2020 09:58:38 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=V73E=4B=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2BGX-0005Xz-Gs
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 09:58:37 +0000
X-Inumbo-ID: 65fef790-4e47-11ea-ade5-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 65fef790-4e47-11ea-ade5-bc764e2007e4;
 Thu, 13 Feb 2020 09:58:35 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 19C41F2028;
 Thu, 13 Feb 2020 10:58:34 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 8EHEwwfW8EfI; Thu, 13 Feb 2020 10:58:33 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id CC7F0F2026
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 10:58:31 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 10:58:31 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200212185100.22039-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <70726184-31a5-2534-b618-d478294011e0@neclab.eu>
Date: Thu, 13 Feb 2020 10:58:30 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200212185100.22039-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBLUA PATCH] Fix broken behaviour
 when given append parameter.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGZvciB0aGlzIGltcHJvdmVtZW50LgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIg
PHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgoKT24gMTIuMDIuMjAgMTk6NTEsIEZlbGlwZSBIdWlj
aSB3cm90ZToKPiBUaGlzIHBhdGNoIG1ha2VzIGl0IHNvIHRoYXQgTHVhIG5vdyBnb2VzIHN0cmFp
Z2h0IGludG8gaW50ZXJhY3RpdmUKPiBtb2RlIHdoZW4gbm90IGdpdmVuIGluaXRyZCBhcyBhIHBh
cmFtZXRlcjsgcHJldmlvc3VseSBpdCB3YXMgYXNzdW1pbmcKPiB0aGF0IHRoZSAtLWFwcGVuZCBw
YXJhbWV0ZXIgd2FzIGEgZmlsZSBuYW1lIHRvIGJlIHJlYWQgYW5kIGV4ZWN1dGVkLAo+IHdoaWNo
IHdhcyBicm9rZW4uCj4gCj4gU2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVp
Y2lAbmVjbGFiLmV1Pgo+IC0tLQo+ICAgTWFrZWZpbGUudWsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDIgKy0KPiAgIC4uLnQucGF0Y2ggPT4gMDAwMS1sdWEtbWFpbi1hZGQt
aW5pdHJkLnBhdGNofSB8IDIzICsrKysrKysrKysrKysrLS0tLS0KPiAgIDIgZmlsZXMgY2hhbmdl
ZCwgMTggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPiAgIHJlbmFtZSBwYXRjaGVzL3sw
MDAxLWFkZC1pbml0cmQtcmVuYW1lLWVudHJ5LXBvaW50LnBhdGNoID0+IDAwMDEtbHVhLW1haW4t
YWRkLWluaXRyZC5wYXRjaH0gKDYwJSkKPiAKPiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9N
YWtlZmlsZS51awo+IGluZGV4IDNjM2QwNWEuLjRhODU1YWIgMTAwNjQ0Cj4gLS0tIGEvTWFrZWZp
bGUudWsKPiArKysgYi9NYWtlZmlsZS51awo+IEBAIC0zOSw3ICszOSw3IEBAIExJQkxVQV9TUkNT
LSQoQ09ORklHX0xJQkxVQV9NQUlOX0ZVTkNUSU9OKSArPSAkKExJQkxVQV9CQVNFKS9tYWluLmMK
PiAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4gICAjIExpYnJhcnkgZmxhZ3MKPiAgICMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCj4gLUxJQkxVQV9TVVBQUkVTU19GTEFHUyArPSAtV25vLWltcGxp
Y2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uCj4gK0xJQkxVQV9TVVBQUkVTU19GTEFHUyArPSAtV25v
LWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIC1Xbm8tdW51c2VkLWZ1bmN0aW9uCj4gICBM
SUJMVUFfRkxBR1MgKz0gLURMVUFfQ09NUEFUXzVfMgo+ICAgCj4gICBMSUJMVUFfQ0ZMQUdTLXkg
Kz0gJChMSUJMVUFfRkxBR1MpICQoTElCTFVBX1NVUFBSRVNTX0ZMQUdTKQo+IGRpZmYgLS1naXQg
YS9wYXRjaGVzLzAwMDEtYWRkLWluaXRyZC1yZW5hbWUtZW50cnktcG9pbnQucGF0Y2ggYi9wYXRj
aGVzLzAwMDEtbHVhLW1haW4tYWRkLWluaXRyZC5wYXRjaAo+IHNpbWlsYXJpdHkgaW5kZXggNjAl
Cj4gcmVuYW1lIGZyb20gcGF0Y2hlcy8wMDAxLWFkZC1pbml0cmQtcmVuYW1lLWVudHJ5LXBvaW50
LnBhdGNoCj4gcmVuYW1lIHRvIHBhdGNoZXMvMDAwMS1sdWEtbWFpbi1hZGQtaW5pdHJkLnBhdGNo
Cj4gaW5kZXggMTM1YTBjNC4uZWNmYjhmMCAxMDA2NDQKPiAtLS0gYS9wYXRjaGVzLzAwMDEtYWRk
LWluaXRyZC1yZW5hbWUtZW50cnktcG9pbnQucGF0Y2gKPiArKysgYi9wYXRjaGVzLzAwMDEtbHVh
LW1haW4tYWRkLWluaXRyZC5wYXRjaAo+IEBAIC0xLDUgKzEsNSBAQAo+ICAgLS0tIGEvc3JjL2x1
YS5jCTIwMTctMDQtMTkgMTk6Mjk6NTcuMDAwMDAwMDAwICswMjAwCj4gLSsrKyBiL3NyYy9sdWEu
YwkyMDE5LTA5LTAzIDEzOjM2OjA5LjQzNzgwNzg5MCArMDIwMAo+ICsrKysgYi9zcmMvbHVhLmMJ
MjAyMC0wMi0xMiAxOTozODowOS43MDQ0MjgxNjAgKzAxMDAKPiAgIEBAIC02LDYgKzYsOCBAQAo+
ICAgIAo+ICAgICNkZWZpbmUgbHVhX2MKPiBAQCAtMTksMTkgKzE5LDMwIEBACj4gICAgICBpbnQg
YXJncyA9IGNvbGxlY3RhcmdzKGFyZ3YsICZzY3JpcHQpOwo+ICAgICAgbHVhTF9jaGVja3ZlcnNp
b24oTCk7ICAvKiBjaGVjayB0aGF0IGludGVycHJldGVyIGhhcyBjb3JyZWN0IHZlcnNpb24gKi8K
PiAgICAgIGlmIChhcmd2WzBdICYmIGFyZ3ZbMF1bMF0pIHByb2duYW1lID0gYXJndlswXTsKPiAt
QEAgLTU4MSw2ICs1ODYsMTEgQEAKPiAtICAgICByZXR1cm4gMDsKPiArQEAgLTU3NiwyNCArNTgx
LDIzIEBACj4gKyAgIH0KPiArICAgaWYgKCFydW5hcmdzKEwsIGFyZ3YsIHNjcmlwdCkpICAvKiBl
eGVjdXRlIGFyZ3VtZW50cyAtZSBhbmQgLWwgKi8KPiArICAgICByZXR1cm4gMDsgIC8qIHNvbWV0
aGluZyBmYWlsZWQgKi8KPiArLSAgaWYgKHNjcmlwdCA8IGFyZ2MgJiYgIC8qIGV4ZWN1dGUgbWFp
biBzY3JpcHQgKGlmIHRoZXJlIGlzIG9uZSkgKi8KPiArLSAgICAgIGhhbmRsZV9zY3JpcHQoTCwg
YXJndiArIHNjcmlwdCkgIT0gTFVBX09LKQo+ICstICAgIHJldHVybiAwOwo+ICAgICAgaWYgKGFy
Z3MgJiBoYXNfaSkgIC8qIC1pIG9wdGlvbj8gKi8KPiAgICAgICAgZG9SRVBMKEwpOyAgLyogZG8g
cmVhZC1ldmFsLXByaW50IGxvb3AgKi8KPiArLSAgZWxzZSBpZiAoc2NyaXB0ID09IGFyZ2MgJiYg
IShhcmdzICYgKGhhc19lIHwgaGFzX3YpKSkgeyAgLyogbm8gYXJndW1lbnRzPyAqLwo+ICstICAg
IGlmIChsdWFfc3RkaW5faXNfdHR5KCkpIHsgIC8qIHJ1bm5pbmcgaW4gaW50ZXJhY3RpdmUgbW9k
ZT8gKi8KPiAgICsgIC8qIHNlZSBpZiBzY3JpcHQgaXMgYXZhaWxhYmxlIGZyb20gaW5pdHJkICov
Cj4gICArICBlbHNlIGlmICh1a3BsYXRfbWVtcmVnaW9uX2ZpbmRfaW5pdHJkMCgmaW1nKSA+PSAw
KSB7Cj4gICArICAgIGNzdHIgPSAoY2hhciAqKWltZy5iYXNlOwo+ICAgKyAgICBkb3N0cmluZyhM
LCBjc3RyLCAiaW5pdHJkIik7Cj4gICArICB9Cj4gLSAgIGVsc2UgaWYgKHNjcmlwdCA9PSBhcmdj
ICYmICEoYXJncyAmIChoYXNfZSB8IGhhc192KSkpIHsgIC8qIG5vIGFyZ3VtZW50cz8gKi8KPiAt
ICAgICBpZiAobHVhX3N0ZGluX2lzX3R0eSgpKSB7ICAvKiBydW5uaW5nIGluIGludGVyYWN0aXZl
IG1vZGU/ICovCj4gKysgIGVsc2Ugewo+ICAgICAgICAgIHByaW50X3ZlcnNpb24oKTsKPiAtQEAg
LTU5Myw3ICs2MDMsNyBAQAo+ICsgICAgICAgZG9SRVBMKEwpOyAgLyogZG8gcmVhZC1ldmFsLXBy
aW50IGxvb3AgKi8KPiArLSAgICB9Cj4gKy0gICAgZWxzZSBkb2ZpbGUoTCwgTlVMTCk7ICAvKiBl
eGVjdXRlcyBzdGRpbiBhcyBhIGZpbGUgKi8KPiArICAgfQo+ICsgICBsdWFfcHVzaGJvb2xlYW4o
TCwgMSk7ICAvKiBzaWduYWwgbm8gZXJyb3JzICovCj4gKyAgIHJldHVybiAxOwo+ICAgIH0KPiAg
ICAKPiAgICAKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5p
b3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 10:46:15 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 10:46:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2C0b-00025p-Rf; Thu, 13 Feb 2020 10:46:13 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=V73E=4B=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2C0b-00025k-2O
 for minios-devel@lists.xenproject.org; Thu, 13 Feb 2020 10:46:13 +0000
X-Inumbo-ID: 0c4d8c32-4e4e-11ea-bc8e-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 0c4d8c32-4e4e-11ea-bc8e-bc764e2007e4;
 Thu, 13 Feb 2020 10:46:11 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 8D90BF2028;
 Thu, 13 Feb 2020 11:46:10 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id hnoPgdXMJLLe; Thu, 13 Feb 2020 11:46:10 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 30E18F2029
 for <minios-devel@lists.xenproject.org>; Thu, 13 Feb 2020 11:46:08 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 11:46:07 +0100
To: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>,
 <minios-devel@lists.xenproject.org>
References: <c78d5b3900d0ae2e841d83c67d27c6619a4a13ce.1581587620.git.hugo.lefeuvre@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <a4fdf519-f407-78ee-309c-57363166ebac@neclab.eu>
Date: Thu, 13 Feb 2020 11:46:06 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <c78d5b3900d0ae2e841d83c67d27c6619a4a13ce.1581587620.git.hugo.lefeuvre@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/vfscore: vfscore_put_fd: do
 not reject fd <= 2
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QXMgYSB0ZW1wb3JhcnkgZml4IHRoaXMgc2hvdWxkIGJlIGZpbmUuIFdlIG1heSBnZXQgaXNzdWVz
IHdoZW4gd2UgaGF2ZSAKcHJvcGVyIHNodXRkb3duIHN1cHBvcnQuIFNpbmNlIHdlIGFyZSBhbnl3
YXkgcmV2aXNpdGluZyB2ZnNjb3JlIHNvb24sIHdlIApjb3VsZCBpbXBsZW1lbnQgdGhvc2UgMyBi
YXNpYyBmaWxlIGRlc2NyaXB0b3JzIG5vbi1zdGF0aWMuCgpUaGFua3MhCgpSZXZpZXdlZC1ieTog
U2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+CgpPbiAxMy4wMi4yMCAxMDo1
NSwgSHVnbyBMZWZldXZyZSB3cm90ZToKPiBSZWplY3RpbmcgZmQgPD0gMiBpcyBsZWdpdGltYXRl
IGluIHNvbWUgd2F5LCBzaW5jZSBmcmVlaW5nIHN0ZChpbnxvdXR8ZXJyKQo+IG1pZ2h0IGxlYWQg
dG8gY3Jhc2ggaWYgLmZfY291bnQgaXMgMS4gVGhpcyBpcyBiZWNhdXNlIHN0ZGluLCBzdGRvdXQg
YW5kIHN0ZGVycgo+IGZwcyBhcmUgc3RhdGljYWxseSBhbGxvY2F0ZWQuICBIb3dldmVyLCByZXR1
cm5pbmcgLUVCVVNZIGluIHRoaXMgY2FzZSBicmVha3MKPiBkdXAyIHdpdGggc3RkaW4sIG91dCwg
YW5kIGVyci4gIElnbm9yaW5nIHRoaXMgc2hvdWxkIGJlIGZpbmUgYXMgbG9uZyBhcyB0aG9zZQo+
IGFyZSBub3QgZmRyb3AtZWQgdHdpY2UuCj4gCj4gU2lnbmVkLW9mZi1ieTogSHVnbyBMZWZldXZy
ZSA8aHVnby5sZWZldXZyZUBuZWNsYWIuZXU+Cj4gLS0tCj4gICBsaWIvdmZzY29yZS9mZC5jIHwg
MTIgKysrKysrKysrLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzIGRl
bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9saWIvdmZzY29yZS9mZC5jIGIvbGliL3Zmc2Nv
cmUvZmQuYwo+IGluZGV4IDZiN2Y1ZWMuLjY4NGVhNTAgMTAwNjQ0Cj4gLS0tIGEvbGliL3Zmc2Nv
cmUvZmQuYwo+ICsrKyBiL2xpYi92ZnNjb3JlL2ZkLmMKPiBAQCAtOTcsOSArOTcsMTUgQEAgaW50
IHZmc2NvcmVfcHV0X2ZkKGludCBmZCkKPiAgIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAgCj4g
ICAJVUtfQVNTRVJUKGZkIDwgKGludCkgRkRUQUJMRV9NQVhfRklMRVMpOwo+IC0JLyogQ3VycmVu
dGx5IGl0IGlzIG5vdCBhbGxvd2VkIHRvIGZyZWUgc3RkKGlufG91dHxlcnIpICovCj4gLQlpZiAo
ZmQgPD0gMikKPiAtCQlyZXR1cm4gLUVCVVNZOwo+ICsKPiArCS8qIEZJWE1FIEN1cnJlbnRseSBp
dCBpcyBub3QgYWxsb3dlZCB0byBmcmVlIHN0ZChpbnxvdXR8ZXJyKToKPiArCSAqIGlmIChmZCA8
PSAyKSByZXR1cm4gLUVCVVNZOwo+ICsJICoKPiArCSAqIEhvd2V2ZXIsIHJldHVybmluZyAtRUJV
U1kgaW4gdGhpcyBjYXNlIGJyZWFrcyBkdXAyIHdpdGggc3RkaW4sIG91dCwKPiArCSAqIGVyci4g
SWdub3JpbmcgdGhpcyBzaG91bGQgYmUgZmluZSBhcyBsb25nIGFzIHRob3NlIGFyZSBub3QgZmRy
b3AtZWQKPiArCSAqIHR3aWNlLCBpbiB3aGljaCBjYXNlIHRoZSBzdGF0aWMgZnAgd291bGQgYmUg
ZnJlZWQsIGFuZCBoZXJlIGJlCj4gKwkgKiBkcmFnb25zLgo+ICsJICovCj4gICAKPiAgIAlmbGFn
cyA9IHVrcGxhdF9sY3B1X3NhdmVfaXJxZigpOwo+ICAgCXVrX2JpdG1hcF9jbGVhcihmZHRhYmxl
LmJpdG1hcCwgZmQsIDEpOwo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 20:40:39 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 20:40:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2LHo-0005B4-GO; Thu, 13 Feb 2020 20:40:36 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=QSlv=4B=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2LHn-0005Ap-RS
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 20:40:35 +0000
X-Inumbo-ID: 14a04c5a-4ea1-11ea-b94c-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 14a04c5a-4ea1-11ea-b94c-12813bfff9fa;
 Thu, 13 Feb 2020 20:40:33 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id BCB1A402A9;
 Thu, 13 Feb 2020 21:40:32 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 13 Feb 2020 21:40:31 +0100
Message-Id: <20200213204031.21584-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBNEWLIB PATCH] Add sys/epoll.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QWRkIGhlYWRlciBmaWxlIHN5cy9lcG9sbC5oIGZyb20gbXVzbCwgbmVlZGVkIGJ5IGxpYmdvIGFu
ZCBsaWtlbHkKb3RoZXIgbGlicy4KClNpZ25lZC1vZmYtYnk6IEZlbGlwZSBIdWljaSA8ZmVsaXBl
Lmh1aWNpQG5lY2xhYi5ldT4KLS0tCiBtdXNsLWltcG9ydGVkL2luY2x1ZGUvc3lzL2Vwb2xsLmgg
fCA2NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNjUg
aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IG11c2wtaW1wb3J0ZWQvaW5jbHVkZS9z
eXMvZXBvbGwuaAoKZGlmZiAtLWdpdCBhL211c2wtaW1wb3J0ZWQvaW5jbHVkZS9zeXMvZXBvbGwu
aCBiL211c2wtaW1wb3J0ZWQvaW5jbHVkZS9zeXMvZXBvbGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jNTA3YTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbXVzbC1pbXBvcnRl
ZC9pbmNsdWRlL3N5cy9lcG9sbC5oCkBAIC0wLDAgKzEsNjUgQEAKKyNpZm5kZWYJX1NZU19FUE9M
TF9ICisjZGVmaW5lCV9TWVNfRVBPTExfSAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMu
aD4KKworI2RlZmluZSBfX05FRURfc2lnc2V0X3QKKworI2RlZmluZSBFUE9MTF9DTE9FWEVDIE9f
Q0xPRVhFQworI2RlZmluZSBFUE9MTF9OT05CTE9DSyBPX05PTkJMT0NLCisKK2VudW0gRVBPTExf
RVZFTlRTIHsgX19FUE9MTF9EVU1NWSB9OworI2RlZmluZSBFUE9MTElOIDB4MDAxCisjZGVmaW5l
IEVQT0xMUFJJIDB4MDAyCisjZGVmaW5lIEVQT0xMT1VUIDB4MDA0CisjZGVmaW5lIEVQT0xMUkRO
T1JNIDB4MDQwCisjZGVmaW5lIEVQT0xMUkRCQU5EIDB4MDgwCisjZGVmaW5lIEVQT0xMV1JOT1JN
IDB4MTAwCisjZGVmaW5lIEVQT0xMV1JCQU5EIDB4MjAwCisjZGVmaW5lIEVQT0xMTVNHIDB4NDAw
CisjZGVmaW5lIEVQT0xMRVJSIDB4MDA4CisjZGVmaW5lIEVQT0xMSFVQIDB4MDEwCisjZGVmaW5l
IEVQT0xMUkRIVVAgMHgyMDAwCisjZGVmaW5lIEVQT0xMRVhDTFVTSVZFICgxVTw8MjgpCisjZGVm
aW5lIEVQT0xMV0FLRVVQICgxVTw8MjkpCisjZGVmaW5lIEVQT0xMT05FU0hPVCAoMVU8PDMwKQor
I2RlZmluZSBFUE9MTEVUICgxVTw8MzEpCisKKyNkZWZpbmUgRVBPTExfQ1RMX0FERCAxCisjZGVm
aW5lIEVQT0xMX0NUTF9ERUwgMgorI2RlZmluZSBFUE9MTF9DVExfTU9EIDMKKwordHlwZWRlZiB1
bmlvbiBlcG9sbF9kYXRhIHsKKwl2b2lkICpwdHI7CisJaW50IGZkOworCXVpbnQzMl90IHUzMjsK
Kwl1aW50NjRfdCB1NjQ7Cit9IGVwb2xsX2RhdGFfdDsKKworc3RydWN0IGVwb2xsX2V2ZW50IHsK
Kwl1aW50MzJfdCBldmVudHM7CisJZXBvbGxfZGF0YV90IGRhdGE7Cit9CisjaWZkZWYgX194ODZf
NjRfXworX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKQorI2VuZGlmCis7CisKKworaW50IGVw
b2xsX2NyZWF0ZShpbnQpOworaW50IGVwb2xsX2NyZWF0ZTEoaW50KTsKK2ludCBlcG9sbF9jdGwo
aW50LCBpbnQsIGludCwgc3RydWN0IGVwb2xsX2V2ZW50ICopOworaW50IGVwb2xsX3dhaXQoaW50
LCBzdHJ1Y3QgZXBvbGxfZXZlbnQgKiwgaW50LCBpbnQpOworaW50IGVwb2xsX3B3YWl0KGludCwg
c3RydWN0IGVwb2xsX2V2ZW50ICosIGludCwgaW50LCBjb25zdCBzaWdzZXRfdCAqKTsKKworCisj
aWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogc3lzL2Vwb2xsLmggKi8K
LS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5p
b3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 20:42:46 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 20:42:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2LJt-0005EE-Mx; Thu, 13 Feb 2020 20:42:45 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=QSlv=4B=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2LJs-0005E9-IG
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 20:42:44 +0000
X-Inumbo-ID: 618f7bd0-4ea1-11ea-bc8e-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 618f7bd0-4ea1-11ea-bc8e-bc764e2007e4;
 Thu, 13 Feb 2020 20:42:42 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id EC589402A9;
 Thu, 13 Feb 2020 21:42:41 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 13 Feb 2020 21:42:40 +0100
Message-Id: <20200213204240.21653-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/COMPILER-RT PATCH] Add suppress flag for
 cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0K
IE1ha2VmaWxlLnVrIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl
bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awppbmRleCBi
OTI5ZjZhLi4yM2Y5ZTJlIDEwMDY0NAotLS0gYS9NYWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51
awpAQCAtNzAsNyArNzAsNyBAQCBDWFhJTkNMVURFUy0kKENPTkZJR19MSUJDT01QSUxFUl9SVCkg
Kz0gLUkkKExJQkNPTVBJTEVSX1JUX1NSQykvaW5jbHVkZQogIyBHbG9iYWwgZmxhZ3MKICMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCiAKLUxJQkNPTVBJTEVSX1JUX1NVUFBSRVNTX0ZMQUdTICs9IC1X
bm8tdW51c2VkLXBhcmFtZXRlcgorTElCQ09NUElMRVJfUlRfU1VQUFJFU1NfRkxBR1MgKz0gLVdu
by11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tYnVpbHRpbi1kZWNsYXJhdGlvbi1taXNtYXRjaAogTElC
Q09NUElMRVJfUlRfQ0ZMQUdTLXkgICArPSAkKExJQkNPTVBJTEVSX1JUX1NVUFBSRVNTX0ZMQUdT
KQogTElCQ09NUElMRVJfUlRfQ1hYRkxBR1MteSArPSAkKExJQkNPTVBJTEVSX1JUX1NVUFBSRVNT
X0ZMQUdTKQogCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 20:44:16 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 20:44:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2LLL-0005HJ-S3; Thu, 13 Feb 2020 20:44:15 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=QSlv=4B=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2LLK-0005HE-Nr
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 20:44:14 +0000
X-Inumbo-ID: 9829ed6a-4ea1-11ea-b94c-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 9829ed6a-4ea1-11ea-b94c-12813bfff9fa;
 Thu, 13 Feb 2020 20:44:13 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 8AA9F402A9;
 Thu, 13 Feb 2020 21:44:13 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 13 Feb 2020 21:44:12 +0100
Message-Id: <20200213204412.21722-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBCXX PATCH] Add suppress flags for
 cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0K
IE1ha2VmaWxlLnVrIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl
bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awppbmRleCA2
ZjVmMzdjLi5jZDk1NGIyIDEwMDY0NAotLS0gYS9NYWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51
awpAQCAtMTAzLDcgKzEwMyw3IEBAIGVuZGlmCiBMSUJDWFhfQ0ZMQUdTLXkgICAgKz0gICAkKENP
TkZJR19GTEFHUykKIExJQkNYWF9DWFhGTEFHUy15ICAgICs9ICAgJChDT05GSUdfRkxBR1MpCiAK
LUxJQkNYWF9TVVBQUkVTU19GTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIKK0xJQkNYWF9T
VVBQUkVTU19GTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby1jcHAgLVduby1wYXJl
bnRoZXNlcwogTElCQ1hYX0NGTEFHUy15ICAgKz0gJChMSUJDWFhfU1VQUFJFU1NfRkxBR1MpCiBM
SUJDWFhfQ1hYRkxBR1MteSArPSAkKExJQkNYWF9TVVBQUkVTU19GTEFHUykKIAotLSAKMi4yMC4x
CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9z
LWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0
cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 20:45:37 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 20:45:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2LMf-0005Iw-0Z; Thu, 13 Feb 2020 20:45:37 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=QSlv=4B=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2LMd-0005Ir-Kc
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 20:45:35 +0000
X-Inumbo-ID: c8820d8a-4ea1-11ea-b0fd-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id c8820d8a-4ea1-11ea-b0fd-bc764e2007e4;
 Thu, 13 Feb 2020 20:45:35 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 9D585402A9;
 Thu, 13 Feb 2020 21:45:34 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 13 Feb 2020 21:45:33 +0100
Message-Id: <20200213204533.21788-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBCXXABI PATCH] Add supress flags for
 cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0K
IE1ha2VmaWxlLnVrIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl
bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awppbmRleCAz
YmMyZTkxLi5hNGFkMmI0IDEwMDY0NAotLS0gYS9NYWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51
awpAQCAtNzQsNyArNzQsNyBAQCBlbmRpZgogTElCQ1hYQUJJX0NGTEFHUy15ICAgICs9ICAkKENP
TkZJR19GTEFHUykKIExJQkNYWEFCSV9DWFhGTEFHUy15ICAgICs9ICAkKENPTkZJR19GTEFHUykK
IAotTElCQ1hYQUJJX1NVUFBSRVNTX0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlcgorTElC
Q1hYQUJJX1NVUFBSRVNTX0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXBhcmVu
dGhlc2VzCiBMSUJDWFhBQklfQ0ZMQUdTLXkgICArPSAkKExJQkNYWEFCSV9TVVBQUkVTU19GTEFH
UykKIExJQkNYWEFCSV9DWFhGTEFHUy15ICs9ICQoTElCQ1hYQUJJX1NVUFBSRVNTX0ZMQUdTKQog
Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWlu
aW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 20:47:36 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 20:47:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2LOa-0005LT-9W; Thu, 13 Feb 2020 20:47:36 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=QSlv=4B=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2LOZ-0005LO-Cc
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 20:47:35 +0000
X-Inumbo-ID: 0fe8556c-4ea2-11ea-b0fd-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 0fe8556c-4ea2-11ea-b0fd-bc764e2007e4;
 Thu, 13 Feb 2020 20:47:34 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 6EB4F402A9;
 Thu, 13 Feb 2020 21:47:34 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 13 Feb 2020 21:47:32 +0100
Message-Id: <20200213204732.21853-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Include additional header
 files and add supress flags for cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0K
IE1ha2VmaWxlLnVrIHwgMiArLQogZ2x1ZS5jICAgICAgfCAyICsrCiAyIGZpbGVzIGNoYW5nZWQs
IDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL01ha2VmaWxlLnVr
IGIvTWFrZWZpbGUudWsKaW5kZXggOWM3ZTkyNS4uOWEyOTg3YSAxMDA2NDQKLS0tIGEvTWFrZWZp
bGUudWsKKysrIGIvTWFrZWZpbGUudWsKQEAgLTgwLDcgKzgwLDcgQEAgTElCR09fQ0ZMQUdTLXkg
Kz0gLURIQVZFX0NPTkZJR19IIC1EX0lOQ0xVREVfTUFMTE9DX0hfIFwKIAktV2FsbCAtV2V4dHJh
IC1Xd3JpdGUtc3RyaW5ncyAtV2Nhc3QtcXVhbCAtV25vLXVudXNlZC1mdW5jdGlvbiBcCiAJLW1p
bmxpbmUtYWxsLXN0cmluZ29wcyAtV25vLWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIFwK
IAktRF9HTlVfU09VUkNFIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9PRkZTRVRfQklUUz02
NAotTElCR09fQ0ZMQUdTLXkgKz0gLVduby1jYXN0LXF1YWwgLVduby11bnVzZWQtdmFsdWUKK0xJ
QkdPX0NGTEFHUy15ICs9IC1Xbm8tY2FzdC1xdWFsIC1Xbm8tdW51c2VkLXZhbHVlIC1Xbm8tdW51
c2VkLXBhcmFtZXRlcgogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBsaWJnbyBjb2RlCmRp
ZmYgLS1naXQgYS9nbHVlLmMgYi9nbHVlLmMKaW5kZXggMzAxYjBkYi4uNjBhMTJiZCAxMDA2NDQK
LS0tIGEvZ2x1ZS5jCisrKyBiL2dsdWUuYwpAQCAtNDYsNiArNDYsOCBAQAogI2luY2x1ZGUgPHN5
cy9zdGF0Lmg+CiAjaW5jbHVkZSA8dWsvZXNzZW50aWFscy5oPgogI2luY2x1ZGUgPHB0ZV90eXBl
cy5oPgorI2luY2x1ZGUgPHN5cy9lcG9sbC5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CiAKIGlu
dCBlcG9sbF9jcmVhdGUoaW50IHNpemUgX191bnVzZWQpCiB7Ci0tIAoyLjIwLjEKCgpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFp
bGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 20:48:41 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 20:48:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2LPd-0005OE-EM; Thu, 13 Feb 2020 20:48:41 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=QSlv=4B=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2LPb-0005O5-SN
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 20:48:39 +0000
X-Inumbo-ID: 3649bf5c-4ea2-11ea-b94e-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 3649bf5c-4ea2-11ea-b94e-12813bfff9fa;
 Thu, 13 Feb 2020 20:48:39 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id D0F96402A9;
 Thu, 13 Feb 2020 21:48:38 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 13 Feb 2020 21:48:37 +0100
Message-Id: <20200213204837.21918-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBUNWIND PATCH] Add suppress flag for
 cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0K
IE1ha2VmaWxlLnVrIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl
bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awppbmRleCA1
YWZjMzg1Li5iOGE2MTNmIDEwMDY0NAotLS0gYS9NYWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51
awpAQCAtNzcsNyArNzcsNyBAQCBDT05GSUdfRkxBR1MgICArPSAtRCBfTElCVU5XSU5EX0hBU19O
T19USFJFQURTICAtRCBfX0VMRl9fICAtRCBfTElCVU5XSU5EX0lTX05BVAogTElCVU5XSU5EX0NG
TEFHUy15ICAgICAgKz0gICQoQ09ORklHX0ZMQUdTKQogTElCVU5XSU5EX0NYWEZMQUdTLXkgICAg
Kz0gICQoQ09ORklHX0ZMQUdTKQogCi1MSUJVTldJTkRfU1VQUFJFU1NfRkxBR1MgKz0gLVduby11
bnVzZWQtcGFyYW1ldGVyCitMSUJVTldJTkRfU1VQUFJFU1NfRkxBR1MgKz0gLVduby11bnVzZWQt
cGFyYW1ldGVyIC1Xbm8tbWF5YmUtdW5pbml0aWFsaXplZAogTElCVU5XSU5EX0NGTEFHUy15ICAg
Kz0gJChMSUJVTldJTkRfU1VQUFJFU1NfRkxBR1MpCiBMSUJVTldJTkRfQ1hYRkxBR1MteSArPSAk
KExJQlVOV0lORF9TVVBQUkVTU19GTEFHUykKIAotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlz
dApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 20:58:12 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 20:58:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2LYp-0006B1-6c; Thu, 13 Feb 2020 20:58:11 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=QSlv=4B=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2LYn-0006Aw-KA
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 20:58:09 +0000
X-Inumbo-ID: 8984825a-4ea3-11ea-ade5-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 8984825a-4ea3-11ea-ade5-bc764e2007e4;
 Thu, 13 Feb 2020 20:58:08 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 5BBA5402A9;
 Thu, 13 Feb 2020 21:58:07 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 13 Feb 2020 21:58:05 +0100
Message-Id: <20200213205805.22047-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] lib/ukmmap: Fix return type and add supress flag for
 cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Rml4IHRoZSByZXR1cm4gdHlwZSBvZiBtcmVtYXAgYW5kIGFkZCAtV25vLXVudXNlZC1wYXJhbWV0
ZXIgdG8gcHJvdmlkZQphIGNsZWFuZXIgYnVpbGQuCgpTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVp
Y2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXUKLS0tCiBsaWIvdWttbWFwL01ha2VmaWxlLnVrIHwg
MiArKwogbGliL3VrbW1hcC9tbWFwLmMgICAgICB8IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMyBp
bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGliL3VrbW1hcC9NYWtl
ZmlsZS51ayBiL2xpYi91a21tYXAvTWFrZWZpbGUudWsKaW5kZXggNzFmZjQzMi4uNDk4YTJjYSAx
MDA2NDQKLS0tIGEvbGliL3VrbW1hcC9NYWtlZmlsZS51aworKysgYi9saWIvdWttbWFwL01ha2Vm
aWxlLnVrCkBAIC0xLDMgKzEsNSBAQAogJChldmFsICQoY2FsbCBhZGRsaWJfcyxsaWJ1a21tYXAs
JChDT05GSUdfTElCVUtNTUFQKSkpCiAKIExJQlVLTU1BUF9TUkNTLXkgKz0gJChMSUJVS01NQVBf
QkFTRSkvbW1hcC5jCisKK0xJQlVLTU1BUF9DRkxBR1MteSArPSAtV25vLXVudXNlZC1wYXJhbWV0
ZXIKZGlmZiAtLWdpdCBhL2xpYi91a21tYXAvbW1hcC5jIGIvbGliL3VrbW1hcC9tbWFwLmMKaW5k
ZXggNTJjNDllMi4uZTEyNTlkYSAxMDA2NDQKLS0tIGEvbGliL3VrbW1hcC9tbWFwLmMKKysrIGIv
bGliL3VrbW1hcC9tbWFwLmMKQEAgLTE2OCw1ICsxNjgsNSBAQCBpbnQgbXVubWFwKHZvaWQgKmFk
ZHIsIHNpemVfdCBsZW4pCiB2b2lkICptcmVtYXAodm9pZCAqb2xkX2FkZHJlc3MsIHNpemVfdCBv
bGRfc2l6ZSwgc2l6ZV90IG5ld19zaXplLAogCQlpbnQgZmxhZ3MsIC4uLikKIHsKLQlyZXR1cm4g
LTE7CisJcmV0dXJuIDA7CiB9Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 22:51:07 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 22:51:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2NK2-0007lW-LN; Thu, 13 Feb 2020 22:51:02 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=V73E=4B=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2NK1-0007lR-Cj
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 22:51:01 +0000
X-Inumbo-ID: 4d6b2a66-4eb3-11ea-aa99-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 4d6b2a66-4eb3-11ea-aa99-bc764e2007e4;
 Thu, 13 Feb 2020 22:50:59 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id E8C8DF2028;
 Thu, 13 Feb 2020 23:50:58 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id JQnu_sWqPWIm; Thu, 13 Feb 2020 23:50:58 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id C4E2CF2026
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 23:50:56 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Feb
 2020 23:50:56 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Thu, 13 Feb 2020 23:50:54 +0100
Message-ID: <20200213225054.29483-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/LWIP PATCH] uknetdev: Yield receive thread
 on full stack queue
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2hlbiBhIHRvbyBoaWdoIHJhdGUgb2YgbmV0d29yayB0cmFmZmljIGlzIHJlY2VpdmVkLCB0aGUg
bmV0ZGV2J3MgcmVjZWl2ZQp0aHJlYWQgbWF5IG5ldmVyIHlpZWxkIGFuZCBvbmx5IGZvcndhcmRz
IHBhY2tldHMgdG8gdGhlIGx3aXAgc3RhY2sKdGhyZWFkLiBUaGlzIHdvcmtzIGFzIGV4cGVjdGVk
IHVudGlsIHRoZSBpbnB1dCBxdWV1ZSBydW5zIGZ1bGwuIElmIHRoZQp0aGUgc3RhY2sgaXMgbmV2
ZXIgYWJsZSB0byBwcm9jZXNzIHRoZW0sIHRoZSBzdGFjayBiZWNvbWVzIGNvbXBsZXRlbHkKdW5y
ZXNwb25zaXZlLiBJbnN0ZWFkIG9mIGRyb3BwaW5nIGp1c3QgYSBmZXcgcGFja2V0cyBhbGwgc3Vj
Y2Vzc2l2ZQpwYWNrZXRzIGFyZSBkcm9wcGVkLgoKVGhpcyBjb21taXQgaW50cm9kdWNlcyBhIHRo
cmVhZCB5aWVsZCB3aGVuIHRoaXMgY29uZGl0aW9uIGlzIG1ldCBhbmQKZ2l2ZXMgdGhlIGNoYW5j
ZSB0byBwcm9jZXNzIHF1ZXVlZCBwYWNrZXRzLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gS3Vlbnpl
ciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+Ci0tLQogdWtuZXRkZXYuYyB8IDI3ICsrKysrKysr
KysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDMg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdWtuZXRkZXYuYyBiL3VrbmV0ZGV2LmMKaW5kZXgg
NDdkMmZiMS4uNzA0NzM1MiAxMDA2NDQKLS0tIGEvdWtuZXRkZXYuYworKysgYi91a25ldGRldi5j
CkBAIC0xOTMsNiArMTkzLDcgQEAgc3RhdGljIHZvaWQgdWtuZXRkZXZfaW5wdXQoc3RydWN0IHVr
X25ldGRldiAqZGV2LAogCXN0cnVjdCBuZXRpZiAqbmYgPSAoc3RydWN0IG5ldGlmICopIGFyZ3A7
CiAJc3RydWN0IHVrX25ldGJ1ZiAqbmI7CiAJc3RydWN0IHBidWYgKnA7CisJZXJyX3QgZXJyOwog
CWludCByZXQ7CiAKIAlVS19BU1NFUlQoZGV2KTsKQEAgLTI0MywxMiArMjQ0LDMyIEBAIHN0YXRp
YyB2b2lkIHVrbmV0ZGV2X2lucHV0KHN0cnVjdCB1a19uZXRkZXYgKmRldiwKIAkJcCA9IGx3aXBf
bmV0YnVmX3RvX3BidWYobmIpOwogCQlwLT5wYXlsb2FkID0gbmItPmRhdGE7CiAJCXAtPnRvdF9s
ZW4gPSBwLT5sZW4gPSBuYi0+bGVuOwotCQlpZiAodW5saWtlbHkobmYtPmlucHV0KHAsIG5mKSAh
PSBFUlJfT0spKSB7CisJCWVyciA9IG5mLT5pbnB1dChwLCBuZik7CisJCWlmICh1bmxpa2VseShl
cnIgIT0gRVJSX09LKSkgeworI2lmIENPTkZJR19MV0lQX1RIUkVBRFMgJiYgQ09ORklHX0xJQlVL
TkVUREVWX0RJU1BBVENIRVJUSFJFQURTCisJCQkvKiBBdCB0aGlzIHBvaW50IGl0IGlzIHBvc3Np
YmxlIHRoYXQgbHdJUCdzIGlucHV0IHF1ZXVlCisJCQkgKiBpcyBmdWxsIG9yIHdlIHJ1biBvdXQg
b2YgbWVtb3J5LiBJbiB0aGlzIGNhc2UsIHdlCisJCQkgKiByZXR1cm4gdG8gdGhlIHNjaGVkdWxl
ciBhbmQgaG9wZSB0aGF0IGx3SVAncyBtYWluCisJCQkgKiB0aHJlYWQgaXMgYWJsZSB0byBwcm9j
ZXNzIHNvbWUgcGFja2V0cy4KKwkJCSAqIEFmdGVyd2FyZHMsIHdlIHRyeSBpdCBvbmNlIGFnYWlu
LgorCQkJICovCisJCQlpZiAoZXJyID09IEVSUl9NRU0pIHsKKwkJCQlMV0lQX0RFQlVHRihORVRJ
Rl9ERUJVRywKKwkJCQkJICAgICgiJXM6ICVjJWMldTogbHdJUCdzIGlucHV0IHF1ZXVlIGZ1bGw6
IHlpZWxkaW5nIGFuZCB0cnlpbmcgb25jZSBhZ2Fpbi4uLlxuIiwKKwkJCQkJICAgICBfX2Z1bmNf
XywgbmYtPm5hbWVbMF0sIG5mLT5uYW1lWzFdLAorCQkJCQkgICAgIG5mLT5udW0pKTsKKwkJCQl1
a19zY2hlZF95aWVsZCgpOworCQkJCWVyciA9IG5mLT5pbnB1dChwLCBuZik7CisJCQkJaWYgKGxp
a2VseShlcnIgPT0gRVJSX09LKSkKKwkJCQkJY29udGludWU7CisJCQl9CisjZW5kaWYKKwogCQkJ
LyoKIAkJCSAqIERyb3AgdGhlIHBhY2tldCB0aGF0IHdlIGNvdWxkIG5vdCBzZW5kIHRvIHRoZSBz
dGFjawogCQkJICovCi0JCQl1a19wcl9lcnIoIiVjJWMldTogRmFpbGVkIHRvIGZvcndhcmQgcGFj
a2V0IHRvIGx3SVBcbiIsCi0JCQkJICBuZi0+bmFtZVswXSwgbmYtPm5hbWVbMV0sIG5mLT5udW0p
OworCQkJdWtfcHJfZXJyKCIlYyVjJXU6IEZhaWxlZCB0byBmb3J3YXJkIHBhY2tldCB0byBsd0lQ
OiAlZFxuIiwKKwkJCQkgIG5mLT5uYW1lWzBdLCBuZi0+bmFtZVsxXSwgbmYtPm51bSwgZXJyKTsK
IAkJCXVrX25ldGJ1Zl9mcmVlX3NpbmdsZShuYik7CiAJCX0KIAl9IHdoaWxlICh1a19uZXRkZXZf
c3RhdHVzX21vcmUocmV0KSk7Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 13 23:05:29 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 13 Feb 2020 23:05:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2NXz-0000EO-RF; Thu, 13 Feb 2020 23:05:27 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=V73E=4B=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2NXy-0000EJ-G9
 for minios-devel@lists.xen.org; Thu, 13 Feb 2020 23:05:26 +0000
X-Inumbo-ID: 510765de-4eb5-11ea-b985-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 510765de-4eb5-11ea-b985-12813bfff9fa;
 Thu, 13 Feb 2020 23:05:25 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 742CBF2028;
 Fri, 14 Feb 2020 00:05:23 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Ywb_7EmWe371; Fri, 14 Feb 2020 00:05:23 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 32DF3F2026
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 00:05:21 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 00:05:20 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200213204240.21653-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <85ff5954-5692-4fb7-7e17-ba1fc5c082e4@neclab.eu>
Date: Fri, 14 Feb 2020 00:05:20 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200213204240.21653-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/COMPILER-RT PATCH] Add suppress flag
 for cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZS4gVGhhbmtzLgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgoKT24gMTMuMDIuMjAgMjE6NDIsIEZlbGlwZSBIdWljaSB3cm90ZToK
PiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Cj4g
LS0tCj4gICBNYWtlZmlsZS51ayB8IDIgKy0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv
bigrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2Vm
aWxlLnVrCj4gaW5kZXggYjkyOWY2YS4uMjNmOWUyZSAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51
awo+ICsrKyBiL01ha2VmaWxlLnVrCj4gQEAgLTcwLDcgKzcwLDcgQEAgQ1hYSU5DTFVERVMtJChD
T05GSUdfTElCQ09NUElMRVJfUlQpICs9IC1JJChMSUJDT01QSUxFUl9SVF9TUkMpL2luY2x1ZGUK
PiAgICMgR2xvYmFsIGZsYWdzCj4gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo+ICAgCj4gLUxJ
QkNPTVBJTEVSX1JUX1NVUFBSRVNTX0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlcgo+ICtM
SUJDT01QSUxFUl9SVF9TVVBQUkVTU19GTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVdu
by1idWlsdGluLWRlY2xhcmF0aW9uLW1pc21hdGNoCj4gICBMSUJDT01QSUxFUl9SVF9DRkxBR1Mt
eSAgICs9ICQoTElCQ09NUElMRVJfUlRfU1VQUFJFU1NfRkxBR1MpCj4gICBMSUJDT01QSUxFUl9S
VF9DWFhGTEFHUy15ICs9ICQoTElCQ09NUElMRVJfUlRfU1VQUFJFU1NfRkxBR1MpCj4gICAKPiAK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1k
ZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 00:04:15 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 00:04:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2OSq-0005Uk-Pu; Fri, 14 Feb 2020 00:04:12 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2OSp-0005Uf-R2
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 00:04:11 +0000
X-Inumbo-ID: 8600f914-4ebd-11ea-ade5-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8600f914-4ebd-11ea-ade5-bc764e2007e4;
 Fri, 14 Feb 2020 00:04:09 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id D566D103928;
 Fri, 14 Feb 2020 01:04:08 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id e7YA1MKMLdSF; Fri, 14 Feb 2020 01:04:08 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 9C50F100000
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 01:04:08 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 01:04:08 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 14 Feb 2020 01:03:59 +0100
Message-ID: <20200214000359.8456-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/NGINX PATCH] Update dependency to
 lib/posix-sysinfo
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2l0aGluIHRoZSBVbmlrcmFmdCByZXBvc2l0b3J5LCBVS1NZU0lORk8gZ290IHJlbmFtZWQgdG8g
TElCUE9TSVhfU1lTSU5GTy4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgotLS0KIENvbmZpZy51ayB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx
IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL0NvbmZpZy51ayBiL0Nv
bmZpZy51awppbmRleCAzYTc4YzAzLi45MjcxNzhkIDEwMDY0NAotLS0gYS9Db25maWcudWsKKysr
IGIvQ29uZmlnLnVrCkBAIC02LDcgKzYsNyBAQCBtZW51Y29uZmlnIExJQk5HSU5YCiAJc2VsZWN0
IExJQlBPU0lYX0xJQkRMCiAJc2VsZWN0IExJQlBPU0lYX1BST0NFU1MKIAlzZWxlY3QgTElCUE9T
SVhfVVNFUgotCXNlbGVjdCBVS1NZU0lORk8KKwlzZWxlY3QgTElCUE9TSVhfU1lTSU5GTwogCXNl
bGVjdCBMSUJVS01NQVAKIAlzZWxlY3QgTElCVUtUSU1FCiAJc2VsZWN0IExJQk5FV0xJQkMKLS0g
CjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3Mt
ZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 00:04:22 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 00:04:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2OT0-0005WQ-S6; Fri, 14 Feb 2020 00:04:22 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2OSz-0005WJ-Kn
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 00:04:21 +0000
X-Inumbo-ID: 8c7db34a-4ebd-11ea-b98b-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 8c7db34a-4ebd-11ea-b98b-12813bfff9fa;
 Fri, 14 Feb 2020 00:04:20 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id CECCAF2028;
 Fri, 14 Feb 2020 01:04:19 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id NfXI5FJBChQG; Fri, 14 Feb 2020 01:04:19 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id A5EE5F2026
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 01:04:17 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 01:04:17 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200213204412.21722-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <c72ceec8-6fe9-2d22-2cb9-39e0deb36296@neclab.eu>
Date: Fri, 14 Feb 2020 01:04:16 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200213204412.21722-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBCXX PATCH] Add suppress flags for
 cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZS4gVGhhbmtzLgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgoKT24gMTMuMDIuMjAgMjE6NDQsIEZlbGlwZSBIdWljaSB3cm90ZToK
PiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Cj4g
LS0tCj4gICBNYWtlZmlsZS51ayB8IDIgKy0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv
bigrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2Vm
aWxlLnVrCj4gaW5kZXggNmY1ZjM3Yy4uY2Q5NTRiMiAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51
awo+ICsrKyBiL01ha2VmaWxlLnVrCj4gQEAgLTEwMyw3ICsxMDMsNyBAQCBlbmRpZgo+ICAgTElC
Q1hYX0NGTEFHUy15ICAgICs9ICAgJChDT05GSUdfRkxBR1MpCj4gICBMSUJDWFhfQ1hYRkxBR1Mt
eSAgICArPSAgICQoQ09ORklHX0ZMQUdTKQo+ICAgCj4gLUxJQkNYWF9TVVBQUkVTU19GTEFHUyAr
PSAtV25vLXVudXNlZC1wYXJhbWV0ZXIKPiArTElCQ1hYX1NVUFBSRVNTX0ZMQUdTICs9IC1Xbm8t
dW51c2VkLXBhcmFtZXRlciAtV25vLWNwcCAtV25vLXBhcmVudGhlc2VzCj4gICBMSUJDWFhfQ0ZM
QUdTLXkgICArPSAkKExJQkNYWF9TVVBQUkVTU19GTEFHUykKPiAgIExJQkNYWF9DWFhGTEFHUy15
ICs9ICQoTElCQ1hYX1NVUFBSRVNTX0ZMQUdTKQo+ICAgCj4gCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
bmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 00:06:03 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 00:06:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2OUd-0005YX-2m; Fri, 14 Feb 2020 00:06:03 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2OUb-0005YS-Ld
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 00:06:01 +0000
X-Inumbo-ID: c80c76a8-4ebd-11ea-ade5-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c80c76a8-4ebd-11ea-ade5-bc764e2007e4;
 Fri, 14 Feb 2020 00:06:00 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id C6EF9103BA3;
 Fri, 14 Feb 2020 01:05:59 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id pBzwwp4oUPXB; Fri, 14 Feb 2020 01:05:59 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 9E66E103928
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 01:05:59 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 01:05:59 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200213205805.22047-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <f377f6b2-398e-5167-47d9-e24f16cbd9d4@neclab.eu>
Date: Fri, 14 Feb 2020 01:05:58 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200213205805.22047-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] lib/ukmmap: Fix return type and add supress flag
 for cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

CgpPbiAxMy4wMi4yMCAyMTo1OCwgRmVsaXBlIEh1aWNpIHdyb3RlOgo+IEZpeCB0aGUgcmV0dXJu
IHR5cGUgb2YgbXJlbWFwIGFuZCBhZGQgLVduby11bnVzZWQtcGFyYW1ldGVyIHRvIHByb3ZpZGUK
PiBhIGNsZWFuZXIgYnVpbGQuCj4gCj4gU2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxp
cGUuaHVpY2lAbmVjbGFiLmV1Cj4gLS0tCj4gICBsaWIvdWttbWFwL01ha2VmaWxlLnVrIHwgMiAr
Kwo+ICAgbGliL3VrbW1hcC9tbWFwLmMgICAgICB8IDIgKy0KPiAgIDIgZmlsZXMgY2hhbmdlZCwg
MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2xpYi91a21t
YXAvTWFrZWZpbGUudWsgYi9saWIvdWttbWFwL01ha2VmaWxlLnVrCj4gaW5kZXggNzFmZjQzMi4u
NDk4YTJjYSAxMDA2NDQKPiAtLS0gYS9saWIvdWttbWFwL01ha2VmaWxlLnVrCj4gKysrIGIvbGli
L3VrbW1hcC9NYWtlZmlsZS51awo+IEBAIC0xLDMgKzEsNSBAQAo+ICAgJChldmFsICQoY2FsbCBh
ZGRsaWJfcyxsaWJ1a21tYXAsJChDT05GSUdfTElCVUtNTUFQKSkpCj4gICAKPiAgIExJQlVLTU1B
UF9TUkNTLXkgKz0gJChMSUJVS01NQVBfQkFTRSkvbW1hcC5jCj4gKwo+ICtMSUJVS01NQVBfQ0ZM
QUdTLXkgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyCj4gZGlmZiAtLWdpdCBhL2xpYi91a21tYXAv
bW1hcC5jIGIvbGliL3VrbW1hcC9tbWFwLmMKPiBpbmRleCA1MmM0OWUyLi5lMTI1OWRhIDEwMDY0
NAo+IC0tLSBhL2xpYi91a21tYXAvbW1hcC5jCj4gKysrIGIvbGliL3VrbW1hcC9tbWFwLmMKPiBA
QCAtMTY4LDUgKzE2OCw1IEBAIGludCBtdW5tYXAodm9pZCAqYWRkciwgc2l6ZV90IGxlbikKPiAg
IHZvaWQgKm1yZW1hcCh2b2lkICpvbGRfYWRkcmVzcywgc2l6ZV90IG9sZF9zaXplLCBzaXplX3Qg
bmV3X3NpemUsCj4gICAJCWludCBmbGFncywgLi4uKQoKRm9yIGludGVybmFsIGxpYnMgaXQgaXMg
Z2VuZXJhbGx5IGJldHRlciB0byB1c2UgYF9fdW51c2VkYCBoZWxwZXIgbWFjcm8gCih1ay9lc3Nl
bnRpYWxzLmgpIGluc3RlYWQgb2Ygc3VwcHJlc3Npbmcgd2FybmluZ3MuCgo+ICAgewo+IC0JcmV0
dXJuIC0xOwo+ICsJcmV0dXJuIDA7CgpyZXR1cm4gTlVMTDsKPiAgIH0KPiAKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5n
IGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 00:06:53 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 00:06:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2OVR-0005a7-69; Fri, 14 Feb 2020 00:06:53 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2OVP-0005a2-U5
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 00:06:51 +0000
X-Inumbo-ID: e60160ba-4ebd-11ea-b98b-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id e60160ba-4ebd-11ea-b98b-12813bfff9fa;
 Fri, 14 Feb 2020 00:06:51 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id D97C0F2029;
 Fri, 14 Feb 2020 01:06:49 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id hygTmYMR6t5p; Fri, 14 Feb 2020 01:06:49 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id A35B5F2026
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 01:06:47 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 01:06:47 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200213204837.21918-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <4776bc6a-3561-a3c5-1103-315f2896d84a@neclab.eu>
Date: Fri, 14 Feb 2020 01:06:46 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200213204837.21918-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBUNWIND PATCH] Add suppress flag for
 cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZS4gVGhhbmtzLgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgoKT24gMTMuMDIuMjAgMjE6NDgsIEZlbGlwZSBIdWljaSB3cm90ZToK
PiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Cj4g
LS0tCj4gICBNYWtlZmlsZS51ayB8IDIgKy0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv
bigrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2Vm
aWxlLnVrCj4gaW5kZXggNWFmYzM4NS4uYjhhNjEzZiAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51
awo+ICsrKyBiL01ha2VmaWxlLnVrCj4gQEAgLTc3LDcgKzc3LDcgQEAgQ09ORklHX0ZMQUdTICAg
Kz0gLUQgX0xJQlVOV0lORF9IQVNfTk9fVEhSRUFEUyAgLUQgX19FTEZfXyAgLUQgX0xJQlVOV0lO
RF9JU19OQVQKPiAgIExJQlVOV0lORF9DRkxBR1MteSAgICAgICs9ICAkKENPTkZJR19GTEFHUykK
PiAgIExJQlVOV0lORF9DWFhGTEFHUy15ICAgICs9ICAkKENPTkZJR19GTEFHUykKPiAgIAo+IC1M
SUJVTldJTkRfU1VQUFJFU1NfRkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyCj4gK0xJQlVO
V0lORF9TVVBQUkVTU19GTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby1tYXliZS11
bmluaXRpYWxpemVkCj4gICBMSUJVTldJTkRfQ0ZMQUdTLXkgICArPSAkKExJQlVOV0lORF9TVVBQ
UkVTU19GTEFHUykKPiAgIExJQlVOV0lORF9DWFhGTEFHUy15ICs9ICQoTElCVU5XSU5EX1NVUFBS
RVNTX0ZMQUdTKQo+ICAgCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu
Zm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 00:07:34 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 00:07:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2OW6-0005bf-AA; Fri, 14 Feb 2020 00:07:34 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2OW4-0005bY-Dp
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 00:07:32 +0000
X-Inumbo-ID: fe60d924-4ebd-11ea-ade5-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fe60d924-4ebd-11ea-ade5-bc764e2007e4;
 Fri, 14 Feb 2020 00:07:31 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id EC5B410410E;
 Fri, 14 Feb 2020 01:07:30 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ToLB4LGB2rOf; Fri, 14 Feb 2020 01:07:30 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id BC4E2103F46
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 01:07:30 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 01:07:30 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200213204732.21853-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <a6c27ee3-27be-0da8-15dd-153cc69a7d4c@neclab.eu>
Date: Fri, 14 Feb 2020 01:07:29 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200213204732.21853-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBGO PATCH] Include additional header
 files and add supress flags for cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZS4gVGhhbmtzLgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgoKT24gMTMuMDIuMjAgMjE6NDcsIEZlbGlwZSBIdWljaSB3cm90ZToK
PiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Cj4g
LS0tCj4gICBNYWtlZmlsZS51ayB8IDIgKy0KPiAgIGdsdWUuYyAgICAgIHwgMiArKwo+ICAgMiBm
aWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAKPiBkaWZmIC0t
Z2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awo+IGluZGV4IDljN2U5MjUuLjlhMjk4N2Eg
MTAwNjQ0Cj4gLS0tIGEvTWFrZWZpbGUudWsKPiArKysgYi9NYWtlZmlsZS51awo+IEBAIC04MCw3
ICs4MCw3IEBAIExJQkdPX0NGTEFHUy15ICs9IC1ESEFWRV9DT05GSUdfSCAtRF9JTkNMVURFX01B
TExPQ19IXyBcCj4gICAJLVdhbGwgLVdleHRyYSAtV3dyaXRlLXN0cmluZ3MgLVdjYXN0LXF1YWwg
LVduby11bnVzZWQtZnVuY3Rpb24gXAo+ICAgCS1taW5saW5lLWFsbC1zdHJpbmdvcHMgLVduby1p
bXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiBcCj4gICAJLURfR05VX1NPVVJDRSAtRF9MQVJH
RUZJTEVfU09VUkNFIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQKPiAtTElCR09fQ0ZMQUdTLXkgKz0g
LVduby1jYXN0LXF1YWwgLVduby11bnVzZWQtdmFsdWUKPiArTElCR09fQ0ZMQUdTLXkgKz0gLVdu
by1jYXN0LXF1YWwgLVduby11bnVzZWQtdmFsdWUgLVduby11bnVzZWQtcGFyYW1ldGVyCj4gICAK
PiAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4gICAjIGxpYmdvIGNvZGUKPiBkaWZmIC0tZ2l0
IGEvZ2x1ZS5jIGIvZ2x1ZS5jCj4gaW5kZXggMzAxYjBkYi4uNjBhMTJiZCAxMDA2NDQKPiAtLS0g
YS9nbHVlLmMKPiArKysgYi9nbHVlLmMKPiBAQCAtNDYsNiArNDYsOCBAQAo+ICAgI2luY2x1ZGUg
PHN5cy9zdGF0Lmg+Cj4gICAjaW5jbHVkZSA8dWsvZXNzZW50aWFscy5oPgo+ICAgI2luY2x1ZGUg
PHB0ZV90eXBlcy5oPgo+ICsjaW5jbHVkZSA8c3lzL2Vwb2xsLmg+Cj4gKyNpbmNsdWRlIDxzeXMv
dGltZS5oPgo+ICAgCj4gICBpbnQgZXBvbGxfY3JlYXRlKGludCBzaXplIF9fdW51c2VkKQo+ICAg
ewo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWlu
aW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZl
bA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 00:08:03 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 00:08:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2OWZ-0005dc-DM; Fri, 14 Feb 2020 00:08:03 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2OWY-0005dX-62
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 00:08:02 +0000
X-Inumbo-ID: 0fc0d5b6-4ebe-11ea-ade5-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 0fc0d5b6-4ebe-11ea-ade5-bc764e2007e4;
 Fri, 14 Feb 2020 00:08:00 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 208BFF2028;
 Fri, 14 Feb 2020 01:08:00 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id pPB86TsdjOxi; Fri, 14 Feb 2020 01:08:00 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id E5810F2026
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 01:07:57 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 01:07:57 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200213204533.21788-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <e46077e2-ea53-548d-4d7e-6c383e37b620@neclab.eu>
Date: Fri, 14 Feb 2020 01:07:56 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200213204533.21788-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBCXXABI PATCH] Add supress flags for
 cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZS4gVGhhbmtzLgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgoKT24gMTMuMDIuMjAgMjE6NDUsIEZlbGlwZSBIdWljaSB3cm90ZToK
PiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Cj4g
LS0tCj4gICBNYWtlZmlsZS51ayB8IDIgKy0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv
bigrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2Vm
aWxlLnVrCj4gaW5kZXggM2JjMmU5MS4uYTRhZDJiNCAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51
awo+ICsrKyBiL01ha2VmaWxlLnVrCj4gQEAgLTc0LDcgKzc0LDcgQEAgZW5kaWYKPiAgIExJQkNY
WEFCSV9DRkxBR1MteSAgICArPSAgJChDT05GSUdfRkxBR1MpCj4gICBMSUJDWFhBQklfQ1hYRkxB
R1MteSAgICArPSAgJChDT05GSUdfRkxBR1MpCj4gICAKPiAtTElCQ1hYQUJJX1NVUFBSRVNTX0ZM
QUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlcgo+ICtMSUJDWFhBQklfU1VQUFJFU1NfRkxBR1Mg
Kz0gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tcGFyZW50aGVzZXMKPiAgIExJQkNYWEFCSV9D
RkxBR1MteSAgICs9ICQoTElCQ1hYQUJJX1NVUFBSRVNTX0ZMQUdTKQo+ICAgTElCQ1hYQUJJX0NY
WEZMQUdTLXkgKz0gJChMSUJDWFhBQklfU1VQUFJFU1NfRkxBR1MpCj4gICAKPiAKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWls
aW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 07:32:57 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 07:32:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2VT6-0005vh-1Y; Fri, 14 Feb 2020 07:32:56 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=gxrt=4C=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2VT4-0005vY-Iv
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 07:32:54 +0000
X-Inumbo-ID: 364cf99c-4efc-11ea-bc8e-bc764e2007e4
Received: from mail-ua1-x942.google.com (unknown [2607:f8b0:4864:20::942])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 364cf99c-4efc-11ea-bc8e-bc764e2007e4;
 Fri, 14 Feb 2020 07:32:53 +0000 (UTC)
Received: by mail-ua1-x942.google.com with SMTP id c7so3256390uaf.5
 for <minios-devel@lists.xen.org>; Thu, 13 Feb 2020 23:32:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=jpijVnRwzgQGLMf14zBhB/ALzz1sF7pyozTdVOyvhIs=;
 b=TyHqTr6VOLnWmx9h+UiPPMG04HUFGojqgeW4nRXzEfVjXp/mSVH2YjVT5TAhPU8czn
 Jg7xx67p8DxoFJ7DmaCPTGpZdKmnHROclYNihghXcipHYjkyxJKtYWEAwwQiyB24rejW
 a3z+gNtVmOAXSZi9s3kUQPk+g7aTYBqzUcLOS8HXZyaTSJkwGSVPgplLpO2n0dlf0skP
 f5/AHn2XFSavtuBb5AQoXybV4K4gEFhjOfikQ7iIyoWYl7xkJHQ4e6pRzOEOpXrgxQvH
 AqZsQQSbfgWXGbX7Sjvf0BFSj1uszavxdPgXXYe//9Y5R+hV8QRFUCpiaupG9zviUWSy
 F1Nw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=jpijVnRwzgQGLMf14zBhB/ALzz1sF7pyozTdVOyvhIs=;
 b=eopcZHZJ5q5hFPk0k2RMyD4S1Wef69nM+lB3V32hVQQUXfDFQmyZSsWrsGctdh49LT
 ssoTaBcIO96K/1bhuWduA/E+y7KBa6lO67xY4W/hm8VCA0C4WhNxbtsSXkp/RXO1gnwl
 ciyBAo0408Q6UUvt00sn5WXE+uYKosluziIWHihFTIfoAWBhmGshpB/MEVzIG/C++SdO
 nPjtoJ/sKWzu5Ckn9LILy/HpX6VPhXy+NrJg8/TGwrqM+tI62SZp70FoV1pl1qSlfbDI
 2Bex2gP8Zaykq9QMfvkz1Wot8X0NHrUf4O1cTsb2rvlF1xpDuxoraf0h6E5ZuyYxIHuM
 jWjg==
X-Gm-Message-State: APjAAAVLFjXC9wT4J8nGo0J1nOrYwED8norYAvWS9tFEOPDZjA+3B/lq
 wfW9C89VwOQ304EASuB0Mam+XlV27DklyEiVLnwkZQ==
X-Google-Smtp-Source: APXvYqy347WxbDlpo12X/8PR8CtnmgyJYlp8rA9bgZOjgvP+hPlMsVrVXsN45Kow+GE7kg9OMDx7B13Iv2jec3UoWCM=
X-Received: by 2002:ab0:2a93:: with SMTP id h19mr820137uar.27.1581665573375;
 Thu, 13 Feb 2020 23:32:53 -0800 (PST)
MIME-Version: 1.0
References: <20200213205805.22047-1-felipe.huici@neclab.eu>
 <f377f6b2-398e-5167-47d9-e24f16cbd9d4@neclab.eu>
In-Reply-To: <f377f6b2-398e-5167-47d9-e24f16cbd9d4@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Fri, 14 Feb 2020 08:32:42 +0100
Message-ID: <CAEX4t-Pkua9u5yEqbF9q_Pp3VOHGSkgO08mhZhTTWNp5rNnFuw@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] lib/ukmmap: Fix return type and add supress flag
 for cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIHNvdW5kcyBnb29kLCBJJ2xsIHNlbmQgYSB2Mi4KCi0tIEZlbGlwZQoKT24gRnJp
LCBGZWIgMTQsIDIwMjAgYXQgMTowNiBBTSBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5l
Y2xhYi5ldT4gd3JvdGU6Cj4KPgo+Cj4gT24gMTMuMDIuMjAgMjE6NTgsIEZlbGlwZSBIdWljaSB3
cm90ZToKPiA+IEZpeCB0aGUgcmV0dXJuIHR5cGUgb2YgbXJlbWFwIGFuZCBhZGQgLVduby11bnVz
ZWQtcGFyYW1ldGVyIHRvIHByb3ZpZGUKPiA+IGEgY2xlYW5lciBidWlsZC4KPiA+Cj4gPiBTaWdu
ZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXUKPiA+IC0tLQo+
ID4gICBsaWIvdWttbWFwL01ha2VmaWxlLnVrIHwgMiArKwo+ID4gICBsaWIvdWttbWFwL21tYXAu
YyAgICAgIHwgMiArLQo+ID4gICAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBk
ZWxldGlvbigtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9saWIvdWttbWFwL01ha2VmaWxlLnVrIGIv
bGliL3VrbW1hcC9NYWtlZmlsZS51awo+ID4gaW5kZXggNzFmZjQzMi4uNDk4YTJjYSAxMDA2NDQK
PiA+IC0tLSBhL2xpYi91a21tYXAvTWFrZWZpbGUudWsKPiA+ICsrKyBiL2xpYi91a21tYXAvTWFr
ZWZpbGUudWsKPiA+IEBAIC0xLDMgKzEsNSBAQAo+ID4gICAkKGV2YWwgJChjYWxsIGFkZGxpYl9z
LGxpYnVrbW1hcCwkKENPTkZJR19MSUJVS01NQVApKSkKPiA+Cj4gPiAgIExJQlVLTU1BUF9TUkNT
LXkgKz0gJChMSUJVS01NQVBfQkFTRSkvbW1hcC5jCj4gPiArCj4gPiArTElCVUtNTUFQX0NGTEFH
Uy15ICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlcgo+ID4gZGlmZiAtLWdpdCBhL2xpYi91a21tYXAv
bW1hcC5jIGIvbGliL3VrbW1hcC9tbWFwLmMKPiA+IGluZGV4IDUyYzQ5ZTIuLmUxMjU5ZGEgMTAw
NjQ0Cj4gPiAtLS0gYS9saWIvdWttbWFwL21tYXAuYwo+ID4gKysrIGIvbGliL3VrbW1hcC9tbWFw
LmMKPiA+IEBAIC0xNjgsNSArMTY4LDUgQEAgaW50IG11bm1hcCh2b2lkICphZGRyLCBzaXplX3Qg
bGVuKQo+ID4gICB2b2lkICptcmVtYXAodm9pZCAqb2xkX2FkZHJlc3MsIHNpemVfdCBvbGRfc2l6
ZSwgc2l6ZV90IG5ld19zaXplLAo+ID4gICAgICAgICAgICAgICBpbnQgZmxhZ3MsIC4uLikKPgo+
IEZvciBpbnRlcm5hbCBsaWJzIGl0IGlzIGdlbmVyYWxseSBiZXR0ZXIgdG8gdXNlIGBfX3VudXNl
ZGAgaGVscGVyIG1hY3JvCj4gKHVrL2Vzc2VudGlhbHMuaCkgaW5zdGVhZCBvZiBzdXBwcmVzc2lu
ZyB3YXJuaW5ncy4KPgo+ID4gICB7Cj4gPiAtICAgICByZXR1cm4gLTE7Cj4gPiArICAgICByZXR1
cm4gMDsKPgo+IHJldHVybiBOVUxMOwo+ID4gICB9Cj4gPgo+Cj4gX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0
Cj4gTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbAoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlz
dApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 07:42:21 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 07:42:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2VcC-0006lf-TG; Fri, 14 Feb 2020 07:42:20 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=mMk8=4C=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2VcB-0006la-17
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 07:42:19 +0000
X-Inumbo-ID: 85702cc8-4efd-11ea-b9be-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 85702cc8-4efd-11ea-b9be-12813bfff9fa;
 Fri, 14 Feb 2020 07:42:16 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id B00A140C31;
 Fri, 14 Feb 2020 08:42:15 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Fri, 14 Feb 2020 08:42:15 +0100
Message-Id: <20200214074215.2473-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT v2] lib/ukmmap: Fix return type and mark
 stub parameters as unused for cleaner build
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Rml4IHRoZSByZXR1cm4gdHlwZSBvZiBtcmVtYXAgYW5kIGFkZCBfX3VudXNlZCB0byBpdHMgcGFy
YW10ZXJzIHRvCnByZXZlbnQgdW51c2VkIHBhcmFtZXRlciB3YXJuaW5ncyB0byBhcHBlYXIgaW4g
dGhlIGJ1aWxkIChtcmVtYXAgaXMgYQpzdHViIGZvciBub3cpLgoKU2lnbmVkLW9mZi1ieTogRmVs
aXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1Ci0tLQogbGliL3VrbW1hcC9tbWFwLmMg
fCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9saWIvdWttbWFwL21tYXAuYyBiL2xpYi91a21tYXAvbW1hcC5jCmlu
ZGV4IDUyYzQ5ZTIuLjk0YTNhYzQgMTAwNjQ0Ci0tLSBhL2xpYi91a21tYXAvbW1hcC5jCisrKyBi
L2xpYi91a21tYXAvbW1hcC5jCkBAIC0xNjUsOCArMTY1LDggQEAgaW50IG11bm1hcCh2b2lkICph
ZGRyLCBzaXplX3QgbGVuKQogCXJldHVybiAwOwogfQogCi12b2lkICptcmVtYXAodm9pZCAqb2xk
X2FkZHJlc3MsIHNpemVfdCBvbGRfc2l6ZSwgc2l6ZV90IG5ld19zaXplLAotCQlpbnQgZmxhZ3Ms
IC4uLikKK3ZvaWQgKm1yZW1hcCh2b2lkICpvbGRfYWRkcmVzcyBfX3VudXNlZCwgc2l6ZV90IG9s
ZF9zaXplIF9fdW51c2VkLCBzaXplX3QgbmV3X3NpemUgX191bnVzZWQsCisJCWludCBmbGFncyBf
X3VudXNlZCwgLi4uKQogewotCXJldHVybiAtMTsKKwlyZXR1cm4gTlVMTDsKIH0KLS0gCjIuMjAu
MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlv
cy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 08:25:47 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 08:25:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2WIA-0002Yb-Ny; Fri, 14 Feb 2020 08:25:42 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=gxrt=4C=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2WIA-0002YW-6u
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 08:25:42 +0000
X-Inumbo-ID: 966b1050-4f03-11ea-ade5-bc764e2007e4
Received: from mail-vs1-xe43.google.com (unknown [2607:f8b0:4864:20::e43])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 966b1050-4f03-11ea-ade5-bc764e2007e4;
 Fri, 14 Feb 2020 08:25:41 +0000 (UTC)
Received: by mail-vs1-xe43.google.com with SMTP id k188so5379811vsc.8
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 00:25:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=lVM0I6q+bVAF1uOnJqaKC9H21xEnkyd/R6yp2iiWLPo=;
 b=cfXqtgjAag2rAFyNQ1L1m7C/QiArFQeAV9N/nbjNSN4vUwL5c552xiw1mgyMfB8z99
 QPwXlhB9nueaInfGzEug4qbqDQschhgs5UJ7fUY3XOL3At5SRFecmUTM0mGrZKr9SpAS
 UcsXHuPpJZlzPBatLz3zMcVZxcPTQeudECU0thtwjca8FmpuhcIyXJrhHEgus0c1H/dv
 7thhWnDGwOFP1lbfkq7Q0TVjTPgQge6KxAJfyjaPpmPlDdaXuxiZt2k7VgucpewWVAqx
 ClrjQWidfxFoW3yXoQcJqhe7ENTi1YxbPRH787oq1pKIMa0uPaDJf5c3zvk6m7lT8JRz
 SKMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=lVM0I6q+bVAF1uOnJqaKC9H21xEnkyd/R6yp2iiWLPo=;
 b=iu4KlskhBqFF7FpbWmxWMoL/ENhOxg/mxYrfNtBIwDAx2yl/xFf3YKEJGRBOU58t9o
 hzksK+tev876rXDnRdsuNHN2nQ3Hzg5kbFnpdnlD/eCjBjZJ5vQ38+dI9z0B1nkGZCkc
 izv/ebzXi9DevIUXLmxFv8U44RMf9fc3ag6Ew+3tj+/5F3NhStrIcSrytKkgEUs7UqXV
 OJQHjK1PR12pkMxPpqRQ6xPCFcWMq7vD0sK+Zv+eZMggBZ+swkDrvGFAIyOejHA4zlob
 UPi59tu8PwgyFewAIXkTyDk990ximuNJ9KvrwKT+eJ9BMWLJKknnLwnBIXkbMepXc9yZ
 fqQw==
X-Gm-Message-State: APjAAAWDrrPLwYitTbGdeWLRv4mc5uSCtjD8NYK94RS7zr5vI7bgDSQi
 1flEAe++Uih0L5IUARY/J35kN0NWywyM+8QOpJH8ifb6
X-Google-Smtp-Source: APXvYqwLp2MhsFQsANd6tgbCN5KcLvwnKVI2MAYH65hknlXQC1fBwySAuaIdaiHiYmlhgdGwLYN9edtkWhut12yWIrY=
X-Received: by 2002:a67:ad0c:: with SMTP id t12mr713225vsl.232.1581668741180; 
 Fri, 14 Feb 2020 00:25:41 -0800 (PST)
MIME-Version: 1.0
References: <20200213225054.29483-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200213225054.29483-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Fri, 14 Feb 2020 09:25:30 +0100
Message-ID: <CAEX4t-NJdUyEUkY+FdVvvvZcDohKwwP+b9vB2FxKAqW5A=o8HQ@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/LWIP PATCH] uknetdev: Yield receive
 thread on full stack queue
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sCgpUaGFua3MgZm9yIHRoZSBmaXghCgpSZXZpZXdlZC1ieTogRmVsaXBlIEh1aWNp
IDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgoKT24gVGh1LCBGZWIgMTMsIDIwMjAgYXQgMTE6NTEg
UE0gU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+IHdyb3RlOgo+Cj4gV2hl
biBhIHRvbyBoaWdoIHJhdGUgb2YgbmV0d29yayB0cmFmZmljIGlzIHJlY2VpdmVkLCB0aGUgbmV0
ZGV2J3MgcmVjZWl2ZQo+IHRocmVhZCBtYXkgbmV2ZXIgeWllbGQgYW5kIG9ubHkgZm9yd2FyZHMg
cGFja2V0cyB0byB0aGUgbHdpcCBzdGFjawo+IHRocmVhZC4gVGhpcyB3b3JrcyBhcyBleHBlY3Rl
ZCB1bnRpbCB0aGUgaW5wdXQgcXVldWUgcnVucyBmdWxsLiBJZiB0aGUKPiB0aGUgc3RhY2sgaXMg
bmV2ZXIgYWJsZSB0byBwcm9jZXNzIHRoZW0sIHRoZSBzdGFjayBiZWNvbWVzIGNvbXBsZXRlbHkK
PiB1bnJlc3BvbnNpdmUuIEluc3RlYWQgb2YgZHJvcHBpbmcganVzdCBhIGZldyBwYWNrZXRzIGFs
bCBzdWNjZXNzaXZlCj4gcGFja2V0cyBhcmUgZHJvcHBlZC4KPgo+IFRoaXMgY29tbWl0IGludHJv
ZHVjZXMgYSB0aHJlYWQgeWllbGQgd2hlbiB0aGlzIGNvbmRpdGlvbiBpcyBtZXQgYW5kCj4gZ2l2
ZXMgdGhlIGNoYW5jZSB0byBwcm9jZXNzIHF1ZXVlZCBwYWNrZXRzLgo+Cj4gU2lnbmVkLW9mZi1i
eTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+Cj4gLS0tCj4gIHVrbmV0
ZGV2LmMgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKystLS0KPiAgMSBmaWxlIGNoYW5nZWQs
IDI0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvdWtuZXRk
ZXYuYyBiL3VrbmV0ZGV2LmMKPiBpbmRleCA0N2QyZmIxLi43MDQ3MzUyIDEwMDY0NAo+IC0tLSBh
L3VrbmV0ZGV2LmMKPiArKysgYi91a25ldGRldi5jCj4gQEAgLTE5Myw2ICsxOTMsNyBAQCBzdGF0
aWMgdm9pZCB1a25ldGRldl9pbnB1dChzdHJ1Y3QgdWtfbmV0ZGV2ICpkZXYsCj4gICAgICAgICBz
dHJ1Y3QgbmV0aWYgKm5mID0gKHN0cnVjdCBuZXRpZiAqKSBhcmdwOwo+ICAgICAgICAgc3RydWN0
IHVrX25ldGJ1ZiAqbmI7Cj4gICAgICAgICBzdHJ1Y3QgcGJ1ZiAqcDsKPiArICAgICAgIGVycl90
IGVycjsKPiAgICAgICAgIGludCByZXQ7Cj4KPiAgICAgICAgIFVLX0FTU0VSVChkZXYpOwo+IEBA
IC0yNDMsMTIgKzI0NCwzMiBAQCBzdGF0aWMgdm9pZCB1a25ldGRldl9pbnB1dChzdHJ1Y3QgdWtf
bmV0ZGV2ICpkZXYsCj4gICAgICAgICAgICAgICAgIHAgPSBsd2lwX25ldGJ1Zl90b19wYnVmKG5i
KTsKPiAgICAgICAgICAgICAgICAgcC0+cGF5bG9hZCA9IG5iLT5kYXRhOwo+ICAgICAgICAgICAg
ICAgICBwLT50b3RfbGVuID0gcC0+bGVuID0gbmItPmxlbjsKPiAtICAgICAgICAgICAgICAgaWYg
KHVubGlrZWx5KG5mLT5pbnB1dChwLCBuZikgIT0gRVJSX09LKSkgewo+ICsgICAgICAgICAgICAg
ICBlcnIgPSBuZi0+aW5wdXQocCwgbmYpOwo+ICsgICAgICAgICAgICAgICBpZiAodW5saWtlbHko
ZXJyICE9IEVSUl9PSykpIHsKPiArI2lmIENPTkZJR19MV0lQX1RIUkVBRFMgJiYgQ09ORklHX0xJ
QlVLTkVUREVWX0RJU1BBVENIRVJUSFJFQURTCj4gKyAgICAgICAgICAgICAgICAgICAgICAgLyog
QXQgdGhpcyBwb2ludCBpdCBpcyBwb3NzaWJsZSB0aGF0IGx3SVAncyBpbnB1dCBxdWV1ZQo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAqIGlzIGZ1bGwgb3Igd2UgcnVuIG91dCBvZiBtZW1vcnku
IEluIHRoaXMgY2FzZSwgd2UKPiArICAgICAgICAgICAgICAgICAgICAgICAgKiByZXR1cm4gdG8g
dGhlIHNjaGVkdWxlciBhbmQgaG9wZSB0aGF0IGx3SVAncyBtYWluCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICogdGhyZWFkIGlzIGFibGUgdG8gcHJvY2VzcyBzb21lIHBhY2tldHMuCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICogQWZ0ZXJ3YXJkcywgd2UgdHJ5IGl0IG9uY2UgYWdhaW4u
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICovCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGVyciA9PSBFUlJfTUVNKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
V0lQX0RFQlVHRihORVRJRl9ERUJVRywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgiJXM6ICVjJWMldTogbHdJUCdzIGlucHV0IHF1ZXVlIGZ1bGw6IHlpZWxk
aW5nIGFuZCB0cnlpbmcgb25jZSBhZ2Fpbi4uLlxuIiwKPiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgbmYtPm5hbWVbMF0sIG5mLT5uYW1lWzFd
LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5mLT5udW0p
KTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVrX3NjaGVkX3lpZWxkKCk7Cj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSBuZi0+aW5wdXQocCwgbmYpOwo+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpa2VseShlcnIgPT0gRVJSX09L
KSkKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4g
KyAgICAgICAgICAgICAgICAgICAgICAgfQo+ICsjZW5kaWYKPiArCj4gICAgICAgICAgICAgICAg
ICAgICAgICAgLyoKPiAgICAgICAgICAgICAgICAgICAgICAgICAgKiBEcm9wIHRoZSBwYWNrZXQg
dGhhdCB3ZSBjb3VsZCBub3Qgc2VuZCB0byB0aGUgc3RhY2sKPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgKi8KPiAtICAgICAgICAgICAgICAgICAgICAgICB1a19wcl9lcnIoIiVjJWMldTogRmFp
bGVkIHRvIGZvcndhcmQgcGFja2V0IHRvIGx3SVBcbiIsCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5mLT5uYW1lWzBdLCBuZi0+bmFtZVsxXSwgbmYtPm51bSk7Cj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgdWtfcHJfZXJyKCIlYyVjJXU6IEZhaWxlZCB0byBmb3J3YXJkIHBh
Y2tldCB0byBsd0lQOiAlZFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmYtPm5hbWVbMF0sIG5mLT5uYW1lWzFdLCBuZi0+bnVtLCBlcnIpOwo+ICAgICAgICAgICAgICAg
ICAgICAgICAgIHVrX25ldGJ1Zl9mcmVlX3NpbmdsZShuYik7Cj4gICAgICAgICAgICAgICAgIH0K
PiAgICAgICAgIH0gd2hpbGUgKHVrX25ldGRldl9zdGF0dXNfbW9yZShyZXQpKTsKPiAtLQo+IDIu
MjAuMQo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwo+IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v
bWluaW9zLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWlu
aW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 08:27:05 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 08:27:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2WJV-0002oL-BL; Fri, 14 Feb 2020 08:27:05 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=gxrt=4C=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2WJT-0002oG-Mp
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 08:27:03 +0000
X-Inumbo-ID: c7194794-4f03-11ea-b0fd-bc764e2007e4
Received: from mail-vs1-xe41.google.com (unknown [2607:f8b0:4864:20::e41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c7194794-4f03-11ea-b0fd-bc764e2007e4;
 Fri, 14 Feb 2020 08:27:03 +0000 (UTC)
Received: by mail-vs1-xe41.google.com with SMTP id p14so5402822vsq.6
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 00:27:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=Hk6sgGmXmQgPerbLl/c2u/yirvX8V6l6mXvaF1C34us=;
 b=qMSysAgq2v2A5bYhWENKoQB1I2RDyhtK9D59DBOePg8OVi7/tG4MOmsbkiKEmzma/f
 NMpyWntsyzKr/MEd5YlLtzp5kUUHTP5Z7qzQfDNEjdheQtu8uW5Ceg6c0YaPFCXomLDX
 BWnSeeKLeqi7GvcAU2rkMVBaoeMPMNfM7VBurKwc/AKyL+Akqi2sIChpBYqTNoO+piF/
 12nt1dIdMr4QWg+t38FtriF+GlsApW8SljAWWYIib8ARkxzILEfpCLqpXmZuSb+8GYQa
 hWlCKKCbjcvy3hdLNYCFJrFW7oJAxeo02t2NIQh1cVlca7JWi32Bqyy/3ne3n7rpKKKc
 7odQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=Hk6sgGmXmQgPerbLl/c2u/yirvX8V6l6mXvaF1C34us=;
 b=DpYUlHFTuVLjrzyuG6t/3CTqsarGN+DUMTpBzw9CGVxr7+lm9yl6k1pDlsiN2jkytN
 EifyQPVC1rCYo8j99kEVa8U+82E4GI9Z2mDSsIwkhPAb21ft4UwXdrC+j80Ha57xUS80
 vgrH3+b78n2iDvZnvNVI2M61TGVxL0AsZYWs+sED2qfnQJlYQtbguDFesXTMCrfiHm0j
 cgsXogUy3qkHVWllLWXcIzybQh9T211Ay13TPyYNgOivBVaxPTqEw4v3l1vOJm9SWdIl
 auMiQCOzu5mUF0vN7LRZllIgWq6Omhbm1ZnC0Y4U+J9+JxWL7Ftzr3WBvex8nm+FnbSN
 j6kA==
X-Gm-Message-State: APjAAAUV8kOmdXLwa4NhE54cmzTF3o4qiaxCK7KOfghX4T8Ca4RNqF5U
 Ij7IaaqbQKGAShVzvPNYp8VaKkI2TDOtR3cTtHY=
X-Google-Smtp-Source: APXvYqzKyX1UWRS3Y50Ke2UU9D5iC5iba1kkfWenEIMPnaP9qvwEnSIrOkAkE9P7w7wztln9Dx9/OY7ZWBpqhjdVucQ=
X-Received: by 2002:a67:8c8a:: with SMTP id o132mr724678vsd.111.1581668822984; 
 Fri, 14 Feb 2020 00:27:02 -0800 (PST)
MIME-Version: 1.0
References: <20200214000359.8456-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200214000359.8456-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Fri, 14 Feb 2020 09:26:52 +0100
Message-ID: <CAEX4t-NNBpgXdran6tmUtSH4e8dJzTe_Bf3RFSrUift5D6ux6g@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/NGINX PATCH] Update dependency to
 lib/posix-sysinfo
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sCgpUaGlzIHBhdGNoIGxvb2tzIGdvb2QsIHRoYW5rcy4KClJldmlld2VkLWJ5OiBG
ZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CgpPbiBGcmksIEZlYiAxNCwgMjAy
MCBhdCAxOjA0IEFNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90
ZToKPgo+IFdpdGhpbiB0aGUgVW5pa3JhZnQgcmVwb3NpdG9yeSwgVUtTWVNJTkZPIGdvdCByZW5h
bWVkIHRvIExJQlBPU0lYX1NZU0lORk8uCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVy
IDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KPiAtLS0KPiAgQ29uZmlnLnVrIHwgMiArLQo+ICAx
IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKPgo+IGRpZmYgLS1n
aXQgYS9Db25maWcudWsgYi9Db25maWcudWsKPiBpbmRleCAzYTc4YzAzLi45MjcxNzhkIDEwMDY0
NAo+IC0tLSBhL0NvbmZpZy51awo+ICsrKyBiL0NvbmZpZy51awo+IEBAIC02LDcgKzYsNyBAQCBt
ZW51Y29uZmlnIExJQk5HSU5YCj4gICAgICAgICBzZWxlY3QgTElCUE9TSVhfTElCREwKPiAgICAg
ICAgIHNlbGVjdCBMSUJQT1NJWF9QUk9DRVNTCj4gICAgICAgICBzZWxlY3QgTElCUE9TSVhfVVNF
Ugo+IC0gICAgICAgc2VsZWN0IFVLU1lTSU5GTwo+ICsgICAgICAgc2VsZWN0IExJQlBPU0lYX1NZ
U0lORk8KPiAgICAgICAgIHNlbGVjdCBMSUJVS01NQVAKPiAgICAgICAgIHNlbGVjdCBMSUJVS1RJ
TUUKPiAgICAgICAgIHNlbGVjdCBMSUJORVdMSUJDCj4gLS0KPiAyLjIwLjEKPgo+Cj4gX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBNaW5pb3MtZGV2ZWwg
bWFpbGluZyBsaXN0Cj4gTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbAoKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVs
IG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s
aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 08:52:48 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 08:52:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2WiM-00059m-2y; Fri, 14 Feb 2020 08:52:46 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=mMk8=4C=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2WiK-00059h-FJ
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 08:52:44 +0000
X-Inumbo-ID: 5c95977a-4f07-11ea-bc8e-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 5c95977a-4f07-11ea-bc8e-bc764e2007e4;
 Fri, 14 Feb 2020 08:52:42 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 18F4140C31;
 Fri, 14 Feb 2020 09:52:42 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Fri, 14 Feb 2020 09:52:41 +0100
Message-Id: <20200214085241.2797-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBCLICK] Add compile guards and a few
 suppress flags for a cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0K
IE1ha2VmaWxlLnVrICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKystLS0tLS0tLQog
aW5jbHVkZS9jbGljay9jb25maWctdXNlcmxldmVsLmggfCAgNCArKysrCiAyIGZpbGVzIGNoYW5n
ZWQsIDEyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZp
bGUudWsgYi9NYWtlZmlsZS51awppbmRleCAxZjhkZDg4Li4zYTNmMjI2IDEwMDY0NAotLS0gYS9N
YWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51awpAQCAtMTA5LDEzICsxMDksMTMgQEAgVUtfUFJF
UEFSRSArPSAkKExJQkNMSUNLX0JVSUxEKS8ucHJlcGFyZWQKICMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCiAjIEFwcCBpbmNsdWRlcywgY29tcGlsZSBmbGFncwogIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKLUxJQkNMSUNLX0NJTkNMVURFUyAgICs9IC1JJChMSUJDTElDS19CQVNFKS9pbmNsdWRlICAg
ICAgICBcCi0JCSAgICAgICAgLUkkKExJQkNMSUNLX0VYVFJBQ1RFRCkJICAgICBcCi0JCQktSSQo
TElCQ0xJQ0tfRVhUUkFDVEVEKS9pbmNsdWRlIFwKK0xJQkNMSUNLX0NJTkNMVURFUyAgICs9IC1J
JChMSUJDTElDS19CQVNFKS9pbmNsdWRlICAgICAgICAgXAorCQkgICAgICAgIC1JJChMSUJDTElD
S19FWFRSQUNURUQpCSAgICAgICAgICAgXAorCQkJLUkkKExJQkNMSUNLX0VYVFJBQ1RFRCkvaW5j
bHVkZSAgICBcCiAJCQktSSQoTElCTFdJUF9MV0lQX1NSQ1MpL2luY2x1ZGUvcG9zaXgKLUxJQkNM
SUNLX0NYWElOQ0xVREVTICs9IC1JJChMSUJDTElDS19CQVNFKS9pbmNsdWRlICAgICAgICBcCi0J
CSAgICAgICAgLUkkKExJQkNMSUNLX0VYVFJBQ1RFRCkgICAgICAgICAgIFwKLQkJCS1JJChMSUJD
TElDS19FWFRSQUNURUQpL2luY2x1ZGUgXAorTElCQ0xJQ0tfQ1hYSU5DTFVERVMgKz0gLUkkKExJ
QkNMSUNLX0JBU0UpL2luY2x1ZGUgICAgICAgICBcCisJCSAgICAgICAgLUkkKExJQkNMSUNLX0VY
VFJBQ1RFRCkgICAgICAgICAgICBcCisJCQktSSQoTElCQ0xJQ0tfRVhUUkFDVEVEKS9pbmNsdWRl
ICAgIFwKIAkJCS1JJChMSUJMV0lQX0xXSVBfU1JDUykvaW5jbHVkZS9wb3NpeAogCiAjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIwpAQCAtMTI2LDkgKzEyNiw5IEBAIExJQkNMSUNLX0NYWEZMQUdTLXkg
ICAgICs9IC1ETFdJUF9USU1FVkFMX1BSSVZBVEU9MCAtRENMSUNLX1VTRVJMRVZFTCAtREhBVkVf
SVA2CiBMSUJDTElDS19DWFhGTEFHUyAgICAgICArPSAtZm5vLWV4Y2VwdGlvbnMgLWZuby1ydHRp
IC1zdGQ9YysrMTEKIAogIyBTdXBwcmVzcyBzb21lIHdhcm5pbmdzIHRvIG1ha2UgdGhlIGJ1aWxk
IHByb2Nlc3MgbG9vayBuZWF0ZXIKLUxJQkNMSUNLX1NVUFBSRVNTX0ZMQUdTIDo9IC1Xbm8tc3Ry
aWN0LWFsaWFzaW5nCitMSUJDTElDS19TVVBQUkVTU19GTEFHUyA6PSAtV25vLXN0cmljdC1hbGlh
c2luZyAtV25vLXBhcmVudGhlc2VzIC1Xbm8tcG9pbnRlci1hcml0aCAtV25vLXVudXNlZC1wYXJh
bWV0ZXIgLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUKIExJQkNMSUNLX0NGTEFHUy15ICs9ICQoTElC
Q0xJQ0tfU1VQUFJFU1NfRkxBR1MpCi1MSUJDTElDS19DWFhGTEFHUy15ICs9ICQoTElCQ0xJQ0tf
U1VQUFJFU1NfRkxBR1MpCitMSUJDTElDS19DWFhGTEFHUy15ICs9ICQoTElCQ0xJQ0tfU1VQUFJF
U1NfRkxBR1MpIC1Xbm8tYWxpZ25lZC1uZXcgLVduby1jbGFzcy1tZW1hY2Nlc3MKIAogIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMKICMgVW5pa3JhZnQgPC0+IENsaWNrIGdsdWUgY29kZQpkaWZmIC0t
Z2l0IGEvaW5jbHVkZS9jbGljay9jb25maWctdXNlcmxldmVsLmggYi9pbmNsdWRlL2NsaWNrL2Nv
bmZpZy11c2VybGV2ZWwuaAppbmRleCAyMjU0OGJjLi43YTczYmI5IDEwMDY0NAotLS0gYS9pbmNs
dWRlL2NsaWNrL2NvbmZpZy11c2VybGV2ZWwuaAorKysgYi9pbmNsdWRlL2NsaWNrL2NvbmZpZy11
c2VybGV2ZWwuaApAQCAtMjk2LDggKzI5NiwxMiBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWlu
dHB0cl90OwogCiAvKiBEZWZpbmUgbGlrZWx5IGFuZCB1bmxpa2VseSBtYWNyb3MuICovCiAjaWYg
X19HTlVDX18gPj0gMworI2lmbmRlZiBsaWtlbHkKICMgZGVmaW5lIGxpa2VseSh4KQlfX2J1aWx0
aW5fZXhwZWN0KCEhKHgpLCAxKQorI2VuZGlmCisjaWZuZGVmIHVubGlrZWx5CiAjIGRlZmluZSB1
bmxpa2VseSh4KQlfX2J1aWx0aW5fZXhwZWN0KCEhKHgpLCAwKQorI2VuZGlmCiAjZWxzZQogIyBk
ZWZpbmUgbGlrZWx5KHgpCSh4KQogIyBkZWZpbmUgdW5saWtlbHkoeCkJKHgpCi0tIAoyLjIwLjEK
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 09:08:28 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 09:08:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2WxX-00065R-A1; Fri, 14 Feb 2020 09:08:27 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2WxV-00064h-Ik
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 09:08:25 +0000
X-Inumbo-ID: 8d57a2fc-4f09-11ea-ade5-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8d57a2fc-4f09-11ea-ade5-bc764e2007e4;
 Fri, 14 Feb 2020 09:08:24 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id D64A3FFAC0;
 Fri, 14 Feb 2020 10:08:22 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id SXxMHTVpa5kq; Fri, 14 Feb 2020 10:08:22 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id B0CD4FFAA0
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 10:08:22 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 10:08:22 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200213204031.21584-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <4564383a-504c-ca3a-71cc-23e8ce045f47@neclab.eu>
Date: Fri, 14 Feb 2020 10:08:21 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200213204031.21584-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBNEWLIB PATCH] Add sys/epoll.h
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZSB0byBtZS4uLiBhbm90aGVyIHByb29mIHRoYXQgbmV3bGliIHNlZW1zIHRvIGJl
IGluY29tcGxldGUgZm9yIAptb3N0IGFwcGxpY2F0aW9ucyB0aGF0IHdlIHBvcnQuIDotKQoKVGhh
bmtzLAoKU2ltb24KClJldmlld2VkLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5l
Y2xhYi5ldT4KCk9uIDEzLjAyLjIwIDIxOjQwLCBGZWxpcGUgSHVpY2kgd3JvdGU6Cj4gQWRkIGhl
YWRlciBmaWxlIHN5cy9lcG9sbC5oIGZyb20gbXVzbCwgbmVlZGVkIGJ5IGxpYmdvIGFuZCBsaWtl
bHkKPiBvdGhlciBsaWJzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEZlbGlwZSBIdWljaSA8ZmVsaXBl
Lmh1aWNpQG5lY2xhYi5ldT4KPiAtLS0KPiAgIG11c2wtaW1wb3J0ZWQvaW5jbHVkZS9zeXMvZXBv
bGwuaCB8IDY1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIDEgZmlsZSBjaGFu
Z2VkLCA2NSBpbnNlcnRpb25zKCspCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbXVzbC1pbXBvcnRl
ZC9pbmNsdWRlL3N5cy9lcG9sbC5oCj4gCj4gZGlmZiAtLWdpdCBhL211c2wtaW1wb3J0ZWQvaW5j
bHVkZS9zeXMvZXBvbGwuaCBiL211c2wtaW1wb3J0ZWQvaW5jbHVkZS9zeXMvZXBvbGwuaAo+IG5l
dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYzUwN2EyOQo+IC0tLSAvZGV2L251
bGwKPiArKysgYi9tdXNsLWltcG9ydGVkL2luY2x1ZGUvc3lzL2Vwb2xsLmgKPiBAQCAtMCwwICsx
LDY1IEBACj4gKyNpZm5kZWYJX1NZU19FUE9MTF9ICj4gKyNkZWZpbmUJX1NZU19FUE9MTF9ICj4g
Kwo+ICsjaWZkZWYgX19jcGx1c3BsdXMKPiArZXh0ZXJuICJDIiB7Cj4gKyNlbmRpZgo+ICsKPiAr
I2luY2x1ZGUgPHN0ZGludC5oPgo+ICsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cj4gKwo+ICsjZGVm
aW5lIF9fTkVFRF9zaWdzZXRfdAo+ICsKPiArI2RlZmluZSBFUE9MTF9DTE9FWEVDIE9fQ0xPRVhF
Qwo+ICsjZGVmaW5lIEVQT0xMX05PTkJMT0NLIE9fTk9OQkxPQ0sKPiArCj4gK2VudW0gRVBPTExf
RVZFTlRTIHsgX19FUE9MTF9EVU1NWSB9Owo+ICsjZGVmaW5lIEVQT0xMSU4gMHgwMDEKPiArI2Rl
ZmluZSBFUE9MTFBSSSAweDAwMgo+ICsjZGVmaW5lIEVQT0xMT1VUIDB4MDA0Cj4gKyNkZWZpbmUg
RVBPTExSRE5PUk0gMHgwNDAKPiArI2RlZmluZSBFUE9MTFJEQkFORCAweDA4MAo+ICsjZGVmaW5l
IEVQT0xMV1JOT1JNIDB4MTAwCj4gKyNkZWZpbmUgRVBPTExXUkJBTkQgMHgyMDAKPiArI2RlZmlu
ZSBFUE9MTE1TRyAweDQwMAo+ICsjZGVmaW5lIEVQT0xMRVJSIDB4MDA4Cj4gKyNkZWZpbmUgRVBP
TExIVVAgMHgwMTAKPiArI2RlZmluZSBFUE9MTFJESFVQIDB4MjAwMAo+ICsjZGVmaW5lIEVQT0xM
RVhDTFVTSVZFICgxVTw8MjgpCj4gKyNkZWZpbmUgRVBPTExXQUtFVVAgKDFVPDwyOSkKPiArI2Rl
ZmluZSBFUE9MTE9ORVNIT1QgKDFVPDwzMCkKPiArI2RlZmluZSBFUE9MTEVUICgxVTw8MzEpCj4g
Kwo+ICsjZGVmaW5lIEVQT0xMX0NUTF9BREQgMQo+ICsjZGVmaW5lIEVQT0xMX0NUTF9ERUwgMgo+
ICsjZGVmaW5lIEVQT0xMX0NUTF9NT0QgMwo+ICsKPiArdHlwZWRlZiB1bmlvbiBlcG9sbF9kYXRh
IHsKPiArCXZvaWQgKnB0cjsKPiArCWludCBmZDsKPiArCXVpbnQzMl90IHUzMjsKPiArCXVpbnQ2
NF90IHU2NDsKPiArfSBlcG9sbF9kYXRhX3Q7Cj4gKwo+ICtzdHJ1Y3QgZXBvbGxfZXZlbnQgewo+
ICsJdWludDMyX3QgZXZlbnRzOwo+ICsJZXBvbGxfZGF0YV90IGRhdGE7Cj4gK30KPiArI2lmZGVm
IF9feDg2XzY0X18KPiArX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKQo+ICsjZW5kaWYKPiAr
Owo+ICsKPiArCj4gK2ludCBlcG9sbF9jcmVhdGUoaW50KTsKPiAraW50IGVwb2xsX2NyZWF0ZTEo
aW50KTsKPiAraW50IGVwb2xsX2N0bChpbnQsIGludCwgaW50LCBzdHJ1Y3QgZXBvbGxfZXZlbnQg
Kik7Cj4gK2ludCBlcG9sbF93YWl0KGludCwgc3RydWN0IGVwb2xsX2V2ZW50ICosIGludCwgaW50
KTsKPiAraW50IGVwb2xsX3B3YWl0KGludCwgc3RydWN0IGVwb2xsX2V2ZW50ICosIGludCwgaW50
LCBjb25zdCBzaWdzZXRfdCAqKTsKPiArCj4gKwo+ICsjaWZkZWYgX19jcGx1c3BsdXMKPiArfQo+
ICsjZW5kaWYKPiArCj4gKyNlbmRpZiAvKiBzeXMvZXBvbGwuaCAqLwo+IAoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcg
bGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 09:25:01 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 09:25:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2XDY-0007bv-E3; Fri, 14 Feb 2020 09:25:00 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2XDX-0007bq-6I
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 09:24:59 +0000
X-Inumbo-ID: dda2c2b2-4f0b-11ea-b0fd-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id dda2c2b2-4f0b-11ea-b0fd-bc764e2007e4;
 Fri, 14 Feb 2020 09:24:57 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id B8C5EF2011;
 Fri, 14 Feb 2020 10:24:56 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id AVfiq4hLeoJp; Fri, 14 Feb 2020 10:24:56 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 8DDCAF200F
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 10:24:54 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 10:24:54 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200214085241.2797-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <cf18c81a-57ba-6161-bb27-468991933a16@neclab.eu>
Date: Fri, 14 Feb 2020 10:24:53 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200214085241.2797-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBCLICK] Add compile guards and a few
 suppress flags for a cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZSB0byBtZS4gVGhhbmtzLgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNp
bW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgoKT24gMTQuMDIuMjAgMDk6NTIsIEZlbGlwZSBIdWljaSB3
cm90ZToKPiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIu
ZXU+Cj4gLS0tCj4gICBNYWtlZmlsZS51ayAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysr
KysrLS0tLS0tLS0KPiAgIGluY2x1ZGUvY2xpY2svY29uZmlnLXVzZXJsZXZlbC5oIHwgIDQgKysr
Kwo+ICAgMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+
IAo+IGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCj4gaW5kZXggMWY4ZGQ4
OC4uM2EzZjIyNiAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51awo+ICsrKyBiL01ha2VmaWxlLnVr
Cj4gQEAgLTEwOSwxMyArMTA5LDEzIEBAIFVLX1BSRVBBUkUgKz0gJChMSUJDTElDS19CVUlMRCkv
LnByZXBhcmVkCj4gICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo+ICAgIyBBcHAgaW5jbHVkZXMs
IGNvbXBpbGUgZmxhZ3MKPiAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4gLUxJQkNMSUNLX0NJ
TkNMVURFUyAgICs9IC1JJChMSUJDTElDS19CQVNFKS9pbmNsdWRlICAgICAgICBcCj4gLQkJICAg
ICAgICAtSSQoTElCQ0xJQ0tfRVhUUkFDVEVEKQkgICAgIFwKPiAtCQkJLUkkKExJQkNMSUNLX0VY
VFJBQ1RFRCkvaW5jbHVkZSBcCj4gK0xJQkNMSUNLX0NJTkNMVURFUyAgICs9IC1JJChMSUJDTElD
S19CQVNFKS9pbmNsdWRlICAgICAgICAgXAo+ICsJCSAgICAgICAgLUkkKExJQkNMSUNLX0VYVFJB
Q1RFRCkJICAgICAgICAgICBcCj4gKwkJCS1JJChMSUJDTElDS19FWFRSQUNURUQpL2luY2x1ZGUg
ICAgXAo+ICAgCQkJLUkkKExJQkxXSVBfTFdJUF9TUkNTKS9pbmNsdWRlL3Bvc2l4Cj4gLUxJQkNM
SUNLX0NYWElOQ0xVREVTICs9IC1JJChMSUJDTElDS19CQVNFKS9pbmNsdWRlICAgICAgICBcCj4g
LQkJICAgICAgICAtSSQoTElCQ0xJQ0tfRVhUUkFDVEVEKSAgICAgICAgICAgXAo+IC0JCQktSSQo
TElCQ0xJQ0tfRVhUUkFDVEVEKS9pbmNsdWRlIFwKPiArTElCQ0xJQ0tfQ1hYSU5DTFVERVMgKz0g
LUkkKExJQkNMSUNLX0JBU0UpL2luY2x1ZGUgICAgICAgICBcCj4gKwkJICAgICAgICAtSSQoTElC
Q0xJQ0tfRVhUUkFDVEVEKSAgICAgICAgICAgIFwKPiArCQkJLUkkKExJQkNMSUNLX0VYVFJBQ1RF
RCkvaW5jbHVkZSAgICBcCj4gICAJCQktSSQoTElCTFdJUF9MV0lQX1NSQ1MpL2luY2x1ZGUvcG9z
aXgKPiAgIAo+ICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPiBAQCAtMTI2LDkgKzEyNiw5IEBA
IExJQkNMSUNLX0NYWEZMQUdTLXkgICAgICs9IC1ETFdJUF9USU1FVkFMX1BSSVZBVEU9MCAtRENM
SUNLX1VTRVJMRVZFTCAtREhBVkVfSVA2Cj4gICBMSUJDTElDS19DWFhGTEFHUyAgICAgICArPSAt
Zm5vLWV4Y2VwdGlvbnMgLWZuby1ydHRpIC1zdGQ9YysrMTEKPiAgIAo+ICAgIyBTdXBwcmVzcyBz
b21lIHdhcm5pbmdzIHRvIG1ha2UgdGhlIGJ1aWxkIHByb2Nlc3MgbG9vayBuZWF0ZXIKPiAtTElC
Q0xJQ0tfU1VQUFJFU1NfRkxBR1MgOj0gLVduby1zdHJpY3QtYWxpYXNpbmcKPiArTElCQ0xJQ0tf
U1VQUFJFU1NfRkxBR1MgOj0gLVduby1zdHJpY3QtYWxpYXNpbmcgLVduby1wYXJlbnRoZXNlcyAt
V25vLXBvaW50ZXItYXJpdGggLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tY2FzdC1mdW5jdGlv
bi10eXBlCj4gICBMSUJDTElDS19DRkxBR1MteSArPSAkKExJQkNMSUNLX1NVUFBSRVNTX0ZMQUdT
KQo+IC1MSUJDTElDS19DWFhGTEFHUy15ICs9ICQoTElCQ0xJQ0tfU1VQUFJFU1NfRkxBR1MpCj4g
K0xJQkNMSUNLX0NYWEZMQUdTLXkgKz0gJChMSUJDTElDS19TVVBQUkVTU19GTEFHUykgLVduby1h
bGlnbmVkLW5ldyAtV25vLWNsYXNzLW1lbWFjY2Vzcwo+ICAgCj4gICAjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIwo+ICAgIyBVbmlrcmFmdCA8LT4gQ2xpY2sgZ2x1ZSBjb2RlCj4gZGlmZiAtLWdpdCBh
L2luY2x1ZGUvY2xpY2svY29uZmlnLXVzZXJsZXZlbC5oIGIvaW5jbHVkZS9jbGljay9jb25maWct
dXNlcmxldmVsLmgKPiBpbmRleCAyMjU0OGJjLi43YTczYmI5IDEwMDY0NAo+IC0tLSBhL2luY2x1
ZGUvY2xpY2svY29uZmlnLXVzZXJsZXZlbC5oCj4gKysrIGIvaW5jbHVkZS9jbGljay9jb25maWct
dXNlcmxldmVsLmgKPiBAQCAtMjk2LDggKzI5NiwxMiBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcg
dWludHB0cl90Owo+ICAgCj4gICAvKiBEZWZpbmUgbGlrZWx5IGFuZCB1bmxpa2VseSBtYWNyb3Mu
ICovCj4gICAjaWYgX19HTlVDX18gPj0gMwo+ICsjaWZuZGVmIGxpa2VseQo+ICAgIyBkZWZpbmUg
bGlrZWx5KHgpCV9fYnVpbHRpbl9leHBlY3QoISEoeCksIDEpCj4gKyNlbmRpZgo+ICsjaWZuZGVm
IHVubGlrZWx5Cj4gICAjIGRlZmluZSB1bmxpa2VseSh4KQlfX2J1aWx0aW5fZXhwZWN0KCEhKHgp
LCAwKQo+ICsjZW5kaWYKPiAgICNlbHNlCj4gICAjIGRlZmluZSBsaWtlbHkoeCkJKHgpCj4gICAj
IGRlZmluZSB1bmxpa2VseSh4KQkoeCkKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h
bi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 09:31:01 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 09:31:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2XJM-0008L4-U6; Fri, 14 Feb 2020 09:31:00 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2XJL-0008Kz-CZ
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 09:30:59 +0000
X-Inumbo-ID: b4982726-4f0c-11ea-ade5-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b4982726-4f0c-11ea-ade5-bc764e2007e4;
 Fri, 14 Feb 2020 09:30:58 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 48BE3F2011;
 Fri, 14 Feb 2020 10:30:57 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id RMYMgpq3OYcG; Fri, 14 Feb 2020 10:30:57 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 2185BF200F
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 10:30:55 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 10:30:54 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200214074215.2473-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <253c855c-f271-50d7-0474-4f554fac0c83@neclab.eu>
Date: Fri, 14 Feb 2020 10:30:54 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200214074215.2473-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT v2] lib/ukmmap: Fix return type and
 mark stub parameters as unused for cleaner build
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IGZvciB0aGUgdjIuIFRoZSBgbXJlbWFwYCBsaW5lIGNyb3NzZWQgdGhlIDgw
IGNoYXJhY3RlciAKbGltaXQuIEkgZml4IGl0IHdoaWxlIHVwc3RyZWFtaW5nLgoKVGhhbmtzIQoK
UmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgoKT24g
MTQuMDIuMjAgMDg6NDIsIEZlbGlwZSBIdWljaSB3cm90ZToKPiBGaXggdGhlIHJldHVybiB0eXBl
IG9mIG1yZW1hcCBhbmQgYWRkIF9fdW51c2VkIHRvIGl0cyBwYXJhbXRlcnMgdG8KPiBwcmV2ZW50
IHVudXNlZCBwYXJhbWV0ZXIgd2FybmluZ3MgdG8gYXBwZWFyIGluIHRoZSBidWlsZCAobXJlbWFw
IGlzIGEKPiBzdHViIGZvciBub3cpLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEZlbGlwZSBIdWljaSA8
ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldQo+IC0tLQo+ICAgbGliL3VrbW1hcC9tbWFwLmMgfCA2ICsr
Ky0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK
PiAKPiBkaWZmIC0tZ2l0IGEvbGliL3VrbW1hcC9tbWFwLmMgYi9saWIvdWttbWFwL21tYXAuYwo+
IGluZGV4IDUyYzQ5ZTIuLjk0YTNhYzQgMTAwNjQ0Cj4gLS0tIGEvbGliL3VrbW1hcC9tbWFwLmMK
PiArKysgYi9saWIvdWttbWFwL21tYXAuYwo+IEBAIC0xNjUsOCArMTY1LDggQEAgaW50IG11bm1h
cCh2b2lkICphZGRyLCBzaXplX3QgbGVuKQo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gLXZv
aWQgKm1yZW1hcCh2b2lkICpvbGRfYWRkcmVzcywgc2l6ZV90IG9sZF9zaXplLCBzaXplX3QgbmV3
X3NpemUsCj4gLQkJaW50IGZsYWdzLCAuLi4pCj4gK3ZvaWQgKm1yZW1hcCh2b2lkICpvbGRfYWRk
cmVzcyBfX3VudXNlZCwgc2l6ZV90IG9sZF9zaXplIF9fdW51c2VkLCBzaXplX3QgbmV3X3NpemUg
X191bnVzZWQsCj4gKwkJaW50IGZsYWdzIF9fdW51c2VkLCAuLi4pCj4gICB7Cj4gLQlyZXR1cm4g
LTE7Cj4gKwlyZXR1cm4gTlVMTDsKPiAgIH0KPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp
bG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 10:03:43 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 10:03:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2Xoy-0002VE-Mv; Fri, 14 Feb 2020 10:03:40 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=mMk8=4C=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2Xow-0002V9-Ha
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 10:03:38 +0000
X-Inumbo-ID: 444d8614-4f11-11ea-b9f1-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 444d8614-4f11-11ea-b9f1-12813bfff9fa;
 Fri, 14 Feb 2020 10:03:36 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 6F53D400F1;
 Fri, 14 Feb 2020 11:03:36 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Fri, 14 Feb 2020 11:03:35 +0100
Message-Id: <20200214100335.3037-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBLWIP] Fix compile error when enabling
 Operation mode (Mainloop (non-threaded).
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RW5hYmxpbmcgb3BlcmF0aW5nIG1vZGUgbm9uLXRocmVhZGVkIChha2EgQ09ORklHX0xXSVBfTk9U
SFJFQURTKQpkaXNhYmxlcyB0aGUgc29ja2V0IEFQSSBmcm9tIGx3aXAuIFRoaXMgY29tbWl0IG1h
a2VzIGl0IHNvIHRoYXQgb3VyCnNvY2tldC1yZWxhdGVkIGdsdWUgY29kZSBpc24ndCBhZGRlZCB0
byB0aGUgYnVpbGQgaWYgdGhpcyBvcHRpb24gaXMKZW5hYmxlZC4KClNpZ25lZC1vZmYtYnk6IEZl
bGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KLS0tCiBNYWtlZmlsZS51ayAgICAg
ICAgICB8IDIgKy0KIGluY2x1ZGUvc3lzL3NvY2tldC5oIHwgMyArKysKIDIgZmlsZXMgY2hhbmdl
ZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUu
dWsgYi9NYWtlZmlsZS51awppbmRleCA1NmViY2ZjLi41MDU0ZWY0IDEwMDY0NAotLS0gYS9NYWtl
ZmlsZS51aworKysgYi9NYWtlZmlsZS51awpAQCAtODAsNiArODAsNyBAQCBMSUJMV0lQX1NSQ1Mt
eSArPSAkKExJQkxXSVBfQkFTRSkvcHJvdG8uYwogTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQ
X0JBU0UpL2hvc3QuYwogTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0JBU0UpL3NlcnYuYwog
TElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0JBU0UpL2luZXQuY3x1bmlrcmFmdAorTElCTFdJ
UF9TUkNTLSQoQ09ORklHX0xXSVBfRE5TKSArPSAkKExJQkxXSVBfQkFTRSkvZ2V0bmFtZWluZm8u
Y3x1bmlrcmFmdAogZW5kaWYKIExJQkxXSVBfU1JDUy0kKENPTkZJR19MV0lQX1RIUkVBRFMpICs9
ICQoTElCTFdJUF9CQVNFKS9tdXRleC5jfHVuaWtyYWZ0CiBMSUJMV0lQX1NSQ1MtJChDT05GSUdf
TFdJUF9USFJFQURTKSArPSAkKExJQkxXSVBfQkFTRSkvc2VtYXBob3JlLmN8dW5pa3JhZnQKQEAg
LTkxLDcgKzkyLDYgQEAgTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0JBU0UpL3RpbWUuY3x1
bmlrcmFmdAogTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0JBU0UpL3NlbmRmaWxlLmN8dW5p
a3JhZnQKIExJQkxXSVBfU1JDUy0kKENPTkZJR19MV0lQX1NPQ0tFVCkgKz0gJChMSUJMV0lQX0JB
U0UpL3NvY2tldHMuY3x1bmlrcmFmdAogTElCTFdJUF9TT0NLRVRTX0ZMQUdTLXkgKz0gLVduby1j
YXN0LWZ1bmN0aW9uLXR5cGUKLUxJQkxXSVBfU1JDUy0kKENPTkZJR19MV0lQX0ROUykgKz0gJChM
SUJMV0lQX0JBU0UpL2dldG5hbWVpbmZvLmN8dW5pa3JhZnQKIExJQkxXSVBfU1JDUy15ICs9ICQo
TElCTFdJUF9FWFRSQUNURUQpL2NvcmUvaW5pdC5jCiBMSUJMV0lQX1NSQ1MteSArPSAkKExJQkxX
SVBfRVhUUkFDVEVEKS9jb3JlL2RlZi5jCiBMSUJMV0lQX1NSQ1MteSArPSAkKExJQkxXSVBfRVhU
UkFDVEVEKS9jb3JlL2luZXRfY2hrc3VtLmMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzL3NvY2tl
dC5oIGIvaW5jbHVkZS9zeXMvc29ja2V0LmgKaW5kZXggODAwN2NiOC4uZDUyY2Y5NCAxMDA2NDQK
LS0tIGEvaW5jbHVkZS9zeXMvc29ja2V0LmgKKysrIGIvaW5jbHVkZS9zeXMvc29ja2V0LmgKQEAg
LTM4LDYgKzM4LDggQEAgZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAogI2luY2x1ZGUgPHVrL2NvbmZp
Zy5oPgorCisjaWYgQ09ORklHX0xXSVBfU09DS0VUUwogI2lmIENPTkZJR19IQVZFX0xJQkMKICNp
bmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHBvbGwuaD4KQEAgLTEwNCw1ICsxMDYsNiBAQCBp
bnQgc29ja2V0cGFpcihpbnQgZG9tYWluLCBpbnQgdHlwZSwgaW50IHByb3RvY29sLCBpbnQgc3Zb
Ml0pOwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfTFdJ
UF9TT0NLRVRTICovCiAKICNlbmRpZiAvKiBfVUtfTFdJUF9TT0NLRVRfSF8gKi8KLS0gCjIuMjAu
MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlv
cy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 10:30:17 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 10:30:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2YEh-0004pE-UC; Fri, 14 Feb 2020 10:30:15 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=mMk8=4C=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2YEg-0004p9-Md
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 10:30:14 +0000
X-Inumbo-ID: fc3479f6-4f14-11ea-b9fe-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id fc3479f6-4f14-11ea-b9fe-12813bfff9fa;
 Fri, 14 Feb 2020 10:30:13 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 6D33B400F1;
 Fri, 14 Feb 2020 11:30:13 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Fri, 14 Feb 2020 11:30:12 +0100
Message-Id: <20200214103012.28316-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBPYTHON3] Add suppress flag for clean
 build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0K
IE1ha2VmaWxlLnVrIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl
bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awppbmRleCBh
NzI1YTk2Li5lZmQ1OGExIDEwMDY0NAotLS0gYS9NYWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51
awpAQCAtNzYsNyArNzYsNyBAQCBMSUJQWVRIT04zX1NVUFBSRVNTX0ZMQUdTICs9IC1Xbm8tdW51
c2VkLXBhcmFtZXRlciBcCiAJLVduby11bnVzZWQtdmFyaWFibGUgLVduby11bnVzZWQtdmFsdWUg
LVduby11bnVzZWQtZnVuY3Rpb24gXAogCS1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMg
LVduby1pbXBsaWNpdC1mYWxsdGhyb3VnaCBcCiAJLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUgLVdu
by1zdHJpbmdvcC10cnVuY2F0aW9uIFwKLQktV25vLWNoYXItc3Vic2NyaXB0cyAtV25vLXNpZ24t
Y29tcGFyZQorCS1Xbm8tY2hhci1zdWJzY3JpcHRzIC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tbWF5
YmUtdW5pbml0aWFsaXplZAogTElCUFlUSE9OM19TVVBSRVNTX0NGTEFHUy15ICAgKz0gJChMSUJQ
WVRIT04zX1NVUFBSRVNTX0ZMQUdTKSAtV25vLXBvaW50ZXItdG8taW50LWNhc3QgLVduby1pbnQt
dG8tcG9pbnRlci1jYXN0CiBMSUJQWVRIT04zX1NVUFJFU1NfQ1hYRkxBR1MteSArPSAkKExJQlBZ
VEhPTjNfU1VQUFJFU1NfRkxBR1MpCiAKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlu
aW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 10:33:18 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 10:33:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2YHe-0004tJ-6Q; Fri, 14 Feb 2020 10:33:18 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2YHd-0004tE-2u
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 10:33:17 +0000
X-Inumbo-ID: 687ea050-4f15-11ea-b9fe-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 687ea050-4f15-11ea-b9fe-12813bfff9fa;
 Fri, 14 Feb 2020 10:33:16 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id A8A74F2011;
 Fri, 14 Feb 2020 11:33:14 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id HcKsrDm_B5uf; Fri, 14 Feb 2020 11:33:14 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 80234F200F
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 11:33:12 +0100 (CET)
Received: from [10.1.99.231] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 11:33:12 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200214103012.28316-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <3a72c22d-71cc-c60d-2ecd-2ec8554d862c@neclab.eu>
Date: Fri, 14 Feb 2020 11:33:11 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200214103012.28316-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBPYTHON3] Add suppress flag for
 clean build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZmluZS4gVGhhbmtzIQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgoKT24gMTQuMDIuMjAgMTE6MzAsIEZlbGlwZSBIdWljaSB3cm90ZToK
PiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Cj4g
LS0tCj4gICBNYWtlZmlsZS51ayB8IDIgKy0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv
bigrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2Vm
aWxlLnVrCj4gaW5kZXggYTcyNWE5Ni4uZWZkNThhMSAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51
awo+ICsrKyBiL01ha2VmaWxlLnVrCj4gQEAgLTc2LDcgKzc2LDcgQEAgTElCUFlUSE9OM19TVVBQ
UkVTU19GTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgXAo+ICAgCS1Xbm8tdW51c2VkLXZh
cmlhYmxlIC1Xbm8tdW51c2VkLXZhbHVlIC1Xbm8tdW51c2VkLWZ1bmN0aW9uIFwKPiAgIAktV25v
LW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8taW1wbGljaXQtZmFsbHRocm91Z2ggXAo+
ICAgCS1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlIC1Xbm8tc3RyaW5nb3AtdHJ1bmNhdGlvbiBcCj4g
LQktV25vLWNoYXItc3Vic2NyaXB0cyAtV25vLXNpZ24tY29tcGFyZQo+ICsJLVduby1jaGFyLXN1
YnNjcmlwdHMgLVduby1zaWduLWNvbXBhcmUgLVduby1tYXliZS11bmluaXRpYWxpemVkCj4gICBM
SUJQWVRIT04zX1NVUFJFU1NfQ0ZMQUdTLXkgICArPSAkKExJQlBZVEhPTjNfU1VQUFJFU1NfRkxB
R1MpIC1Xbm8tcG9pbnRlci10by1pbnQtY2FzdCAtV25vLWludC10by1wb2ludGVyLWNhc3QKPiAg
IExJQlBZVEhPTjNfU1VQUkVTU19DWFhGTEFHUy15ICs9ICQoTElCUFlUSE9OM19TVVBQUkVTU19G
TEFHUykKPiAgIAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21p
bmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 10:58:51 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 10:58:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2YgL-0006xk-FV; Fri, 14 Feb 2020 10:58:49 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2YgK-0006xf-6k
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 10:58:48 +0000
X-Inumbo-ID: f7e0e91d-4f18-11ea-ba0a-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id f7e0e91d-4f18-11ea-ba0a-12813bfff9fa;
 Fri, 14 Feb 2020 10:58:45 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id BC8F4FFAA0;
 Fri, 14 Feb 2020 11:58:44 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id C0YTNyv_bP1b; Fri, 14 Feb 2020 11:58:44 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 940F6FF986
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 11:58:44 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 11:58:44 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 14 Feb 2020 11:58:41 +0100
Message-ID: <20200214105841.25819-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] include: Define __SZ_MAX to the
 same value as __SSZ_MAX
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QmVmb3JlIHRoaXMgY29tbWl0LCBHQ0Mgd2FybmVkIHRoYXQgX19TWl9NQVggd2FzIGV4Y2VlZGlu
ZyB0aGUgbWF4aW11bQpvYmplY3Qgc2l6ZS4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIg
PHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgotLS0KIGluY2x1ZGUvdWsvYXJjaC9saW1pdHMuaCB8
IDI1ICsrKysrKysrKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRp
b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWsvYXJjaC9saW1p
dHMuaCBiL2luY2x1ZGUvdWsvYXJjaC9saW1pdHMuaAppbmRleCA5ZmEzYzY5ZC4uYzRkNGJjMjIg
MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWsvYXJjaC9saW1pdHMuaAorKysgYi9pbmNsdWRlL3VrL2Fy
Y2gvbGltaXRzLmgKQEAgLTQ3LDEwICs0NywxMiBAQAogCiAjaWYgKGRlZmluZWQgX19DX0lTXzgp
CiAjZGVmaW5lIF9fQ19NQVggICAgICAgICAgICAgKDEyNykKKyNkZWZpbmUgX19DX01BWF9VICAg
ICAgICAgICgxMjdVKQogI2RlZmluZSBfX0NfTUlOICAgICgtX19DX01BWCAtIDEpCiAjZGVmaW5l
IF9fVUNfTUFYICAgICAgICAgICAoMjU1VSkKICNkZWZpbmUgX19VQ19NSU4gICAgICAgICAgICAg
KDBVKQogI2RlZmluZQlfX1M4X01BWCAgICAgICAgICBfX0NfTUFYCisjZGVmaW5lCV9fUzhfTUFY
X1UgICAgICBfX0NfTUFYX1UKICNkZWZpbmUgX19TOF9NSU4gICAgICAgICAgX19DX01JTgogI2Rl
ZmluZQlfX1U4X01BWCAgICAgICAgIF9fVUNfTUFYCiAjZGVmaW5lIF9fVThfTUlOICAgICAgICAg
X19VQ19NSU4KQEAgLTYxLDE2ICs2MywxOSBAQAogCiAjaWYgKGRlZmluZWQgX19TX0lTXzgpCiAj
ZGVmaW5lIF9fU19NQVggICAgICAgICAgICAgKDEyNykKKyNkZWZpbmUgX19TX01BWF9VICAgICAg
ICAgICgxMjdVKQogI2RlZmluZSBfX1NfTUlOICAgICgtX19TX01BWCAtIDEpCiAjZGVmaW5lIF9f
VVNfTUFYICAgICAgICAgICAoMjU1VSkKICNkZWZpbmUgX19VU19NSU4gICAgICAgICAgICAgKDBV
KQogI3VuZGVmIF9fU19JU184CiAjZWxpZiAoZGVmaW5lZCBfX1NfSVNfMTYpCiAjZGVmaW5lIF9f
U19NQVggICAgICAgICAgICgzMjc2NykKKyNkZWZpbmUgX19TX01BWF9VICAgICAgICAoMzI3NjdV
KQogI2RlZmluZSBfX1NfTUlOICAgICgtX19TX01BWCAtIDEpCiAjZGVmaW5lIF9fVVNfTUFYICAg
ICAgICAgKDY1NTM1VSkKICNkZWZpbmUgX19VU19NSU4gICAgICAgICAgICAgKDBVKQogI2RlZmlu
ZQlfX1MxNl9NQVggICAgICAgICBfX1NfTUFYCisjZGVmaW5lCV9fUzE2X01BWF9VICAgICBfX1Nf
TUFYX1UKICNkZWZpbmUgX19TMTZfTUlOICAgICAgICAgX19TX01JTgogI2RlZmluZQlfX1UxNl9N
QVggICAgICAgIF9fVVNfTUFYCiAjZGVmaW5lIF9fVTE2X01JTiAgICAgICAgX19VU19NSU4KQEAg
LTgwLDExICs4NSwxMyBAQAogCiAjaWYgKGRlZmluZWQgX19JX0lTXzE2KQogI2RlZmluZSBfX0lf
TUFYICAgICAgICAgICAoMzI3NjcpCisjZGVmaW5lIF9fSV9NQVhfVSAgICAgICAgKDMyNzY3VSkK
ICNkZWZpbmUgX19JX01JTiAgICAoLV9fSV9NQVggLSAxKQogI2RlZmluZSBfX1VJX01BWCAgICAg
ICAgICg2NTUzNVUpCiAjZGVmaW5lIF9fVUlfTUlOICAgICAgICAgICAgICgwVSkKICNpZm5kZWYg
X19IQVZFX0lOVDE2X18KICNkZWZpbmUJX19TMTZfTUFYICAgICAgICAgX19JX01BWAorI2RlZmlu
ZQlfX1MxNl9NQVhfVSAgICAgX19JX01BWF9VCiAjZGVmaW5lIF9fUzE2X01JTiAgICAgICAgIF9f
SV9NSU4KICNkZWZpbmUJX19VMTZfTUFYICAgICAgICBfX1VJX01BWAogI2RlZmluZSBfX1UxNl9N
SU4gICAgICAgIF9fVUlfTUlOCkBAIC05MywxMSArMTAwLDEzIEBACiAjdW5kZWYgX19JX0lTXzE2
CiAjZWxpZiAoZGVmaW5lZCBfX0lfSVNfMzIpCiAjZGVmaW5lIF9fSV9NQVggICAgICAoMjE0NzQ4
MzY0NykKKyNkZWZpbmUgX19JX01BWF9VICAgKDIxNDc0ODM2NDdVKQogI2RlZmluZSBfX0lfTUlO
ICAgICgtX19JX01BWCAtIDEpCiAjZGVmaW5lIF9fVUlfTUFYICAgICg0Mjk0OTY3Mjk1VSkKICNk
ZWZpbmUgX19VSV9NSU4gICAgICAgICAgICAgKDBVKQogI2lmbmRlZiBfX0hBVkVfSU5UMzJfXwog
I2RlZmluZQlfX1MzMl9NQVggICAgICAgICBfX0lfTUFYCisjZGVmaW5lCV9fUzMyX01BWF9VICAg
ICBfX0lfTUFYX1UKICNkZWZpbmUgX19TMzJfTUlOICAgICAgICAgX19JX01JTgogI2RlZmluZQlf
X1UzMl9NQVggICAgICAgIF9fVUlfTUFYCiAjZGVmaW5lIF9fVTMyX01JTiAgICAgICAgX19VSV9N
SU4KQEAgLTEwNiwxMSArMTE1LDEzIEBACiAjdW5kZWYgX19JX0lTXzMyCiAjZWxpZiAoZGVmaW5l
ZCBfX0lfSVNfNjQpCiAjZGVmaW5lIF9fSV9NQVggICAgICAoOTIyMzM3MjAzNjg1NDc3NTgwNykK
KyNkZWZpbmUgX19JX01BWF9VICAgKDkyMjMzNzIwMzY4NTQ3NzU4MDdVKQogI2RlZmluZSBfX0lf
TUlOICAgICAgICAgICAgICgtX19JX01BWCAtIDEpCiAjZGVmaW5lIF9fVUlfTUFYICAgKDE4NDQ2
NzQ0MDczNzA5NTUxNjE1VSkKICNkZWZpbmUgX19VSV9NSU4gICAgICAgICAgICAgICAgICAgICAg
KDBVKQogI2lmbmRlZiBfX0hBVkVfSU5UNjRfXwogI2RlZmluZQlfX1M2NF9NQVggICAgICAgICAg
ICAgICAgICBfX0lfTUFYCisjZGVmaW5lCV9fUzY0X01BWF9VICAgICAgICAgICAgICBfX0lfTUFY
X1UKICNkZWZpbmUgX19TNjRfTUlOICAgICAgICAgICAgICAgICAgX19JX01JTgogI2RlZmluZQlf
X1U2NF9NQVggICAgICAgICAgICAgICAgIF9fVUlfTUFYCiAjZGVmaW5lIF9fVTY0X01JTiAgICAg
ICAgICAgICAgICAgX19VSV9NSU4KQEAgLTEyMSwxMSArMTMyLDEzIEBACiAKICNpZiAoZGVmaW5l
ZCBfX0xfSVNfMzIpCiAjZGVmaW5lIF9fTF9NQVggICAgICgyMTQ3NDgzNjQ3TCkKKyNkZWZpbmUg
X19MX01BWF9VICAoMjE0NzQ4MzY0N1VMKQogI2RlZmluZSBfX0xfTUlOICAgKC1fX0xfTUFYIC0g
MUwpCiAjZGVmaW5lIF9fVUxfTUFYICAgKDQyOTQ5NjcyOTVVTCkKICNkZWZpbmUgX19VTF9NSU4g
ICAgICAgICAgICAoMFVMKQogI2lmbmRlZiBfX0hBVkVfSU5UMzJfXwogI2RlZmluZQlfX1MzMl9N
QVggICAgICAgICBfX0xfTUFYCisjZGVmaW5lCV9fUzMyX01BWF9VICAgICBfX0xfTUFYX1UKICNk
ZWZpbmUgX19TMzJfTUlOICAgICAgICAgX19MX01JTgogI2RlZmluZQlfX1UzMl9NQVggICAgICAg
IF9fVUxfTUFYCiAjZGVmaW5lIF9fVTMyX01JTiAgICAgICAgX19VTF9NSU4KQEAgLTEzNCwxMSAr
MTQ3LDEzIEBACiAjdW5kZWYgX19MX0lTXzMyCiAjZWxpZiAoZGVmaW5lZCBfX0xfSVNfNjQpCiAj
ZGVmaW5lIF9fTF9NQVggICAgICAoOTIyMzM3MjAzNjg1NDc3NTgwN0wpCisjZGVmaW5lIF9fTF9N
QVhfVSAgICg5MjIzMzcyMDM2ODU0Nzc1ODA3VUwpCiAjZGVmaW5lIF9fTF9NSU4gICAgICAgICAg
ICAgKC1fX0xfTUFYIC0gMUwpCiAjZGVmaW5lIF9fVUxfTUFYICAgKDE4NDQ2NzQ0MDczNzA5NTUx
NjE1VUwpCiAjZGVmaW5lIF9fVUxfTUlOICAgICAgICAgICAgICAgICAgICAgICgwVUwpCiAjaWZu
ZGVmIF9fSEFWRV9JTlQ2NF9fCiAjZGVmaW5lCV9fUzY0X01BWCAgICAgICAgICAgICAgICAgICBf
X0xfTUFYCisjZGVmaW5lCV9fUzY0X01BWF9VICAgICAgICAgICAgICAgX19MX01BWF9VCiAjZGVm
aW5lIF9fUzY0X01JTiAgICAgICAgICAgICAgICAgICBfX0xfTUlOCiAjZGVmaW5lCV9fVTY0X01B
WCAgICAgICAgICAgICAgICAgIF9fVUxfTUFYCiAjZGVmaW5lIF9fVTY0X01JTiAgICAgICAgICAg
ICAgICAgIF9fVUxfTUlOCkBAIC0xNDksMTEgKzE2NCwxMyBAQAogCiAjaWYgKGRlZmluZWQgX19M
TF9JU18zMikKICNkZWZpbmUgX19MTF9NQVggICAgICgyMTQ3NDgzNjQ3TEwpCisjZGVmaW5lIF9f
TExfTUFYX1UgICgyMTQ3NDgzNjQ3VUxMKQogI2RlZmluZSBfX0xMX01JTiAgKC1fX0xMX01BWCAt
IDFMTCkKICNkZWZpbmUgX19VTExfTUFYICAgKDQyOTQ5NjcyOTVVTEwpCiAjZGVmaW5lIF9fVUxM
X01JTiAgICAgICAgICAgICgwVUxMKQogI2lmbmRlZiBfX0hBVkVfSU5UMzJfXwogI2RlZmluZQlf
X1MzMl9NQVggICAgICAgICBfX0xMX01BWAorI2RlZmluZQlfX1MzMl9NQVhfVSAgICAgX19MTF9N
QVhfVQogI2RlZmluZSBfX1MzMl9NSU4gICAgICAgICBfX0xMX01JTgogI2RlZmluZQlfX1UzMl9N
QVggICAgICAgIF9fVUxMX01BWAogI2RlZmluZSBfX1UzMl9NSU4gICAgICAgIF9fVUxMX01JTgpA
QCAtMTYyLDExICsxNzksMTMgQEAKICN1bmRlZiBfX0xMX0lTXzMyCiAjZWxpZiAoZGVmaW5lZCBf
X0xMX0lTXzY0KQogI2RlZmluZSBfX0xMX01BWCAgICAoOTIyMzM3MjAzNjg1NDc3NTgwN0xMKQor
I2RlZmluZSBfX0xMX01BWF9VICg5MjIzMzcyMDM2ODU0Nzc1ODA3VUxMKQogI2RlZmluZSBfX0xM
X01JTiAgICAgICAgICAoLV9fTExfTUFYIC0gMUxMKQogI2RlZmluZSBfX1VMTF9NQVggKDE4NDQ2
NzQ0MDczNzA5NTUxNjE1VUxMKQogI2RlZmluZSBfX1VMTF9NSU4gICAgICAgICAgICAgICAgICAg
ICgwVUxMKQogI2lmbmRlZiBfX0hBVkVfSU5UNjRfXwogI2RlZmluZQlfX1M2NF9NQVggICAgICAg
ICAgICAgICAgICBfX0xMX01BWAorI2RlZmluZQlfX1M2NF9NQVhfVSAgICAgICAgICAgICAgX19M
TF9NQVhfVQogI2RlZmluZSBfX1M2NF9NSU4gICAgICAgICAgICAgICAgICBfX0xMX01JTgogI2Rl
ZmluZQlfX1U2NF9NQVggICAgICAgICAgICAgICAgIF9fVUxMX01BWAogI2RlZmluZSBfX1U2NF9N
SU4gICAgICAgICAgICAgICAgIF9fVUxMX01JTgpAQCAtMTc4LDcgKzE5Nyw3IEBACiAjaWYgKGRl
ZmluZWQgX19QVFJfSVNfMTYpCiAjZGVmaW5lIF9fUFRSX01BWCBfX1UxNl9NQVgKICNkZWZpbmUg
X19QVFJfTUlOIF9fVTE2X01JTgotI2RlZmluZSBfX1NaX01BWCAgX19VMTZfTUFYCisjZGVmaW5l
IF9fU1pfTUFYICBfX1MxNl9NQVhfVQogI2RlZmluZSBfX1NaX01JTiAgX19VMTZfTUlOCiAjZGVm
aW5lIF9fU1NaX01BWCBfX1MxNl9NQVgKICNkZWZpbmUgX19TU1pfTUlOIF9fUzE2X01JTgpAQCAt
MTg4LDcgKzIwNyw3IEBACiAjZWxpZiAoZGVmaW5lZCBfX1BUUl9JU18zMikKICNkZWZpbmUgX19Q
VFJfTUFYIF9fVTMyX01BWAogI2RlZmluZSBfX1BUUl9NSU4gX19VMzJfTUlOCi0jZGVmaW5lIF9f
U1pfTUFYICBfX1UzMl9NQVgKKyNkZWZpbmUgX19TWl9NQVggIF9fUzMyX01BWF9VCiAjZGVmaW5l
IF9fU1pfTUlOICBfX1UzMl9NSU4KICNkZWZpbmUgX19TU1pfTUFYIF9fUzMyX01BWAogI2RlZmlu
ZSBfX1NTWl9NSU4gX19TMzJfTUlOCkBAIC0xOTgsNyArMjE3LDcgQEAKICNlbGlmIChkZWZpbmVk
IF9fUFRSX0lTXzY0KQogI2RlZmluZSBfX1BUUl9NQVggX19VNjRfTUFYCiAjZGVmaW5lIF9fUFRS
X01JTiBfX1U2NF9NSU4KLSNkZWZpbmUgX19TWl9NQVggIF9fVTY0X01BWAorI2RlZmluZSBfX1Na
X01BWCAgX19TNjRfTUFYX1UKICNkZWZpbmUgX19TWl9NSU4gIF9fVTY0X01JTgogI2RlZmluZSBf
X1NTWl9NQVggX19TNjRfTUFYCiAjZGVmaW5lIF9fU1NaX01JTiBfX1M2NF9NSU4KLS0gCjIuMjAu
MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlv
cy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 11:03:17 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 11:03:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2Ykf-0007nr-59; Fri, 14 Feb 2020 11:03:17 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=gxrt=4C=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2Ykd-0007nm-6v
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 11:03:15 +0000
X-Inumbo-ID: 989aa19a-4f19-11ea-bc8e-bc764e2007e4
Received: from mail-vk1-xa42.google.com (unknown [2607:f8b0:4864:20::a42])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 989aa19a-4f19-11ea-bc8e-bc764e2007e4;
 Fri, 14 Feb 2020 11:03:14 +0000 (UTC)
Received: by mail-vk1-xa42.google.com with SMTP id w67so2474284vkf.1
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 03:03:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=jE+2V3XLkIDlfZe3Tb6d5kOZv5shK/9UaM7eEPKB8kY=;
 b=gGJ/CnmXMql5wsVS5K5BJL+onDUR7RK84UKkBh2zDM8raTkm0GWXEMX5g1QRFsxFB3
 h0pexrRXn2wjlyxGjUMy4bVui6cGjkG6frenxM75ShGp5RXslJcDpoHiovPjD+QhTeCY
 v6Y/0ihxuJEN/q1zIzRK/4TibeYexqVyYuHlFc+Dy0otItIjAnUdb1NZfg9TgNj4iGuS
 0+TP4yOA543ml515GVAk5kZUNPsIKr99xonFeE5a1mxgJsNchStJs5a0zLuO0RBZUkoy
 tT9cQDDInt0NYZpCX0oNIut+p5EjxHMqxnPD/HE7C6Ax1hOnbG7Uirbw1HGlPCGTzGCr
 jIIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=jE+2V3XLkIDlfZe3Tb6d5kOZv5shK/9UaM7eEPKB8kY=;
 b=ATQSbkj08AXCBNJXhYNu/rBBgwUosHfSnEKO1WO+H9mjWf3yTerMx6qgGCTsGeTL73
 13YGxi3gjiJooR3Ghw8QHeSwjg5kH4zaN4HPVgxOxAULanFyqkEKlfpjkLLze5OAOgzv
 2YjLXIzjrb1ykoK96VoQVHo6UrhT8Eifc8+yO1pPZro1tUzjXk/rdBos4EdBvbIaCxDp
 09F2Nc9GWIBjjsCBUty0OetjZiQsyY8LN5pj3225ZexxDaROKoVwu3ByIEWidUIjK+Dr
 kCSkiayK2fDeyv53HVLOXbaeT512ZCvwqskrwGtWV/msB4aODi1/WdgIYirBhNCvGFz5
 waOg==
X-Gm-Message-State: APjAAAXbQCWycQJQ4m26F8vQRRJsBQ5MhVybungrgLd9jza11gLIeQew
 B7laTpyxzsIGZAVEcBFp2Uq8rdB/5BTUb7n/Sna13SoX
X-Google-Smtp-Source: APXvYqz+Ex+hbtTzyiR0BZftveRRRFaVFgIE+lxM00oJhbAJN8ePBDWuMRDuxyJk4ByyDwIkXySTr7R4s3dqFoiVfhE=
X-Received: by 2002:a1f:328a:: with SMTP id y132mr1337847vky.60.1581678193629; 
 Fri, 14 Feb 2020 03:03:13 -0800 (PST)
MIME-Version: 1.0
References: <20200214105841.25819-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200214105841.25819-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Fri, 14 Feb 2020 12:03:02 +0100
Message-ID: <CAEX4t-Mv506vxQzWnxAc1DKAkPdFaRQ50J3s8_hRw47pd6NAYw@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] include: Define __SZ_MAX to the
 same value as __SSZ_MAX
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KClJldmlld2VkLWJ5OiBGZWxpcGUgSHVpY2kg
PGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CgpPbiBGcmksIEZlYiAxNCwgMjAyMCBhdCAxMTo1OCBB
TSBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4gd3JvdGU6Cj4KPiBCZWZv
cmUgdGhpcyBjb21taXQsIEdDQyB3YXJuZWQgdGhhdCBfX1NaX01BWCB3YXMgZXhjZWVkaW5nIHRo
ZSBtYXhpbXVtCj4gb2JqZWN0IHNpemUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVy
IDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KPiAtLS0KPiAgaW5jbHVkZS91ay9hcmNoL2xpbWl0
cy5oIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKy0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMjIg
aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3Vr
L2FyY2gvbGltaXRzLmggYi9pbmNsdWRlL3VrL2FyY2gvbGltaXRzLmgKPiBpbmRleCA5ZmEzYzY5
ZC4uYzRkNGJjMjIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91ay9hcmNoL2xpbWl0cy5oCj4gKysr
IGIvaW5jbHVkZS91ay9hcmNoL2xpbWl0cy5oCj4gQEAgLTQ3LDEwICs0NywxMiBAQAo+Cj4gICNp
ZiAoZGVmaW5lZCBfX0NfSVNfOCkKPiAgI2RlZmluZSBfX0NfTUFYICAgICAgICAgICAgICgxMjcp
Cj4gKyNkZWZpbmUgX19DX01BWF9VICAgICAgICAgICgxMjdVKQo+ICAjZGVmaW5lIF9fQ19NSU4g
ICAgKC1fX0NfTUFYIC0gMSkKPiAgI2RlZmluZSBfX1VDX01BWCAgICAgICAgICAgKDI1NVUpCj4g
ICNkZWZpbmUgX19VQ19NSU4gICAgICAgICAgICAgKDBVKQo+ICAjZGVmaW5lICAgICAgICBfX1M4
X01BWCAgICAgICAgICBfX0NfTUFYCj4gKyNkZWZpbmUgICAgICAgIF9fUzhfTUFYX1UgICAgICBf
X0NfTUFYX1UKPiAgI2RlZmluZSBfX1M4X01JTiAgICAgICAgICBfX0NfTUlOCj4gICNkZWZpbmUg
ICAgICAgIF9fVThfTUFYICAgICAgICAgX19VQ19NQVgKPiAgI2RlZmluZSBfX1U4X01JTiAgICAg
ICAgIF9fVUNfTUlOCj4gQEAgLTYxLDE2ICs2MywxOSBAQAo+Cj4gICNpZiAoZGVmaW5lZCBfX1Nf
SVNfOCkKPiAgI2RlZmluZSBfX1NfTUFYICAgICAgICAgICAgICgxMjcpCj4gKyNkZWZpbmUgX19T
X01BWF9VICAgICAgICAgICgxMjdVKQo+ICAjZGVmaW5lIF9fU19NSU4gICAgKC1fX1NfTUFYIC0g
MSkKPiAgI2RlZmluZSBfX1VTX01BWCAgICAgICAgICAgKDI1NVUpCj4gICNkZWZpbmUgX19VU19N
SU4gICAgICAgICAgICAgKDBVKQo+ICAjdW5kZWYgX19TX0lTXzgKPiAgI2VsaWYgKGRlZmluZWQg
X19TX0lTXzE2KQo+ICAjZGVmaW5lIF9fU19NQVggICAgICAgICAgICgzMjc2NykKPiArI2RlZmlu
ZSBfX1NfTUFYX1UgICAgICAgICgzMjc2N1UpCj4gICNkZWZpbmUgX19TX01JTiAgICAoLV9fU19N
QVggLSAxKQo+ICAjZGVmaW5lIF9fVVNfTUFYICAgICAgICAgKDY1NTM1VSkKPiAgI2RlZmluZSBf
X1VTX01JTiAgICAgICAgICAgICAoMFUpCj4gICNkZWZpbmUgICAgICAgIF9fUzE2X01BWCAgICAg
ICAgIF9fU19NQVgKPiArI2RlZmluZSAgICAgICAgX19TMTZfTUFYX1UgICAgIF9fU19NQVhfVQo+
ICAjZGVmaW5lIF9fUzE2X01JTiAgICAgICAgIF9fU19NSU4KPiAgI2RlZmluZSAgICAgICAgX19V
MTZfTUFYICAgICAgICBfX1VTX01BWAo+ICAjZGVmaW5lIF9fVTE2X01JTiAgICAgICAgX19VU19N
SU4KPiBAQCAtODAsMTEgKzg1LDEzIEBACj4KPiAgI2lmIChkZWZpbmVkIF9fSV9JU18xNikKPiAg
I2RlZmluZSBfX0lfTUFYICAgICAgICAgICAoMzI3NjcpCj4gKyNkZWZpbmUgX19JX01BWF9VICAg
ICAgICAoMzI3NjdVKQo+ICAjZGVmaW5lIF9fSV9NSU4gICAgKC1fX0lfTUFYIC0gMSkKPiAgI2Rl
ZmluZSBfX1VJX01BWCAgICAgICAgICg2NTUzNVUpCj4gICNkZWZpbmUgX19VSV9NSU4gICAgICAg
ICAgICAgKDBVKQo+ICAjaWZuZGVmIF9fSEFWRV9JTlQxNl9fCj4gICNkZWZpbmUgICAgICAgIF9f
UzE2X01BWCAgICAgICAgIF9fSV9NQVgKPiArI2RlZmluZSAgICAgICAgX19TMTZfTUFYX1UgICAg
IF9fSV9NQVhfVQo+ICAjZGVmaW5lIF9fUzE2X01JTiAgICAgICAgIF9fSV9NSU4KPiAgI2RlZmlu
ZSAgICAgICAgX19VMTZfTUFYICAgICAgICBfX1VJX01BWAo+ICAjZGVmaW5lIF9fVTE2X01JTiAg
ICAgICAgX19VSV9NSU4KPiBAQCAtOTMsMTEgKzEwMCwxMyBAQAo+ICAjdW5kZWYgX19JX0lTXzE2
Cj4gICNlbGlmIChkZWZpbmVkIF9fSV9JU18zMikKPiAgI2RlZmluZSBfX0lfTUFYICAgICAgKDIx
NDc0ODM2NDcpCj4gKyNkZWZpbmUgX19JX01BWF9VICAgKDIxNDc0ODM2NDdVKQo+ICAjZGVmaW5l
IF9fSV9NSU4gICAgKC1fX0lfTUFYIC0gMSkKPiAgI2RlZmluZSBfX1VJX01BWCAgICAoNDI5NDk2
NzI5NVUpCj4gICNkZWZpbmUgX19VSV9NSU4gICAgICAgICAgICAgKDBVKQo+ICAjaWZuZGVmIF9f
SEFWRV9JTlQzMl9fCj4gICNkZWZpbmUgICAgICAgIF9fUzMyX01BWCAgICAgICAgIF9fSV9NQVgK
PiArI2RlZmluZSAgICAgICAgX19TMzJfTUFYX1UgICAgIF9fSV9NQVhfVQo+ICAjZGVmaW5lIF9f
UzMyX01JTiAgICAgICAgIF9fSV9NSU4KPiAgI2RlZmluZSAgICAgICAgX19VMzJfTUFYICAgICAg
ICBfX1VJX01BWAo+ICAjZGVmaW5lIF9fVTMyX01JTiAgICAgICAgX19VSV9NSU4KPiBAQCAtMTA2
LDExICsxMTUsMTMgQEAKPiAgI3VuZGVmIF9fSV9JU18zMgo+ICAjZWxpZiAoZGVmaW5lZCBfX0lf
SVNfNjQpCj4gICNkZWZpbmUgX19JX01BWCAgICAgICg5MjIzMzcyMDM2ODU0Nzc1ODA3KQo+ICsj
ZGVmaW5lIF9fSV9NQVhfVSAgICg5MjIzMzcyMDM2ODU0Nzc1ODA3VSkKPiAgI2RlZmluZSBfX0lf
TUlOICAgICAgICAgICAgICgtX19JX01BWCAtIDEpCj4gICNkZWZpbmUgX19VSV9NQVggICAoMTg0
NDY3NDQwNzM3MDk1NTE2MTVVKQo+ICAjZGVmaW5lIF9fVUlfTUlOICAgICAgICAgICAgICAgICAg
ICAgICgwVSkKPiAgI2lmbmRlZiBfX0hBVkVfSU5UNjRfXwo+ICAjZGVmaW5lICAgICAgICBfX1M2
NF9NQVggICAgICAgICAgICAgICAgICBfX0lfTUFYCj4gKyNkZWZpbmUgICAgICAgIF9fUzY0X01B
WF9VICAgICAgICAgICAgICBfX0lfTUFYX1UKPiAgI2RlZmluZSBfX1M2NF9NSU4gICAgICAgICAg
ICAgICAgICBfX0lfTUlOCj4gICNkZWZpbmUgICAgICAgIF9fVTY0X01BWCAgICAgICAgICAgICAg
ICAgX19VSV9NQVgKPiAgI2RlZmluZSBfX1U2NF9NSU4gICAgICAgICAgICAgICAgIF9fVUlfTUlO
Cj4gQEAgLTEyMSwxMSArMTMyLDEzIEBACj4KPiAgI2lmIChkZWZpbmVkIF9fTF9JU18zMikKPiAg
I2RlZmluZSBfX0xfTUFYICAgICAoMjE0NzQ4MzY0N0wpCj4gKyNkZWZpbmUgX19MX01BWF9VICAo
MjE0NzQ4MzY0N1VMKQo+ICAjZGVmaW5lIF9fTF9NSU4gICAoLV9fTF9NQVggLSAxTCkKPiAgI2Rl
ZmluZSBfX1VMX01BWCAgICg0Mjk0OTY3Mjk1VUwpCj4gICNkZWZpbmUgX19VTF9NSU4gICAgICAg
ICAgICAoMFVMKQo+ICAjaWZuZGVmIF9fSEFWRV9JTlQzMl9fCj4gICNkZWZpbmUgICAgICAgIF9f
UzMyX01BWCAgICAgICAgIF9fTF9NQVgKPiArI2RlZmluZSAgICAgICAgX19TMzJfTUFYX1UgICAg
IF9fTF9NQVhfVQo+ICAjZGVmaW5lIF9fUzMyX01JTiAgICAgICAgIF9fTF9NSU4KPiAgI2RlZmlu
ZSAgICAgICAgX19VMzJfTUFYICAgICAgICBfX1VMX01BWAo+ICAjZGVmaW5lIF9fVTMyX01JTiAg
ICAgICAgX19VTF9NSU4KPiBAQCAtMTM0LDExICsxNDcsMTMgQEAKPiAgI3VuZGVmIF9fTF9JU18z
Mgo+ICAjZWxpZiAoZGVmaW5lZCBfX0xfSVNfNjQpCj4gICNkZWZpbmUgX19MX01BWCAgICAgICg5
MjIzMzcyMDM2ODU0Nzc1ODA3TCkKPiArI2RlZmluZSBfX0xfTUFYX1UgICAoOTIyMzM3MjAzNjg1
NDc3NTgwN1VMKQo+ICAjZGVmaW5lIF9fTF9NSU4gICAgICAgICAgICAgKC1fX0xfTUFYIC0gMUwp
Cj4gICNkZWZpbmUgX19VTF9NQVggICAoMTg0NDY3NDQwNzM3MDk1NTE2MTVVTCkKPiAgI2RlZmlu
ZSBfX1VMX01JTiAgICAgICAgICAgICAgICAgICAgICAoMFVMKQo+ICAjaWZuZGVmIF9fSEFWRV9J
TlQ2NF9fCj4gICNkZWZpbmUgICAgICAgIF9fUzY0X01BWCAgICAgICAgICAgICAgICAgICBfX0xf
TUFYCj4gKyNkZWZpbmUgICAgICAgIF9fUzY0X01BWF9VICAgICAgICAgICAgICAgX19MX01BWF9V
Cj4gICNkZWZpbmUgX19TNjRfTUlOICAgICAgICAgICAgICAgICAgIF9fTF9NSU4KPiAgI2RlZmlu
ZSAgICAgICAgX19VNjRfTUFYICAgICAgICAgICAgICAgICAgX19VTF9NQVgKPiAgI2RlZmluZSBf
X1U2NF9NSU4gICAgICAgICAgICAgICAgICBfX1VMX01JTgo+IEBAIC0xNDksMTEgKzE2NCwxMyBA
QAo+Cj4gICNpZiAoZGVmaW5lZCBfX0xMX0lTXzMyKQo+ICAjZGVmaW5lIF9fTExfTUFYICAgICAo
MjE0NzQ4MzY0N0xMKQo+ICsjZGVmaW5lIF9fTExfTUFYX1UgICgyMTQ3NDgzNjQ3VUxMKQo+ICAj
ZGVmaW5lIF9fTExfTUlOICAoLV9fTExfTUFYIC0gMUxMKQo+ICAjZGVmaW5lIF9fVUxMX01BWCAg
ICg0Mjk0OTY3Mjk1VUxMKQo+ICAjZGVmaW5lIF9fVUxMX01JTiAgICAgICAgICAgICgwVUxMKQo+
ICAjaWZuZGVmIF9fSEFWRV9JTlQzMl9fCj4gICNkZWZpbmUgICAgICAgIF9fUzMyX01BWCAgICAg
ICAgIF9fTExfTUFYCj4gKyNkZWZpbmUgICAgICAgIF9fUzMyX01BWF9VICAgICBfX0xMX01BWF9V
Cj4gICNkZWZpbmUgX19TMzJfTUlOICAgICAgICAgX19MTF9NSU4KPiAgI2RlZmluZSAgICAgICAg
X19VMzJfTUFYICAgICAgICBfX1VMTF9NQVgKPiAgI2RlZmluZSBfX1UzMl9NSU4gICAgICAgIF9f
VUxMX01JTgo+IEBAIC0xNjIsMTEgKzE3OSwxMyBAQAo+ICAjdW5kZWYgX19MTF9JU18zMgo+ICAj
ZWxpZiAoZGVmaW5lZCBfX0xMX0lTXzY0KQo+ICAjZGVmaW5lIF9fTExfTUFYICAgICg5MjIzMzcy
MDM2ODU0Nzc1ODA3TEwpCj4gKyNkZWZpbmUgX19MTF9NQVhfVSAoOTIyMzM3MjAzNjg1NDc3NTgw
N1VMTCkKPiAgI2RlZmluZSBfX0xMX01JTiAgICAgICAgICAoLV9fTExfTUFYIC0gMUxMKQo+ICAj
ZGVmaW5lIF9fVUxMX01BWCAoMTg0NDY3NDQwNzM3MDk1NTE2MTVVTEwpCj4gICNkZWZpbmUgX19V
TExfTUlOICAgICAgICAgICAgICAgICAgICAoMFVMTCkKPiAgI2lmbmRlZiBfX0hBVkVfSU5UNjRf
Xwo+ICAjZGVmaW5lICAgICAgICBfX1M2NF9NQVggICAgICAgICAgICAgICAgICBfX0xMX01BWAo+
ICsjZGVmaW5lICAgICAgICBfX1M2NF9NQVhfVSAgICAgICAgICAgICAgX19MTF9NQVhfVQo+ICAj
ZGVmaW5lIF9fUzY0X01JTiAgICAgICAgICAgICAgICAgIF9fTExfTUlOCj4gICNkZWZpbmUgICAg
ICAgIF9fVTY0X01BWCAgICAgICAgICAgICAgICAgX19VTExfTUFYCj4gICNkZWZpbmUgX19VNjRf
TUlOICAgICAgICAgICAgICAgICBfX1VMTF9NSU4KPiBAQCAtMTc4LDcgKzE5Nyw3IEBACj4gICNp
ZiAoZGVmaW5lZCBfX1BUUl9JU18xNikKPiAgI2RlZmluZSBfX1BUUl9NQVggX19VMTZfTUFYCj4g
ICNkZWZpbmUgX19QVFJfTUlOIF9fVTE2X01JTgo+IC0jZGVmaW5lIF9fU1pfTUFYICBfX1UxNl9N
QVgKPiArI2RlZmluZSBfX1NaX01BWCAgX19TMTZfTUFYX1UKPiAgI2RlZmluZSBfX1NaX01JTiAg
X19VMTZfTUlOCj4gICNkZWZpbmUgX19TU1pfTUFYIF9fUzE2X01BWAo+ICAjZGVmaW5lIF9fU1Na
X01JTiBfX1MxNl9NSU4KPiBAQCAtMTg4LDcgKzIwNyw3IEBACj4gICNlbGlmIChkZWZpbmVkIF9f
UFRSX0lTXzMyKQo+ICAjZGVmaW5lIF9fUFRSX01BWCBfX1UzMl9NQVgKPiAgI2RlZmluZSBfX1BU
Ul9NSU4gX19VMzJfTUlOCj4gLSNkZWZpbmUgX19TWl9NQVggIF9fVTMyX01BWAo+ICsjZGVmaW5l
IF9fU1pfTUFYICBfX1MzMl9NQVhfVQo+ICAjZGVmaW5lIF9fU1pfTUlOICBfX1UzMl9NSU4KPiAg
I2RlZmluZSBfX1NTWl9NQVggX19TMzJfTUFYCj4gICNkZWZpbmUgX19TU1pfTUlOIF9fUzMyX01J
Tgo+IEBAIC0xOTgsNyArMjE3LDcgQEAKPiAgI2VsaWYgKGRlZmluZWQgX19QVFJfSVNfNjQpCj4g
ICNkZWZpbmUgX19QVFJfTUFYIF9fVTY0X01BWAo+ICAjZGVmaW5lIF9fUFRSX01JTiBfX1U2NF9N
SU4KPiAtI2RlZmluZSBfX1NaX01BWCAgX19VNjRfTUFYCj4gKyNkZWZpbmUgX19TWl9NQVggIF9f
UzY0X01BWF9VCj4gICNkZWZpbmUgX19TWl9NSU4gIF9fVTY0X01JTgo+ICAjZGVmaW5lIF9fU1Na
X01BWCBfX1M2NF9NQVgKPiAgI2RlZmluZSBfX1NTWl9NSU4gX19TNjRfTUlOCj4gLS0KPiAyLjIw
LjEKPgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
PiBNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21p
bmlvcy1kZXZlbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlv
cy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 12:02:58 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 12:02:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2ZgN-0004kq-Ji; Fri, 14 Feb 2020 12:02:55 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2ZgM-0004kg-2W
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 12:02:54 +0000
X-Inumbo-ID: ed15096a-4f21-11ea-aa99-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id ed15096a-4f21-11ea-aa99-bc764e2007e4;
 Fri, 14 Feb 2020 12:02:52 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 976C0F200F;
 Fri, 14 Feb 2020 13:02:51 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id cqObK2Awf6KF; Fri, 14 Feb 2020 13:02:51 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 702E5F2011;
 Fri, 14 Feb 2020 13:02:47 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 13:02:47 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 14 Feb 2020 13:02:45 +0100
Message-ID: <20200214120245.26468-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/sysinfo: Avoid
 stringop-overflow warning
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Gaulthier Gain <gaulthier.gain@uliege.be>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QXZvaWRzIHRoZSBHQ0Mgd2FybmluZzogc3RyaW5nb3Atb3ZlcmZsb3cuIFRoZSBsZW5ndGggYXJn
dW1lbnQgdG8KYHN0cm5jcHkoKWAgaW4gYGdldGhvc3RuYW1lKClgIGRlcGVuZCBvbiBhIGNvbXB1
dGVkIHZhbHVlIGRvbmUgYnkKYHN0cmxlbigpYC4gV2UgZml4IHRoaXMgYnkgdGFraW5nIHRoZSBn
aXZlbiBgbGVuYCBhcmd1bWVudCB0byB0aGUKYHN0cm5jcHkoKWAgb3BlcmF0aW9uIGluc3RlYWQu
CgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4K
LS0tCiBsaWIvcG9zaXgtc3lzaW5mby9zeXNpbmZvLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg
MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWIvcG9zaXgtc3lz
aW5mby9zeXNpbmZvLmMgYi9saWIvcG9zaXgtc3lzaW5mby9zeXNpbmZvLmMKaW5kZXggMmJmMmMx
MmEuLjdiY2ZjOGIzIDEwMDY0NAotLS0gYS9saWIvcG9zaXgtc3lzaW5mby9zeXNpbmZvLmMKKysr
IGIvbGliL3Bvc2l4LXN5c2luZm8vc3lzaW5mby5jCkBAIC0xNDEsNyArMTQxLDcgQEAgaW50IGdl
dGhvc3RuYW1lKGNoYXIgKm5hbWUsIHNpemVfdCBsZW4pCiAJCXJldHVybiAtMTsKIAl9CiAKLQlz
dHJuY3B5KG5hbWUsIGJ1Zi5ub2RlbmFtZSwgbm9kZV9sZW4pOworCXN0cm5jcHkobmFtZSwgYnVm
Lm5vZGVuYW1lLCBsZW4pOwogCiAJcmV0dXJuIDA7CiB9Ci0tIAoyLjIwLjEKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGlu
ZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl
bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 12:18:28 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 12:18:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2ZvP-0005ro-4c; Fri, 14 Feb 2020 12:18:27 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=gxrt=4C=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2ZvN-0005rh-Vn
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 12:18:26 +0000
X-Inumbo-ID: 19556982-4f24-11ea-aa99-bc764e2007e4
Received: from mail-vk1-xa44.google.com (unknown [2607:f8b0:4864:20::a44])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 19556982-4f24-11ea-aa99-bc764e2007e4;
 Fri, 14 Feb 2020 12:18:25 +0000 (UTC)
Received: by mail-vk1-xa44.google.com with SMTP id p191so2514845vkf.8
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 04:18:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=imupf8wMlW8LPY18TSbD/3O4aixlrXawl/zxrKwZAQ4=;
 b=PflyaCJKCUKd4A4rKnakmTwxDfzFqNYvU7pzzpwBLp5ELdbtlq7HFNMp14sEf/WOtj
 +xGDvfc8cbGAtGyeYMyjoVz55towtsXaNwwROsKHCDiXh2vt2a2w6VziSJ0+HMgchA+K
 kB+xiBKsUEIqyE4BZJpHRvxQYh6ZgRH70B1LGuCciAGwLC4KqgIuwYtHr0B0l2Ofqb3j
 ad/KOgAb7rZKnaAPAbpETmiaoYM4Qyv183Lsvxk940FOi+Oqysx56bE7DERLAfCmoW6N
 mJcRjpWmNRhV8l0Ua/tls9wjboJjaWqVqe5DRnUva+FLsZZZK+X+MzBX9X5EevmNcgcU
 oYaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=imupf8wMlW8LPY18TSbD/3O4aixlrXawl/zxrKwZAQ4=;
 b=oHZV1gdJq1iLzIo+qQgBg3liCq71Fjq5tgJzX6fhx/ua6m1NtjTsaxOHOUlaOUwfqD
 ZlMTG83B9iEgcT/jzqs7JTndKaGlrG2LrP1chpJdGGcGV/wjG7Mz9yVx8vkkiIaMFTdk
 2pWrP8FSDxeqDTuhLwBlF9+np06Yvq92hsb/zkrtRHl1bkSJ12YG+st54LWBftiP/AB9
 JMltXYVF4tFeeB7ozlJOhmHhdGIyI5txMd5HgfcOVIxSyrkqwUvKmVtdzVsBPVtwE4zp
 Md4TYUv9d80YnyRDOlQK+YKaSzbCHILMSZE3nsN/a5viVNkuNJ6ymOVYsUX3a+4EgZv8
 ZjjQ==
X-Gm-Message-State: APjAAAXsIm50zGuljRa8xwVb7WQdaDSieu26ljujWVrOa8U2AAcfUMMm
 BW/C+Yqi32kbyotPB3Ayum1zgTBrcmMTJs7XPmw=
X-Google-Smtp-Source: APXvYqwSOLlxadQKT2UNk7ooa2TnoAm/v9Bl+UwYqL+sKijXJpPCxNMDnhkDyP4bBaOSZ8xsOYnvT0GpdMBY2srKXpU=
X-Received: by 2002:a1f:29c4:: with SMTP id p187mr1344974vkp.99.1581682704704; 
 Fri, 14 Feb 2020 04:18:24 -0800 (PST)
MIME-Version: 1.0
References: <20200214120245.26468-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200214120245.26468-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Fri, 14 Feb 2020 13:18:13 +0100
Message-ID: <CAEX4t-Pcg2h-gbepKXq58isVHwTtJnUhJ7tgEqJCOyfU9wEpHQ@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/sysinfo: Avoid
 stringop-overflow warning
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Gaulthier Gain <gaulthier.gain@uliege.be>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KClJldmlld2VkLWJ5OiBGZWxpcGUgSHVpY2kg
PGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CgpPbiBGcmksIEZlYiAxNCwgMjAyMCBhdCAxOjAzIFBN
IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90ZToKPgo+IEF2b2lk
cyB0aGUgR0NDIHdhcm5pbmc6IHN0cmluZ29wLW92ZXJmbG93LiBUaGUgbGVuZ3RoIGFyZ3VtZW50
IHRvCj4gYHN0cm5jcHkoKWAgaW4gYGdldGhvc3RuYW1lKClgIGRlcGVuZCBvbiBhIGNvbXB1dGVk
IHZhbHVlIGRvbmUgYnkKPiBgc3RybGVuKClgLiBXZSBmaXggdGhpcyBieSB0YWtpbmcgdGhlIGdp
dmVuIGBsZW5gIGFyZ3VtZW50IHRvIHRoZQo+IGBzdHJuY3B5KClgIG9wZXJhdGlvbiBpbnN0ZWFk
Lgo+Cj4gU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIu
ZXU+Cj4gLS0tCj4gIGxpYi9wb3NpeC1zeXNpbmZvL3N5c2luZm8uYyB8IDIgKy0KPiAgMSBmaWxl
IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCj4KPiBkaWZmIC0tZ2l0IGEv
bGliL3Bvc2l4LXN5c2luZm8vc3lzaW5mby5jIGIvbGliL3Bvc2l4LXN5c2luZm8vc3lzaW5mby5j
Cj4gaW5kZXggMmJmMmMxMmEuLjdiY2ZjOGIzIDEwMDY0NAo+IC0tLSBhL2xpYi9wb3NpeC1zeXNp
bmZvL3N5c2luZm8uYwo+ICsrKyBiL2xpYi9wb3NpeC1zeXNpbmZvL3N5c2luZm8uYwo+IEBAIC0x
NDEsNyArMTQxLDcgQEAgaW50IGdldGhvc3RuYW1lKGNoYXIgKm5hbWUsIHNpemVfdCBsZW4pCj4g
ICAgICAgICAgICAgICAgIHJldHVybiAtMTsKPiAgICAgICAgIH0KPgo+IC0gICAgICAgc3RybmNw
eShuYW1lLCBidWYubm9kZW5hbWUsIG5vZGVfbGVuKTsKPiArICAgICAgIHN0cm5jcHkobmFtZSwg
YnVmLm5vZGVuYW1lLCBsZW4pOwo+Cj4gICAgICAgICByZXR1cm4gMDsKPiAgfQo+IC0tCj4gMi4y
MC4xCj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cj4gTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9t
aW5pb3MtZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5p
b3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 12:33:16 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 12:33:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2a9j-0007SN-C8; Fri, 14 Feb 2020 12:33:15 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=mMk8=4C=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2a9i-0007SI-Pn
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 12:33:14 +0000
X-Inumbo-ID: 2a34b3e6-4f26-11ea-ba3f-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 2a34b3e6-4f26-11ea-ba3f-12813bfff9fa;
 Fri, 14 Feb 2020 12:33:12 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id EF3414103E;
 Fri, 14 Feb 2020 13:33:11 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Fri, 14 Feb 2020 13:33:11 +0100
Message-Id: <20200214123311.25330-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBRUBY] Fix double definition warning and
 add suppress flag for cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1PgotLS0K
IE1ha2VmaWxlLnVrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAu
Li4tZml4LWRvdWJsZS1kZWZpbml0aW9uLXdhcm5pbmctZGlyLWMucGF0Y2ggfCAyNCArKysrKysr
KysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDEgZGVsZXRp
b24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAwMDItZml4LWRvdWJsZS1kZWZpbml0
aW9uLXdhcm5pbmctZGlyLWMucGF0Y2gKCmRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2Vm
aWxlLnVrCmluZGV4IDhkNjBiY2UuLjZkNzA2YjMgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLnVrCisr
KyBiL01ha2VmaWxlLnVrCkBAIC02Niw3ICs2Niw3IEBAIExJQlJVQllfU1VQUFJFU1NfRkxBR1Mt
eSA9IC1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlIC1Xbm8tbG9uZy1sb25nIFwKIAktV25vLW1pc3Np
bmctZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8tb3Zlcmxlbmd0aC1zdHJpbmdzIFwKIAktV25vLXBh
Y2tlZC1iaXRmaWVsZC1jb21wYXQgLVduby10YXV0b2xvZ2ljYWwtY29tcGFyZSBcCiAJLVduby11
bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhbHVlIC1Xbm8taW1wbGljaXQtZmFsbHRocm91
Z2ggXAotCS1Xbm8tdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUKKwktV25vLXVudXNlZC1idXQtc2V0
LXZhcmlhYmxlIC1Xbm8tdHlwZS1saW1pdHMKIExJQlJVQllfU1VQUFJFU1NfRkxBR1MtJChjYWxs
IGdjY192ZXJzaW9uX2dlLDksMCkgKz0gLVduby1hZGRyZXNzLW9mLXBhY2tlZC1tZW1iZXIKIExJ
QlJVQllfU1VQUkVTU19DRkxBR1MteSAgICs9ICQoTElCUlVCWV9TVVBQUkVTU19GTEFHUy15KSBc
CiAJLVduby1wb2ludGVyLXRvLWludC1jYXN0IC1Xbm8taW50LXRvLXBvaW50ZXItY2FzdApkaWZm
IC0tZ2l0IGEvcGF0Y2hlcy8wMDAyLWZpeC1kb3VibGUtZGVmaW5pdGlvbi13YXJuaW5nLWRpci1j
LnBhdGNoIGIvcGF0Y2hlcy8wMDAyLWZpeC1kb3VibGUtZGVmaW5pdGlvbi13YXJuaW5nLWRpci1j
LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjZTY5MWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9wYXRjaGVzLzAwMDItZml4LWRvdWJsZS1kZWZpbml0aW9uLXdhcm5pbmct
ZGlyLWMucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorLS0tIGEvZGlyLmMub3JpZwkyMDIwLTAyLTE0
IDEzOjE3OjA1LjE0NjkxMzI1OSArMDEwMAorKysrIGIvZGlyLmMJMjAyMC0wMi0xNCAxMzoxNzox
Ny4wMTA3NzY0NDYgKzAxMDAKK0BAIC0yNCwxMCArMjQsNiBAQAorICNpbmNsdWRlIDx1bmlzdGQu
aD4KKyAjZW5kaWYKKyAKKy0jaWZuZGVmIE9fQ0xPRVhFQworLSMgIGRlZmluZSBPX0NMT0VYRUMg
MAorLSNlbmRpZgorLQorICNpZm5kZWYgVVNFX09QRU5ESVJfQVQKKyAjIGlmIGRlZmluZWQoSEFW
RV9GRE9QRU5ESVIpICYmIGRlZmluZWQoSEFWRV9ESVJGRCkgJiYgXAorICAgICBkZWZpbmVkKEhB
VkVfT1BFTkFUKSAmJiBkZWZpbmVkKEhBVkVfRlNUQVRBVCkKK0BAIC00Myw2ICszOSwxMCBAQAor
ICMgZGVmaW5lIEFUX0ZEQ1dEIC0xCisgI2VuZGlmCisgCisrI2lmbmRlZiBPX0NMT0VYRUMKKysj
ICBkZWZpbmUgT19DTE9FWEVDIDAKKysjZW5kaWYKKysKKyAjdW5kZWYgSEFWRV9ESVJFTlRfTkFN
TEVOCisgI2lmIGRlZmluZWQgSEFWRV9ESVJFTlRfSCAmJiAhZGVmaW5lZCBfV0lOMzIKKyAjIGlu
Y2x1ZGUgPGRpcmVudC5oPgotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls
bWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 12:36:59 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 12:36:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2aDL-00088X-DG; Fri, 14 Feb 2020 12:36:59 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2aDK-00088M-4Y
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 12:36:58 +0000
X-Inumbo-ID: af719754-4f26-11ea-ade5-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id af719754-4f26-11ea-ade5-bc764e2007e4;
 Fri, 14 Feb 2020 12:36:56 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 9C681103BA3;
 Fri, 14 Feb 2020 13:36:55 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id u2ImwImTAlXL; Fri, 14 Feb 2020 13:36:55 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 7BB40103A0E
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 13:36:55 +0100 (CET)
Received: from localhost (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 13:36:55 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Fri, 14 Feb 2020 13:36:51 +0100
Message-ID: <20200214123651.28731-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/vfscore: Use mount definitions
 from <sys/mount.h>
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

R2l2ZSBtb3VudCBjb25zdGFudC9mbGFncyBkZWZpbml0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBs
aWJDIGhpZ2hlcgpwcmlvcml0eSB0aGFuIHRoZSBpbnRlcm5hbCBvbmVzLiBUaGlzIGlzIGRvbmUg
dG8gcHJvdmlkZSBhIGNvcnJlY3QKbGliQyBBUEkgaW1wbGVtZW50YXRpb24gd2l0aCB2ZnNjb3Jl
LgoKU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+
Ci0tLQogbGliL25vbGliYy9pbmNsdWRlL3N5cy9tb3VudC5oICAgICAgfCAgOCArKystLS0KIGxp
Yi92ZnNjb3JlL2luY2x1ZGUvdmZzY29yZS9tb3VudC5oIHwgNDEgKysrKysrKysrKysrKysrKysr
KysrKysrKystLS0KIGxpYi92ZnNjb3JlL21vdW50LmMgICAgICAgICAgICAgICAgIHwgIDMgKyst
CiAzIGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvbGliL25vbGliYy9pbmNsdWRlL3N5cy9tb3VudC5oIGIvbGliL25vbGliYy9pbmNs
dWRlL3N5cy9tb3VudC5oCmluZGV4IGQ3YTk1YjM4Li5jOGIxZmUyNyAxMDA2NDQKLS0tIGEvbGli
L25vbGliYy9pbmNsdWRlL3N5cy9tb3VudC5oCisrKyBiL2xpYi9ub2xpYmMvaW5jbHVkZS9zeXMv
bW91bnQuaApAQCAtOTIsMTAgKzkyLDEwIEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBNU19NR0Nf
VkFMIDB4YzBlZDAwMDAKICNkZWZpbmUgTVNfTUdDX01TSyAweGZmZmYwMDAwCiAKLSNkZWZpbmUg
TU5UX0ZPUkNFICAgICAgIDEKLSNkZWZpbmUgTU5UX0RFVEFDSCAgICAgIDIKLSNkZWZpbmUgTU5U
X0VYUElSRSAgICAgIDQKLSNkZWZpbmUgVU1PVU5UX05PRk9MTE9XIDgKKyNkZWZpbmUgTU5UX0ZP
UkNFICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgTU5UX0RFVEFDSCAgICAgIDB4MDAwMDAwMDIK
KyNkZWZpbmUgTU5UX0VYUElSRSAgICAgIDB4MDAwMDAwMDQKKyNkZWZpbmUgVU1PVU5UX05PRk9M
TE9XIDB4MDAwMDAwMDgKIAogaW50IG1vdW50KGNvbnN0IGNoYXIgKmRldiwgY29uc3QgY2hhciAq
ZGlyLCBjb25zdCBjaGFyICpmc25hbWUsCiAJICB1bnNpZ25lZCBsb25nIGZsYWdzLCBjb25zdCB2
b2lkICpkYXRhKTsKZGlmZiAtLWdpdCBhL2xpYi92ZnNjb3JlL2luY2x1ZGUvdmZzY29yZS9tb3Vu
dC5oIGIvbGliL3Zmc2NvcmUvaW5jbHVkZS92ZnNjb3JlL21vdW50LmgKaW5kZXggYjg1ZTIxMWUu
LjExZmEwOThiIDEwMDY0NAotLS0gYS9saWIvdmZzY29yZS9pbmNsdWRlL3Zmc2NvcmUvbW91bnQu
aAorKysgYi9saWIvdmZzY29yZS9pbmNsdWRlL3Zmc2NvcmUvbW91bnQuaApAQCAtMjksMTEgKzI5
LDEyIEBACiAgKglAKCMpbW91bnQuaAk4LjIxIChCZXJrZWxleSkgNS8yMC85NQogICovCiAKLSNp
Zm5kZWYgX1NZU19NT1VOVF9IXwotI2RlZmluZSBfU1lTX01PVU5UX0hfCisjaWZuZGVmIF9WRlND
T1JFX1NZU19NT1VOVF9IXworI2RlZmluZSBfVkZTQ09SRV9TWVNfTU9VTlRfSF8KIAogI2RlZmlu
ZSBfQlNEX1NPVVJDRQogCisjaW5jbHVkZSA8c3lzL21vdW50Lmg+CiAjaW5jbHVkZSA8c3lzL3N0
YXRmcy5oPgogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHVrL2xpc3QuaD4KQEAgLTYw
LDM5ICs2MSw3MyBAQCBzdHJ1Y3QgbW91bnQgewogLyoKICAqIE1vdW50IGZsYWdzLgogICovCisj
aWZuZGVmIE1OVF9SRE9OTFkKICNkZWZpbmUJTU5UX1JET05MWQkweDAwMDAwMDAxCS8qIHJlYWQg
b25seSBmaWxlc3lzdGVtICovCisjZW5kaWYKKyNpZm5kZWYJTU5UX1NZTkNIUk9OT1VTCiAjZGVm
aW5lCU1OVF9TWU5DSFJPTk9VUwkweDAwMDAwMDAyCS8qIGZpbGUgc3lzdGVtIHdyaXR0ZW4gc3lu
Y2hyb25vdXNseSAqLworI2VuZGlmCisjaWZuZGVmCU1OVF9OT0VYRUMKICNkZWZpbmUJTU5UX05P
RVhFQwkweDAwMDAwMDA0CS8qIGNhbid0IGV4ZWMgZnJvbSBmaWxlc3lzdGVtICovCisjZW5kaWYK
KyNpZm5kZWYJTU5UX05PU1VJRAogI2RlZmluZQlNTlRfTk9TVUlECTB4MDAwMDAwMDgJLyogZG9u
J3QgaG9ub3Igc2V0dWlkIGJpdHMgb24gZnMgKi8KKyNlbmRpZgorI2lmbmRlZglNTlRfTk9ERVYK
ICNkZWZpbmUJTU5UX05PREVWCTB4MDAwMDAwMTAJLyogZG9uJ3QgaW50ZXJwcmV0IHNwZWNpYWwg
ZmlsZXMgKi8KKyNlbmRpZgorI2lmbmRlZglNTlRfVU5JT04KICNkZWZpbmUJTU5UX1VOSU9OCTB4
MDAwMDAwMjAJLyogdW5pb24gd2l0aCB1bmRlcmx5aW5nIGZpbGVzeXN0ZW0gKi8KKyNlbmRpZgor
I2lmbmRlZglNTlRfQVNZTkMKICNkZWZpbmUJTU5UX0FTWU5DCTB4MDAwMDAwNDAJLyogZmlsZSBz
eXN0ZW0gd3JpdHRlbiBhc3luY2hyb25vdXNseSAqLworI2VuZGlmCiAKIC8qCiAgKiBVbm1vdW50
IGZsYWdzLgogICovCisjaWZuZGVmIE1OVF9GT1JDRQogI2RlZmluZSBNTlRfRk9SQ0UJMHgwMDAw
MDAwMQkvKiBmb3JjZWQgdW5tb3VudCAqLworI2VuZGlmCiAKIC8qCiAgKiBleHBvcnRlZCBtb3Vu
dCBmbGFncy4KICAqLworI2lmbmRlZglNTlRfRVhSRE9OTFkKICNkZWZpbmUJTU5UX0VYUkRPTkxZ
CTB4MDAwMDAwODAJLyogZXhwb3J0ZWQgcmVhZCBvbmx5ICovCisjZW5kaWYKKyNpZm5kZWYJTU5U
X0VYUE9SVEVECiAjZGVmaW5lCU1OVF9FWFBPUlRFRAkweDAwMDAwMTAwCS8qIGZpbGUgc3lzdGVt
IGlzIGV4cG9ydGVkICovCisjZW5kaWYKKyNpZm5kZWYJTU5UX0RFRkVYUE9SVEVECiAjZGVmaW5l
CU1OVF9ERUZFWFBPUlRFRAkweDAwMDAwMjAwCS8qIGV4cG9ydGVkIHRvIHRoZSB3b3JsZCAqLwor
I2VuZGlmCisjaWZuZGVmCU1OVF9FWFBPUlRBTk9OCiAjZGVmaW5lCU1OVF9FWFBPUlRBTk9OCTB4
MDAwMDA0MDAJLyogdXNlIGFub24gdWlkIG1hcHBpbmcgZm9yIGV2ZXJ5b25lICovCisjZW5kaWYK
KyNpZm5kZWYJTU5UX0VYS0VSQgogI2RlZmluZQlNTlRfRVhLRVJCCTB4MDAwMDA4MDAJLyogZXhw
b3J0ZWQgd2l0aCBLZXJiZXJvcyB1aWQgbWFwcGluZyAqLworI2VuZGlmCiAKIC8qCiAgKiBGbGFn
cyBzZXQgYnkgaW50ZXJuYWwgb3BlcmF0aW9ucy4KICAqLworI2lmbmRlZglNTlRfTE9DQUwKICNk
ZWZpbmUJTU5UX0xPQ0FMCTB4MDAwMDEwMDAJLyogZmlsZXN5c3RlbSBpcyBzdG9yZWQgbG9jYWxs
eSAqLworI2VuZGlmCisjaWZuZGVmCU1OVF9RVU9UQQogI2RlZmluZQlNTlRfUVVPVEEJMHgwMDAw
MjAwMAkvKiBxdW90YXMgYXJlIGVuYWJsZWQgb24gZmlsZXN5c3RlbSAqLworI2VuZGlmCisjaWZu
ZGVmCU1OVF9ST09URlMKICNkZWZpbmUJTU5UX1JPT1RGUwkweDAwMDA0MDAwCS8qIGlkZW50aWZp
ZXMgdGhlIHJvb3QgZmlsZXN5c3RlbSAqLworI2VuZGlmCiAKIC8qCiAgKiBNYXNrIG9mIGZsYWdz
IHRoYXQgYXJlIHZpc2libGUgdG8gc3RhdGZzKCkKICAqLworI2lmbmRlZglNTlRfVklTRkxBR01B
U0sKICNkZWZpbmUJTU5UX1ZJU0ZMQUdNQVNLCTB4MDAwMGZmZmYKKyNlbmRpZgogCiAvKgogICog
RmlsZXN5c3RlbSB0eXBlIHN3aXRjaCB0YWJsZS4KQEAgLTE0NCw0ICsxNzksNCBAQCB2b2lkCSB2
ZnNfdW5idXN5KHN0cnVjdCBtb3VudCAqbXApOwogCiB2b2lkCSB2ZnNjb3JlX3JlbGVhc2VfbXBf
ZGVudHJpZXMoc3RydWN0IG1vdW50ICptcCk7CiAKLSNlbmRpZgkvKiAhX1NZU19NT1VOVF9IXyAq
LworI2VuZGlmCS8qICFfVkZTQ09SRV9TWVNfTU9VTlRfSF8gKi8KZGlmZiAtLWdpdCBhL2xpYi92
ZnNjb3JlL21vdW50LmMgYi9saWIvdmZzY29yZS9tb3VudC5jCmluZGV4IDlkN2FjZTE1Li4xYTc3
OGJlMiAxMDA2NDQKLS0tIGEvbGliL3Zmc2NvcmUvbW91bnQuYworKysgYi9saWIvdmZzY29yZS9t
b3VudC5jCkBAIC0xMDksNyArMTA5LDggQEAgaW50IGRldmljZV9jbG9zZShzdHJ1Y3QgZGV2aWNl
ICpkZXYpCiB9CiAKIGludAotbW91bnQoY29uc3QgY2hhciAqZGV2LCBjb25zdCBjaGFyICpkaXIs
IGNvbnN0IGNoYXIgKmZzbmFtZSwgaW50IGZsYWdzLCBjb25zdCB2b2lkICpkYXRhKQorbW91bnQo
Y29uc3QgY2hhciAqZGV2LCBjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKmZzbmFtZSwgdW5z
aWduZWQgbG9uZyBmbGFncywKKyAgICAgIGNvbnN0IHZvaWQgKmRhdGEpCiB7CiAJY29uc3Qgc3Ry
dWN0IHZmc2NvcmVfZnNfdHlwZSAqZnM7CiAJc3RydWN0IG1vdW50ICptcDsKLS0gCjIuMjAuMQoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1k
ZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 12:39:05 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 12:39:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2aFM-0008FR-K2; Fri, 14 Feb 2020 12:39:04 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=gxrt=4C=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2aFL-0008FI-Dv
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 12:39:03 +0000
X-Inumbo-ID: fb03e6fe-4f26-11ea-aa99-bc764e2007e4
Received: from mail-ua1-x942.google.com (unknown [2607:f8b0:4864:20::942])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fb03e6fe-4f26-11ea-aa99-bc764e2007e4;
 Fri, 14 Feb 2020 12:39:02 +0000 (UTC)
Received: by mail-ua1-x942.google.com with SMTP id w15so3517382uap.0
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 04:39:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=Ah3EigavZcgOdOYA/d6QHwp3Bs1A675GtnYIoTwXBVo=;
 b=DcnrDtXrsld/hQXRecc4h1U6Bif4u0DAwhA5i2yCT0IzmDE7IURL7fA1EeWmER07HU
 YXPn9GGCyd7MqaaBpaQ0munQm1J/zjKQHFcZ+/RlvTAeiG1q9VQEV5GqBZXnZsZbDE3e
 XH+x4uziI7+a1R3natOzNHjUHIZKsordOvzNYKCmmjJmcN0NCTSx5zUg/x+T9dcRA8bb
 ixwPlF4Q335b/qZqnh1uFWpRfAF8BAK+qZ1x7SD2f1DHTTXU+6FC1D887Q4mZFutompN
 gskKvcRABIxtICtAkc4eCnZ5IZ5A8FpUkuu2B0bN3UBMP+GKwGP2viY8dUrBnVURB+sG
 4kUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=Ah3EigavZcgOdOYA/d6QHwp3Bs1A675GtnYIoTwXBVo=;
 b=nHLPAlyhk+FUmxFGxV87fj5F/hZYA9HwxzJg0JFVySQpTnacL4BOxhV+B+fWZxMk++
 iiECbW2RlMDbBob9ofKIQi3FoXrC4uO7rWRA+9lWylWJXEW+nzmH2DrHM7SWivZ4khxK
 KbmgTPPS1LqeH8D244rX1nb0VRM8mCTWggcpHH7Sxg7ZP75eWDecCKqYSqhM7+zNnNfB
 zgXcvMDf25l+uLEenBuJTYQhAVTNXewem+JrNwrRjbtMgcaQYpw4aKDhXufnkHtStOIV
 WgTpwp97/JZMk/NIRAn27tr4wntGigDXIFn0PNPLy0EPHBbDDQmoUVOEuPnOuABTeNPJ
 FFNA==
X-Gm-Message-State: APjAAAVKpUFPq1jGWkK8GvJ7qjpns7B01EfaKBPQ/PTQSWtA3H3Xq/dF
 ptAueY6gmpbFcnyrUFtJSjDFoyya3gzkCbQV4nSexnrF
X-Google-Smtp-Source: APXvYqx5NLICY+mGENqyxzMAVviUk6DF8x/rx9B/hLaEyfWBH2cnnP7xQbwdoLjr1+GOOxO9xUv9Xy8f+1LTJdcQcaY=
X-Received: by 2002:ab0:6902:: with SMTP id b2mr1348495uas.32.1581683942304;
 Fri, 14 Feb 2020 04:39:02 -0800 (PST)
MIME-Version: 1.0
References: <20200214123651.28731-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200214123651.28731-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Fri, 14 Feb 2020 13:38:51 +0100
Message-ID: <CAEX4t-N96FWe_q=Q0oL1Ke3GEr2AFKShmc9sqimRocyj47XTmQ@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/vfscore: Use mount
 definitions from <sys/mount.h>
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KClJldmlld2VkLWJ5OiBGZWxpcGUgSHVpY2kg
PGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CgpPbiBGcmksIEZlYiAxNCwgMjAyMCBhdCAxOjM3IFBN
IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90ZToKPgo+IEdpdmUg
bW91bnQgY29uc3RhbnQvZmxhZ3MgZGVmaW5pdGlvbnMgaW50cm9kdWNlZCBieSB0aGUgbGliQyBo
aWdoZXIKPiBwcmlvcml0eSB0aGFuIHRoZSBpbnRlcm5hbCBvbmVzLiBUaGlzIGlzIGRvbmUgdG8g
cHJvdmlkZSBhIGNvcnJlY3QKPiBsaWJDIEFQSSBpbXBsZW1lbnRhdGlvbiB3aXRoIHZmc2NvcmUu
Cj4KPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5l
dT4KPiAtLS0KPiAgbGliL25vbGliYy9pbmNsdWRlL3N5cy9tb3VudC5oICAgICAgfCAgOCArKyst
LS0KPiAgbGliL3Zmc2NvcmUvaW5jbHVkZS92ZnNjb3JlL21vdW50LmggfCA0MSArKysrKysrKysr
KysrKysrKysrKysrKysrKy0tLQo+ICBsaWIvdmZzY29yZS9tb3VudC5jICAgICAgICAgICAgICAg
ICB8ICAzICsrLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDggZGVsZXRp
b25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvbGliL25vbGliYy9pbmNsdWRlL3N5cy9tb3VudC5oIGIv
bGliL25vbGliYy9pbmNsdWRlL3N5cy9tb3VudC5oCj4gaW5kZXggZDdhOTViMzguLmM4YjFmZTI3
IDEwMDY0NAo+IC0tLSBhL2xpYi9ub2xpYmMvaW5jbHVkZS9zeXMvbW91bnQuaAo+ICsrKyBiL2xp
Yi9ub2xpYmMvaW5jbHVkZS9zeXMvbW91bnQuaAo+IEBAIC05MiwxMCArOTIsMTAgQEAgZXh0ZXJu
ICJDIiB7Cj4gICNkZWZpbmUgTVNfTUdDX1ZBTCAweGMwZWQwMDAwCj4gICNkZWZpbmUgTVNfTUdD
X01TSyAweGZmZmYwMDAwCj4KPiAtI2RlZmluZSBNTlRfRk9SQ0UgICAgICAgMQo+IC0jZGVmaW5l
IE1OVF9ERVRBQ0ggICAgICAyCj4gLSNkZWZpbmUgTU5UX0VYUElSRSAgICAgIDQKPiAtI2RlZmlu
ZSBVTU9VTlRfTk9GT0xMT1cgOAo+ICsjZGVmaW5lIE1OVF9GT1JDRSAgICAgICAweDAwMDAwMDAx
Cj4gKyNkZWZpbmUgTU5UX0RFVEFDSCAgICAgIDB4MDAwMDAwMDIKPiArI2RlZmluZSBNTlRfRVhQ
SVJFICAgICAgMHgwMDAwMDAwNAo+ICsjZGVmaW5lIFVNT1VOVF9OT0ZPTExPVyAweDAwMDAwMDA4
Cj4KPiAgaW50IG1vdW50KGNvbnN0IGNoYXIgKmRldiwgY29uc3QgY2hhciAqZGlyLCBjb25zdCBj
aGFyICpmc25hbWUsCj4gICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIGNvbnN0IHZvaWQg
KmRhdGEpOwo+IGRpZmYgLS1naXQgYS9saWIvdmZzY29yZS9pbmNsdWRlL3Zmc2NvcmUvbW91bnQu
aCBiL2xpYi92ZnNjb3JlL2luY2x1ZGUvdmZzY29yZS9tb3VudC5oCj4gaW5kZXggYjg1ZTIxMWUu
LjExZmEwOThiIDEwMDY0NAo+IC0tLSBhL2xpYi92ZnNjb3JlL2luY2x1ZGUvdmZzY29yZS9tb3Vu
dC5oCj4gKysrIGIvbGliL3Zmc2NvcmUvaW5jbHVkZS92ZnNjb3JlL21vdW50LmgKPiBAQCAtMjks
MTEgKzI5LDEyIEBACj4gICAqICAgICBAKCMpbW91bnQuaCAgICAgOC4yMSAoQmVya2VsZXkpIDUv
MjAvOTUKPiAgICovCj4KPiAtI2lmbmRlZiBfU1lTX01PVU5UX0hfCj4gLSNkZWZpbmUgX1NZU19N
T1VOVF9IXwo+ICsjaWZuZGVmIF9WRlNDT1JFX1NZU19NT1VOVF9IXwo+ICsjZGVmaW5lIF9WRlND
T1JFX1NZU19NT1VOVF9IXwo+Cj4gICNkZWZpbmUgX0JTRF9TT1VSQ0UKPgo+ICsjaW5jbHVkZSA8
c3lzL21vdW50Lmg+Cj4gICNpbmNsdWRlIDxzeXMvc3RhdGZzLmg+Cj4gICNpbmNsdWRlIDxsaW1p
dHMuaD4KPiAgI2luY2x1ZGUgPHVrL2xpc3QuaD4KPiBAQCAtNjAsMzkgKzYxLDczIEBAIHN0cnVj
dCBtb3VudCB7Cj4gIC8qCj4gICAqIE1vdW50IGZsYWdzLgo+ICAgKi8KPiArI2lmbmRlZiBNTlRf
UkRPTkxZCj4gICNkZWZpbmUgICAgICAgIE1OVF9SRE9OTFkgICAgICAweDAwMDAwMDAxICAgICAg
LyogcmVhZCBvbmx5IGZpbGVzeXN0ZW0gKi8KPiArI2VuZGlmCj4gKyNpZm5kZWYgICAgICAgIE1O
VF9TWU5DSFJPTk9VUwo+ICAjZGVmaW5lICAgICAgICBNTlRfU1lOQ0hST05PVVMgMHgwMDAwMDAw
MiAgICAgIC8qIGZpbGUgc3lzdGVtIHdyaXR0ZW4gc3luY2hyb25vdXNseSAqLwo+ICsjZW5kaWYK
PiArI2lmbmRlZiAgICAgICAgTU5UX05PRVhFQwo+ICAjZGVmaW5lICAgICAgICBNTlRfTk9FWEVD
ICAgICAgMHgwMDAwMDAwNCAgICAgIC8qIGNhbid0IGV4ZWMgZnJvbSBmaWxlc3lzdGVtICovCj4g
KyNlbmRpZgo+ICsjaWZuZGVmICAgICAgICBNTlRfTk9TVUlECj4gICNkZWZpbmUgICAgICAgIE1O
VF9OT1NVSUQgICAgICAweDAwMDAwMDA4ICAgICAgLyogZG9uJ3QgaG9ub3Igc2V0dWlkIGJpdHMg
b24gZnMgKi8KPiArI2VuZGlmCj4gKyNpZm5kZWYgICAgICAgIE1OVF9OT0RFVgo+ICAjZGVmaW5l
ICAgICAgICBNTlRfTk9ERVYgICAgICAgMHgwMDAwMDAxMCAgICAgIC8qIGRvbid0IGludGVycHJl
dCBzcGVjaWFsIGZpbGVzICovCj4gKyNlbmRpZgo+ICsjaWZuZGVmICAgICAgICBNTlRfVU5JT04K
PiAgI2RlZmluZSAgICAgICAgTU5UX1VOSU9OICAgICAgIDB4MDAwMDAwMjAgICAgICAvKiB1bmlv
biB3aXRoIHVuZGVybHlpbmcgZmlsZXN5c3RlbSAqLwo+ICsjZW5kaWYKPiArI2lmbmRlZiAgICAg
ICAgTU5UX0FTWU5DCj4gICNkZWZpbmUgICAgICAgIE1OVF9BU1lOQyAgICAgICAweDAwMDAwMDQw
ICAgICAgLyogZmlsZSBzeXN0ZW0gd3JpdHRlbiBhc3luY2hyb25vdXNseSAqLwo+ICsjZW5kaWYK
Pgo+ICAvKgo+ICAgKiBVbm1vdW50IGZsYWdzLgo+ICAgKi8KPiArI2lmbmRlZiBNTlRfRk9SQ0UK
PiAgI2RlZmluZSBNTlRfRk9SQ0UgICAgICAweDAwMDAwMDAxICAgICAgLyogZm9yY2VkIHVubW91
bnQgKi8KPiArI2VuZGlmCj4KPiAgLyoKPiAgICogZXhwb3J0ZWQgbW91bnQgZmxhZ3MuCj4gICAq
Lwo+ICsjaWZuZGVmICAgICAgICBNTlRfRVhSRE9OTFkKPiAgI2RlZmluZSAgICAgICAgTU5UX0VY
UkRPTkxZICAgIDB4MDAwMDAwODAgICAgICAvKiBleHBvcnRlZCByZWFkIG9ubHkgKi8KPiArI2Vu
ZGlmCj4gKyNpZm5kZWYgICAgICAgIE1OVF9FWFBPUlRFRAo+ICAjZGVmaW5lICAgICAgICBNTlRf
RVhQT1JURUQgICAgMHgwMDAwMDEwMCAgICAgIC8qIGZpbGUgc3lzdGVtIGlzIGV4cG9ydGVkICov
Cj4gKyNlbmRpZgo+ICsjaWZuZGVmICAgICAgICBNTlRfREVGRVhQT1JURUQKPiAgI2RlZmluZSAg
ICAgICAgTU5UX0RFRkVYUE9SVEVEIDB4MDAwMDAyMDAgICAgICAvKiBleHBvcnRlZCB0byB0aGUg
d29ybGQgKi8KPiArI2VuZGlmCj4gKyNpZm5kZWYgICAgICAgIE1OVF9FWFBPUlRBTk9OCj4gICNk
ZWZpbmUgICAgICAgIE1OVF9FWFBPUlRBTk9OICAweDAwMDAwNDAwICAgICAgLyogdXNlIGFub24g
dWlkIG1hcHBpbmcgZm9yIGV2ZXJ5b25lICovCj4gKyNlbmRpZgo+ICsjaWZuZGVmICAgICAgICBN
TlRfRVhLRVJCCj4gICNkZWZpbmUgICAgICAgIE1OVF9FWEtFUkIgICAgICAweDAwMDAwODAwICAg
ICAgLyogZXhwb3J0ZWQgd2l0aCBLZXJiZXJvcyB1aWQgbWFwcGluZyAqLwo+ICsjZW5kaWYKPgo+
ICAvKgo+ICAgKiBGbGFncyBzZXQgYnkgaW50ZXJuYWwgb3BlcmF0aW9ucy4KPiAgICovCj4gKyNp
Zm5kZWYgICAgICAgIE1OVF9MT0NBTAo+ICAjZGVmaW5lICAgICAgICBNTlRfTE9DQUwgICAgICAg
MHgwMDAwMTAwMCAgICAgIC8qIGZpbGVzeXN0ZW0gaXMgc3RvcmVkIGxvY2FsbHkgKi8KPiArI2Vu
ZGlmCj4gKyNpZm5kZWYgICAgICAgIE1OVF9RVU9UQQo+ICAjZGVmaW5lICAgICAgICBNTlRfUVVP
VEEgICAgICAgMHgwMDAwMjAwMCAgICAgIC8qIHF1b3RhcyBhcmUgZW5hYmxlZCBvbiBmaWxlc3lz
dGVtICovCj4gKyNlbmRpZgo+ICsjaWZuZGVmICAgICAgICBNTlRfUk9PVEZTCj4gICNkZWZpbmUg
ICAgICAgIE1OVF9ST09URlMgICAgICAweDAwMDA0MDAwICAgICAgLyogaWRlbnRpZmllcyB0aGUg
cm9vdCBmaWxlc3lzdGVtICovCj4gKyNlbmRpZgo+Cj4gIC8qCj4gICAqIE1hc2sgb2YgZmxhZ3Mg
dGhhdCBhcmUgdmlzaWJsZSB0byBzdGF0ZnMoKQo+ICAgKi8KPiArI2lmbmRlZiAgICAgICAgTU5U
X1ZJU0ZMQUdNQVNLCj4gICNkZWZpbmUgICAgICAgIE1OVF9WSVNGTEFHTUFTSyAweDAwMDBmZmZm
Cj4gKyNlbmRpZgo+Cj4gIC8qCj4gICAqIEZpbGVzeXN0ZW0gdHlwZSBzd2l0Y2ggdGFibGUuCj4g
QEAgLTE0NCw0ICsxNzksNCBAQCB2b2lkICAgICAgICAgdmZzX3VuYnVzeShzdHJ1Y3QgbW91bnQg
Km1wKTsKPgo+ICB2b2lkICAgIHZmc2NvcmVfcmVsZWFzZV9tcF9kZW50cmllcyhzdHJ1Y3QgbW91
bnQgKm1wKTsKPgo+IC0jZW5kaWYgLyogIV9TWVNfTU9VTlRfSF8gKi8KPiArI2VuZGlmIC8qICFf
VkZTQ09SRV9TWVNfTU9VTlRfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvbGliL3Zmc2NvcmUvbW91bnQu
YyBiL2xpYi92ZnNjb3JlL21vdW50LmMKPiBpbmRleCA5ZDdhY2UxNS4uMWE3NzhiZTIgMTAwNjQ0
Cj4gLS0tIGEvbGliL3Zmc2NvcmUvbW91bnQuYwo+ICsrKyBiL2xpYi92ZnNjb3JlL21vdW50LmMK
PiBAQCAtMTA5LDcgKzEwOSw4IEBAIGludCBkZXZpY2VfY2xvc2Uoc3RydWN0IGRldmljZSAqZGV2
KQo+ICB9Cj4KPiAgaW50Cj4gLW1vdW50KGNvbnN0IGNoYXIgKmRldiwgY29uc3QgY2hhciAqZGly
LCBjb25zdCBjaGFyICpmc25hbWUsIGludCBmbGFncywgY29uc3Qgdm9pZCAqZGF0YSkKPiArbW91
bnQoY29uc3QgY2hhciAqZGV2LCBjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKmZzbmFtZSwg
dW5zaWduZWQgbG9uZyBmbGFncywKPiArICAgICAgY29uc3Qgdm9pZCAqZGF0YSkKPiAgewo+ICAg
ICAgICAgY29uc3Qgc3RydWN0IHZmc2NvcmVfZnNfdHlwZSAqZnM7Cj4gICAgICAgICBzdHJ1Y3Qg
bW91bnQgKm1wOwo+IC0tCj4gMi4yMC4xCj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCj4gTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pbmlv
cy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9z
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv
bWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 12:47:00 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 12:47:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2aN0-0000gA-GG; Fri, 14 Feb 2020 12:46:58 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2aMz-0000g3-P6
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 12:46:57 +0000
X-Inumbo-ID: 15552788-4f28-11ea-ba46-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 15552788-4f28-11ea-ba46-12813bfff9fa;
 Fri, 14 Feb 2020 12:46:57 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 141DD103BA3;
 Fri, 14 Feb 2020 13:46:56 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id BODgR6l7fnZm; Fri, 14 Feb 2020 13:46:55 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id E3C65103A0E
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 13:46:55 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 13:46:55 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200214100335.3037-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <56ec6a40-ce84-9e68-928e-2961d41520c0@neclab.eu>
Date: Fri, 14 Feb 2020 13:46:54 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200214100335.3037-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBLWIP] Fix compile error when
 enabling Operation mode (Mainloop (non-threaded).
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgRmVsaXBlLAoKdGhhbmtzIGEgbG90IGZvciB0aGlzIHdvcmsuIEJlc2lkZXMgdGhlc2UgY2hh
bmdlcywgSSB0aGluayBwYXJ0IG9mIHRoZSAKcGF0Y2ggc2hvdWxkIGFsc28gYmUgYSBmaXggaW4g
aW5jbHVkZS9uZXRkYi5oOiBNb3ZlIGdldG5hbWVpbmZvKCkgCnByb3RvdHlwZSBpbnRvCmAjaWYg
TFdJUF9ETlMgJiYgTFdJUF9TT0NLRVRgIGNvbmRpdGlvbiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBmaWxlIAooYWZ0ZXIgZnJlZWFkZHJpbmZvKCkpLiBXaGF0IGRvIHlvdSB0aGluaz8KClRoYW5r
cywKClNpbW9uCgpPbiAxNC4wMi4yMCAxMTowMywgRmVsaXBlIEh1aWNpIHdyb3RlOgo+IEVuYWJs
aW5nIG9wZXJhdGluZyBtb2RlIG5vbi10aHJlYWRlZCAoYWthIENPTkZJR19MV0lQX05PVEhSRUFE
UykKPiBkaXNhYmxlcyB0aGUgc29ja2V0IEFQSSBmcm9tIGx3aXAuIFRoaXMgY29tbWl0IG1ha2Vz
IGl0IHNvIHRoYXQgb3VyCj4gc29ja2V0LXJlbGF0ZWQgZ2x1ZSBjb2RlIGlzbid0IGFkZGVkIHRv
IHRoZSBidWlsZCBpZiB0aGlzIG9wdGlvbiBpcwo+IGVuYWJsZWQuCj4gCj4gU2lnbmVkLW9mZi1i
eTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1Pgo+IC0tLQo+ICAgTWFrZWZp
bGUudWsgICAgICAgICAgfCAyICstCj4gICBpbmNsdWRlL3N5cy9zb2NrZXQuaCB8IDMgKysrCj4g
ICAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRp
ZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCj4gaW5kZXggNTZlYmNmYy4uNTA1
NGVmNCAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51awo+ICsrKyBiL01ha2VmaWxlLnVrCj4gQEAg
LTgwLDYgKzgwLDcgQEAgTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0JBU0UpL3Byb3RvLmMK
PiAgIExJQkxXSVBfU1JDUy15ICs9ICQoTElCTFdJUF9CQVNFKS9ob3N0LmMKPiAgIExJQkxXSVBf
U1JDUy15ICs9ICQoTElCTFdJUF9CQVNFKS9zZXJ2LmMKPiAgIExJQkxXSVBfU1JDUy15ICs9ICQo
TElCTFdJUF9CQVNFKS9pbmV0LmN8dW5pa3JhZnQKPiArTElCTFdJUF9TUkNTLSQoQ09ORklHX0xX
SVBfRE5TKSArPSAkKExJQkxXSVBfQkFTRSkvZ2V0bmFtZWluZm8uY3x1bmlrcmFmdAo+ICAgZW5k
aWYKPiAgIExJQkxXSVBfU1JDUy0kKENPTkZJR19MV0lQX1RIUkVBRFMpICs9ICQoTElCTFdJUF9C
QVNFKS9tdXRleC5jfHVuaWtyYWZ0Cj4gICBMSUJMV0lQX1NSQ1MtJChDT05GSUdfTFdJUF9USFJF
QURTKSArPSAkKExJQkxXSVBfQkFTRSkvc2VtYXBob3JlLmN8dW5pa3JhZnQKPiBAQCAtOTEsNyAr
OTIsNiBAQCBMSUJMV0lQX1NSQ1MteSArPSAkKExJQkxXSVBfQkFTRSkvdGltZS5jfHVuaWtyYWZ0
Cj4gICBMSUJMV0lQX1NSQ1MteSArPSAkKExJQkxXSVBfQkFTRSkvc2VuZGZpbGUuY3x1bmlrcmFm
dAo+ICAgTElCTFdJUF9TUkNTLSQoQ09ORklHX0xXSVBfU09DS0VUKSArPSAkKExJQkxXSVBfQkFT
RSkvc29ja2V0cy5jfHVuaWtyYWZ0Cj4gICBMSUJMV0lQX1NPQ0tFVFNfRkxBR1MteSArPSAtV25v
LWNhc3QtZnVuY3Rpb24tdHlwZQo+IC1MSUJMV0lQX1NSQ1MtJChDT05GSUdfTFdJUF9ETlMpICs9
ICQoTElCTFdJUF9CQVNFKS9nZXRuYW1laW5mby5jfHVuaWtyYWZ0Cj4gICBMSUJMV0lQX1NSQ1Mt
eSArPSAkKExJQkxXSVBfRVhUUkFDVEVEKS9jb3JlL2luaXQuYwo+ICAgTElCTFdJUF9TUkNTLXkg
Kz0gJChMSUJMV0lQX0VYVFJBQ1RFRCkvY29yZS9kZWYuYwo+ICAgTElCTFdJUF9TUkNTLXkgKz0g
JChMSUJMV0lQX0VYVFJBQ1RFRCkvY29yZS9pbmV0X2Noa3N1bS5jCj4gZGlmZiAtLWdpdCBhL2lu
Y2x1ZGUvc3lzL3NvY2tldC5oIGIvaW5jbHVkZS9zeXMvc29ja2V0LmgKPiBpbmRleCA4MDA3Y2I4
Li5kNTJjZjk0IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvc3lzL3NvY2tldC5oCj4gKysrIGIvaW5j
bHVkZS9zeXMvc29ja2V0LmgKPiBAQCAtMzgsNiArMzgsOCBAQCBleHRlcm4gIkMiIHsKPiAgICNl
bmRpZgo+ICAgCj4gICAjaW5jbHVkZSA8dWsvY29uZmlnLmg+Cj4gKwo+ICsjaWYgQ09ORklHX0xX
SVBfU09DS0VUUwo+ICAgI2lmIENPTkZJR19IQVZFX0xJQkMKPiAgICNpbmNsdWRlIDxmY250bC5o
Pgo+ICAgI2luY2x1ZGUgPHBvbGwuaD4KPiBAQCAtMTA0LDUgKzEwNiw2IEBAIGludCBzb2NrZXRw
YWlyKGludCBkb21haW4sIGludCB0eXBlLCBpbnQgcHJvdG9jb2wsIGludCBzdlsyXSk7Cj4gICAj
aWZkZWYgX19jcGx1c3BsdXMKPiAgIH0KPiAgICNlbmRpZgo+ICsjZW5kaWYgLyogQ09ORklHX0xX
SVBfU09DS0VUUyAqLwo+ICAgCj4gICAjZW5kaWYgLyogX1VLX0xXSVBfU09DS0VUX0hfICovCj4g
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 13:12:21 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 13:12:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2alX-0003Px-2b; Fri, 14 Feb 2020 13:12:19 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=mMk8=4C=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j2alV-0003Ps-LK
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 13:12:17 +0000
X-Inumbo-ID: 9f291fd4-4f2b-11ea-ba4a-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 9f291fd4-4f2b-11ea-ba4a-12813bfff9fa;
 Fri, 14 Feb 2020 13:12:16 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 386824103E;
 Fri, 14 Feb 2020 14:12:15 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Fri, 14 Feb 2020 14:12:14 +0100
Message-Id: <20200214131214.25717-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LIBLWIP v2] Fix compile error when
 enabling Operation mode (Mainloop (non-threaded).
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RW5hYmxpbmcgb3BlcmF0aW5nIG1vZGUgbm9uLXRocmVhZGVkIChha2EgQ09ORklHX0xXSVBfTk9U
SFJFQURTKQpkaXNhYmxlcyB0aGUgc29ja2V0IEFQSSBmcm9tIGx3aXAuIFRoaXMgY29tbWl0IG1h
a2VzIGl0IHNvIHRoYXQgb3VyCnNvY2tldC1yZWxhdGVkIGdsdWUgY29kZSBpc24ndCBhZGRlZCB0
byB0aGUgYnVpbGQgaWYgdGhpcyBvcHRpb24gaXMKZW5hYmxlZC4KClNpZ25lZC1vZmYtYnk6IEZl
bGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KLS0tCiBNYWtlZmlsZS51ayAgICAg
ICAgICB8IDIgKy0KIGluY2x1ZGUvbmV0ZGIuaCAgICAgIHwgNyArKystLS0tCiBpbmNsdWRlL3N5
cy9zb2NrZXQuaCB8IDIgKysKIDMgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA1IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL01ha2VmaWxlLnVrIGIvTWFrZWZpbGUudWsKaW5kZXgg
NTZlYmNmYy4uNTA1NGVmNCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUudWsKKysrIGIvTWFrZWZpbGUu
dWsKQEAgLTgwLDYgKzgwLDcgQEAgTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0JBU0UpL3By
b3RvLmMKIExJQkxXSVBfU1JDUy15ICs9ICQoTElCTFdJUF9CQVNFKS9ob3N0LmMKIExJQkxXSVBf
U1JDUy15ICs9ICQoTElCTFdJUF9CQVNFKS9zZXJ2LmMKIExJQkxXSVBfU1JDUy15ICs9ICQoTElC
TFdJUF9CQVNFKS9pbmV0LmN8dW5pa3JhZnQKK0xJQkxXSVBfU1JDUy0kKENPTkZJR19MV0lQX0RO
UykgKz0gJChMSUJMV0lQX0JBU0UpL2dldG5hbWVpbmZvLmN8dW5pa3JhZnQKIGVuZGlmCiBMSUJM
V0lQX1NSQ1MtJChDT05GSUdfTFdJUF9USFJFQURTKSArPSAkKExJQkxXSVBfQkFTRSkvbXV0ZXgu
Y3x1bmlrcmFmdAogTElCTFdJUF9TUkNTLSQoQ09ORklHX0xXSVBfVEhSRUFEUykgKz0gJChMSUJM
V0lQX0JBU0UpL3NlbWFwaG9yZS5jfHVuaWtyYWZ0CkBAIC05MSw3ICs5Miw2IEBAIExJQkxXSVBf
U1JDUy15ICs9ICQoTElCTFdJUF9CQVNFKS90aW1lLmN8dW5pa3JhZnQKIExJQkxXSVBfU1JDUy15
ICs9ICQoTElCTFdJUF9CQVNFKS9zZW5kZmlsZS5jfHVuaWtyYWZ0CiBMSUJMV0lQX1NSQ1MtJChD
T05GSUdfTFdJUF9TT0NLRVQpICs9ICQoTElCTFdJUF9CQVNFKS9zb2NrZXRzLmN8dW5pa3JhZnQK
IExJQkxXSVBfU09DS0VUU19GTEFHUy15ICs9IC1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlCi1MSUJM
V0lQX1NSQ1MtJChDT05GSUdfTFdJUF9ETlMpICs9ICQoTElCTFdJUF9CQVNFKS9nZXRuYW1laW5m
by5jfHVuaWtyYWZ0CiBMSUJMV0lQX1NSQ1MteSArPSAkKExJQkxXSVBfRVhUUkFDVEVEKS9jb3Jl
L2luaXQuYwogTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0VYVFJBQ1RFRCkvY29yZS9kZWYu
YwogTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0VYVFJBQ1RFRCkvY29yZS9pbmV0X2Noa3N1
bS5jCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldGRiLmggYi9pbmNsdWRlL25ldGRiLmgKaW5kZXgg
Nzc0MjAxMi4uNTlkMGJkNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXRkYi5oCisrKyBiL2luY2x1
ZGUvbmV0ZGIuaApAQCAtMjMsNiArMjMsOSBAQCBpbnQgZ2V0YWRkcmluZm8oY29uc3QgY2hhciAq
bm9kZSwgY29uc3QgY2hhciAqc2VydmljZSwKIAkJc3RydWN0IGFkZHJpbmZvICoqcmVzKTsKIHZv
aWQgZnJlZWFkZHJpbmZvKHN0cnVjdCBhZGRyaW5mbyAqcmVzKTsKIAoraW50IGdldG5hbWVpbmZv
KGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqYWRkciwgc29ja2xlbl90IGFkZHJsZW4sCisJCWNoYXIg
Kmhvc3QsIHNvY2tsZW5fdCBob3N0bGVuLAorCQljaGFyICpzZXJ2LCBzb2NrbGVuX3Qgc2Vydmxl
biwgaW50IGZsYWdzKTsgIAogCiAjZW5kaWYgLyogTFdJUF9ETlMgJiYgTFdJUF9TT0NLRVQgJiYg
IShMV0lQX0NPTVBBVF9TT0NLRVRTKSAqLwogCkBAIC03NCwxMCArNzcsNiBAQCB2b2lkIHNldHBy
b3RvZW50KGludCBzdGF5b3Blbik7CiAjZGVmaW5lIEVBSV9TWVNURU0gICAgIC0xMQogI2RlZmlu
ZSBFQUlfT1ZFUkZMT1cgICAtMTIKIAotaW50IGdldG5hbWVpbmZvKGNvbnN0IHN0cnVjdCBzb2Nr
YWRkciAqYWRkciwgc29ja2xlbl90IGFkZHJsZW4sCi0JCWNoYXIgKmhvc3QsIHNvY2tsZW5fdCBo
b3N0bGVuLAotCQljaGFyICpzZXJ2LCBzb2NrbGVuX3Qgc2VydmxlbiwgaW50IGZsYWdzKTsKLQog
c3RydWN0IHNlcnZlbnQgKmdldHNlcnZieW5hbWUoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hh
ciAqcHJvdG8pOwogc3RydWN0IHNlcnZlbnQgKmdldHNlcnZieXBvcnQoaW50IHBvcnQsIGNvbnN0
IGNoYXIgKnByb3RvKTsKIGludCBnZXRzZXJ2Ynlwb3J0X3IoaW50IHBvcnQsIGNvbnN0IGNoYXIg
KnByb3RzLCBzdHJ1Y3Qgc2VydmVudCAqc2UsCmRpZmYgLS1naXQgYS9pbmNsdWRlL3N5cy9zb2Nr
ZXQuaCBiL2luY2x1ZGUvc3lzL3NvY2tldC5oCmluZGV4IDgwMDdjYjguLjhmNmVjYmMgMTAwNjQ0
Ci0tLSBhL2luY2x1ZGUvc3lzL3NvY2tldC5oCisrKyBiL2luY2x1ZGUvc3lzL3NvY2tldC5oCkBA
IC0zOCw2ICszOCw3IEBAIGV4dGVybiAiQyIgewogI2VuZGlmCiAKICNpbmNsdWRlIDx1ay9jb25m
aWcuaD4KKyNpZiBDT05GSUdfTFdJUF9TT0NLRVRTCiAjaWYgQ09ORklHX0hBVkVfTElCQwogI2lu
Y2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8cG9sbC5oPgpAQCAtMTA1LDQgKzEwNiw1IEBAIGlu
dCBzb2NrZXRwYWlyKGludCBkb21haW4sIGludCB0eXBlLCBpbnQgcHJvdG9jb2wsIGludCBzdlsy
XSk7CiB9CiAjZW5kaWYKIAorI2VuZGlmIC8qIENPTkZJR19MV0lQX1NPQ0tFVFMgKi8KICNlbmRp
ZiAvKiBfVUtfTFdJUF9TT0NLRVRfSF8gKi8KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QK
TWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 13:12:48 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 13:12:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2am0-0003TA-6U; Fri, 14 Feb 2020 13:12:48 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=gxrt=4C=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j2aly-0003Rm-BX
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 13:12:46 +0000
X-Inumbo-ID: b0d24684-4f2b-11ea-ade5-bc764e2007e4
Received: from mail-vs1-xe31.google.com (unknown [2607:f8b0:4864:20::e31])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b0d24684-4f2b-11ea-ade5-bc764e2007e4;
 Fri, 14 Feb 2020 13:12:45 +0000 (UTC)
Received: by mail-vs1-xe31.google.com with SMTP id v141so5833443vsv.12
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 05:12:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=SyLjYyqrOZPAHTrLJwjsQ+wRg89iMtf7bhwTH3tuf1Q=;
 b=d7epY/XxnjF/6u25R7Ilq2Lq1NdF8SDEwXusSUtktuxN/dbW10NE2iwlUJp5Cpsw5r
 USoHRDByay4s9QqGVYPy2zkiRmjZLCgbqzo+A1nKGno3/zgF9+q+oi1HkULke7OHA/iV
 ef8z+GesdmQfugGK74CluT3nY4tSVyP+i6faOGsuZ4qpZmkVyuihTuWdnL+M6U5dz3Za
 y1K2HXabp0I7Aybva5u2kioa7YdPtYv4/I88ByAzzPrTwR6iLSbHApwfcsvPijwBEn/E
 ckHzi24+OzUzbUvjdw7ALyNt9RIrxlb7mHIosJFyCrBhb4sJxcGnZ4LcCWsSby3p5xeE
 /O2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=SyLjYyqrOZPAHTrLJwjsQ+wRg89iMtf7bhwTH3tuf1Q=;
 b=NudBTcrPiA1shi7wcr8/YSiTTKkJDwOEIHNk4jbrHfIuyeMxNfrd2BA7ed7Gb1MreZ
 k5qDkQqQvgOIsV7EH7IdzlVCYTLdaPLceemCEGKEU5EIiO2OVT/vg9h4hZ0rnL/+9to5
 NsdPooxMoFY9hSxOOBfV6WD/Wix9/TNwinsU3SUebIy58HBfNG7mYc95SXB3nJ7cTyU9
 e5TImpFOX+8jFb0CLel9XPS98ZGXjYM9S6+evY181UTIWJZYStRW7n3+Czs4n0JSIapW
 FVqZsDsactBzcpTNq/tHi4z+ncPOFNgWoQAq31Cuehh4brvh22LwH6Bj5H1uC9zCHngd
 4oAw==
X-Gm-Message-State: APjAAAXlJdTPlwcUncCpRCVnSRiOcASg9/1Z2IVkVVSvvF/MltNBrs1x
 3zx4GF9FzZrJyyZvET65+LYCkS+OHwk2iNcpWaWvTA==
X-Google-Smtp-Source: APXvYqyYHUkRJangrw4VsJ5MGwe781warf0G/2qPztLNi/7w0gYZaEvkgVvV0/8G1PaxExSMh0y+QGpzCf/OldwXIF4=
X-Received: by 2002:a05:6102:2f4:: with SMTP id
 j20mr1385641vsj.17.1581685965290; 
 Fri, 14 Feb 2020 05:12:45 -0800 (PST)
MIME-Version: 1.0
References: <20200214100335.3037-1-felipe.huici@neclab.eu>
 <56ec6a40-ce84-9e68-928e-2961d41520c0@neclab.eu>
In-Reply-To: <56ec6a40-ce84-9e68-928e-2961d41520c0@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Fri, 14 Feb 2020 14:12:34 +0100
Message-ID: <CAEX4t-NLkVYXOB108E_5UiMayasp+g=w3zdXTiZ3X13O_aPY8Q@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/LIBLWIP] Fix compile error when
 enabling Operation mode (Mainloop (non-threaded).
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIHNvdW5kcyBnb29kLCBJJ3ZlIGp1c3Qgc2VudCBhIHYyLgoKLS0gRmVsaXBlCgpP
biBGcmksIEZlYiAxNCwgMjAyMCBhdCAxOjQ3IFBNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56
ZXJAbmVjbGFiLmV1PiB3cm90ZToKPgo+IEhpIEZlbGlwZSwKPgo+IHRoYW5rcyBhIGxvdCBmb3Ig
dGhpcyB3b3JrLiBCZXNpZGVzIHRoZXNlIGNoYW5nZXMsIEkgdGhpbmsgcGFydCBvZiB0aGUKPiBw
YXRjaCBzaG91bGQgYWxzbyBiZSBhIGZpeCBpbiBpbmNsdWRlL25ldGRiLmg6IE1vdmUgZ2V0bmFt
ZWluZm8oKQo+IHByb3RvdHlwZSBpbnRvCj4gYCNpZiBMV0lQX0ROUyAmJiBMV0lQX1NPQ0tFVGAg
Y29uZGl0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUKPiAoYWZ0ZXIgZnJlZWFkZHJp
bmZvKCkpLiBXaGF0IGRvIHlvdSB0aGluaz8KPgo+IFRoYW5rcywKPgo+IFNpbW9uCj4KPiBPbiAx
NC4wMi4yMCAxMTowMywgRmVsaXBlIEh1aWNpIHdyb3RlOgo+ID4gRW5hYmxpbmcgb3BlcmF0aW5n
IG1vZGUgbm9uLXRocmVhZGVkIChha2EgQ09ORklHX0xXSVBfTk9USFJFQURTKQo+ID4gZGlzYWJs
ZXMgdGhlIHNvY2tldCBBUEkgZnJvbSBsd2lwLiBUaGlzIGNvbW1pdCBtYWtlcyBpdCBzbyB0aGF0
IG91cgo+ID4gc29ja2V0LXJlbGF0ZWQgZ2x1ZSBjb2RlIGlzbid0IGFkZGVkIHRvIHRoZSBidWls
ZCBpZiB0aGlzIG9wdGlvbiBpcwo+ID4gZW5hYmxlZC4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBG
ZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Cj4gPiAtLS0KPiA+ICAgTWFrZWZp
bGUudWsgICAgICAgICAgfCAyICstCj4gPiAgIGluY2x1ZGUvc3lzL3NvY2tldC5oIHwgMyArKysK
PiA+ICAgMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+
Cj4gPiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awo+ID4gaW5kZXggNTZl
YmNmYy4uNTA1NGVmNCAxMDA2NDQKPiA+IC0tLSBhL01ha2VmaWxlLnVrCj4gPiArKysgYi9NYWtl
ZmlsZS51awo+ID4gQEAgLTgwLDYgKzgwLDcgQEAgTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQ
X0JBU0UpL3Byb3RvLmMKPiA+ICAgTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0JBU0UpL2hv
c3QuYwo+ID4gICBMSUJMV0lQX1NSQ1MteSArPSAkKExJQkxXSVBfQkFTRSkvc2Vydi5jCj4gPiAg
IExJQkxXSVBfU1JDUy15ICs9ICQoTElCTFdJUF9CQVNFKS9pbmV0LmN8dW5pa3JhZnQKPiA+ICtM
SUJMV0lQX1NSQ1MtJChDT05GSUdfTFdJUF9ETlMpICs9ICQoTElCTFdJUF9CQVNFKS9nZXRuYW1l
aW5mby5jfHVuaWtyYWZ0Cj4gPiAgIGVuZGlmCj4gPiAgIExJQkxXSVBfU1JDUy0kKENPTkZJR19M
V0lQX1RIUkVBRFMpICs9ICQoTElCTFdJUF9CQVNFKS9tdXRleC5jfHVuaWtyYWZ0Cj4gPiAgIExJ
QkxXSVBfU1JDUy0kKENPTkZJR19MV0lQX1RIUkVBRFMpICs9ICQoTElCTFdJUF9CQVNFKS9zZW1h
cGhvcmUuY3x1bmlrcmFmdAo+ID4gQEAgLTkxLDcgKzkyLDYgQEAgTElCTFdJUF9TUkNTLXkgKz0g
JChMSUJMV0lQX0JBU0UpL3RpbWUuY3x1bmlrcmFmdAo+ID4gICBMSUJMV0lQX1NSQ1MteSArPSAk
KExJQkxXSVBfQkFTRSkvc2VuZGZpbGUuY3x1bmlrcmFmdAo+ID4gICBMSUJMV0lQX1NSQ1MtJChD
T05GSUdfTFdJUF9TT0NLRVQpICs9ICQoTElCTFdJUF9CQVNFKS9zb2NrZXRzLmN8dW5pa3JhZnQK
PiA+ICAgTElCTFdJUF9TT0NLRVRTX0ZMQUdTLXkgKz0gLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUK
PiA+IC1MSUJMV0lQX1NSQ1MtJChDT05GSUdfTFdJUF9ETlMpICs9ICQoTElCTFdJUF9CQVNFKS9n
ZXRuYW1laW5mby5jfHVuaWtyYWZ0Cj4gPiAgIExJQkxXSVBfU1JDUy15ICs9ICQoTElCTFdJUF9F
WFRSQUNURUQpL2NvcmUvaW5pdC5jCj4gPiAgIExJQkxXSVBfU1JDUy15ICs9ICQoTElCTFdJUF9F
WFRSQUNURUQpL2NvcmUvZGVmLmMKPiA+ICAgTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0VY
VFJBQ1RFRCkvY29yZS9pbmV0X2Noa3N1bS5jCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zeXMv
c29ja2V0LmggYi9pbmNsdWRlL3N5cy9zb2NrZXQuaAo+ID4gaW5kZXggODAwN2NiOC4uZDUyY2Y5
NCAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvc3lzL3NvY2tldC5oCj4gPiArKysgYi9pbmNsdWRl
L3N5cy9zb2NrZXQuaAo+ID4gQEAgLTM4LDYgKzM4LDggQEAgZXh0ZXJuICJDIiB7Cj4gPiAgICNl
bmRpZgo+ID4KPiA+ICAgI2luY2x1ZGUgPHVrL2NvbmZpZy5oPgo+ID4gKwo+ID4gKyNpZiBDT05G
SUdfTFdJUF9TT0NLRVRTCj4gPiAgICNpZiBDT05GSUdfSEFWRV9MSUJDCj4gPiAgICNpbmNsdWRl
IDxmY250bC5oPgo+ID4gICAjaW5jbHVkZSA8cG9sbC5oPgo+ID4gQEAgLTEwNCw1ICsxMDYsNiBA
QCBpbnQgc29ja2V0cGFpcihpbnQgZG9tYWluLCBpbnQgdHlwZSwgaW50IHByb3RvY29sLCBpbnQg
c3ZbMl0pOwo+ID4gICAjaWZkZWYgX19jcGx1c3BsdXMKPiA+ICAgfQo+ID4gICAjZW5kaWYKPiA+
ICsjZW5kaWYgLyogQ09ORklHX0xXSVBfU09DS0VUUyAqLwo+ID4KPiA+ICAgI2VuZGlmIC8qIF9V
S19MV0lQX1NPQ0tFVF9IXyAqLwo+ID4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCj4gTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pbmlvcy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv
bWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp
bG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 13:20:08 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 13:20:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2at5-0004Ht-1R; Fri, 14 Feb 2020 13:20:07 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2at4-0004Ga-KY
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 13:20:06 +0000
X-Inumbo-ID: b64d25ce-4f2c-11ea-ba4e-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id b64d25ce-4f2c-11ea-ba4e-12813bfff9fa;
 Fri, 14 Feb 2020 13:20:05 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 2CD64103BA3;
 Fri, 14 Feb 2020 14:20:04 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 7KHiNcXqsXiI; Fri, 14 Feb 2020 14:20:04 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 0798AFFAC0
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 14:20:04 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 14:20:03 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200214131214.25717-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <903bf1a9-84aa-b328-10c5-6c692a6deaf5@neclab.eu>
Date: Fri, 14 Feb 2020 14:20:02 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200214131214.25717-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBLWIP v2] Fix compile error when
 enabling Operation mode (Mainloop (non-threaded).
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJA
bmVjbGFiLmV1PgoKT24gMTQuMDIuMjAgMTQ6MTIsIEZlbGlwZSBIdWljaSB3cm90ZToKPiBFbmFi
bGluZyBvcGVyYXRpbmcgbW9kZSBub24tdGhyZWFkZWQgKGFrYSBDT05GSUdfTFdJUF9OT1RIUkVB
RFMpCj4gZGlzYWJsZXMgdGhlIHNvY2tldCBBUEkgZnJvbSBsd2lwLiBUaGlzIGNvbW1pdCBtYWtl
cyBpdCBzbyB0aGF0IG91cgo+IHNvY2tldC1yZWxhdGVkIGdsdWUgY29kZSBpc24ndCBhZGRlZCB0
byB0aGUgYnVpbGQgaWYgdGhpcyBvcHRpb24gaXMKPiBlbmFibGVkLgo+IAo+IFNpZ25lZC1vZmYt
Ynk6IEZlbGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KPiAtLS0KPiAgIE1ha2Vm
aWxlLnVrICAgICAgICAgIHwgMiArLQo+ICAgaW5jbHVkZS9uZXRkYi5oICAgICAgfCA3ICsrKy0t
LS0KPiAgIGluY2x1ZGUvc3lzL3NvY2tldC5oIHwgMiArKwo+ICAgMyBmaWxlcyBjaGFuZ2VkLCA2
IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL01ha2VmaWxl
LnVrIGIvTWFrZWZpbGUudWsKPiBpbmRleCA1NmViY2ZjLi41MDU0ZWY0IDEwMDY0NAo+IC0tLSBh
L01ha2VmaWxlLnVrCj4gKysrIGIvTWFrZWZpbGUudWsKPiBAQCAtODAsNiArODAsNyBAQCBMSUJM
V0lQX1NSQ1MteSArPSAkKExJQkxXSVBfQkFTRSkvcHJvdG8uYwo+ICAgTElCTFdJUF9TUkNTLXkg
Kz0gJChMSUJMV0lQX0JBU0UpL2hvc3QuYwo+ICAgTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQ
X0JBU0UpL3NlcnYuYwo+ICAgTElCTFdJUF9TUkNTLXkgKz0gJChMSUJMV0lQX0JBU0UpL2luZXQu
Y3x1bmlrcmFmdAo+ICtMSUJMV0lQX1NSQ1MtJChDT05GSUdfTFdJUF9ETlMpICs9ICQoTElCTFdJ
UF9CQVNFKS9nZXRuYW1laW5mby5jfHVuaWtyYWZ0Cj4gICBlbmRpZgo+ICAgTElCTFdJUF9TUkNT
LSQoQ09ORklHX0xXSVBfVEhSRUFEUykgKz0gJChMSUJMV0lQX0JBU0UpL211dGV4LmN8dW5pa3Jh
ZnQKPiAgIExJQkxXSVBfU1JDUy0kKENPTkZJR19MV0lQX1RIUkVBRFMpICs9ICQoTElCTFdJUF9C
QVNFKS9zZW1hcGhvcmUuY3x1bmlrcmFmdAo+IEBAIC05MSw3ICs5Miw2IEBAIExJQkxXSVBfU1JD
Uy15ICs9ICQoTElCTFdJUF9CQVNFKS90aW1lLmN8dW5pa3JhZnQKPiAgIExJQkxXSVBfU1JDUy15
ICs9ICQoTElCTFdJUF9CQVNFKS9zZW5kZmlsZS5jfHVuaWtyYWZ0Cj4gICBMSUJMV0lQX1NSQ1Mt
JChDT05GSUdfTFdJUF9TT0NLRVQpICs9ICQoTElCTFdJUF9CQVNFKS9zb2NrZXRzLmN8dW5pa3Jh
ZnQKPiAgIExJQkxXSVBfU09DS0VUU19GTEFHUy15ICs9IC1Xbm8tY2FzdC1mdW5jdGlvbi10eXBl
Cj4gLUxJQkxXSVBfU1JDUy0kKENPTkZJR19MV0lQX0ROUykgKz0gJChMSUJMV0lQX0JBU0UpL2dl
dG5hbWVpbmZvLmN8dW5pa3JhZnQKPiAgIExJQkxXSVBfU1JDUy15ICs9ICQoTElCTFdJUF9FWFRS
QUNURUQpL2NvcmUvaW5pdC5jCj4gICBMSUJMV0lQX1NSQ1MteSArPSAkKExJQkxXSVBfRVhUUkFD
VEVEKS9jb3JlL2RlZi5jCj4gICBMSUJMV0lQX1NSQ1MteSArPSAkKExJQkxXSVBfRVhUUkFDVEVE
KS9jb3JlL2luZXRfY2hrc3VtLmMKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXRkYi5oIGIvaW5j
bHVkZS9uZXRkYi5oCj4gaW5kZXggNzc0MjAxMi4uNTlkMGJkNyAxMDA2NDQKPiAtLS0gYS9pbmNs
dWRlL25ldGRiLmgKPiArKysgYi9pbmNsdWRlL25ldGRiLmgKPiBAQCAtMjMsNiArMjMsOSBAQCBp
bnQgZ2V0YWRkcmluZm8oY29uc3QgY2hhciAqbm9kZSwgY29uc3QgY2hhciAqc2VydmljZSwKPiAg
IAkJc3RydWN0IGFkZHJpbmZvICoqcmVzKTsKPiAgIHZvaWQgZnJlZWFkZHJpbmZvKHN0cnVjdCBh
ZGRyaW5mbyAqcmVzKTsKPiAgIAo+ICtpbnQgZ2V0bmFtZWluZm8oY29uc3Qgc3RydWN0IHNvY2th
ZGRyICphZGRyLCBzb2NrbGVuX3QgYWRkcmxlbiwKPiArCQljaGFyICpob3N0LCBzb2NrbGVuX3Qg
aG9zdGxlbiwKPiArCQljaGFyICpzZXJ2LCBzb2NrbGVuX3Qgc2VydmxlbiwgaW50IGZsYWdzKTsK
PiAgIAo+ICAgI2VuZGlmIC8qIExXSVBfRE5TICYmIExXSVBfU09DS0VUICYmICEoTFdJUF9DT01Q
QVRfU09DS0VUUykgKi8KPiAgIAo+IEBAIC03NCwxMCArNzcsNiBAQCB2b2lkIHNldHByb3RvZW50
KGludCBzdGF5b3Blbik7Cj4gICAjZGVmaW5lIEVBSV9TWVNURU0gICAgIC0xMQo+ICAgI2RlZmlu
ZSBFQUlfT1ZFUkZMT1cgICAtMTIKPiAgIAo+IC1pbnQgZ2V0bmFtZWluZm8oY29uc3Qgc3RydWN0
IHNvY2thZGRyICphZGRyLCBzb2NrbGVuX3QgYWRkcmxlbiwKPiAtCQljaGFyICpob3N0LCBzb2Nr
bGVuX3QgaG9zdGxlbiwKPiAtCQljaGFyICpzZXJ2LCBzb2NrbGVuX3Qgc2VydmxlbiwgaW50IGZs
YWdzKTsKPiAtCj4gICBzdHJ1Y3Qgc2VydmVudCAqZ2V0c2VydmJ5bmFtZShjb25zdCBjaGFyICpu
YW1lLCBjb25zdCBjaGFyICpwcm90byk7Cj4gICBzdHJ1Y3Qgc2VydmVudCAqZ2V0c2VydmJ5cG9y
dChpbnQgcG9ydCwgY29uc3QgY2hhciAqcHJvdG8pOwo+ICAgaW50IGdldHNlcnZieXBvcnRfcihp
bnQgcG9ydCwgY29uc3QgY2hhciAqcHJvdHMsIHN0cnVjdCBzZXJ2ZW50ICpzZSwKPiBkaWZmIC0t
Z2l0IGEvaW5jbHVkZS9zeXMvc29ja2V0LmggYi9pbmNsdWRlL3N5cy9zb2NrZXQuaAo+IGluZGV4
IDgwMDdjYjguLjhmNmVjYmMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9zeXMvc29ja2V0LmgKPiAr
KysgYi9pbmNsdWRlL3N5cy9zb2NrZXQuaAo+IEBAIC0zOCw2ICszOCw3IEBAIGV4dGVybiAiQyIg
ewo+ICAgI2VuZGlmCj4gICAKPiAgICNpbmNsdWRlIDx1ay9jb25maWcuaD4KPiArI2lmIENPTkZJ
R19MV0lQX1NPQ0tFVFMKPiAgICNpZiBDT05GSUdfSEFWRV9MSUJDCj4gICAjaW5jbHVkZSA8ZmNu
dGwuaD4KPiAgICNpbmNsdWRlIDxwb2xsLmg+Cj4gQEAgLTEwNSw0ICsxMDYsNSBAQCBpbnQgc29j
a2V0cGFpcihpbnQgZG9tYWluLCBpbnQgdHlwZSwgaW50IHByb3RvY29sLCBpbnQgc3ZbMl0pOwo+
ICAgfQo+ICAgI2VuZGlmCj4gICAKPiArI2VuZGlmIC8qIENPTkZJR19MV0lQX1NPQ0tFVFMgKi8K
PiAgICNlbmRpZiAvKiBfVUtfTFdJUF9TT0NLRVRfSF8gKi8KPiAKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QK
TWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 13:29:36 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 13:29:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2b2E-0004YB-Uc; Fri, 14 Feb 2020 13:29:34 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=bpgk=4C=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j2b2D-0004Y6-Sp
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 13:29:33 +0000
X-Inumbo-ID: 08a969da-4f2e-11ea-ba4f-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 08a969da-4f2e-11ea-ba4f-12813bfff9fa;
 Fri, 14 Feb 2020 13:29:32 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id BC777F200F;
 Fri, 14 Feb 2020 14:29:31 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id uNUwL6FXRxmf; Fri, 14 Feb 2020 14:29:31 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 7F454F2011
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 14:29:29 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Feb
 2020 14:29:29 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200214123311.25330-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <8530248a-2486-aadc-02ea-a944707fc8af@neclab.eu>
Date: Fri, 14 Feb 2020 14:29:28 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200214123311.25330-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/LIBRUBY] Fix double definition warning
 and add suppress flag for cleaner build.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TG9va3MgZ29vZC4gVGhhbmtzIQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgoKT24gMTQuMDIuMjAgMTM6MzMsIEZlbGlwZSBIdWljaSB3cm90ZToK
PiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Cj4g
LS0tCj4gICBNYWtlZmlsZS51ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
MiArLQo+ICAgLi4uLWZpeC1kb3VibGUtZGVmaW5pdGlvbi13YXJuaW5nLWRpci1jLnBhdGNoIHwg
MjQgKysrKysrKysrKysrKysrKysrKwo+ICAgMiBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25z
KCspLCAxIGRlbGV0aW9uKC0pCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy8wMDAyLWZp
eC1kb3VibGUtZGVmaW5pdGlvbi13YXJuaW5nLWRpci1jLnBhdGNoCj4gCj4gZGlmZiAtLWdpdCBh
L01ha2VmaWxlLnVrIGIvTWFrZWZpbGUudWsKPiBpbmRleCA4ZDYwYmNlLi42ZDcwNmIzIDEwMDY0
NAo+IC0tLSBhL01ha2VmaWxlLnVrCj4gKysrIGIvTWFrZWZpbGUudWsKPiBAQCAtNjYsNyArNjYs
NyBAQCBMSUJSVUJZX1NVUFBSRVNTX0ZMQUdTLXkgPSAtV25vLWNhc3QtZnVuY3Rpb24tdHlwZSAt
V25vLWxvbmctbG9uZyBcCj4gICAJLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25v
LW92ZXJsZW5ndGgtc3RyaW5ncyBcCj4gICAJLVduby1wYWNrZWQtYml0ZmllbGQtY29tcGF0IC1X
bm8tdGF1dG9sb2dpY2FsLWNvbXBhcmUgXAo+ICAgCS1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25v
LXVudXNlZC12YWx1ZSAtV25vLWltcGxpY2l0LWZhbGx0aHJvdWdoIFwKPiAtCS1Xbm8tdW51c2Vk
LWJ1dC1zZXQtdmFyaWFibGUKPiArCS1Xbm8tdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgLVduby10
eXBlLWxpbWl0cwo+ICAgTElCUlVCWV9TVVBQUkVTU19GTEFHUy0kKGNhbGwgZ2NjX3ZlcnNpb25f
Z2UsOSwwKSArPSAtV25vLWFkZHJlc3Mtb2YtcGFja2VkLW1lbWJlcgo+ICAgTElCUlVCWV9TVVBS
RVNTX0NGTEFHUy15ICAgKz0gJChMSUJSVUJZX1NVUFBSRVNTX0ZMQUdTLXkpIFwKPiAgIAktV25v
LXBvaW50ZXItdG8taW50LWNhc3QgLVduby1pbnQtdG8tcG9pbnRlci1jYXN0Cj4gZGlmZiAtLWdp
dCBhL3BhdGNoZXMvMDAwMi1maXgtZG91YmxlLWRlZmluaXRpb24td2FybmluZy1kaXItYy5wYXRj
aCBiL3BhdGNoZXMvMDAwMi1maXgtZG91YmxlLWRlZmluaXRpb24td2FybmluZy1kaXItYy5wYXRj
aAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYWNlNjkxZQo+IC0tLSAv
ZGV2L251bGwKPiArKysgYi9wYXRjaGVzLzAwMDItZml4LWRvdWJsZS1kZWZpbml0aW9uLXdhcm5p
bmctZGlyLWMucGF0Y2gKPiBAQCAtMCwwICsxLDI0IEBACj4gKy0tLSBhL2Rpci5jLm9yaWcJMjAy
MC0wMi0xNCAxMzoxNzowNS4xNDY5MTMyNTkgKzAxMDAKPiArKysrIGIvZGlyLmMJMjAyMC0wMi0x
NCAxMzoxNzoxNy4wMTA3NzY0NDYgKzAxMDAKPiArQEAgLTI0LDEwICsyNCw2IEBACj4gKyAjaW5j
bHVkZSA8dW5pc3RkLmg+Cj4gKyAjZW5kaWYKPiArCj4gKy0jaWZuZGVmIE9fQ0xPRVhFQwo+ICst
IyAgZGVmaW5lIE9fQ0xPRVhFQyAwCj4gKy0jZW5kaWYKPiArLQo+ICsgI2lmbmRlZiBVU0VfT1BF
TkRJUl9BVAo+ICsgIyBpZiBkZWZpbmVkKEhBVkVfRkRPUEVORElSKSAmJiBkZWZpbmVkKEhBVkVf
RElSRkQpICYmIFwKPiArICAgICBkZWZpbmVkKEhBVkVfT1BFTkFUKSAmJiBkZWZpbmVkKEhBVkVf
RlNUQVRBVCkKPiArQEAgLTQzLDYgKzM5LDEwIEBACj4gKyAjIGRlZmluZSBBVF9GRENXRCAtMQo+
ICsgI2VuZGlmCj4gKwo+ICsrI2lmbmRlZiBPX0NMT0VYRUMKPiArKyMgIGRlZmluZSBPX0NMT0VY
RUMgMAo+ICsrI2VuZGlmCj4gKysKPiArICN1bmRlZiBIQVZFX0RJUkVOVF9OQU1MRU4KPiArICNp
ZiBkZWZpbmVkIEhBVkVfRElSRU5UX0ggJiYgIWRlZmluZWQgX1dJTjMyCj4gKyAjIGluY2x1ZGUg
PGRpcmVudC5oPgo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21p
bmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 15:41:20 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 15:41:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2d5h-0008RO-5G; Fri, 14 Feb 2020 15:41:17 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=2sDs=4C=gmail.com=stefanl.teodorescu@srs-us1.protection.inumbo.net>)
 id 1j2d5f-0008RJ-VL
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 15:41:16 +0000
X-Inumbo-ID: 6ed8bb54-4f40-11ea-b0fd-bc764e2007e4
Received: from mail-wm1-x343.google.com (unknown [2a00:1450:4864:20::343])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6ed8bb54-4f40-11ea-b0fd-bc764e2007e4;
 Fri, 14 Feb 2020 15:41:15 +0000 (UTC)
Received: by mail-wm1-x343.google.com with SMTP id g1so10386307wmh.4
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 07:41:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:date:message-id:mime-version
 :content-transfer-encoding;
 bh=Czu5+oLzGdMoWCjbsuTpEORg7Ykp9farKjhhcTqhLu0=;
 b=JGAL53nwqT4MaPlcUZ9YztjRTRx2iUDSK7wm+lTfZMzGBNs61GcdZM63hV0y0mN9cS
 +mAP6DgHOHLPvCygvzAmcKDi+XoCBPnKfv8UcTOuIZH/7/06Im9N6gydTUAO3iHmIezA
 HnqXkqyiqyMx0NI2KfLE/Pn7nqWPtaBGx9oHX+5nRcmaBiAo2Wjx/0Ap5DUk5aes98vI
 Lk5wbQgKtThfZhBG58TBjk8n2ix6hDXPRHycT21EtX74BXnFB/8Og+lKfDyq7hCNCAsb
 k/gtsPsBj3UUz73y4eP4FGLNtZBWwTjCATScAxlGeo61hRYeu8wFcyDpWDCmJB2PawVu
 X1xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
 :content-transfer-encoding;
 bh=Czu5+oLzGdMoWCjbsuTpEORg7Ykp9farKjhhcTqhLu0=;
 b=jZGPaN7TslsNrsW39ubKTo9IgJ071VhYyq5HipAggmKwzpPT4S00EQsu4Xeq/hpR8q
 fCOOlTHbCxXZfwyLGwUBnB2KMevd9K2ob3CFFM3oCkqp1ibvSp5RH5ZyV5CguPHbK634
 2xLYEAyvquGaBu+XVmBnPOKGjxjfgB8XQRzuvI8XYMlaY69vAYM+fu3LFJMDSMiZ3qR7
 GpzfGzcIH+M+nQFhollwvE2JCArJCQccPfEPrF1x3UkVG0BFYopyyXaLnh13h/GOQHgU
 5P2YgamwqL1APyqf79aRWzQvqlEOYnIA10tcci6ff5LGf78iwJvvKpV4WUFMjsBJjSRY
 M+Xw==
X-Gm-Message-State: APjAAAWtDS2KO6iTS24ywbNwbvC1J8sKaCUQPVYuxZ7CWJWEKaF/wfWq
 4OxIH75HIDttdgx1VOuRz6hoBGhEfrSEVg==
X-Google-Smtp-Source: APXvYqxN+Dy6xUtdb6lbWL00IpXOeZfhHSRZNGiQiw8s0e136/aoqw6J5S747XqSpptS9SvDaw7ySg==
X-Received: by 2002:a1c:c5:: with SMTP id 188mr5136972wma.187.1581694873569;
 Fri, 14 Feb 2020 07:41:13 -0800 (PST)
Received: from arch.localdomain ([188.25.40.225])
 by smtp.gmail.com with ESMTPSA id l132sm8023647wmf.16.2020.02.14.07.41.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 14 Feb 2020 07:41:12 -0800 (PST)
From: stefanl.teodorescu@gmail.com
To: minios-devel@lists.xen.org
Date: Fri, 14 Feb 2020 17:41:02 +0200
Message-Id: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
X-Mailer: git-send-email 2.25.0
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH v3 1/3] lib/uktime: Introduce POSIX
 timer stubs
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: simon.kuenzer@neclab.eu, Stefan Teodorescu <stefanl.teodorescu@gmail.com>,
 Costin Lupu <costin.lupu@cs.pub.ro>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogQ29zdGluIEx1cHUgPGNvc3Rpbi5sdXB1QGNzLnB1Yi5ybz4KCldlIHNpbXBseSBpbnRy
b2R1Y2UgdGhlIHN0dWJzIGZvciB0aGVzZSBmdW5jdGlvbnMuIFRoZXkgd2lsbCBoYXZlIHRvIGJl
CmltcGxlbWVudGVkIGxhdGVyLCB0aGVyZWZvcmUgd2UgZG8gbm90IGFkZCBhbnkgbGljZW5zZSBm
b3Igbm93LgoKU2lnbmVkLW9mZi1ieTogQ29zdGluIEx1cHUgPGNvc3Rpbi5sdXB1QGNzLnB1Yi5y
bz4KU2lnbmVkLW9mZi1ieTogU3RlZmFuIFRlb2RvcmVzY3UgPHN0ZWZhbmwudGVvZG9yZXNjdUBn
bWFpbC5jb20+Ci0tLQogbGliL3VrdGltZS9NYWtlZmlsZS51ayAgIHwgIDEgKwogbGliL3VrdGlt
ZS9leHBvcnRzeW1zLnVrIHwgIDUgKysrCiBsaWIvdWt0aW1lL3RpbWVyLmMgICAgICAgfCA4MCAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQs
IDg2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvdWt0aW1lL3RpbWVyLmMK
CmRpZmYgLS1naXQgYS9saWIvdWt0aW1lL01ha2VmaWxlLnVrIGIvbGliL3VrdGltZS9NYWtlZmls
ZS51awppbmRleCA0N2ZiYjRiMy4uMjk3NmExMGYgMTAwNjQ0Ci0tLSBhL2xpYi91a3RpbWUvTWFr
ZWZpbGUudWsKKysrIGIvbGliL3VrdGltZS9NYWtlZmlsZS51awpAQCAtMTEsMyArMTEsNCBAQCBM
SUJVS1RJTUVfU1JDUy15ICs9ICQoTElCVUtUSU1FX0JBU0UpL211c2wtaW1wb3J0ZWQvc3JjL3Rp
bWVnbS5jCiBMSUJVS1RJTUVfU1JDUy15ICs9ICQoTElCVUtUSU1FX0JBU0UpL211c2wtaW1wb3J0
ZWQvc3JjL19fdG1fdG9fc2Vjcy5jCiBMSUJVS1RJTUVfU1JDUy15ICs9ICQoTElCVUtUSU1FX0JB
U0UpL211c2wtaW1wb3J0ZWQvc3JjL19feWVhcl90b19zZWNzLmMKIExJQlVLVElNRV9TUkNTLXkg
Kz0gJChMSUJVS1RJTUVfQkFTRSkvdGltZS5jCitMSUJVS1RJTUVfU1JDUy15ICs9ICQoTElCVUtU
SU1FX0JBU0UpL3RpbWVyLmMKZGlmZiAtLWdpdCBhL2xpYi91a3RpbWUvZXhwb3J0c3ltcy51ayBi
L2xpYi91a3RpbWUvZXhwb3J0c3ltcy51awppbmRleCBiZDljNDljZi4uODJiNzBiN2YgMTAwNjQ0
Ci0tLSBhL2xpYi91a3RpbWUvZXhwb3J0c3ltcy51aworKysgYi9saWIvdWt0aW1lL2V4cG9ydHN5
bXMudWsKQEAgLTksMyArOSw4IEBAIHRpbWVnbQogdGltZXMKIHVzbGVlcAogdXRpbWUKK3RpbWVy
X2NyZWF0ZQordGltZXJfZGVsZXRlCit0aW1lcl9zZXR0aW1lCit0aW1lcl9nZXR0aW1lCit0aW1l
cl9nZXRvdmVycnVuCmRpZmYgLS1naXQgYS9saWIvdWt0aW1lL3RpbWVyLmMgYi9saWIvdWt0aW1l
L3RpbWVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjBjOGRiNDBkCi0t
LSAvZGV2L251bGwKKysrIGIvbGliL3VrdGltZS90aW1lci5jCkBAIC0wLDAgKzEsODAgQEAKKy8q
IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UgKi8KKy8qCisgKiBBdXRob3Jz
OiBDb3N0aW4gTHVwdSA8Y29zdGluLmx1cHVAY3MucHViLnJvPgorICoKKyAqIENvcHlyaWdodCAo
YykgMjAxOSwgVW5pdmVyc2l0eSBQb2xpdGVobmljYSBvZiBCdWNoYXJlc3QuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29w
eXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cworICogICAgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
ICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRQorICogTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorICogUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKgorICogVEhJUyBIRUFERVIgTUFZIE5PVCBCRSBFWFRSQUNURUQgT1IgTU9E
SUZJRUQgSU4gQU5ZIFdBWS4KKyAqLworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx0
aW1lLmg+CisjaW5jbHVkZSA8dWsvZXNzZW50aWFscy5oPgorI2luY2x1ZGUgPHVrL3ByaW50Lmg+
CisKKworaW50IHRpbWVyX2NyZWF0ZShjbG9ja2lkX3QgY2xvY2tpZCBfX3VudXNlZCwKKwkJc3Ry
dWN0IHNpZ2V2ZW50ICpfX3Jlc3RyaWN0IHNldnAgX191bnVzZWQsCisJCXRpbWVyX3QgKl9fcmVz
dHJpY3QgdGltZXJpZCBfX3VudXNlZCkKK3sKKwlXQVJOX1NUVUJCRUQoKTsKKwllcnJubyA9IEVO
T1RTVVA7CisJcmV0dXJuIC0xOworfQorCitpbnQgdGltZXJfZGVsZXRlKHRpbWVyX3QgdGltZXJp
ZCBfX3VudXNlZCkKK3sKKwlXQVJOX1NUVUJCRUQoKTsKKwllcnJubyA9IEVOT1RTVVA7CisJcmV0
dXJuIC0xOworfQorCitpbnQgdGltZXJfc2V0dGltZSh0aW1lcl90IHRpbWVyaWQgX191bnVzZWQs
CisJCWludCBmbGFncyBfX3VudXNlZCwKKwkJY29uc3Qgc3RydWN0IGl0aW1lcnNwZWMgKl9fcmVz
dHJpY3QgbmV3X3ZhbHVlIF9fdW51c2VkLAorCQlzdHJ1Y3QgaXRpbWVyc3BlYyAqX19yZXN0cmlj
dCBvbGRfdmFsdWUgX191bnVzZWQpCit7CisJV0FSTl9TVFVCQkVEKCk7CisJZXJybm8gPSBFTk9U
U1VQOworCXJldHVybiAtMTsKK30KKworaW50IHRpbWVyX2dldHRpbWUodGltZXJfdCB0aW1lcmlk
IF9fdW51c2VkLAorCQlzdHJ1Y3QgaXRpbWVyc3BlYyAqY3Vycl92YWx1ZSBfX3VudXNlZCkKK3sK
KwlXQVJOX1NUVUJCRUQoKTsKKwllcnJubyA9IEVOT1RTVVA7CisJcmV0dXJuIC0xOworfQorCitp
bnQgdGltZXJfZ2V0b3ZlcnJ1bih0aW1lcl90IHRpbWVyaWQgX191bnVzZWQpCit7CisJV0FSTl9T
VFVCQkVEKCk7CisJZXJybm8gPSBFTk9UU1VQOworCXJldHVybiAtMTsKK30KLS0gCjIuMjUuMAoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1k
ZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 15:41:22 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 15:41:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2d5m-0008Rs-7C; Fri, 14 Feb 2020 15:41:22 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=2sDs=4C=gmail.com=stefanl.teodorescu@srs-us1.protection.inumbo.net>)
 id 1j2d5k-0008Rk-VY
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 15:41:20 +0000
X-Inumbo-ID: 6f82e8ea-4f40-11ea-aa99-bc764e2007e4
Received: from mail-wm1-x344.google.com (unknown [2a00:1450:4864:20::344])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6f82e8ea-4f40-11ea-aa99-bc764e2007e4;
 Fri, 14 Feb 2020 15:41:16 +0000 (UTC)
Received: by mail-wm1-x344.google.com with SMTP id a9so11092737wmj.3
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 07:41:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding;
 bh=L+40YNVhclb6E5l3fDlmedTe+7fJRGrZUXxCyJnIK9A=;
 b=BZmuWHIVE+EuhnWjv4j2TId3/Hi1/IY8yhLTnQSTyH9BsDs7PvnW2oT5GlZYzAz+zg
 hk8hdTlHEAzOOH5KcsuNvPWnmihJL3hckub5EgOqecdMyEyGGItt9wmFbub4+fOSV4TC
 iYH1kI8P0PiqESjYM4HGV7aoFIWCpErmNsVA91gVS/LYMUCxLVrQWnT95xX26AAsPx+J
 RNpPW8MrCZ6DpHKV0FIwkGMkOaH65m7gjwZvtG/ubowosMjPpIz95SlV0yO69Sq+3Mqi
 qQE42wq8Q+/dxcjz1zfbVpOp5tNSKNcdDUarn1eyIM9C+EO1gmBmsjwtW4C8q+MDQSQS
 luLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references:mime-version:content-transfer-encoding;
 bh=L+40YNVhclb6E5l3fDlmedTe+7fJRGrZUXxCyJnIK9A=;
 b=Jcgqu5Ae53V7mgx1c7mMUWSLt8NgB79r7XojhZ4ji7bJ77ZSxPlQ6Yt4n5k90XN7R/
 iCBWdA3lqshHS8D9HeFjTDO8wsZF9KmwKCrVSLhgF2Ha/lujJEMaTdKlQNQSwbpv3dk8
 CrXNDWNr0VC28o1InLMl//kETY+4dclF5jCbcVEaXfHdXPOYxfG7cH1O6oYWtZkicJAr
 AuuTVEUpMKbFROfm3hTtCjYIWWBOYMCk6B5jYLs3LEUDz2Aqi9dYTcFGu+hEc9OUqznP
 h4hc7fFGarr4znTCdviwYfEHaRMpeVGtDij7mClZh9B6OWyOnvSIkYzy/Xt0s9xaJXFX
 isww==
X-Gm-Message-State: APjAAAUi+GQjGWFkrcZ3+w7Dbjr6xSfumYx5X1rFqavUBWVRnJrJNKsw
 +cR9mXFzlRFlwdpdo2YfxYuW+jkLUILkqA==
X-Google-Smtp-Source: APXvYqxiUUpgE0pqteFghk0ajqQs7U1Tw3ZbirLQufiPLYczpKQhuG+Vz9tOznwrEaFlSeqU+e7t8w==
X-Received: by 2002:a7b:c4c5:: with SMTP id g5mr5431563wmk.85.1581694874790;
 Fri, 14 Feb 2020 07:41:14 -0800 (PST)
Received: from arch.localdomain ([188.25.40.225])
 by smtp.gmail.com with ESMTPSA id l132sm8023647wmf.16.2020.02.14.07.41.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 14 Feb 2020 07:41:14 -0800 (PST)
From: stefanl.teodorescu@gmail.com
To: minios-devel@lists.xen.org
Date: Fri, 14 Feb 2020 17:41:03 +0200
Message-Id: <20200214154104.114801-2-stefanl.teodorescu@gmail.com>
X-Mailer: git-send-email 2.25.0
In-Reply-To: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
References: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH v3 2/3] lib/devfs: Add /dev/null and
 /dev/zero support
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: simon.kuenzer@neclab.eu, Stefan Teodorescu <stefanl.teodorescu@gmail.com>,
 Costin Lupu <costin.lupu@cs.pub.ro>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogQ29zdGluIEx1cHUgPGNvc3Rpbi5sdXB1QGNzLnB1Yi5ybz4KClRoaXMgaXMgc2hhbWVs
ZXNzbHkgY29waWVkIGFuZCBhZGFwdGVkIGZyb20gb3VyIGltcGxlbWVudGF0aW9uCmZvciAvZGV2
L3JhbmRvbSBkZXZpY2Ugc3VwcG9ydC4KClNpZ25lZC1vZmYtYnk6IENvc3RpbiBMdXB1IDxjb3N0
aW4ubHVwdUBjcy5wdWIucm8+ClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBUZW9kb3Jlc2N1IDxzdGVm
YW5sLnRlb2RvcmVzY3VAZ21haWwuY29tPgotLS0KIGxpYi9kZXZmcy9Db25maWcudWsgICAgICAg
ICAgICAgICB8ICAxNyArKysrCiBsaWIvZGV2ZnMvTWFrZWZpbGUudWsgICAgICAgICAgICAgfCAg
IDEgKwogbGliL2RldmZzL251bGwuYyAgICAgICAgICAgICAgICAgIHwgMTQ1ICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwogbGliL3Zmc2NvcmUvaW5jbHVkZS92ZnNjb3JlL3Vpby5oIHwg
ICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBsaWIvZGV2ZnMvbnVsbC5jCgpkaWZmIC0tZ2l0IGEvbGliL2RldmZzL0NvbmZpZy51ayBi
L2xpYi9kZXZmcy9Db25maWcudWsKaW5kZXggNmYyMWMwMWMuLmFmNjE3NDdmIDEwMDY0NAotLS0g
YS9saWIvZGV2ZnMvQ29uZmlnLnVrCisrKyBiL2xpYi9kZXZmcy9Db25maWcudWsKQEAgLTgsNCAr
OCwyMSBAQCBpZiBMSUJERVZGUwogICAgICAgICBib29sICJNb3VudCAvZGV2IGR1cmluZyBib290
IgogCWRlcGVuZHMgb24gTElCVkZTQ09SRV9BVVRPTU9VTlRfUk9PVEZTCiAgICAgICAgIGRlZmF1
bHQgbgorCisJIyBoaWRkZW4KKwljb25maWcgTElCREVWRlNfREVWX05VTExfWkVSTworCQlib29s
CisJCWRlZmF1bHQgbgorCisJY29uZmlnIExJQkRFVkZTX0RFVl9OVUxMCisJCWJvb2wgIlJlZ2lz
dGVyIG51bGwgZGV2aWNlIgorCQlkZWZhdWx0IHkgaWYgTElCREVWRlNfQVVUT01PVU5UCisJCXNl
bGVjdCBMSUJERVZGU19ERVZfTlVMTF9aRVJPCisJCWRlZmF1bHQgbgorCisJY29uZmlnIExJQkRF
VkZTX0RFVl9aRVJPCisJCWJvb2wgIlJlZ2lzdGVyIHplcm8gZGV2aWNlIgorCQlkZWZhdWx0IHkg
aWYgTElCREVWRlNfQVVUT01PVU5UCisJCXNlbGVjdCBMSUJERVZGU19ERVZfTlVMTF9aRVJPCisJ
CWRlZmF1bHQgbgogZW5kaWYKZGlmZiAtLWdpdCBhL2xpYi9kZXZmcy9NYWtlZmlsZS51ayBiL2xp
Yi9kZXZmcy9NYWtlZmlsZS51awppbmRleCBjNDk2ZmQ1Ni4uYjIzZWJmMTUgMTAwNjQ0Ci0tLSBh
L2xpYi9kZXZmcy9NYWtlZmlsZS51aworKysgYi9saWIvZGV2ZnMvTWFrZWZpbGUudWsKQEAgLTYs
MyArNiw0IEBAIExJQkRFVkZTX0NGTEFHUy0kKGNhbGwgZ2NjX3ZlcnNpb25fZ2UsOCwwKSArPSAt
V25vLWNhc3QtZnVuY3Rpb24tdHlwZQogCiBMSUJERVZGU19TUkNTLXkgKz0gJChMSUJERVZGU19C
QVNFKS9kZXZpY2UuYwogTElCREVWRlNfU1JDUy15ICs9ICQoTElCREVWRlNfQkFTRSkvZGV2ZnNf
dm5vcHMuYworTElCREVWRlNfU1JDUy0kKENPTkZJR19MSUJERVZGU19ERVZfTlVMTF9aRVJPKSAr
PSAkKExJQkRFVkZTX0JBU0UpL251bGwuYwpkaWZmIC0tZ2l0IGEvbGliL2RldmZzL251bGwuYyBi
L2xpYi9kZXZmcy9udWxsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjYw
YWRhOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvbGliL2RldmZzL251bGwuYwpAQCAtMCwwICsxLDE0
NSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZSAqLworLyoKKyAq
IEF1dGhvcnM6IENvc3RpbiBMdXB1IDxjb3N0aW4ubHVwdUBjcy5wdWIucm8+CisgKgorICogQ29w
eXJpZ2h0IChjKSAyMDE5LCBVbml2ZXJzaXR5IFBvbGl0ZWhuaWNhIG9mIEJ1Y2hhcmVzdC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9m
IHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiAgICBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUSElTIEhFQURFUiBNQVkgTk9UIEJFIEVYVFJBQ1RF
RCBPUiBNT0RJRklFRCBJTiBBTlkgV0FZLgorICovCisKKyNpbmNsdWRlIDx1ay9jb25maWcuaD4K
KyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1ay9j
dG9ycy5oPgorI2luY2x1ZGUgPHVrL3ByaW50Lmg+CisjaW5jbHVkZSA8dmZzY29yZS91aW8uaD4K
KyNpbmNsdWRlIDxkZXZmcy9kZXZpY2UuaD4KKworCitpbnQgZGV2X251bGxfd3JpdGUoc3RydWN0
IGRldmljZSAqZGV2IF9fdW51c2VkLCBzdHJ1Y3QgdWlvICp1aW8sIGludCBmbGFncyBfX3VudXNl
ZCkKK3sKKwl1aW8tPnVpb19yZXNpZCA9IDA7CisJcmV0dXJuIDA7Cit9CisKK2ludCBkZXZfbnVs
bF9vcGVuKHN0cnVjdCBkZXZpY2UgKmRldmljZSBfX3VudXNlZCwgaW50IG1vZGUgX191bnVzZWQp
Cit7CisJcmV0dXJuIDA7Cit9CisKKworaW50IGRldl9udWxsX2Nsb3NlKHN0cnVjdCBkZXZpY2Ug
KmRldmljZSBfX3VudXNlZCkKK3sKKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIENPTkZJR19MSUJE
RVZGU19ERVZfTlVMTAorCisjZGVmaW5lIERFVl9OVUxMX05BTUUgIm51bGwiCisKK2ludCBkZXZf
bnVsbF9yZWFkKHN0cnVjdCBkZXZpY2UgKmRldiBfX3VudXNlZCwgc3RydWN0IHVpbyAqdWlvLCBp
bnQgZmxhZ3MgX191bnVzZWQpCit7CisJdWlvLT51aW9fcmVzaWQgPSB1aW8tPnVpb19pb3YtPmlv
dl9sZW47CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZGV2b3BzIG51bGxfZGV2b3Bz
ID0geworCS5yZWFkID0gZGV2X251bGxfcmVhZCwKKwkud3JpdGUgPSBkZXZfbnVsbF93cml0ZSwK
Kwkub3BlbiA9IGRldl9udWxsX29wZW4sCisJLmNsb3NlID0gZGV2X251bGxfY2xvc2UsCit9Owor
CitzdGF0aWMgc3RydWN0IGRyaXZlciBkcnZfbnVsbCA9IHsKKwkuZGV2b3BzID0gJm51bGxfZGV2
b3BzLAorCS5kZXZzeiA9IDAsCisJLm5hbWUgPSBERVZfTlVMTF9OQU1FCit9OworI2VuZGlmCisK
KyNpZmRlZiBDT05GSUdfTElCREVWRlNfREVWX1pFUk8KKworI2RlZmluZSBERVZfWkVST19OQU1F
ICJ6ZXJvIgorCitpbnQgZGV2X3plcm9fcmVhZChzdHJ1Y3QgZGV2aWNlICpkZXYgX191bnVzZWQs
IHN0cnVjdCB1aW8gKnVpbywgaW50IGZsYWdzIF9fdW51c2VkKQoreworCXNpemVfdCBjb3VudDsK
KwljaGFyICpidWY7CisKKwlidWYgPSB1aW8tPnVpb19pb3YtPmlvdl9iYXNlOworCWNvdW50ID0g
dWlvLT51aW9faW92LT5pb3ZfbGVuOworCisJbWVtc2V0KGJ1ZiwgMCwgY291bnQpOworCXVpby0+
dWlvX3Jlc2lkID0gMDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBkZXZvcHMgemVy
b19kZXZvcHMgPSB7CisJLnJlYWQgPSBkZXZfemVyb19yZWFkLAorCS53cml0ZSA9IGRldl9udWxs
X3dyaXRlLAorCS5vcGVuID0gZGV2X251bGxfb3BlbiwKKwkuY2xvc2UgPSBkZXZfbnVsbF9jbG9z
ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZHJpdmVyIGRydl96ZXJvID0geworCS5kZXZvcHMgPSAm
emVyb19kZXZvcHMsCisJLmRldnN6ID0gMCwKKwkubmFtZSA9IERFVl9aRVJPX05BTUUKK307Cisj
ZW5kaWYKKworc3RhdGljIGludCBkZXZmc19yZWdpc3Rlcl9udWxsKHZvaWQpCit7CisJc3RydWN0
IGRldmljZSAqZGV2OworCisjaWZkZWYgQ09ORklHX0xJQkRFVkZTX0RFVl9OVUxMCisJdWtfcHJf
ZGVidWcoIlJlZ2lzdGVyICclcycgdG8gZGV2ZnNcbiIsIERFVl9OVUxMX05BTUUpOworCisJLyog
cmVnaXN0ZXIgL2Rldi9udWxsICovCisJZGV2ID0gZGV2aWNlX2NyZWF0ZSgmZHJ2X251bGwsIERF
Vl9OVUxMX05BTUUsIERfQ0hSKTsKKwlpZiAoZGV2ID09IE5VTEwpIHsKKwkJdWtfcHJfZXJyKCJG
YWlsZWQgdG8gcmVnaXN0ZXIgJyVzJyB0byBkZXZmc1xuIiwgREVWX05VTExfTkFNRSk7CisJCXJl
dHVybiAtMTsKKwl9CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19MSUJERVZGU19ERVZfWkVSTwor
CXVrX3ByX2RlYnVnKCJSZWdpc3RlciAnJXMnIHRvIGRldmZzXG4iLCBERVZfWkVST19OQU1FKTsK
KworCS8qIHJlZ2lzdGVyIC9kZXYvemVybyAqLworCWRldiA9IGRldmljZV9jcmVhdGUoJmRydl96
ZXJvLCBERVZfWkVST19OQU1FLCBEX0NIUik7CisJaWYgKGRldiA9PSBOVUxMKSB7CisJCXVrX3By
X2VycigiRmFpbGVkIHRvIHJlZ2lzdGVyICclcycgdG8gZGV2ZnNcbiIsIERFVl9aRVJPX05BTUUp
OworCQlyZXR1cm4gLTE7CisJfQorI2VuZGlmCisKKwlyZXR1cm4gMDsKK30KKworZGV2ZnNfaW5p
dGNhbGwoZGV2ZnNfcmVnaXN0ZXJfbnVsbCk7CmRpZmYgLS1naXQgYS9saWIvdmZzY29yZS9pbmNs
dWRlL3Zmc2NvcmUvdWlvLmggYi9saWIvdmZzY29yZS9pbmNsdWRlL3Zmc2NvcmUvdWlvLmgKaW5k
ZXggODNkZDViOWEuLmIxNGZkYjgyIDEwMDY0NAotLS0gYS9saWIvdmZzY29yZS9pbmNsdWRlL3Zm
c2NvcmUvdWlvLmgKKysrIGIvbGliL3Zmc2NvcmUvaW5jbHVkZS92ZnNjb3JlL3Vpby5oCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8c3lzL3Vpby5o
PgogI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHVrL2Fzc2VydC5oPgogCiBlbnVtCXVp
b19ydyB7IFVJT19SRUFELCBVSU9fV1JJVEUgfTsKIAotLSAKMi4yNS4wCgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcg
bGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 14 15:41:27 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 14 Feb 2020 15:41:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j2d5r-0008Sr-AI; Fri, 14 Feb 2020 15:41:27 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=2sDs=4C=gmail.com=stefanl.teodorescu@srs-us1.protection.inumbo.net>)
 id 1j2d5p-0008Sc-Vg
 for minios-devel@lists.xen.org; Fri, 14 Feb 2020 15:41:26 +0000
X-Inumbo-ID: 702ff97c-4f40-11ea-bc8e-bc764e2007e4
Received: from mail-wm1-x343.google.com (unknown [2a00:1450:4864:20::343])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 702ff97c-4f40-11ea-bc8e-bc764e2007e4;
 Fri, 14 Feb 2020 15:41:17 +0000 (UTC)
Received: by mail-wm1-x343.google.com with SMTP id a6so11109114wme.2
 for <minios-devel@lists.xen.org>; Fri, 14 Feb 2020 07:41:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding;
 bh=mMNpqDtmiP+0FVx7/5lzPxR9Gtyh0dC2lIk5Jrua5qw=;
 b=kZSYM3YZG33eKELHFoMFxYmnWqHmLsSj3gbUj4cjy9ooVZT6oL4SICz4PdhuZ/Gxue
 kwDQf3ScrShpTjvOh5LyIQ3m3QAqWgizGdn7i2K0nI+ppX9WvPP+pIWBQ+Rll1+oGtx2
 psPyEGla0cqkE0Pr6QBKJTwivnp/ZZ6BrihzlM+4/b6bfBtTfSLGTNbX4QgGopsi+wDI
 NJBNVRGZ6K3/fN7MTY86e10HDr3bpXk7rKxnjEUe0XglMbkd4/tqUvfYrLV+eredee3e
 cqvTlQY1rcV9taGh6LfPAxCW9ufrh0Lx/xV5+CYtn///FBCebhhjHClxTx5h8YwSiV8W
 GsQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
 :references:mime-version:content-transfer-encoding;
 bh=mMNpqDtmiP+0FVx7/5lzPxR9Gtyh0dC2lIk5Jrua5qw=;
 b=pMJCk0JpUCyYETdEphtp6X6IcEkhWSqu3OhK7honz8+596HdVrBgUCxX4JdKuMkCMN
 sR1FQAUVuseqjLNxB/iRF2w1ZNG5a1dtZtfwyjxAq5QsB0dUM75hCwrrRsGAiJA4xo3M
 BplNaWBwfCgnuHiiI7qMrWMUjDuOtSDVebdO2FJCY7mLq8SpCbZIsQybBUPgCS9UvYMi
 FK0mNyLbnb6gd8bWrdT4ITCdSutfo+zpO1phY16PGp3NbKMunrsjPSsBM4hPohg/XBnh
 7ZPucm1SYqTQZPItO7EfM9i5qQSzkidQVjyGP7niydP9DPEvZ5VIngaeFz+Nbid3deaz
 MGVg==
X-Gm-Message-State: APjAAAWLhzGZQtiTfebDfeIROGvoxodHfV2Pok0f/+Uit8GaACTzVb8K
 v57sMb2Fbg0jCnVRavgg/fkyraHk+bh6EQ==
X-Google-Smtp-Source: APXvYqz8Vqd5s5ABfHrltwaZFCofPVLxyvnzsR2+uCuJdW0DOXCA34YOl4hV5fHK0guBTkmcFJD3yw==
X-Received: by 2002:a1c:20d6:: with SMTP id g205mr5477712wmg.38.1581694875933; 
 Fri, 14 Feb 2020 07:41:15 -0800 (PST)
Received: from arch.localdomain ([188.25.40.225])
 by smtp.gmail.com with ESMTPSA id l132sm8023647wmf.16.2020.02.14.07.41.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 14 Feb 2020 07:41:15 -0800 (PST)
From: stefanl.teodorescu@gmail.com
To: minios-devel@lists.xen.org
Date: Fri, 14 Feb 2020 17:41:04 +0200
Message-Id: <20200214154104.114801-3-stefanl.teodorescu@gmail.com>
X-Mailer: git-send-email 2.25.0
In-Reply-To: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
References: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH v3 3/3] lib/posix-user: Add more
 group file related functions
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: simon.kuenzer@neclab.eu, Costin Lupu <costin.lupu@cs.pub.ro>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogQ29zdGluIEx1cHUgPGNvc3Rpbi5sdXB1QGNzLnB1Yi5ybz4KClRoaXMgcGF0Y2ggaW50
cm9kdWNlcyB0aGUgY2hhbmdlcyBuZWVkZWQgZm9yIGl0ZXJhdGluZyB0aHJvdWdoIHRoZQoiL2V0
Yy9ncm91cHMiIGZpbGUuIEJ1dCBiZWNhdXNlIHdlIGN1cnJlbnRseSBwcm92aWRlIG9ubHkgYSBz
aW5nbGUgaGFyZGNvZGVkCmdyb3VwLCB3ZSB3aWxsIHJldHVybiBqdXN0IG9uZSBzaW5nbGUgZW50
cnkuIFRoaXMgY2FuIGJlIGV4dGVuZGVkIGVhc2lseSwKZWl0aGVyIGJ5IGFkZGluZyBtb3JlIGhh
cmRjb2RlZCBncm91cHMgb3IgYnkgdXNpbmcgdGhlIGFjdHVhbCAiL2V0Yy9ncm91cHMiLgpIb3dl
dmVyLCB0aGUgbGF0dGVyIG9wdGlvbiBpcyBzdWJqZWN0IHRvIGZ1dHVyZSB3b3JrLCB3aGVuIHdl
IHdpbGwgbmVlZCBhIG1vcmUKY29uc2lzdGVudCBhbmFseXNpcyByZWdhcmRpbmcgdXNlciBtYW5h
Z2VtZW50IGFuZCBwZXJtaXNzaW9ucyBvbiBVbmlrcmFmdC4KClRoZSBncm91cHMgaXRlcmF0b3Ig
aXMgdGhyZWFkIHNhZmUsIHRoZXJlZm9yZSB3ZSBhbHNvIGludHJvZHVjZSB0aGUgYF9fdWtfdGxz
YCwKcXVhbGlmaWVyIHdoaWNoIGRlcGVuZHMgb24gYENPTkZJR19IQVZFX1NDSEVEYCwgYW5kIG1h
cmsgdGhlIHVzZXJzIGl0ZXJhdG9yIGFzClRMUyBhcyB3ZWxsLiBBbm90aGVyIG1pbm9yIGNoYW5n
ZSByZXZpc2l0cyB0aGlzIGxpYnJhcnkgY29uc3RydWN0b3IgYnkgbWFya2luZwppdCBhcyBhIFVu
aWtyYWZ0IGNvbnN0cnVjdG9yLgoKU2lnbmVkLW9mZi1ieTogQ29zdGluIEx1cHUgPGNvc3Rpbi5s
dXB1QGNzLnB1Yi5ybz4KUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJA
bmVjbGFiLmV1PgotLS0KIGluY2x1ZGUvdWsvZXNzZW50aWFscy5oIHwgIDYgKysrKwogbGliL3Bv
c2l4LXVzZXIvdXNlci5jICAgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWsvZXNzZW50aWFscy5oIGIvaW5jbHVkZS91ay9lc3Nl
bnRpYWxzLmgKaW5kZXggZTgyNjRjNWYuLmE2ZDk2OWU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3Vr
L2Vzc2VudGlhbHMuaAorKysgYi9pbmNsdWRlL3VrL2Vzc2VudGlhbHMuaApAQCAtMTI0LDYgKzEy
NCwxMiBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgX19jb25zdHJ1Y3Rvcl9wcmlvKGx2bCkgX19h
dHRyaWJ1dGVfXyAoKGNvbnN0cnVjdG9yIChsdmwpKSkKICNlbmRpZgogCisjaWZkZWYgQ09ORklH
X0hBVkVfU0NIRUQKKyNkZWZpbmUgX191a190bHMgX190aHJlYWQKKyNlbHNlCisjZGVmaW5lIF9f
dWtfdGxzCisjZW5kaWYKKwogI2Vsc2UKIC8qIFRPIEJFIERFRklORUQgKi8KICNlbmRpZiAvKiBf
X0dOVUNfXyAqLwpkaWZmIC0tZ2l0IGEvbGliL3Bvc2l4LXVzZXIvdXNlci5jIGIvbGliL3Bvc2l4
LXVzZXIvdXNlci5jCmluZGV4IDBkNmNhM2ZiLi43MTVjNGNlZiAxMDA2NDQKLS0tIGEvbGliL3Bv
c2l4LXVzZXIvdXNlci5jCisrKyBiL2xpYi9wb3NpeC11c2VyL3VzZXIuYwpAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHVrL2Vzc2VudGlhbHMuaD4K
ICNpbmNsdWRlIDx1ay9saXN0Lmg+CisjaW5jbHVkZSA8dWsvY3RvcnMuaD4KICNpbmNsdWRlIDx1
ay9wcmludC5oPgogI2luY2x1ZGUgPHVrL3VzZXIuaD4KIApAQCAtNTAsNyArNTEsNyBAQAogI2Rl
ZmluZSBVS19ERUZBVUxUX0dST1VQICAicm9vdCIKICNkZWZpbmUgVUtfREVGQVVMVF9QQVNTICAg
IngiCiAKLXN0YXRpYyBzdHJ1Y3QgcGFzc3dkX2VudHJ5IHsKK3N0YXRpYyBfX3VrX3RscyBzdHJ1
Y3QgcGFzc3dkX2VudHJ5IHsKIAlzdHJ1Y3QgcGFzc3dkICpwYXNzd2Q7CiAKIAlVS19TTElTVF9F
TlRSWShzdHJ1Y3QgcGFzc3dkX2VudHJ5KSBlbnRyaWVzOwpAQCAtNjAsNyArNjEsMTMgQEAgVUtf
U0xJU1RfSEVBRCh1a19lbnRyeV9saXN0LCBzdHJ1Y3QgcGFzc3dkX2VudHJ5KTsKIAogc3RhdGlj
IHN0cnVjdCB1a19lbnRyeV9saXN0IHBhc3N3ZHM7CiAKLXZvaWQgX19jb25zdHJ1Y3RvciBpbml0
X3VrdW5pc3RkKCkKK3N0YXRpYyB2b2lkIGluaXRfZ3JvdXBzKHZvaWQpOworCisvKgorICogVE9E
TyBtYWtlIHBhc3N3ZCBtYW5hZ2VtZW50IGNvbnNpc3RlbnQgd2l0aCBncm91cCBtYW5hZ2VtZW50
CisgKi8KKworc3RhdGljIHZvaWQgaW5pdF9wb3NpeF91c2VyKHZvaWQpCiB7CiAJc3RhdGljIHN0
cnVjdCBwYXNzd2RfZW50cnkgcDE7CiAJc3RhdGljIHN0cnVjdCBwYXNzd2QgcGFzc3dkID0gewpA
QCAtNzcsNyArODQsMTAgQEAgdm9pZCBfX2NvbnN0cnVjdG9yIGluaXRfdWt1bmlzdGQoKQogCiAJ
VUtfU0xJU1RfSU5JVCgmcGFzc3dkcyk7CiAJVUtfU0xJU1RfSU5TRVJUX0hFQUQoJnBhc3N3ZHMs
ICZwMSwgZW50cmllcyk7CisKKwlpbml0X2dyb3VwcygpOwogfQorVUtfQ1RPUl9GVU5DKDIsIGlu
aXRfcG9zaXhfdXNlcik7CiAKIHVpZF90IGdldHVpZCh2b2lkKQogewpAQCAtMTY5LDcgKzE3OSw3
IEBAIGludCBnZXRwd3VpZF9yKHVpZF90IHVpZCBfX3VudXNlZCwgc3RydWN0IHBhc3N3ZCAqcHdk
IF9fdW51c2VkLAogc3RydWN0IHBhc3N3ZCAqZ2V0cHdlbnQodm9pZCkKIHsKIAlzdHJ1Y3QgcGFz
c3dkICpwd2Q7Ci0JCisKIAlpZiAoaXRlciA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIApAQCAt
MzI4LDMgKzMzOCw1OSBAQCBpbnQgZ2V0Z3JuYW1fcihjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qg
Z3JvdXAgKmdycCwKIAogCXJldHVybiAwOwogfQorCitzdHJ1Y3QgZ3JvdXAgKmdldGdyZ2lkKGdp
ZF90IGdpZCkKK3sKKwlzdHJ1Y3QgZ3JvdXAgKnJlczsKKworCWlmIChnaWQgPT0gZ19fLmdyX2dp
ZCkKKwkJcmVzID0gJmdfXzsKKwllbHNlIHsKKwkJcmVzID0gTlVMTDsKKwkJZXJybm8gPSBFTk9F
TlQ7CisJfQorCisJcmV0dXJuIHJlczsKK30KKworc3RhdGljIF9fdWtfdGxzIHN0cnVjdCBncm91
cF9lbnRyeSB7CisJc3RydWN0IGdyb3VwICpncm91cDsKKwlVS19TTElTVF9FTlRSWShzdHJ1Y3Qg
Z3JvdXBfZW50cnkpIGVudHJpZXM7Cit9ICpncm91cHNfaXRlcjsKKworVUtfU0xJU1RfSEVBRCh1
a19ncm91cF9lbnRyeV9saXN0LCBzdHJ1Y3QgZ3JvdXBfZW50cnkpOworCitzdGF0aWMgc3RydWN0
IHVrX2dyb3VwX2VudHJ5X2xpc3QgZ3JvdXBzOworCitzdGF0aWMgdm9pZCBpbml0X2dyb3Vwcyh2
b2lkKQoreworCXN0YXRpYyBzdHJ1Y3QgZ3JvdXBfZW50cnkgZ2U7CisKKwlnZS5ncm91cCA9ICZn
X187CisJVUtfU0xJU1RfSU5JVCgmZ3JvdXBzKTsKKwlVS19TTElTVF9JTlNFUlRfSEVBRCgmZ3Jv
dXBzLCAmZ2UsIGVudHJpZXMpOworfQorCit2b2lkIHNldGdyZW50KHZvaWQpCit7CisJZ3JvdXBz
X2l0ZXIgPSBVS19TTElTVF9GSVJTVCgmZ3JvdXBzKTsKK30KKwordm9pZCBlbmRncmVudCh2b2lk
KQoreworCXNldGdyZW50KCk7Cit9CisKK3N0cnVjdCBncm91cCAqZ2V0Z3JlbnQodm9pZCkKK3sK
KwlzdHJ1Y3QgZ3JvdXAgKnJlczsKKworCWlmIChncm91cHNfaXRlcikgeworCQlyZXMgPSBncm91
cHNfaXRlci0+Z3JvdXA7CisJCWdyb3Vwc19pdGVyID0gVUtfU0xJU1RfTkVYVChncm91cHNfaXRl
ciwgZW50cmllcyk7CisJfSBlbHNlCisJCXJlcyA9IE5VTEw7CisKKwlyZXR1cm4gcmVzOworCit9
Ci0tIAoyLjI1LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWlu
aW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 12:23:05 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 12:23:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3fQV-00061F-IF; Mon, 17 Feb 2020 12:23:03 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3fQU-000617-Bn
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 12:23:02 +0000
X-Inumbo-ID: 3c288ba2-5180-11ea-bfda-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 3c288ba2-5180-11ea-bfda-12813bfff9fa;
 Mon, 17 Feb 2020 12:22:59 +0000 (UTC)
Received: from c408.ant-net (c408.ant-net [192.168.0.168])
 by queen.nlehd.de (Postfix) with ESMTP id 22894411AC;
 Mon, 17 Feb 2020 13:22:59 +0100 (CET)
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: minios-devel@lists.xen.org
Date: Mon, 17 Feb 2020 13:22:57 +0100
Message-Id: <20200217122257.2268-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LWIP PATCH] sys/socket.h: Fix typo of
 guard: CONFIG_LWIP_SOCKET
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: florian.schmidt@neclab.eu, Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Rml4ZXMgYSB0eXBvIG9mIHRoZSBDT05GSUdfTFdJUF9TT0NLRVQgZ3VhcmQuCgpTaWduZWQtb2Zm
LWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KLS0tCiBpbmNsdWRl
L3N5cy9zb2NrZXQuaCB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr
KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3N5cy9zb2NrZXQuaCBiL2lu
Y2x1ZGUvc3lzL3NvY2tldC5oCmluZGV4IDhmNmVjYmMuLmI4OTU2NjAgMTAwNjQ0Ci0tLSBhL2lu
Y2x1ZGUvc3lzL3NvY2tldC5oCisrKyBiL2luY2x1ZGUvc3lzL3NvY2tldC5oCkBAIC0zOCwxMSAr
MzgsMTEgQEAgZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAogI2luY2x1ZGUgPHVrL2NvbmZpZy5oPgot
I2lmIENPTkZJR19MV0lQX1NPQ0tFVFMKKyNpZiBDT05GSUdfTFdJUF9TT0NLRVQKICNpZiBDT05G
SUdfSEFWRV9MSUJDCiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxwb2xsLmg+Ci0jZW5k
aWYKKyNlbmRpZiAvKiBDT05GSUdfSEFWRV9MSUJDICovCiAjaW5jbHVkZSA8bHdpcC9zb2NrZXRz
Lmg+CiAKICNpZm5kZWYgU09DS19DTE9FWEVDCkBAIC0xMDIsOSArMTAyLDEwIEBAIGludCBzZW5k
dG8oaW50IHMsIGNvbnN0IHZvaWQgKmRhdGFwdHIsIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MsCiAJ
ICAgY29uc3Qgc3RydWN0IHNvY2thZGRyICp0bywgc29ja2xlbl90IHRvbGVuKTsKIGludCBzb2Nr
ZXRwYWlyKGludCBkb21haW4sIGludCB0eXBlLCBpbnQgcHJvdG9jb2wsIGludCBzdlsyXSk7CiAK
KyNlbmRpZiAvKiBDT05GSUdfTFdJUF9TT0NLRVQgKi8KKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9
CiAjZW5kaWYKIAotI2VuZGlmIC8qIENPTkZJR19MV0lQX1NPQ0tFVFMgKi8KICNlbmRpZiAvKiBf
VUtfTFdJUF9TT0NLRVRfSF8gKi8KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9z
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv
bWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 12:23:12 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 12:23:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3fQe-000626-KY; Mon, 17 Feb 2020 12:23:12 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3fQc-00061u-Tt
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 12:23:10 +0000
X-Inumbo-ID: 42707c5e-5180-11ea-bfda-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 42707c5e-5180-11ea-bfda-12813bfff9fa;
 Mon, 17 Feb 2020 12:23:10 +0000 (UTC)
Received: from c408.ant-net (c408.ant-net [192.168.0.168])
 by queen.nlehd.de (Postfix) with ESMTP id CE94A4131F;
 Mon, 17 Feb 2020 13:23:09 +0100 (CET)
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: minios-devel@lists.xen.org
Date: Mon, 17 Feb 2020 13:23:08 +0100
Message-Id: <20200217122308.2315-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/LWIP PATCH] net/if.h: Add include guard
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: florian.schmidt@neclab.eu, Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RXhwb3NlIGBzdHJ1Y3QgaWZjb25mYCBhbHNvIHdoZW4gX0dOVV9TT1VSQ0UgaXMgZGVmaW5lZCBi
dXQgYWRkIGFuCmluY2x1ZGUgZ3VhcmQgZm9yIHRoZSBoZWFkZXIuIFRoaXMgd2F5LCBkb3VibGUg
ZGVmaW5pdG9ucyBvZiB0aGUKc3RydWN0IGFyZSBhdm9pZGVkLgoKU2lnbmVkLW9mZi1ieTogU2lt
b24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+Ci0tLQogaW5jbHVkZS9uZXQvaWYu
aCB8IDE1ICsrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyks
IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaWYuaCBiL2luY2x1ZGUv
bmV0L2lmLmgKaW5kZXggNGVhZGM2ZC4uZWEwNGNiOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv
aWYuaAorKysgYi9pbmNsdWRlL25ldC9pZi5oCkBAIC0xLDUgKzEsMTIgQEAKKyNpZm5kZWYgX19O
RVRfSUZfSF9fCisjZGVmaW5lIF9fTkVUX0lGX0hfXworCiAjaW5jbHVkZSA8Y29tcGF0L3Bvc2l4
L25ldC9pZi5oPgogCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisK
IGNoYXIgKmlmX2luZGV4dG9uYW1lICh1bnNpZ25lZCBpbnQsIGNoYXIgKik7CiAKICNpZiBkZWZp
bmVkKF9HTlVfU09VUkNFKSB8fCBkZWZpbmVkKF9CU0RfU09VUkNFKQpAQCAtMjYsNyArMzMsNiBA
QCBjaGFyICppZl9pbmRleHRvbmFtZSAodW5zaWduZWQgaW50LCBjaGFyICopOwogI2RlZmluZSBJ
RkZfVk9MQVRJTEUgKElGRl9MT09QQkFDS3xJRkZfUE9JTlRPUE9JTlR8SUZGX0JST0FEQ0FTVHwg
XAogICAgICAgICBJRkZfRUNIT3xJRkZfTUFTVEVSfElGRl9TTEFWRXxJRkZfUlVOTklOR3xJRkZf
TE9XRVJfVVB8SUZGX0RPUk1BTlQpCiAKLSNpZiBkZWZpbmVkKF9CU0RfU09VUkNFKQogc3RydWN0
IGlmY29uZiB7CiAJaW50IGlmY19sZW47CiAJdW5pb24gewpAQCAtMzQsOCArNDAsMTMgQEAgc3Ry
dWN0IGlmY29uZiB7CiAJCXN0cnVjdCBpZnJlcSAqaWZjdV9yZXE7CiAJfSBpZmNfaWZjdTsKIH07
Ci0jZW5kaWYgLyogX0JTRF9TT1VSQ0UgKi8KICNkZWZpbmUgaWZjX2J1ZiAgICAgICAgIGlmY19p
ZmN1LmlmY3VfYnVmCiAjZGVmaW5lIGlmY19yZXEgICAgICAgICBpZmNfaWZjdS5pZmN1X3JlcQog
CiAjZW5kaWYgLyogZGVmaW5lZChfR05VX1NPVVJDRSkgfHwgZGVmaW5lZChfQlNEX1NPVVJDRSkg
Ki8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIF9fTkVUX0lG
X0hfXyAqLwotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 12:36:37 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 12:36:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3fdc-0007Kb-UC; Mon, 17 Feb 2020 12:36:36 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=RBfq=4F=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j3fdb-0007KW-0D
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 12:36:35 +0000
X-Inumbo-ID: 21ac77c8-5182-11ea-ade5-bc764e2007e4
Received: from mail-vs1-xe44.google.com (unknown [2607:f8b0:4864:20::e44])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 21ac77c8-5182-11ea-ade5-bc764e2007e4;
 Mon, 17 Feb 2020 12:36:34 +0000 (UTC)
Received: by mail-vs1-xe44.google.com with SMTP id 7so10211321vsr.10
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 04:36:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=CK0eqsrjmlYYxBUhPYER7nCg4ESsUhVyEExrvpeNy4k=;
 b=WtNOm+L+nZHeKEx4hJcoBgsq9IkuvffDdf8GWvipMhKUPmugohlDwBjeR3BqKJDvL8
 vsGHFIVx9lO9eaFWleL4w5TdzIXeTeKFpohg4dN53o5l7VtMkroUlgV2qSEKZl5jbywp
 aFQ2HufSfJmAYBDbFsowjO7OjHqVCTmWsKOx+LvE4/rG5adtfne/q3hLCRZC4Lojo3jw
 dZYcpQhhBcAX3N7caSJ7I5FOlrrY+k6a4KGjK0lHEgk9yfroUiWFvJe091fPU/vvb6i6
 fuDj7yPNW/by1EYjsMlk+jAWlEFcORAZAgnWtcXBPBpkkX0V/FBZctdtcdA2MReSBMPy
 nEkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=CK0eqsrjmlYYxBUhPYER7nCg4ESsUhVyEExrvpeNy4k=;
 b=TmhIIKj55FxUhG9QTgy9RoC+gYp+eV8w2OqkoCCQ8JaZJfF4W8ePOYtIt5xjz+FQQK
 EkKbqL9ZvpulKJJ+RlzcHelgNmKmq4JPSQET3c/X3ow212uRkzZMUNB3dG5H9gx3O63f
 F1tM2Z7rNqgpKrvEcwEHhjGBybFKYdlUdZEdUuSwmZPbgLo3X7P2YP2zEmKNMs9+t/70
 Z1vFekwtt9yUDn1Vyqeuds3EG2jFx5r/AKWPi+gfaVOiu1extQsPCTFW1T44o+7LDmLz
 1qejNHRA4870NSc3HsHgO7QrUU76OkXnQOD7Pi3GKt+ux3rgm/S9kpmTwFbI9/ZZ0cEm
 8c7A==
X-Gm-Message-State: APjAAAWqS26aPjjbSeihqS291XWwC8J2VEFV0blIY5bLiLPhvj3xq4EN
 QHfyDq30BJ/Y9uESDtI5Ka0ARJUaziO+YHcR2Z8=
X-Google-Smtp-Source: APXvYqxhH1iKVEMIIl8+RE9BQtbvjCHDRZFzbJlSjUZdei93UosQSGE12iG2oEyOLW9WICcfefbPbmgmGDwKDwo6VNs=
X-Received: by 2002:a67:ad0c:: with SMTP id t12mr7813913vsl.232.1581942993685; 
 Mon, 17 Feb 2020 04:36:33 -0800 (PST)
MIME-Version: 1.0
References: <20200217122257.2268-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200217122257.2268-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Mon, 17 Feb 2020 13:36:22 +0100
Message-ID: <CAEX4t-OANz3p5dLsPoUJ2m553w11rYRWsvfq=vseBL6cSVmrxg@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/LWIP PATCH] sys/socket.h: Fix typo of
 guard: CONFIG_LWIP_SOCKET
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Florian Schmidt <florian.schmidt@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVp
Y2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CgpPbiBNb24sIEZlYiAxNywgMjAyMCBhdCAxOjIz
IFBNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90ZToKPgo+IEZp
eGVzIGEgdHlwbyBvZiB0aGUgQ09ORklHX0xXSVBfU09DS0VUIGd1YXJkLgo+Cj4gU2lnbmVkLW9m
Zi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+Cj4gLS0tCj4gIGlu
Y2x1ZGUvc3lzL3NvY2tldC5oIHwgNyArKysrLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2Vy
dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zeXMvc29j
a2V0LmggYi9pbmNsdWRlL3N5cy9zb2NrZXQuaAo+IGluZGV4IDhmNmVjYmMuLmI4OTU2NjAgMTAw
NjQ0Cj4gLS0tIGEvaW5jbHVkZS9zeXMvc29ja2V0LmgKPiArKysgYi9pbmNsdWRlL3N5cy9zb2Nr
ZXQuaAo+IEBAIC0zOCwxMSArMzgsMTEgQEAgZXh0ZXJuICJDIiB7Cj4gICNlbmRpZgo+Cj4gICNp
bmNsdWRlIDx1ay9jb25maWcuaD4KPiAtI2lmIENPTkZJR19MV0lQX1NPQ0tFVFMKPiArI2lmIENP
TkZJR19MV0lQX1NPQ0tFVAo+ICAjaWYgQ09ORklHX0hBVkVfTElCQwo+ICAjaW5jbHVkZSA8ZmNu
dGwuaD4KPiAgI2luY2x1ZGUgPHBvbGwuaD4KPiAtI2VuZGlmCj4gKyNlbmRpZiAvKiBDT05GSUdf
SEFWRV9MSUJDICovCj4gICNpbmNsdWRlIDxsd2lwL3NvY2tldHMuaD4KPgo+ICAjaWZuZGVmIFNP
Q0tfQ0xPRVhFQwo+IEBAIC0xMDIsOSArMTAyLDEwIEBAIGludCBzZW5kdG8oaW50IHMsIGNvbnN0
IHZvaWQgKmRhdGFwdHIsIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MsCj4gICAgICAgICAgICBjb25z
dCBzdHJ1Y3Qgc29ja2FkZHIgKnRvLCBzb2NrbGVuX3QgdG9sZW4pOwo+ICBpbnQgc29ja2V0cGFp
cihpbnQgZG9tYWluLCBpbnQgdHlwZSwgaW50IHByb3RvY29sLCBpbnQgc3ZbMl0pOwo+Cj4gKyNl
bmRpZiAvKiBDT05GSUdfTFdJUF9TT0NLRVQgKi8KPiArCj4gICNpZmRlZiBfX2NwbHVzcGx1cwo+
ICB9Cj4gICNlbmRpZgo+Cj4gLSNlbmRpZiAvKiBDT05GSUdfTFdJUF9TT0NLRVRTICovCj4gICNl
bmRpZiAvKiBfVUtfTFdJUF9TT0NLRVRfSF8gKi8KPiAtLQo+IDIuMjAuMQo+Cj4KPiBfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IE1pbmlvcy1kZXZlbCBt
YWlsaW5nIGxpc3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczov
L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVsCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwg
bWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp
c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 12:36:42 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 12:36:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3fdh-0007LD-Vh; Mon, 17 Feb 2020 12:36:41 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=RBfq=4F=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j3fdg-0007Kz-4k
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 12:36:40 +0000
X-Inumbo-ID: 25017e82-5182-11ea-aa99-bc764e2007e4
Received: from mail-vk1-xa42.google.com (unknown [2607:f8b0:4864:20::a42])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 25017e82-5182-11ea-aa99-bc764e2007e4;
 Mon, 17 Feb 2020 12:36:39 +0000 (UTC)
Received: by mail-vk1-xa42.google.com with SMTP id c15so1749972vko.9
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 04:36:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=SPEtTtKT8lzfPsisdV3cjJaF+vW4n8TYWeEJN0Ybrrs=;
 b=A1HS833TI3RNP1l0Co9xEjIey24a+mml4qYTnOzFCma/ow+MM3QlzNsYUCS0mM+S/0
 0T05Rt+7ezr4/B066sfNFmZ8XZRveYB5m/DsfCs190w4LaDIAUqREM5OCVrigOuEKSTd
 8QPw6VLVms6GxZPOxBwMlmKAiNvVqJsJfGObarC0PJPHTWXyzNjUvFJvtVY+tx4Owd+N
 QR2YdNQyVJwrygpblEalwmbBBB90SwK+RP/z8/05HQItouU5ZGGVa5oZ43fbd/pDYDhT
 G7eazLNCv8sDRyEpILs9S5ZpPUONFjen1B7ZAajlAFUGJrH+zhP8vAvVkZvFB86UDbLb
 lInQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=SPEtTtKT8lzfPsisdV3cjJaF+vW4n8TYWeEJN0Ybrrs=;
 b=TbwGDV4XQe8Q6amRGPm7+XZ44xflwxNmS1v7EphsJutHeqIAXBNQEY9aoCYT5F+GEz
 rJQnfD+rOH5AqUiN+ZtzQY7t3bHehk2cbEAuegBg42UR2g7vYOaaVIqnh55a2q4iqSlm
 2hoSUyf4ocCcBDQzy109DJwYcLVXnrIa65x7q16Mg/h3sFKxxWP/B44tXhbwTVHDKLbJ
 5IDGmaPxmJvrORK6c1Dmavxn6Z9i8J8zXlRLEYaktpf7KLnKbJCBGpDhx8/x8/CVArmg
 GnZVB0H393fIwhUGEAJFJ3xgLn9hEQWaMdJTzgifNSRej4qQX/VsUqfhCMfJDtSFI9Bq
 RSgA==
X-Gm-Message-State: APjAAAViXrJMRDMPZbEjCB+IxUEbVqyAjFOAHlGDNU6M3YqVZiL5JOgi
 WYFV/cXpl82707Rntq6eCgQoVtTwTEJB14Ijh9859jcm
X-Google-Smtp-Source: APXvYqwSXLD1a3cfscfG+JOdaG33gTv6JX3ISoFddOnaE8/XL3us0PQUgQchRoE6fGVtNSV+JBNicAtTyiICzIq2SNE=
X-Received: by 2002:a1f:9785:: with SMTP id z127mr5334727vkd.48.1581942999379; 
 Mon, 17 Feb 2020 04:36:39 -0800 (PST)
MIME-Version: 1.0
References: <20200217122308.2315-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200217122308.2315-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Mon, 17 Feb 2020 13:36:28 +0100
Message-ID: <CAEX4t-OfA-O-rtFDXANdxUHf5GRGD-S8P3E_dp12h10_x=kOGA@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/LWIP PATCH] net/if.h: Add include guard
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Florian Schmidt <florian.schmidt@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVp
Y2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CgpPbiBNb24sIEZlYiAxNywgMjAyMCBhdCAxOjIz
IFBNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90ZToKPgo+IEV4
cG9zZSBgc3RydWN0IGlmY29uZmAgYWxzbyB3aGVuIF9HTlVfU09VUkNFIGlzIGRlZmluZWQgYnV0
IGFkZCBhbgo+IGluY2x1ZGUgZ3VhcmQgZm9yIHRoZSBoZWFkZXIuIFRoaXMgd2F5LCBkb3VibGUg
ZGVmaW5pdG9ucyBvZiB0aGUKPiBzdHJ1Y3QgYXJlIGF2b2lkZWQuCj4KPiBTaWduZWQtb2ZmLWJ5
OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KPiAtLS0KPiAgaW5jbHVk
ZS9uZXQvaWYuaCB8IDE1ICsrKysrKysrKysrKystLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTMgaW5z
ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9p
Zi5oIGIvaW5jbHVkZS9uZXQvaWYuaAo+IGluZGV4IDRlYWRjNmQuLmVhMDRjYjkgMTAwNjQ0Cj4g
LS0tIGEvaW5jbHVkZS9uZXQvaWYuaAo+ICsrKyBiL2luY2x1ZGUvbmV0L2lmLmgKPiBAQCAtMSw1
ICsxLDEyIEBACj4gKyNpZm5kZWYgX19ORVRfSUZfSF9fCj4gKyNkZWZpbmUgX19ORVRfSUZfSF9f
Cj4gKwo+ICAjaW5jbHVkZSA8Y29tcGF0L3Bvc2l4L25ldC9pZi5oPgo+Cj4gKyNpZmRlZiBfX2Nw
bHVzcGx1cwo+ICtleHRlcm4gIkMiIHsKPiArI2VuZGlmCj4gKwo+ICBjaGFyICppZl9pbmRleHRv
bmFtZSAodW5zaWduZWQgaW50LCBjaGFyICopOwo+Cj4gICNpZiBkZWZpbmVkKF9HTlVfU09VUkNF
KSB8fCBkZWZpbmVkKF9CU0RfU09VUkNFKQo+IEBAIC0yNiw3ICszMyw2IEBAIGNoYXIgKmlmX2lu
ZGV4dG9uYW1lICh1bnNpZ25lZCBpbnQsIGNoYXIgKik7Cj4gICNkZWZpbmUgSUZGX1ZPTEFUSUxF
IChJRkZfTE9PUEJBQ0t8SUZGX1BPSU5UT1BPSU5UfElGRl9CUk9BRENBU1R8IFwKPiAgICAgICAg
ICBJRkZfRUNIT3xJRkZfTUFTVEVSfElGRl9TTEFWRXxJRkZfUlVOTklOR3xJRkZfTE9XRVJfVVB8
SUZGX0RPUk1BTlQpCj4KPiAtI2lmIGRlZmluZWQoX0JTRF9TT1VSQ0UpCj4gIHN0cnVjdCBpZmNv
bmYgewo+ICAgICAgICAgaW50IGlmY19sZW47Cj4gICAgICAgICB1bmlvbiB7Cj4gQEAgLTM0LDgg
KzQwLDEzIEBAIHN0cnVjdCBpZmNvbmYgewo+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgaWZyZXEg
KmlmY3VfcmVxOwo+ICAgICAgICAgfSBpZmNfaWZjdTsKPiAgfTsKPiAtI2VuZGlmIC8qIF9CU0Rf
U09VUkNFICovCj4gICNkZWZpbmUgaWZjX2J1ZiAgICAgICAgIGlmY19pZmN1LmlmY3VfYnVmCj4g
ICNkZWZpbmUgaWZjX3JlcSAgICAgICAgIGlmY19pZmN1LmlmY3VfcmVxCj4KPiAgI2VuZGlmIC8q
IGRlZmluZWQoX0dOVV9TT1VSQ0UpIHx8IGRlZmluZWQoX0JTRF9TT1VSQ0UpICovCj4gKwo+ICsj
aWZkZWYgX19jcGx1c3BsdXMKPiArfQo+ICsjZW5kaWYKPiArCj4gKyNlbmRpZiAvKiBfX05FVF9J
Rl9IX18gKi8KPiAtLQo+IDIuMjAuMQo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwo+IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBNaW5pb3Mt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 13:24:49 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 13:24:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3gOF-0003ck-84; Mon, 17 Feb 2020 13:24:47 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=6POj=4F=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j3gOD-0003cb-ST
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 13:24:45 +0000
X-Inumbo-ID: dbfa6990-5188-11ea-ade5-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id dbfa6990-5188-11ea-ade5-bc764e2007e4;
 Mon, 17 Feb 2020 13:24:43 +0000 (UTC)
Received: from localhost (c110.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 504EA411AC;
 Mon, 17 Feb 2020 14:24:43 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Mon, 17 Feb 2020 14:24:42 +0100
Message-Id: <20200217132442.26335-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH] README.md: update to match current
 state of project.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VXBkYXRlIFJFQURNRS5tZCB0byBpbmNsdWRlIGxpbmtzIHRvIHRoZSBwcm9qZWN0J3MgbmV3IHdl
YnNpdGUgYXMgd2VsbAphcyB0byB0aGUgbmV3IGtyYWZ0IHRvb2wuCgpTaWduZWQtb2ZmLWJ5OiBG
ZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Ci0tLQogUkVBRE1FLm1kIHwgNDYg
KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo
YW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1JF
QURNRS5tZCBiL1JFQURNRS5tZAppbmRleCA0NDU5YmNhLi40MDhhZjcwIDEwMDY0NAotLS0gYS9S
RUFETUUubWQKKysrIGIvUkVBRE1FLm1kCkBAIC0xLDUgKzEsNCBAQAotVW5pa3JhZnQgLSAiVW5p
a2VybmVsIENyYWZ0aW5nIgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIFVuaWty
YWZ0IC0gVW5sZWFzaCB0aGUgUG93ZXIgb2YgVW5pa2VybmVscwogCiBVbmlrcmFmdCBpcyBhbiBh
dXRvbWF0ZWQgc3lzdGVtIGZvciBidWlsZGluZyBzcGVjaWFsaXplZCBPU2VzIGFuZAogdW5pa2Vy
bmVscyB0YWlsb3JlZCB0byB0aGUgbmVlZHMgb2Ygc3BlY2lmaWMgYXBwbGljYXRpb25zLiBJdCBp
cyBiYXNlZApAQCAtOCw0NCArNywyNSBAQCBvZiB0aGUgZnVuY3Rpb25hbGl0eSBjb21tb25seSBm
b3VuZCBpbiBhbiBvcGVyYXRpbmcgc3lzdGVtIChlLmcuLAogbWVtb3J5IGFsbG9jYXRpb24sIHNj
aGVkdWxpbmcsIGZpbGVzeXN0ZW0gc3VwcG9ydCwgbmV0d29yayBzdGFjaywKIGV0Yy4pLgogCi1J
biBhZGRpdGlvbiwgVW5pa3JhZnQgaGFzIHRoZSBjb25jZXB0IG9mIGV4dGVybmFsIGxpYnJhcmll
cy4gVGhlc2UgYXJlCi13aGF0IHdlIGNvbW1vbmx5IHVuZGVyc3RhbmQgYXMgc3RhbmRhcmQgbGli
cmFyaWVzIHN1Y2ggYXMgbGliYyBvcgotb3BlbnNzbCwgYW5kIGhlbHAgdG8gZW5oYW5jZSB0aGUg
ZnVuY3Rpb25hbGl0eSBvZiBVbmlrcmFmdCBhbmQgdGhlCi1yYW5nZSBvZiBhcHBsaWNhdGlvbnMg
aXQgaXMgYWJsZSB0byBzdXBwb3J0LgotCiBVbmlrcmFmdCBzdXBwb3J0cyBtdWx0aXBsZSB0YXJn
ZXQgcGxhdGZvcm1zIChlLmcuLCBYZW4sIEtWTSBhbmQgTGludXgKIHVzZXJzcGFjZSBmb3IgZGV2
ZWxvcG1lbnQgcHVycG9zZXMpLCBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGJ1aWxkCiBtdWx0
aXBsZSBpbWFnZXMsIG9uZSBmb3IgZWFjaCBwbGF0Zm9ybSwgZm9yIGEgc2luZ2xlIGFwcGxpY2F0
aW9uCiAqd2l0aG91dCogcmVxdWlyaW5nIHRoZSBhcHBsaWNhdGlvbiBkZXZlbG9wZXIgdG8gZG8g
YW55IGFkZGl0aW9uYWwsCi1wbGF0Zm9ybS1zcGVjaWZpYyB3b3JrLgorcGxhdGZvcm0tc3BlY2lm
aWMgd29yay4gSW4gYWxsLCBVbmlrcmFmdCBpcyBhYmxlIHRvIGJ1aWxkIHNwZWNpYWxpemVkCitP
U2VzIGFuZCB1bmlrZXJuZWxzIHRhcmdldGVkIGF0IHNwZWNpZmljIGFwcGxpY2F0aW9ucyB3aXRo
b3V0CityZXF1aXJpbmcgdGhlIHRpbWUtY29uc3VtaW5nLCBleHBlcnQgd29yayB0aGF0IGlzIHJl
cXVpcmVkIHRvZGF5IHRvCitidWlsZCBzdWNoIGltYWdlcy4KIAotVGhlIGNvbmZpZ3VyYXRpb24g
YW5kIGJ1aWxkIHByb2Nlc3MgYXJlIGRyaXZlbiBieSBhIG1lbnUgc3lzdGVtCi1pbnNwaXJlZCBi
eSBMaW51eCdzIGtDb25maWcgc3lzdGVtLCBtYWtpbmcgaXQgZWFzeSB0byBjaG9vc2UgZGlmZmVy
ZW50Ci1saWJyYXJpZXMgYW5kIGNvbmZpZ3VyZSB0aGVtLiBUaGlzIHNpbXBsaWZpZXMgdGhlIHBy
b2Nlc3Mgb2YgdHJ5aW5nCi1vdXQgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zIGluIG9yZGVyIHRv
IGV4dHJhY3QgdGhlIGJlc3QgcG9zc2libGUKLXBlcmZvcm1hbmNlIG91dCBvZiBhIHBhcnRpY3Vs
YXIgYXBwbGljYXRpb24uCisjIyBHZXR0aW5nIFN0YXJ0ZWQKK1RoZSBlYXNpZXN0IHdheSB0byBn
ZXQgc3RhcnRlZCB3aXRoIFVuaWtyYWZ0IGlzIHRvIGZvbGxvdyB0aGUKK1tpbnN0cnVjdGlvbnNd
KGh0dHA6Ly93d3cudW5pa3JhZnQub3JnL2dldHRpbmctc3RhcnRlZC5tZCkgb24gb3VyIHdlYnNp
dGUncyBnZXR0aW5nIHN0YXJ0ZWQgcGFnZS4KIAotSW4gYWxsLCBVbmlrcmFmdCBpcyBhYmxlIHRv
IGJ1aWxkIHNwZWNpYWxpemVkIE9TZXMgYW5kIHVuaWtlcm5lbHMKLXRhcmdldGVkIGF0IHNwZWNp
ZmljIGFwcGxpY2F0aW9ucyB3aXRob3V0IHJlcXVpcmluZyB0aGUKLXRpbWUtY29uc3VtaW5nLCBl
eHBlcnQgd29yayB0aGF0IGlzIHJlcXVpcmVkIHRvZGF5IHRvIGJ1aWxkIHN1Y2gKLWltYWdlcy4K
KyMjIENvbnRyaWJ1dGluZworSWYgeW91J3JlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHBs
ZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgbGlzdCBvZiBbb3BlbiBwcm9qZWN0c10oaHR0cHM6Ly9n
aXRodWIuY29tL3VuaWtyYWZ0L3VuaWtyYWZ0L2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVu
K2xhYmVsJTNBcHJvamVjdCkuIElmIG9uZSBvZiB0aGVzZSBpbnRlcmVzdHMgeW91IHBsZWFzZSBk
cm9wIHVzIGEgbGluZSB2aWEgdGhlIFttYWlsaW5nIGxpc3RdKGh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbCkgb3IgZGlyZWN0
bHkgYXQgdW5pa3JhZnRAbGlzdHNlcnYubmVjbGFiLmV1IC4KIAorIyMgRnVydGhlciBSZXNvdXJj
ZXMKIEZvciBtb3JlIGluZm9ybWF0aW9uIGluZm9ybWF0aW9uIGFib3V0IFVuaWtyYWZ0LCBpbmNs
dWRpbmcgdXNlciBhbmQKIGRldmVsb3BlciBndWlkZXMsIHBsZWFzZSByZWZlciB0byB0aGUgYGRv
Y3MvZ3VpZGVzYCBkaXJlY3Rvcnkgb3IgcG9pbnQKIHlvdXIgYnJvd3NlciB0byB0aGUgVW5pa3Jh
ZnQKLVtkb2N1bWVudGF0aW9uXShodHRwOi8vZG9jcy51bmlrcmFmdC5vcmcvKQotCi1Db250cmli
dXRpbmcKLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUlmIHlvdSdyZSBpbnRlcmVzdGVkIGluIGNvbnRy
aWJ1dGluZyBwbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIGxpc3Qgb2YKLVtvcGVuIHByb2plY3Rz
XShodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQvdW5pa3JhZnQvaXNzdWVzKS4gSWYgb25lCi1v
ZiB0aGVzZSBpbnRlcmVzdHMgeW91IHBsZWFzZSBkcm9wIHVzIGEgbGluZSB2aWEgdGhlIG1haWxp
bmcgbGlzdCBvcgotZGlyZWN0bHkgYXQgdW5pa3JhZnRAbGlzdHNlcnYubmVjbGFiLmV1IC4KLQot
RnVydGhlciBSZXNvdXJjZXMKLS0tLS0tLS0tLS0tLS0tLS0tCi0qIFtVbmlrcmFmdCBDb3JlIFRl
YW1dKGh0dHBzOi8vd3d3LnhlbnByb2plY3Qub3JnL2RldmVsb3BlcnMvdGVhbXMvdW5pa3JhZnQu
aHRtbCkKLSogW01haWxpbmcgTGlzdCBBcmNoaXZlXShodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2FyY2hpdmVzL2h0bWwvbWluaW9zLWRldmVsKQotKiBbTWFpbGluZyBMaXN0IFN1YnNjcmlw
dGlvbl0obWFpbHRvOm1pbmlvcy1kZXZlbC1yZXF1ZXN0QGxpc3RzLnhlbnByb2plY3Qub3JnKQot
KiBbUGF0Y2h3b3JrXShodHRwczovL3BhdGNod29yay51bmlrcmFmdC5vcmcvcHJvamVjdC91bmlr
cmFmdC9saXN0LykKK1tkb2N1bWVudGF0aW9uXShodHRwOi8vZG9jcy51bmlrcmFmdC5vcmcvKS4g
RnVydGhlciByZXNvdXJjZXMgY2FuIGJlCitmb3VuZCBvbiB0aGUgcHJvamVjdCdzIFt3ZWJzaXRl
XShodHRwOi8vd3d3LnVuaWtyYWZ0Lm9yZy8pIC4KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 13:29:04 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 13:29:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3gSO-0003hc-KD; Mon, 17 Feb 2020 13:29:04 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3gSN-0003hW-6L
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 13:29:03 +0000
X-Inumbo-ID: 73e46b54-5189-11ea-bfe9-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 73e46b54-5189-11ea-bfe9-12813bfff9fa;
 Mon, 17 Feb 2020 13:29:00 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id A8CF31002CD;
 Mon, 17 Feb 2020 14:28:58 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id jF47n0DDmbws; Mon, 17 Feb 2020 14:28:58 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 8310EFFDDC
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 14:28:58 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 17 Feb
 2020 14:28:58 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200217132442.26335-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <810fa858-6e1c-9ff1-650f-b303281d7867@neclab.eu>
Date: Mon, 17 Feb 2020 14:28:57 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200217132442.26335-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] README.md: update to match
 current state of project.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFi
LmV1PgoKT24gMTcuMDIuMjAgMTQ6MjQsIEZlbGlwZSBIdWljaSB3cm90ZToKPiBVcGRhdGUgUkVB
RE1FLm1kIHRvIGluY2x1ZGUgbGlua3MgdG8gdGhlIHByb2plY3QncyBuZXcgd2Vic2l0ZSBhcyB3
ZWxsCj4gYXMgdG8gdGhlIG5ldyBrcmFmdCB0b29sLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEZlbGlw
ZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KPiAtLS0KPiAgIFJFQURNRS5tZCB8IDQ2
ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDEgZmls
ZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t
Z2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1kCj4gaW5kZXggNDQ1OWJjYS4uNDA4YWY3MCAxMDA2
NDQKPiAtLS0gYS9SRUFETUUubWQKPiArKysgYi9SRUFETUUubWQKPiBAQCAtMSw1ICsxLDQgQEAK
PiAtVW5pa3JhZnQgLSAiVW5pa2VybmVsIENyYWZ0aW5nIgo+IC09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KPiArIyBVbmlrcmFmdCAtIFVubGVhc2ggdGhlIFBvd2VyIG9mIFVuaWtlcm5l
bHMKPiAgIAo+ICAgVW5pa3JhZnQgaXMgYW4gYXV0b21hdGVkIHN5c3RlbSBmb3IgYnVpbGRpbmcg
c3BlY2lhbGl6ZWQgT1NlcyBhbmQKPiAgIHVuaWtlcm5lbHMgdGFpbG9yZWQgdG8gdGhlIG5lZWRz
IG9mIHNwZWNpZmljIGFwcGxpY2F0aW9ucy4gSXQgaXMgYmFzZWQKPiBAQCAtOCw0NCArNywyNSBA
QCBvZiB0aGUgZnVuY3Rpb25hbGl0eSBjb21tb25seSBmb3VuZCBpbiBhbiBvcGVyYXRpbmcgc3lz
dGVtIChlLmcuLAo+ICAgbWVtb3J5IGFsbG9jYXRpb24sIHNjaGVkdWxpbmcsIGZpbGVzeXN0ZW0g
c3VwcG9ydCwgbmV0d29yayBzdGFjaywKPiAgIGV0Yy4pLgo+ICAgCj4gLUluIGFkZGl0aW9uLCBV
bmlrcmFmdCBoYXMgdGhlIGNvbmNlcHQgb2YgZXh0ZXJuYWwgbGlicmFyaWVzLiBUaGVzZSBhcmUK
PiAtd2hhdCB3ZSBjb21tb25seSB1bmRlcnN0YW5kIGFzIHN0YW5kYXJkIGxpYnJhcmllcyBzdWNo
IGFzIGxpYmMgb3IKPiAtb3BlbnNzbCwgYW5kIGhlbHAgdG8gZW5oYW5jZSB0aGUgZnVuY3Rpb25h
bGl0eSBvZiBVbmlrcmFmdCBhbmQgdGhlCj4gLXJhbmdlIG9mIGFwcGxpY2F0aW9ucyBpdCBpcyBh
YmxlIHRvIHN1cHBvcnQuCj4gLQo+ICAgVW5pa3JhZnQgc3VwcG9ydHMgbXVsdGlwbGUgdGFyZ2V0
IHBsYXRmb3JtcyAoZS5nLiwgWGVuLCBLVk0gYW5kIExpbnV4Cj4gICB1c2Vyc3BhY2UgZm9yIGRl
dmVsb3BtZW50IHB1cnBvc2VzKSwgc28gdGhhdCBpdCBpcyBwb3NzaWJsZSB0byBidWlsZAo+ICAg
bXVsdGlwbGUgaW1hZ2VzLCBvbmUgZm9yIGVhY2ggcGxhdGZvcm0sIGZvciBhIHNpbmdsZSBhcHBs
aWNhdGlvbgo+ICAgKndpdGhvdXQqIHJlcXVpcmluZyB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVy
IHRvIGRvIGFueSBhZGRpdGlvbmFsLAo+IC1wbGF0Zm9ybS1zcGVjaWZpYyB3b3JrLgo+ICtwbGF0
Zm9ybS1zcGVjaWZpYyB3b3JrLiBJbiBhbGwsIFVuaWtyYWZ0IGlzIGFibGUgdG8gYnVpbGQgc3Bl
Y2lhbGl6ZWQKPiArT1NlcyBhbmQgdW5pa2VybmVscyB0YXJnZXRlZCBhdCBzcGVjaWZpYyBhcHBs
aWNhdGlvbnMgd2l0aG91dAo+ICtyZXF1aXJpbmcgdGhlIHRpbWUtY29uc3VtaW5nLCBleHBlcnQg
d29yayB0aGF0IGlzIHJlcXVpcmVkIHRvZGF5IHRvCj4gK2J1aWxkIHN1Y2ggaW1hZ2VzLgo+ICAg
Cj4gLVRoZSBjb25maWd1cmF0aW9uIGFuZCBidWlsZCBwcm9jZXNzIGFyZSBkcml2ZW4gYnkgYSBt
ZW51IHN5c3RlbQo+IC1pbnNwaXJlZCBieSBMaW51eCdzIGtDb25maWcgc3lzdGVtLCBtYWtpbmcg
aXQgZWFzeSB0byBjaG9vc2UgZGlmZmVyZW50Cj4gLWxpYnJhcmllcyBhbmQgY29uZmlndXJlIHRo
ZW0uIFRoaXMgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiB0cnlpbmcKPiAtb3V0IGRpZmZlcmVu
dCBjb25maWd1cmF0aW9ucyBpbiBvcmRlciB0byBleHRyYWN0IHRoZSBiZXN0IHBvc3NpYmxlCj4g
LXBlcmZvcm1hbmNlIG91dCBvZiBhIHBhcnRpY3VsYXIgYXBwbGljYXRpb24uCj4gKyMjIEdldHRp
bmcgU3RhcnRlZAo+ICtUaGUgZWFzaWVzdCB3YXkgdG8gZ2V0IHN0YXJ0ZWQgd2l0aCBVbmlrcmFm
dCBpcyB0byBmb2xsb3cgdGhlCj4gK1tpbnN0cnVjdGlvbnNdKGh0dHA6Ly93d3cudW5pa3JhZnQu
b3JnL2dldHRpbmctc3RhcnRlZC5tZCkgb24gb3VyIHdlYnNpdGUncyBnZXR0aW5nIHN0YXJ0ZWQg
cGFnZS4KPiAgIAo+IC1JbiBhbGwsIFVuaWtyYWZ0IGlzIGFibGUgdG8gYnVpbGQgc3BlY2lhbGl6
ZWQgT1NlcyBhbmQgdW5pa2VybmVscwo+IC10YXJnZXRlZCBhdCBzcGVjaWZpYyBhcHBsaWNhdGlv
bnMgd2l0aG91dCByZXF1aXJpbmcgdGhlCj4gLXRpbWUtY29uc3VtaW5nLCBleHBlcnQgd29yayB0
aGF0IGlzIHJlcXVpcmVkIHRvZGF5IHRvIGJ1aWxkIHN1Y2gKPiAtaW1hZ2VzLgo+ICsjIyBDb250
cmlidXRpbmcKPiArSWYgeW91J3JlIGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHBsZWFzZSB0
YWtlIGEgbG9vayBhdCB0aGUgbGlzdCBvZiBbb3BlbiBwcm9qZWN0c10oaHR0cHM6Ly9naXRodWIu
Y29tL3VuaWtyYWZ0L3VuaWtyYWZ0L2lzc3Vlcz9xPWlzJTNBaXNzdWUraXMlM0FvcGVuK2xhYmVs
JTNBcHJvamVjdCkuIElmIG9uZSBvZiB0aGVzZSBpbnRlcmVzdHMgeW91IHBsZWFzZSBkcm9wIHVz
IGEgbGluZSB2aWEgdGhlIFttYWlsaW5nIGxpc3RdKGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbCkgb3IgZGlyZWN0bHkgYXQg
dW5pa3JhZnRAbGlzdHNlcnYubmVjbGFiLmV1IC4KPiAgIAo+ICsjIyBGdXJ0aGVyIFJlc291cmNl
cwo+ICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gaW5mb3JtYXRpb24gYWJvdXQgVW5pa3JhZnQsIGlu
Y2x1ZGluZyB1c2VyIGFuZAo+ICAgZGV2ZWxvcGVyIGd1aWRlcywgcGxlYXNlIHJlZmVyIHRvIHRo
ZSBgZG9jcy9ndWlkZXNgIGRpcmVjdG9yeSBvciBwb2ludAo+ICAgeW91ciBicm93c2VyIHRvIHRo
ZSBVbmlrcmFmdAo+IC1bZG9jdW1lbnRhdGlvbl0oaHR0cDovL2RvY3MudW5pa3JhZnQub3JnLykK
PiAtCj4gLUNvbnRyaWJ1dGluZwo+IC0tLS0tLS0tLS0tLS0tLS0tLQo+IC0KPiAtSWYgeW91J3Jl
IGludGVyZXN0ZWQgaW4gY29udHJpYnV0aW5nIHBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgbGlz
dCBvZgo+IC1bb3BlbiBwcm9qZWN0c10oaHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L3VuaWty
YWZ0L2lzc3VlcykuIElmIG9uZQo+IC1vZiB0aGVzZSBpbnRlcmVzdHMgeW91IHBsZWFzZSBkcm9w
IHVzIGEgbGluZSB2aWEgdGhlIG1haWxpbmcgbGlzdCBvcgo+IC1kaXJlY3RseSBhdCB1bmlrcmFm
dEBsaXN0c2Vydi5uZWNsYWIuZXUgLgo+IC0KPiAtRnVydGhlciBSZXNvdXJjZXMKPiAtLS0tLS0t
LS0tLS0tLS0tLS0KPiAtKiBbVW5pa3JhZnQgQ29yZSBUZWFtXShodHRwczovL3d3dy54ZW5wcm9q
ZWN0Lm9yZy9kZXZlbG9wZXJzL3RlYW1zL3VuaWtyYWZ0Lmh0bWwpCj4gLSogW01haWxpbmcgTGlz
dCBBcmNoaXZlXShodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwvbWlu
aW9zLWRldmVsKQo+IC0qIFtNYWlsaW5nIExpc3QgU3Vic2NyaXB0aW9uXShtYWlsdG86bWluaW9z
LWRldmVsLXJlcXVlc3RAbGlzdHMueGVucHJvamVjdC5vcmcpCj4gLSogW1BhdGNod29ya10oaHR0
cHM6Ly9wYXRjaHdvcmsudW5pa3JhZnQub3JnL3Byb2plY3QvdW5pa3JhZnQvbGlzdC8pCj4gK1tk
b2N1bWVudGF0aW9uXShodHRwOi8vZG9jcy51bmlrcmFmdC5vcmcvKS4gRnVydGhlciByZXNvdXJj
ZXMgY2FuIGJlCj4gK2ZvdW5kIG9uIHRoZSBwcm9qZWN0J3MgW3dlYnNpdGVdKGh0dHA6Ly93d3cu
dW5pa3JhZnQub3JnLykgLgo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 14:33:07 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 14:33:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3hSL-00022U-NJ; Mon, 17 Feb 2020 14:33:05 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3hSK-00022P-QY
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 14:33:04 +0000
X-Inumbo-ID: 66c25e08-5192-11ea-bfff-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 66c25e08-5192-11ea-bfff-12813bfff9fa;
 Mon, 17 Feb 2020 14:33:02 +0000 (UTC)
Received: from c408.ant-net (c408.ant-net [192.168.0.168])
 by queen.nlehd.de (Postfix) with ESMTP id 78DE6410B0;
 Mon, 17 Feb 2020 15:33:01 +0100 (CET)
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: minios-devel@lists.xen.org
Date: Mon, 17 Feb 2020 15:33:00 +0100
Message-Id: <20200217143300.12131-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/RUBY PATCH] Config.uk: Update dependency
 to posix-sysinfo
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: felipe.huici@neclab.eu, Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VXBkYXRlIGRlcGVuZGVuY3kgdG8gcG9zaXgtc3lzaW5mbyBhbmQgaGFyZC1zZWxlY3RzIGx3SVAg
c29ja2V0cy4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVj
bGFiLmV1PgotLS0KIENvbmZpZy51ayB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp
b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvQ29uZmlnLnVrIGIvQ29uZmlnLnVr
CmluZGV4IGUxNjM2ODcuLjM0OTFhMGYgMTAwNjQ0Ci0tLSBhL0NvbmZpZy51aworKysgYi9Db25m
aWcudWsKQEAgLTcsNyArNyw3IEBAIG1lbnVjb25maWcgTElCUlVCWQogCXNlbGVjdCBMSUJWRlND
T1JFCiAJc2VsZWN0IExJQlNZU0NBTExfU0hJTQogCXNlbGVjdCBMSUJVS01NQVAKLQlzZWxlY3Qg
VUtTWVNJTkZPCisJc2VsZWN0IExJQlBPU0lYX1NZU0lORk8KIAlzZWxlY3QgTElCUE9TSVhfTElC
REwKIAlzZWxlY3QgTElCTkVXTElCQwogCXNlbGVjdCBMSUJDT01QSUxFUl9SVApAQCAtMTYsNiAr
MTYsNyBAQCBtZW51Y29uZmlnIExJQlJVQlkKIAlzZWxlY3QgQ1hYX1RIUkVBRFMKIAlzZWxlY3Qg
TElCUFRIUkVBRF9FTUJFRERFRAogCXNlbGVjdCBMSUJMV0lQCisJc2VsZWN0IExXSVBfU09DS0VU
CiAKIGlmIExJQlJVQlkKIGNvbmZpZyBMSUJSVUJZX01JTkkKLS0gCjIuMjAuMQoKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWls
aW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 14:37:15 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 14:37:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3hWN-000279-3J; Mon, 17 Feb 2020 14:37:15 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=RBfq=4F=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j3hWM-000274-FM
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 14:37:14 +0000
X-Inumbo-ID: fced5644-5192-11ea-ade5-bc764e2007e4
Received: from mail-vs1-xe43.google.com (unknown [2607:f8b0:4864:20::e43])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fced5644-5192-11ea-ade5-bc764e2007e4;
 Mon, 17 Feb 2020 14:37:13 +0000 (UTC)
Received: by mail-vs1-xe43.google.com with SMTP id c18so10470249vsq.7
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 06:37:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=woeLZ5BX+qIwm/sjLneKBENlw44p5gr5IWWufLFsgs8=;
 b=Sm3W/V0yQexWx31tIKPJpwNopAy6B7DZ2MRak+t29Jrr8FOj3emF+zKiYkXZz5gmXI
 3R8dLqyBYJ4vDt01DTjs8+491YjJHtPEDHWE4P2e5Y5p6qLSJRrTlyYFIwrHWoNjzl8H
 qY886ZeuyC3vFBP5oC3S6wHw35Pw7OpJ7w3fCBrG4BwWmbangxKKEnjvRuVLKnn3a3+N
 CEAdlDWJ9NkAgoBWFq/pWlzXXKdhUVvOXkjQae1TA/kGY1XBxY9m6VFjmikbxVBMboE4
 n9La7Q4+TjxzIwJ6V+FlAaXiAYtZfaAiZx5QtoU4hUjzTVyGJdE/bn0zgEghwy1lkpX9
 t0fA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=woeLZ5BX+qIwm/sjLneKBENlw44p5gr5IWWufLFsgs8=;
 b=apO4djprd1lag+9iXPjl/Sn5aNUQDZns/uywpYgVLLPl1s7Hex6t7YEZm3SBrOnmQM
 /Sypmxrw9HNWlJEH6T4i3GG/fefdVcMocZX528/5ynrbOBwbDXqZN/nNzwtdCgmW5EtL
 PXAWDP232m5JhbRHPTHiCO1YtJi+K8wX6dwNzTYWmjiD4rm4LkJkNYfdEcswVHytav7j
 7uWEiuXlEZBDalmghQWwkH8BTrMbw4lbu1ekSO1pa5x94T3XL5Vmidn/L5q4QOkASUH2
 51QlDS5BNAr/yROH07Wm8rugULhniQfabwMYBFf2MI2uqnS7KQ7CtvNAPB5K9vdT2BLG
 0NtA==
X-Gm-Message-State: APjAAAW25Q1xpg04H5s2rzFADcl8xG6dCjjW8umuAlMZhHzAZEaKQaLf
 ApgDLhFIwK3vxQIUCiBwLRzF9NuxEgCpVsssei4=
X-Google-Smtp-Source: APXvYqwIkx9vOec5dXYPG4BL3bbOOp7yj/sIH5KL12vVPQyJAW0RySrxiltr8bTs/b7t+O5kT6r+vJ3sk4t3MaKUMGU=
X-Received: by 2002:a05:6102:48b:: with SMTP id
 n11mr8237229vsa.181.1581950233501; 
 Mon, 17 Feb 2020 06:37:13 -0800 (PST)
MIME-Version: 1.0
References: <20200217143300.12131-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200217143300.12131-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Mon, 17 Feb 2020 15:37:02 +0100
Message-ID: <CAEX4t-PiQVJfwOLF_xvgaO7O3mkjsq_3HzAruLWN3AmHMhZXGg@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/RUBY PATCH] Config.uk: Update
 dependency to posix-sysinfo
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIGxvb2tzIGdvb2QsIHRoYW5rcy4KCiBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVp
Y2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CgpPbiBNb24sIEZlYiAxNywgMjAyMCBhdCAzOjMz
IFBNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90ZToKPgo+IFVw
ZGF0ZSBkZXBlbmRlbmN5IHRvIHBvc2l4LXN5c2luZm8gYW5kIGhhcmQtc2VsZWN0cyBsd0lQIHNv
Y2tldHMuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5l
Y2xhYi5ldT4KPiAtLS0KPiAgQ29uZmlnLnVrIHwgMyArKy0KPiAgMSBmaWxlIGNoYW5nZWQsIDIg
aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL0NvbmZpZy51ayBi
L0NvbmZpZy51awo+IGluZGV4IGUxNjM2ODcuLjM0OTFhMGYgMTAwNjQ0Cj4gLS0tIGEvQ29uZmln
LnVrCj4gKysrIGIvQ29uZmlnLnVrCj4gQEAgLTcsNyArNyw3IEBAIG1lbnVjb25maWcgTElCUlVC
WQo+ICAgICAgICAgc2VsZWN0IExJQlZGU0NPUkUKPiAgICAgICAgIHNlbGVjdCBMSUJTWVNDQUxM
X1NISU0KPiAgICAgICAgIHNlbGVjdCBMSUJVS01NQVAKPiAtICAgICAgIHNlbGVjdCBVS1NZU0lO
Rk8KPiArICAgICAgIHNlbGVjdCBMSUJQT1NJWF9TWVNJTkZPCj4gICAgICAgICBzZWxlY3QgTElC
UE9TSVhfTElCREwKPiAgICAgICAgIHNlbGVjdCBMSUJORVdMSUJDCj4gICAgICAgICBzZWxlY3Qg
TElCQ09NUElMRVJfUlQKPiBAQCAtMTYsNiArMTYsNyBAQCBtZW51Y29uZmlnIExJQlJVQlkKPiAg
ICAgICAgIHNlbGVjdCBDWFhfVEhSRUFEUwo+ICAgICAgICAgc2VsZWN0IExJQlBUSFJFQURfRU1C
RURERUQKPiAgICAgICAgIHNlbGVjdCBMSUJMV0lQCj4gKyAgICAgICBzZWxlY3QgTFdJUF9TT0NL
RVQKPgo+ICBpZiBMSUJSVUJZCj4gIGNvbmZpZyBMSUJSVUJZX01JTkkKPiAtLQo+IDIuMjAuMQo+
Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IE1p
bmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9z
LWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpN
aW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRl
dmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 14:38:49 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 14:38:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3hXs-0002AO-9T; Mon, 17 Feb 2020 14:38:48 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=RBfq=4F=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j3hXr-0002AJ-2c
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 14:38:47 +0000
X-Inumbo-ID: 3419a49c-5193-11ea-bc8e-bc764e2007e4
Received: from mail-vs1-xe41.google.com (unknown [2607:f8b0:4864:20::e41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 3419a49c-5193-11ea-bc8e-bc764e2007e4;
 Mon, 17 Feb 2020 14:38:46 +0000 (UTC)
Received: by mail-vs1-xe41.google.com with SMTP id 7so10465682vsr.10
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 06:38:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=8tFW69F6EzkE5QxF3ljo7a9MwUCOAUWeq/DfjcolnsY=;
 b=FEOJI9UQvAkrApFNn8YuyBTK7HF4m9de0OPlZbZz9q7KH+ErrCGifgQhqsvQk9yIOK
 mw29mb9Y9p9CiILfSkdoQxW+T2gkpzOZPGR164y6RcDzFMldJ7RXAltW34zp0CBJ5NQu
 vNk4N1rww7PVd6LzxUlTv0Z+a0YpM3IzFN2cgME2QPN1aQlEB+i0P9JZn3CKRF74y3Jm
 mC+LWqn0n5KMq1q0sH+N2YkCG7mXcvLyJTpQ8rHpSlXn2doRNwugQXqGxSVoK+W1YcqT
 eASlGKe4g1u522la7ffZiRv5l2tKKiFdpn1igtzRPNwG+Z6NKtXhsVPVkxoOTqTrsLuY
 EmdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=8tFW69F6EzkE5QxF3ljo7a9MwUCOAUWeq/DfjcolnsY=;
 b=nWWzzKDtPQu+GTk5GPwILGbcSoU0O5vSIvuVerJyo9WV30oaHcHWDZYGBtvKN+hRHp
 Ade7InN4BQHTluLQ3PgkiAPCUcE5MAkMLNhBHCgOi22p/XEa2GxvERjEVqyZ0tQL31gT
 kiVVAr8n4ww+NihTR7jpiRXo23Ymew9g/c1e+dUxlvA/2Qu2RkQa/FQ9cxq/D09SmQ2r
 h9rmlGzcneebKPgi2+AieozL4W6wqsAzaSj5vV/7qPPnnHUuGgPbMJVzb64jyxhE1aEq
 3OLkb4Kqe9/6m7nLQ0tyF4kSS9U0I7zKvWoDMFoOQBJr7tByCvYbRtdBOAqgg/ELR+D/
 zGGA==
X-Gm-Message-State: APjAAAWSL2tbvs8FoNnUVImeYFx/wNEubR1NvyjIYpjx1vl8ao6rTL77
 sFrqHTHEncgpckkHgSODw5bpNsNqLNkzH+7imSU=
X-Google-Smtp-Source: APXvYqxa0rHkTFPPlenfhPz0ZfQy5ovDjJxRP1zlAiqhWcHviKezgNOF8bZsqGqOqas+BFxG7G30JKcBlzkkJO9q4p4=
X-Received: by 2002:a05:6102:2f4:: with SMTP id
 j20mr8639464vsj.17.1581950326185; 
 Mon, 17 Feb 2020 06:38:46 -0800 (PST)
MIME-Version: 1.0
References: <20200217143300.12131-1-simon.kuenzer@neclab.eu>
 <CAEX4t-PiQVJfwOLF_xvgaO7O3mkjsq_3HzAruLWN3AmHMhZXGg@mail.gmail.com>
In-Reply-To: <CAEX4t-PiQVJfwOLF_xvgaO7O3mkjsq_3HzAruLWN3AmHMhZXGg@mail.gmail.com>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Mon, 17 Feb 2020 15:38:35 +0100
Message-ID: <CAEX4t-OUmpo5s8KZE-_Nq+U=ndKH6-j3APC1U=SRPQjHTJ_h9g@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/RUBY PATCH] Config.uk: Update
 dependency to posix-sysinfo
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U29ycnksIHdyb25nIHNpZ25hdHVyZS4KClJldmlld2VkLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlw
ZS5odWljaUBuZWNsYWIuZXU+CgpPbiBNb24sIEZlYiAxNywgMjAyMCBhdCAzOjM3IFBNIGZlbGlw
ZWh1aWNpIC4gPGZlbGlwZWh1aWNpQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBIaSBTaW1vbiwgbG9v
a3MgZ29vZCwgdGhhbmtzLgo+Cj4gIFNpZ25lZC1vZmYtYnk6IEZlbGlwZSBIdWljaSA8ZmVsaXBl
Lmh1aWNpQG5lY2xhYi5ldT4KPgo+IE9uIE1vbiwgRmViIDE3LCAyMDIwIGF0IDM6MzMgUE0gU2lt
b24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+IHdyb3RlOgo+ID4KPiA+IFVwZGF0
ZSBkZXBlbmRlbmN5IHRvIHBvc2l4LXN5c2luZm8gYW5kIGhhcmQtc2VsZWN0cyBsd0lQIHNvY2tl
dHMuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBu
ZWNsYWIuZXU+Cj4gPiAtLS0KPiA+ICBDb25maWcudWsgfCAzICsrLQo+ID4gIDEgZmlsZSBjaGFu
Z2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEv
Q29uZmlnLnVrIGIvQ29uZmlnLnVrCj4gPiBpbmRleCBlMTYzNjg3Li4zNDkxYTBmIDEwMDY0NAo+
ID4gLS0tIGEvQ29uZmlnLnVrCj4gPiArKysgYi9Db25maWcudWsKPiA+IEBAIC03LDcgKzcsNyBA
QCBtZW51Y29uZmlnIExJQlJVQlkKPiA+ICAgICAgICAgc2VsZWN0IExJQlZGU0NPUkUKPiA+ICAg
ICAgICAgc2VsZWN0IExJQlNZU0NBTExfU0hJTQo+ID4gICAgICAgICBzZWxlY3QgTElCVUtNTUFQ
Cj4gPiAtICAgICAgIHNlbGVjdCBVS1NZU0lORk8KPiA+ICsgICAgICAgc2VsZWN0IExJQlBPU0lY
X1NZU0lORk8KPiA+ICAgICAgICAgc2VsZWN0IExJQlBPU0lYX0xJQkRMCj4gPiAgICAgICAgIHNl
bGVjdCBMSUJORVdMSUJDCj4gPiAgICAgICAgIHNlbGVjdCBMSUJDT01QSUxFUl9SVAo+ID4gQEAg
LTE2LDYgKzE2LDcgQEAgbWVudWNvbmZpZyBMSUJSVUJZCj4gPiAgICAgICAgIHNlbGVjdCBDWFhf
VEhSRUFEUwo+ID4gICAgICAgICBzZWxlY3QgTElCUFRIUkVBRF9FTUJFRERFRAo+ID4gICAgICAg
ICBzZWxlY3QgTElCTFdJUAo+ID4gKyAgICAgICBzZWxlY3QgTFdJUF9TT0NLRVQKPiA+Cj4gPiAg
aWYgTElCUlVCWQo+ID4gIGNvbmZpZyBMSUJSVUJZX01JTkkKPiA+IC0tCj4gPiAyLjIwLjEKPiA+
Cj4gPgo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
PiA+IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IE1pbmlvcy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwo+ID4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL21pbmlvcy1kZXZlbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv
L21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 14:39:19 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 14:39:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3hYN-0002BP-C9; Mon, 17 Feb 2020 14:39:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=RBfq=4F=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j3hYM-0002BK-0L
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 14:39:18 +0000
X-Inumbo-ID: 46a096fc-5193-11ea-ade5-bc764e2007e4
Received: from mail-vs1-xe43.google.com (unknown [2607:f8b0:4864:20::e43])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 46a096fc-5193-11ea-ade5-bc764e2007e4;
 Mon, 17 Feb 2020 14:39:17 +0000 (UTC)
Received: by mail-vs1-xe43.google.com with SMTP id a2so10814211vso.3
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 06:39:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=+75c1aA8iLVoXZ7vyWvSCECglx5F7s+NTy0pAUC30uw=;
 b=csGx6ogoebCvafsfUASu2SMcEYEKv5yvGg4XNYWkXIrlM7CbVF/Udk7r0qjw8hGt7b
 m6Wn0MXn3dziA/kVSGIAYo2zLurD/x8HWOtKh9hhQ+q8R7eScbW0UiI5omEVDLIziLIH
 ErS2tqC0lDnRxKeBBr+9wiY37XwyA9IXpVaV2asfrNoupcwWz7KsuGbOH8xJCfUzJc5q
 IE7l/I5dV/Vv8veZ10/dholagk5U2FT/9RE3HrT5UBQfga89wiDvpIzDbLhPqQ49a1Qd
 Q/Oo0vfhP9fGOuGKEBxV1oiAVhH5GDARF6usYQfs0da/LhqP7Bi8o1A6xyxRIHEeWkYg
 p06g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=+75c1aA8iLVoXZ7vyWvSCECglx5F7s+NTy0pAUC30uw=;
 b=tGk69nCZwJhmoTAS4UQR76gK309ffu1snTaRs8Zk/b2dP8QTsGqIzY7cBe8JvHQbHm
 +hGY3dPVUR+FQa8wq+EOIsBPefoA6Uq9e0oLknxvfaHxt5Pm0Yf+z7ba1GQ1H1Sj2cP4
 xPkd7MSZ7G+fjrkkmnjhzOPTV6Od9EhMZ0rhdi89cx5CsT2c3pLcX+D9MdPPeZjbn/pf
 yCaYWYlXHcFuvesxjxfGBLeERojKBLuxblWzmzUcp7M2X9oUQQ+RGCflgOhxfNOj3qhn
 qeR3Q6bwDOvOkIL0iPNuZ7I2PFnk+9KjWZbInos4RVE+so2JGVt/4nEGCa7myQc6XNSf
 xcpQ==
X-Gm-Message-State: APjAAAUxy5ddAee4YmmlSrGM34lGxkpTapmQ2j4WBJZH/LDDWxWXoW0z
 BDG8I9vzx0u5y3k4qkQuWkVzqy18LVku8yB1zMo=
X-Google-Smtp-Source: APXvYqz82+J4U9vPSL8GYkvXx5jTFp+w/xAIrNWgVfAYcHyvd3kqFjKoOw6HFA0zf5+2mno5oABpjD6GDut1KDFZ51Y=
X-Received: by 2002:a05:6102:48b:: with SMTP id
 n11mr8242816vsa.181.1581950357284; 
 Mon, 17 Feb 2020 06:39:17 -0800 (PST)
MIME-Version: 1.0
References: <20200217122308.2315-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200217122308.2315-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Mon, 17 Feb 2020 15:39:06 +0100
Message-ID: <CAEX4t-Pzyyno7epnqEnfCLN0qLO1sw9TChes7e9YCA1zVByEKA@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/LWIP PATCH] net/if.h: Add include guard
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Florian Schmidt <florian.schmidt@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIFNpbW9uLgoKUmV2aWV3ZWQtYnk6IEZlbGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5l
Y2xhYi5ldT4KCk9uIE1vbiwgRmViIDE3LCAyMDIwIGF0IDE6MjMgUE0gU2ltb24gS3VlbnplciA8
c2ltb24ua3VlbnplckBuZWNsYWIuZXU+IHdyb3RlOgo+Cj4gRXhwb3NlIGBzdHJ1Y3QgaWZjb25m
YCBhbHNvIHdoZW4gX0dOVV9TT1VSQ0UgaXMgZGVmaW5lZCBidXQgYWRkIGFuCj4gaW5jbHVkZSBn
dWFyZCBmb3IgdGhlIGhlYWRlci4gVGhpcyB3YXksIGRvdWJsZSBkZWZpbml0b25zIG9mIHRoZQo+
IHN0cnVjdCBhcmUgYXZvaWRlZC4KPgo+IFNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNp
bW9uLmt1ZW56ZXJAbmVjbGFiLmV1Pgo+IC0tLQo+ICBpbmNsdWRlL25ldC9pZi5oIHwgMTUgKysr
KysrKysrKysrKy0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0
aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lmLmggYi9pbmNsdWRlL25ldC9p
Zi5oCj4gaW5kZXggNGVhZGM2ZC4uZWEwNGNiOSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL25ldC9p
Zi5oCj4gKysrIGIvaW5jbHVkZS9uZXQvaWYuaAo+IEBAIC0xLDUgKzEsMTIgQEAKPiArI2lmbmRl
ZiBfX05FVF9JRl9IX18KPiArI2RlZmluZSBfX05FVF9JRl9IX18KPiArCj4gICNpbmNsdWRlIDxj
b21wYXQvcG9zaXgvbmV0L2lmLmg+Cj4KPiArI2lmZGVmIF9fY3BsdXNwbHVzCj4gK2V4dGVybiAi
QyIgewo+ICsjZW5kaWYKPiArCj4gIGNoYXIgKmlmX2luZGV4dG9uYW1lICh1bnNpZ25lZCBpbnQs
IGNoYXIgKik7Cj4KPiAgI2lmIGRlZmluZWQoX0dOVV9TT1VSQ0UpIHx8IGRlZmluZWQoX0JTRF9T
T1VSQ0UpCj4gQEAgLTI2LDcgKzMzLDYgQEAgY2hhciAqaWZfaW5kZXh0b25hbWUgKHVuc2lnbmVk
IGludCwgY2hhciAqKTsKPiAgI2RlZmluZSBJRkZfVk9MQVRJTEUgKElGRl9MT09QQkFDS3xJRkZf
UE9JTlRPUE9JTlR8SUZGX0JST0FEQ0FTVHwgXAo+ICAgICAgICAgIElGRl9FQ0hPfElGRl9NQVNU
RVJ8SUZGX1NMQVZFfElGRl9SVU5OSU5HfElGRl9MT1dFUl9VUHxJRkZfRE9STUFOVCkKPgo+IC0j
aWYgZGVmaW5lZChfQlNEX1NPVVJDRSkKPiAgc3RydWN0IGlmY29uZiB7Cj4gICAgICAgICBpbnQg
aWZjX2xlbjsKPiAgICAgICAgIHVuaW9uIHsKPiBAQCAtMzQsOCArNDAsMTMgQEAgc3RydWN0IGlm
Y29uZiB7Cj4gICAgICAgICAgICAgICAgIHN0cnVjdCBpZnJlcSAqaWZjdV9yZXE7Cj4gICAgICAg
ICB9IGlmY19pZmN1Owo+ICB9Owo+IC0jZW5kaWYgLyogX0JTRF9TT1VSQ0UgKi8KPiAgI2RlZmlu
ZSBpZmNfYnVmICAgICAgICAgaWZjX2lmY3UuaWZjdV9idWYKPiAgI2RlZmluZSBpZmNfcmVxICAg
ICAgICAgaWZjX2lmY3UuaWZjdV9yZXEKPgo+ICAjZW5kaWYgLyogZGVmaW5lZChfR05VX1NPVVJD
RSkgfHwgZGVmaW5lZChfQlNEX1NPVVJDRSkgKi8KPiArCj4gKyNpZmRlZiBfX2NwbHVzcGx1cwo+
ICt9Cj4gKyNlbmRpZgo+ICsKPiArI2VuZGlmIC8qIF9fTkVUX0lGX0hfXyAqLwo+IC0tCj4gMi4y
MC4xCj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cj4gTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9t
aW5pb3MtZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5p
b3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 14:39:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 14:39:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3hYa-0002Cp-EE; Mon, 17 Feb 2020 14:39:32 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=RBfq=4F=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j3hYZ-0002Ck-AX
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 14:39:31 +0000
X-Inumbo-ID: 4e8dbb2e-5193-11ea-ade5-bc764e2007e4
Received: from mail-vk1-xa42.google.com (unknown [2607:f8b0:4864:20::a42])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 4e8dbb2e-5193-11ea-ade5-bc764e2007e4;
 Mon, 17 Feb 2020 14:39:30 +0000 (UTC)
Received: by mail-vk1-xa42.google.com with SMTP id m195so4594799vkh.10
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 06:39:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=hxPkUKzDvBxf6tGQ1G6mv2ngZtXyY6BRqSPPjq8N0r4=;
 b=M6+OOgwecnP0i5x+fLMI7RFoz0NfAMZWDrfCyL2g+OyiQT/c+SjgguRSRHrV9Wur+5
 oS8nu/4PVfOCHxW+g094K+GCTpRzeXcjTQ1cNQnNt3m4V5y7ItGpqnL+mcmQ3+FtmGW5
 e5tdosr5hSSR529rfswHb8eW+aYr2a+dUBehZ5mZ8WXFkV37QVElo0t7okh1GMLoBgQP
 bh6cMzkTaz8lm9j6GIOZopQxjvl/wyh7gcs4hPIx6xdGAaiKAhgf0YH0cJSKFHJavtAL
 uvAs3Oq6E3qZWTmoYJJBpelQA01YxyA2VIYgh/mlk375xwW3eITAU8huiyvixSdrL29p
 f8+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=hxPkUKzDvBxf6tGQ1G6mv2ngZtXyY6BRqSPPjq8N0r4=;
 b=GU/V4LjTyeRWjko4GTWKmiqpDXa4CkqP9XCogHw7iQBVGSYvwcma0pLillQQQTAEGU
 FTqLVSXisJYMsJtDPNzogmF+MuulIhjuOVXtdlWHlWX+eAkEpf7XSf6hwu3J6IM8asgW
 5YMQWFe0qQCKk7Hetm6WcyKBnjxFjZXjdQdi/pk5DhJ1MjS2VJUc9EiyLmwC8VmEstn/
 eNrNN/bGYuu6Dfwu4MGLMu/asmdPHGsUIexvQgPldq1y8rwmU3NIokj/3mmaQ3E2oe3T
 qSTBJ+FqJIdjY/b+hkexOsoF/sq938ZTTtuqQ53FgSfPCWeLlem+jq3WGxPAGEqoB5Ks
 OC4w==
X-Gm-Message-State: APjAAAXkTrnKso93zDHgM72++1Gk1zj9+b10m0NG6pTX5dUHJF5EnyYV
 TkoUf6WpUiJiwEv6tPqyMLrSscXpXRWsjXPt6HmzGT3p
X-Google-Smtp-Source: APXvYqzwT3fnwajUyOQtrVTlxS7RJHZorrgMeGrZHUWY00MIMdtZJCQToj3hawOaEwt/vmZim6CDWIOB5jXreYn72nw=
X-Received: by 2002:a1f:328a:: with SMTP id y132mr5844959vky.60.1581950370467; 
 Mon, 17 Feb 2020 06:39:30 -0800 (PST)
MIME-Version: 1.0
References: <20200217122257.2268-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200217122257.2268-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Mon, 17 Feb 2020 15:39:19 +0100
Message-ID: <CAEX4t-MXBHoxoyV9CvuLnCRma2KrPjhrY6C+JvDUTGF5Nq+jeA@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/LWIP PATCH] sys/socket.h: Fix typo of
 guard: CONFIG_LWIP_SOCKET
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Florian Schmidt <florian.schmidt@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIFNpbW9uLgoKUmV2aWV3ZWQtYnk6IEZlbGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5l
Y2xhYi5ldT4KCk9uIE1vbiwgRmViIDE3LCAyMDIwIGF0IDE6MjMgUE0gU2ltb24gS3VlbnplciA8
c2ltb24ua3VlbnplckBuZWNsYWIuZXU+IHdyb3RlOgo+Cj4gRml4ZXMgYSB0eXBvIG9mIHRoZSBD
T05GSUdfTFdJUF9TT0NLRVQgZ3VhcmQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVy
IDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KPiAtLS0KPiAgaW5jbHVkZS9zeXMvc29ja2V0Lmgg
fCA3ICsrKystLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv
bnMoLSkKPgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3N5cy9zb2NrZXQuaCBiL2luY2x1ZGUvc3lz
L3NvY2tldC5oCj4gaW5kZXggOGY2ZWNiYy4uYjg5NTY2MCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRl
L3N5cy9zb2NrZXQuaAo+ICsrKyBiL2luY2x1ZGUvc3lzL3NvY2tldC5oCj4gQEAgLTM4LDExICsz
OCwxMSBAQCBleHRlcm4gIkMiIHsKPiAgI2VuZGlmCj4KPiAgI2luY2x1ZGUgPHVrL2NvbmZpZy5o
Pgo+IC0jaWYgQ09ORklHX0xXSVBfU09DS0VUUwo+ICsjaWYgQ09ORklHX0xXSVBfU09DS0VUCj4g
ICNpZiBDT05GSUdfSEFWRV9MSUJDCj4gICNpbmNsdWRlIDxmY250bC5oPgo+ICAjaW5jbHVkZSA8
cG9sbC5oPgo+IC0jZW5kaWYKPiArI2VuZGlmIC8qIENPTkZJR19IQVZFX0xJQkMgKi8KPiAgI2lu
Y2x1ZGUgPGx3aXAvc29ja2V0cy5oPgo+Cj4gICNpZm5kZWYgU09DS19DTE9FWEVDCj4gQEAgLTEw
Miw5ICsxMDIsMTAgQEAgaW50IHNlbmR0byhpbnQgcywgY29uc3Qgdm9pZCAqZGF0YXB0ciwgc2l6
ZV90IHNpemUsIGludCBmbGFncywKPiAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAq
dG8sIHNvY2tsZW5fdCB0b2xlbik7Cj4gIGludCBzb2NrZXRwYWlyKGludCBkb21haW4sIGludCB0
eXBlLCBpbnQgcHJvdG9jb2wsIGludCBzdlsyXSk7Cj4KPiArI2VuZGlmIC8qIENPTkZJR19MV0lQ
X1NPQ0tFVCAqLwo+ICsKPiAgI2lmZGVmIF9fY3BsdXNwbHVzCj4gIH0KPiAgI2VuZGlmCj4KPiAt
I2VuZGlmIC8qIENPTkZJR19MV0lQX1NPQ0tFVFMgKi8KPiAgI2VuZGlmIC8qIF9VS19MV0lQX1NP
Q0tFVF9IXyAqLwo+IC0tCj4gMi4yMC4xCj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCj4gTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pbmlv
cy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9z
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv
bWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 16:04:16 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 16:04:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3isX-0001zk-UQ; Mon, 17 Feb 2020 16:04:13 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3isX-0001zf-Dq
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 16:04:13 +0000
X-Inumbo-ID: 227fd4b6-519f-11ea-ade5-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 227fd4b6-519f-11ea-ade5-bc764e2007e4;
 Mon, 17 Feb 2020 16:04:11 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 7DA02F2021;
 Mon, 17 Feb 2020 17:04:10 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id HiAO6HlFBGEP; Mon, 17 Feb 2020 17:04:10 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 461C5F2007;
 Mon, 17 Feb 2020 17:04:04 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 17 Feb
 2020 17:04:03 +0100
To: <stefanl.teodorescu@gmail.com>, <minios-devel@lists.xen.org>
References: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
 <20200214154104.114801-2-stefanl.teodorescu@gmail.com>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <e6c4b825-4874-7a49-2809-3305661287fa@neclab.eu>
Date: Mon, 17 Feb 2020 17:04:02 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200214154104.114801-2-stefanl.teodorescu@gmail.com>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH v3 2/3] lib/devfs: Add /dev/null
 and /dev/zero support
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Costin Lupu <costin.lupu@cs.pub.ro>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGZvciB0aGUgdXBkYXRlISBTZWUgbXkgY29tbWVudCBpbmxpbmUuCgpPbiAxNC4wMi4y
MCAxNjo0MSwgc3RlZmFubC50ZW9kb3Jlc2N1QGdtYWlsLmNvbSB3cm90ZToKPiBGcm9tOiBDb3N0
aW4gTHVwdSA8Y29zdGluLmx1cHVAY3MucHViLnJvPgo+IAo+IFRoaXMgaXMgc2hhbWVsZXNzbHkg
Y29waWVkIGFuZCBhZGFwdGVkIGZyb20gb3VyIGltcGxlbWVudGF0aW9uCj4gZm9yIC9kZXYvcmFu
ZG9tIGRldmljZSBzdXBwb3J0Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IENvc3RpbiBMdXB1IDxjb3N0
aW4ubHVwdUBjcy5wdWIucm8+Cj4gU2lnbmVkLW9mZi1ieTogU3RlZmFuIFRlb2RvcmVzY3UgPHN0
ZWZhbmwudGVvZG9yZXNjdUBnbWFpbC5jb20+Cj4gLS0tCj4gICBsaWIvZGV2ZnMvQ29uZmlnLnVr
ICAgICAgICAgICAgICAgfCAgMTcgKysrKwo+ICAgbGliL2RldmZzL01ha2VmaWxlLnVrICAgICAg
ICAgICAgIHwgICAxICsKPiAgIGxpYi9kZXZmcy9udWxsLmMgICAgICAgICAgICAgICAgICB8IDE0
NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGxpYi92ZnNjb3JlL2luY2x1ZGUv
dmZzY29yZS91aW8uaCB8ICAgMSArCj4gICA0IGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25z
KCspCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2RldmZzL251bGwuYwo+IAo+IGRpZmYgLS1n
aXQgYS9saWIvZGV2ZnMvQ29uZmlnLnVrIGIvbGliL2RldmZzL0NvbmZpZy51awo+IGluZGV4IDZm
MjFjMDFjLi5hZjYxNzQ3ZiAxMDA2NDQKPiAtLS0gYS9saWIvZGV2ZnMvQ29uZmlnLnVrCj4gKysr
IGIvbGliL2RldmZzL0NvbmZpZy51awo+IEBAIC04LDQgKzgsMjEgQEAgaWYgTElCREVWRlMKPiAg
ICAgICAgICAgYm9vbCAiTW91bnQgL2RldiBkdXJpbmcgYm9vdCIKPiAgIAlkZXBlbmRzIG9uIExJ
QlZGU0NPUkVfQVVUT01PVU5UX1JPT1RGUwo+ICAgICAgICAgICBkZWZhdWx0IG4KPiArCj4gKwkj
IGhpZGRlbgo+ICsJY29uZmlnIExJQkRFVkZTX0RFVl9OVUxMX1pFUk8KPiArCQlib29sCj4gKwkJ
ZGVmYXVsdCBuCj4gKwo+ICsJY29uZmlnIExJQkRFVkZTX0RFVl9OVUxMCj4gKwkJYm9vbCAiUmVn
aXN0ZXIgbnVsbCBkZXZpY2UiCj4gKwkJZGVmYXVsdCB5IGlmIExJQkRFVkZTX0FVVE9NT1VOVAo+
ICsJCXNlbGVjdCBMSUJERVZGU19ERVZfTlVMTF9aRVJPCj4gKwkJZGVmYXVsdCBuCj4gKwo+ICsJ
Y29uZmlnIExJQkRFVkZTX0RFVl9aRVJPCj4gKwkJYm9vbCAiUmVnaXN0ZXIgemVybyBkZXZpY2Ui
Cj4gKwkJZGVmYXVsdCB5IGlmIExJQkRFVkZTX0FVVE9NT1VOVAo+ICsJCXNlbGVjdCBMSUJERVZG
U19ERVZfTlVMTF9aRVJPCj4gKwkJZGVmYXVsdCBuCj4gICBlbmRpZgo+IGRpZmYgLS1naXQgYS9s
aWIvZGV2ZnMvTWFrZWZpbGUudWsgYi9saWIvZGV2ZnMvTWFrZWZpbGUudWsKPiBpbmRleCBjNDk2
ZmQ1Ni4uYjIzZWJmMTUgMTAwNjQ0Cj4gLS0tIGEvbGliL2RldmZzL01ha2VmaWxlLnVrCj4gKysr
IGIvbGliL2RldmZzL01ha2VmaWxlLnVrCj4gQEAgLTYsMyArNiw0IEBAIExJQkRFVkZTX0NGTEFH
Uy0kKGNhbGwgZ2NjX3ZlcnNpb25fZ2UsOCwwKSArPSAtV25vLWNhc3QtZnVuY3Rpb24tdHlwZQo+
ICAgCj4gICBMSUJERVZGU19TUkNTLXkgKz0gJChMSUJERVZGU19CQVNFKS9kZXZpY2UuYwo+ICAg
TElCREVWRlNfU1JDUy15ICs9ICQoTElCREVWRlNfQkFTRSkvZGV2ZnNfdm5vcHMuYwo+ICtMSUJE
RVZGU19TUkNTLSQoQ09ORklHX0xJQkRFVkZTX0RFVl9OVUxMX1pFUk8pICs9ICQoTElCREVWRlNf
QkFTRSkvbnVsbC5jCj4gZGlmZiAtLWdpdCBhL2xpYi9kZXZmcy9udWxsLmMgYi9saWIvZGV2ZnMv
bnVsbC5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMC4uNjBhZGE5OTUK
PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliL2RldmZzL251bGwuYwo+IEBAIC0wLDAgKzEsMTQ1
IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UgKi8KPiArLyoK
PiArICogQXV0aG9yczogQ29zdGluIEx1cHUgPGNvc3Rpbi5sdXB1QGNzLnB1Yi5ybz4KPiArICoK
PiArICogQ29weXJpZ2h0IChjKSAyMDE5LCBVbml2ZXJzaXR5IFBvbGl0ZWhuaWNhIG9mIEJ1Y2hh
cmVzdC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KPiArICoKPiArICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cj4gKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwo+ICsgKiBhcmUgbWV0Ogo+ICsgKgo+ICsgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAo+ICsgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Cj4gKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Cj4gKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKPiArICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KPiArICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3Ig
dGhlIG5hbWVzIG9mIGl0cwo+ICsgKiAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQo+ICsgKiAgICB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgo+ICsgKgo+ICsg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTICJBUyBJUyIKPiArICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQo+ICsgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRQo+ICsgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFCj4gKyAqIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKPiArICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKPiArICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCj4gKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCj4g
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCj4gKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCj4gKyAqIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgo+ICsgKgo+ICsgKiBUSElTIEhFQURFUiBNQVkgTk9UIEJFIEVY
VFJBQ1RFRCBPUiBNT0RJRklFRCBJTiBBTlkgV0FZLgoKSSBrbm93IHRoYXQgeW91IHByb2JhYmx5
IGNvcGllZCB0aGlzIGxpY2Vuc2UgaGVhZGVyIGZyb20gYW5vdGhlciBmaWxlIApidXQgd2Ugbm90
aWNlZCB0aGF0IHRoaXMgc2VudGVuY2UgaXMgcHJvYmFibHkgaW4gY29uZmxpY3Qgd2l0aCB0aGUg
CmxpY2Vuc2UgYWhlYWQuIENhbiB0aGlzIGJlIHJlbW92ZWQ/IFdpdGggeW91ciBva2F5LCBJIHdv
dWxkIGRvIGl0IGZvciAKeW91IHdoaWxlIHVwc3RyZWFtaW5nLgoKPiArICovCj4gKwo+ICsjaW5j
bHVkZSA8dWsvY29uZmlnLmg+Cj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4KPiArI2luY2x1ZGUgPHN0
cmluZy5oPgo+ICsjaW5jbHVkZSA8dWsvY3RvcnMuaD4KPiArI2luY2x1ZGUgPHVrL3ByaW50Lmg+
Cj4gKyNpbmNsdWRlIDx2ZnNjb3JlL3Vpby5oPgo+ICsjaW5jbHVkZSA8ZGV2ZnMvZGV2aWNlLmg+
Cj4gKwo+ICsKPiAraW50IGRldl9udWxsX3dyaXRlKHN0cnVjdCBkZXZpY2UgKmRldiBfX3VudXNl
ZCwgc3RydWN0IHVpbyAqdWlvLCBpbnQgZmxhZ3MgX191bnVzZWQpCj4gK3sKPiArCXVpby0+dWlv
X3Jlc2lkID0gMDsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtpbnQgZGV2X251bGxfb3Blbihz
dHJ1Y3QgZGV2aWNlICpkZXZpY2UgX191bnVzZWQsIGludCBtb2RlIF9fdW51c2VkKQo+ICt7Cj4g
KwlyZXR1cm4gMDsKPiArfQo+ICsKPiArCj4gK2ludCBkZXZfbnVsbF9jbG9zZShzdHJ1Y3QgZGV2
aWNlICpkZXZpY2UgX191bnVzZWQpCj4gK3sKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICsjaWZk
ZWYgQ09ORklHX0xJQkRFVkZTX0RFVl9OVUxMCj4gKwo+ICsjZGVmaW5lIERFVl9OVUxMX05BTUUg
Im51bGwiCj4gKwo+ICtpbnQgZGV2X251bGxfcmVhZChzdHJ1Y3QgZGV2aWNlICpkZXYgX191bnVz
ZWQsIHN0cnVjdCB1aW8gKnVpbywgaW50IGZsYWdzIF9fdW51c2VkKQo+ICt7Cj4gKwl1aW8tPnVp
b19yZXNpZCA9IHVpby0+dWlvX2lvdi0+aW92X2xlbjsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+
ICtzdGF0aWMgc3RydWN0IGRldm9wcyBudWxsX2Rldm9wcyA9IHsKPiArCS5yZWFkID0gZGV2X251
bGxfcmVhZCwKPiArCS53cml0ZSA9IGRldl9udWxsX3dyaXRlLAo+ICsJLm9wZW4gPSBkZXZfbnVs
bF9vcGVuLAo+ICsJLmNsb3NlID0gZGV2X251bGxfY2xvc2UsCj4gK307Cj4gKwo+ICtzdGF0aWMg
c3RydWN0IGRyaXZlciBkcnZfbnVsbCA9IHsKPiArCS5kZXZvcHMgPSAmbnVsbF9kZXZvcHMsCj4g
KwkuZGV2c3ogPSAwLAo+ICsJLm5hbWUgPSBERVZfTlVMTF9OQU1FCj4gK307Cj4gKyNlbmRpZgo+
ICsKPiArI2lmZGVmIENPTkZJR19MSUJERVZGU19ERVZfWkVSTwo+ICsKPiArI2RlZmluZSBERVZf
WkVST19OQU1FICJ6ZXJvIgo+ICsKPiAraW50IGRldl96ZXJvX3JlYWQoc3RydWN0IGRldmljZSAq
ZGV2IF9fdW51c2VkLCBzdHJ1Y3QgdWlvICp1aW8sIGludCBmbGFncyBfX3VudXNlZCkKPiArewo+
ICsJc2l6ZV90IGNvdW50Owo+ICsJY2hhciAqYnVmOwo+ICsKPiArCWJ1ZiA9IHVpby0+dWlvX2lv
di0+aW92X2Jhc2U7Cj4gKwljb3VudCA9IHVpby0+dWlvX2lvdi0+aW92X2xlbjsKPiArCj4gKwlt
ZW1zZXQoYnVmLCAwLCBjb3VudCk7Cj4gKwl1aW8tPnVpb19yZXNpZCA9IDA7Cj4gKwlyZXR1cm4g
MDsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBkZXZvcHMgemVyb19kZXZvcHMgPSB7Cj4gKwku
cmVhZCA9IGRldl96ZXJvX3JlYWQsCj4gKwkud3JpdGUgPSBkZXZfbnVsbF93cml0ZSwKPiArCS5v
cGVuID0gZGV2X251bGxfb3BlbiwKPiArCS5jbG9zZSA9IGRldl9udWxsX2Nsb3NlLAo+ICt9Owo+
ICsKPiArc3RhdGljIHN0cnVjdCBkcml2ZXIgZHJ2X3plcm8gPSB7Cj4gKwkuZGV2b3BzID0gJnpl
cm9fZGV2b3BzLAo+ICsJLmRldnN6ID0gMCwKPiArCS5uYW1lID0gREVWX1pFUk9fTkFNRQo+ICt9
Owo+ICsjZW5kaWYKPiArCj4gK3N0YXRpYyBpbnQgZGV2ZnNfcmVnaXN0ZXJfbnVsbCh2b2lkKQo+
ICt7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gKwo+ICsjaWZkZWYgQ09ORklHX0xJQkRFVkZT
X0RFVl9OVUxMCj4gKwl1a19wcl9kZWJ1ZygiUmVnaXN0ZXIgJyVzJyB0byBkZXZmc1xuIiwgREVW
X05VTExfTkFNRSk7Cj4gKwo+ICsJLyogcmVnaXN0ZXIgL2Rldi9udWxsICovCj4gKwlkZXYgPSBk
ZXZpY2VfY3JlYXRlKCZkcnZfbnVsbCwgREVWX05VTExfTkFNRSwgRF9DSFIpOwo+ICsJaWYgKGRl
diA9PSBOVUxMKSB7Cj4gKwkJdWtfcHJfZXJyKCJGYWlsZWQgdG8gcmVnaXN0ZXIgJyVzJyB0byBk
ZXZmc1xuIiwgREVWX05VTExfTkFNRSk7Cj4gKwkJcmV0dXJuIC0xOwo+ICsJfQo+ICsjZW5kaWYK
PiArCj4gKyNpZmRlZiBDT05GSUdfTElCREVWRlNfREVWX1pFUk8KPiArCXVrX3ByX2RlYnVnKCJS
ZWdpc3RlciAnJXMnIHRvIGRldmZzXG4iLCBERVZfWkVST19OQU1FKTsKPiArCj4gKwkvKiByZWdp
c3RlciAvZGV2L3plcm8gKi8KPiArCWRldiA9IGRldmljZV9jcmVhdGUoJmRydl96ZXJvLCBERVZf
WkVST19OQU1FLCBEX0NIUik7Cj4gKwlpZiAoZGV2ID09IE5VTEwpIHsKPiArCQl1a19wcl9lcnIo
IkZhaWxlZCB0byByZWdpc3RlciAnJXMnIHRvIGRldmZzXG4iLCBERVZfWkVST19OQU1FKTsKPiAr
CQlyZXR1cm4gLTE7Cj4gKwl9Cj4gKyNlbmRpZgo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+
ICtkZXZmc19pbml0Y2FsbChkZXZmc19yZWdpc3Rlcl9udWxsKTsKPiBkaWZmIC0tZ2l0IGEvbGli
L3Zmc2NvcmUvaW5jbHVkZS92ZnNjb3JlL3Vpby5oIGIvbGliL3Zmc2NvcmUvaW5jbHVkZS92ZnNj
b3JlL3Vpby5oCj4gaW5kZXggODNkZDViOWEuLmIxNGZkYjgyIDEwMDY0NAo+IC0tLSBhL2xpYi92
ZnNjb3JlL2luY2x1ZGUvdmZzY29yZS91aW8uaAo+ICsrKyBiL2xpYi92ZnNjb3JlL2luY2x1ZGUv
dmZzY29yZS91aW8uaAo+IEBAIC0zNiw2ICszNiw3IEBACj4gICAjaW5jbHVkZSA8c3lzL3R5cGVz
Lmg+Cj4gICAjaW5jbHVkZSA8c3lzL3Vpby5oPgo+ICAgI2luY2x1ZGUgPGxpbWl0cy5oPgo+ICsj
aW5jbHVkZSA8dWsvYXNzZXJ0Lmg+Cj4gICAKPiAgIGVudW0JdWlvX3J3IHsgVUlPX1JFQUQsIFVJ
T19XUklURSB9Owo+ICAgCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu
Zm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 16:04:21 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 16:04:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3ise-00020F-WC; Mon, 17 Feb 2020 16:04:20 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3isd-000206-Ro
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 16:04:19 +0000
X-Inumbo-ID: 2606ccf2-519f-11ea-8009-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 2606ccf2-519f-11ea-8009-12813bfff9fa;
 Mon, 17 Feb 2020 16:04:17 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 8F063F2021;
 Mon, 17 Feb 2020 17:04:16 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id uJD_5iD7mgwD; Mon, 17 Feb 2020 17:04:16 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 5BB11F2007;
 Mon, 17 Feb 2020 17:04:10 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 17 Feb
 2020 17:04:05 +0100
To: <stefanl.teodorescu@gmail.com>, <minios-devel@lists.xen.org>
References: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <48534d66-f0ef-97fd-579d-76052a42f062@neclab.eu>
Date: Mon, 17 Feb 2020 17:04:05 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH v3 1/3] lib/uktime: Introduce
 POSIX timer stubs
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Costin Lupu <costin.lupu@cs.pub.ro>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGksIHRoaXMgbG9va3MgZ29vZC4gSSBoYXZlIGp1c3Qgb25lIHF1ZXN0aW9uIHRvIHRoZSBoZWFk
ZXIuCgpUaGFua3MsCgpTaW1vbgoKT24gMTQuMDIuMjAgMTY6NDEsIHN0ZWZhbmwudGVvZG9yZXNj
dUBnbWFpbC5jb20gd3JvdGU6Cj4gRnJvbTogQ29zdGluIEx1cHUgPGNvc3Rpbi5sdXB1QGNzLnB1
Yi5ybz4KPiAKPiBXZSBzaW1wbHkgaW50cm9kdWNlIHRoZSBzdHVicyBmb3IgdGhlc2UgZnVuY3Rp
b25zLiBUaGV5IHdpbGwgaGF2ZSB0byBiZQo+IGltcGxlbWVudGVkIGxhdGVyLCB0aGVyZWZvcmUg
d2UgZG8gbm90IGFkZCBhbnkgbGljZW5zZSBmb3Igbm93Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IENv
c3RpbiBMdXB1IDxjb3N0aW4ubHVwdUBjcy5wdWIucm8+Cj4gU2lnbmVkLW9mZi1ieTogU3RlZmFu
IFRlb2RvcmVzY3UgPHN0ZWZhbmwudGVvZG9yZXNjdUBnbWFpbC5jb20+Cj4gLS0tCj4gICBsaWIv
dWt0aW1lL01ha2VmaWxlLnVrICAgfCAgMSArCj4gICBsaWIvdWt0aW1lL2V4cG9ydHN5bXMudWsg
fCAgNSArKysKPiAgIGxpYi91a3RpbWUvdGltZXIuYyAgICAgICB8IDgwICsrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIDMgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0
aW9ucygrKQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi91a3RpbWUvdGltZXIuYwo+IAo+IGRp
ZmYgLS1naXQgYS9saWIvdWt0aW1lL01ha2VmaWxlLnVrIGIvbGliL3VrdGltZS9NYWtlZmlsZS51
awo+IGluZGV4IDQ3ZmJiNGIzLi4yOTc2YTEwZiAxMDA2NDQKPiAtLS0gYS9saWIvdWt0aW1lL01h
a2VmaWxlLnVrCj4gKysrIGIvbGliL3VrdGltZS9NYWtlZmlsZS51awo+IEBAIC0xMSwzICsxMSw0
IEBAIExJQlVLVElNRV9TUkNTLXkgKz0gJChMSUJVS1RJTUVfQkFTRSkvbXVzbC1pbXBvcnRlZC9z
cmMvdGltZWdtLmMKPiAgIExJQlVLVElNRV9TUkNTLXkgKz0gJChMSUJVS1RJTUVfQkFTRSkvbXVz
bC1pbXBvcnRlZC9zcmMvX190bV90b19zZWNzLmMKPiAgIExJQlVLVElNRV9TUkNTLXkgKz0gJChM
SUJVS1RJTUVfQkFTRSkvbXVzbC1pbXBvcnRlZC9zcmMvX195ZWFyX3RvX3NlY3MuYwo+ICAgTElC
VUtUSU1FX1NSQ1MteSArPSAkKExJQlVLVElNRV9CQVNFKS90aW1lLmMKPiArTElCVUtUSU1FX1NS
Q1MteSArPSAkKExJQlVLVElNRV9CQVNFKS90aW1lci5jCj4gZGlmZiAtLWdpdCBhL2xpYi91a3Rp
bWUvZXhwb3J0c3ltcy51ayBiL2xpYi91a3RpbWUvZXhwb3J0c3ltcy51awo+IGluZGV4IGJkOWM0
OWNmLi44MmI3MGI3ZiAxMDA2NDQKPiAtLS0gYS9saWIvdWt0aW1lL2V4cG9ydHN5bXMudWsKPiAr
KysgYi9saWIvdWt0aW1lL2V4cG9ydHN5bXMudWsKPiBAQCAtOSwzICs5LDggQEAgdGltZWdtCj4g
ICB0aW1lcwo+ICAgdXNsZWVwCj4gICB1dGltZQo+ICt0aW1lcl9jcmVhdGUKPiArdGltZXJfZGVs
ZXRlCj4gK3RpbWVyX3NldHRpbWUKPiArdGltZXJfZ2V0dGltZQo+ICt0aW1lcl9nZXRvdmVycnVu
Cj4gZGlmZiAtLWdpdCBhL2xpYi91a3RpbWUvdGltZXIuYyBiL2xpYi91a3RpbWUvdGltZXIuYwo+
IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLjBjOGRiNDBkCj4gLS0tIC9k
ZXYvbnVsbAo+ICsrKyBiL2xpYi91a3RpbWUvdGltZXIuYwo+IEBAIC0wLDAgKzEsODAgQEAKPiAr
LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZSAqLwo+ICsvKgo+ICsgKiBB
dXRob3JzOiBDb3N0aW4gTHVwdSA8Y29zdGluLmx1cHVAY3MucHViLnJvPgo+ICsgKgo+ICsgKiBD
b3B5cmlnaHQgKGMpIDIwMTksIFVuaXZlcnNpdHkgUG9saXRlaG5pY2Egb2YgQnVjaGFyZXN0LiBB
bGwgcmlnaHRzIHJlc2VydmVkLgo+ICsgKgo+ICsgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKPiArICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Cj4gKyAqIGFyZSBtZXQ6Cj4gKyAqCj4gKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cj4gKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KPiArICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKPiArICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQo+ICsgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgo+ICsg
KiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCj4gKyAqICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCj4gKyAqICAgIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCj4gKyAqCj4gKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMgIkFTIElTIgo+ICsgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCj4gKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFCj4gKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUKPiArICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgo+ICsgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgo+ICsgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKPiArICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KPiArICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKPiArICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKPiArICogUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCj4gKyAqCj4gKyAqIFRISVMgSEVBREVSIE1BWSBOT1QgQkUgRVhUUkFDVEVE
IE9SIE1PRElGSUVEIElOIEFOWSBXQVkuCgpJIGtub3cgdGhhdCB5b3UgcHJvYmFibHkgY29waWVk
IHRoaXMgbGljZW5zZSBoZWFkZXIgZnJvbSBhbm90aGVyIGZpbGUgCmJ1dCB3ZSBub3RpY2VkIHRo
YXQgdGhpcyBzZW50ZW5jZSBpcyBwcm9iYWJseSBpbiBjb25mbGljdCB3aXRoIHRoZSAKbGljZW5z
ZSBhaGVhZC4gQ2FuIHRoaXMgYmUgcmVtb3ZlZD8gV2l0aCB5b3VyIG9rYXksIEkgd291bGQgZG8g
aXQgZm9yIAp5b3Ugd2hpbGUgdXBzdHJlYW1pbmcuCgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxl
cnJuby5oPgo+ICsjaW5jbHVkZSA8dGltZS5oPgo+ICsjaW5jbHVkZSA8dWsvZXNzZW50aWFscy5o
Pgo+ICsjaW5jbHVkZSA8dWsvcHJpbnQuaD4KPiArCj4gKwo+ICtpbnQgdGltZXJfY3JlYXRlKGNs
b2NraWRfdCBjbG9ja2lkIF9fdW51c2VkLAo+ICsJCXN0cnVjdCBzaWdldmVudCAqX19yZXN0cmlj
dCBzZXZwIF9fdW51c2VkLAo+ICsJCXRpbWVyX3QgKl9fcmVzdHJpY3QgdGltZXJpZCBfX3VudXNl
ZCkKPiArewo+ICsJV0FSTl9TVFVCQkVEKCk7Cj4gKwllcnJubyA9IEVOT1RTVVA7Cj4gKwlyZXR1
cm4gLTE7Cj4gK30KPiArCj4gK2ludCB0aW1lcl9kZWxldGUodGltZXJfdCB0aW1lcmlkIF9fdW51
c2VkKQo+ICt7Cj4gKwlXQVJOX1NUVUJCRUQoKTsKPiArCWVycm5vID0gRU5PVFNVUDsKPiArCXJl
dHVybiAtMTsKPiArfQo+ICsKPiAraW50IHRpbWVyX3NldHRpbWUodGltZXJfdCB0aW1lcmlkIF9f
dW51c2VkLAo+ICsJCWludCBmbGFncyBfX3VudXNlZCwKPiArCQljb25zdCBzdHJ1Y3QgaXRpbWVy
c3BlYyAqX19yZXN0cmljdCBuZXdfdmFsdWUgX191bnVzZWQsCj4gKwkJc3RydWN0IGl0aW1lcnNw
ZWMgKl9fcmVzdHJpY3Qgb2xkX3ZhbHVlIF9fdW51c2VkKQo+ICt7Cj4gKwlXQVJOX1NUVUJCRUQo
KTsKPiArCWVycm5vID0gRU5PVFNVUDsKPiArCXJldHVybiAtMTsKPiArfQo+ICsKPiAraW50IHRp
bWVyX2dldHRpbWUodGltZXJfdCB0aW1lcmlkIF9fdW51c2VkLAo+ICsJCXN0cnVjdCBpdGltZXJz
cGVjICpjdXJyX3ZhbHVlIF9fdW51c2VkKQo+ICt7Cj4gKwlXQVJOX1NUVUJCRUQoKTsKPiArCWVy
cm5vID0gRU5PVFNVUDsKPiArCXJldHVybiAtMTsKPiArfQo+ICsKPiAraW50IHRpbWVyX2dldG92
ZXJydW4odGltZXJfdCB0aW1lcmlkIF9fdW51c2VkKQo+ICt7Cj4gKwlXQVJOX1NUVUJCRUQoKTsK
PiArCWVycm5vID0gRU5PVFNVUDsKPiArCXJldHVybiAtMTsKPiArfQo+IAoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcg
bGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 16:11:20 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 16:11:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3izP-0002qk-7F; Mon, 17 Feb 2020 16:11:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=Hznm=4F=gmail.com=stefanl.teodorescu@srs-us1.protection.inumbo.net>)
 id 1j3izO-0002qe-Db
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 16:11:18 +0000
X-Inumbo-ID: 1fcc7a52-51a0-11ea-ade5-bc764e2007e4
Received: from mail-lf1-x12c.google.com (unknown [2a00:1450:4864:20::12c])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 1fcc7a52-51a0-11ea-ade5-bc764e2007e4;
 Mon, 17 Feb 2020 16:11:16 +0000 (UTC)
Received: by mail-lf1-x12c.google.com with SMTP id l18so12302168lfc.1
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 08:11:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=dNTV26Nl3XKN0XiApn+ITd5MOCZQyMeP39o7g1uaxNk=;
 b=mV1ljlpPX+0cafJdkOY6286xXEVrk6DQDB+GQXSKiDM9l7SlMUqhm057zJOar/O3WE
 P/U+bNJKrjpY5woi4+A9mAXLQovHpH5xPoN1TmmTz/Z1Bc+ro9fGA8kQPdOEG7xGHrAj
 rhWk/4ypesof52iBsiqa/N+kGjpkAhwzt4v5W1yIzh7EG7a03nE3RTzMxZy/Yiizjfh7
 W/wqb2IevVBwbgkIdvp4oF72m3gwvIeAdhO8BUAnF/ezBEObl5y6IfqtSLm7MmYVU7lZ
 0tbgbIqPWwwfI/QdaWQpC8c8xTRIbhloF2pJm5ExONKA6AAdbIsMmhoTBZhxe0WHBkRQ
 5rXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=dNTV26Nl3XKN0XiApn+ITd5MOCZQyMeP39o7g1uaxNk=;
 b=kJTNj9AxC+vKZzCt4b4CNaI1Ciags3eUHMpKdJcczHkReQU3RFQQAfTlWp8De9Q2aS
 DgfY2PsveSJOXNBXfp2TiVWHLnur06CGasQqJadI7OC8mU7rt4/QVQlr3s+VaMfSRY47
 tuRQv8eUsFGvzmuWVSp7jA8jElY3O5gV7jxNv/fV7nfY1A/qPOJ7I6nwt6w0+sMyrqiY
 rd+ZBiakbAjG65+RZDpkvF1uTpkSK3thHtGg8x89OcK+p6SaHqaFBa5ktBI5BvDmNaj/
 erqaluN/gG4skzKbMWd194VwLGxCN1P5VAW2KtJkMWF7MqYeEB2ygnFpPwvb1bMFGNyk
 d6bw==
X-Gm-Message-State: APjAAAXxGuhzhyV7YI1pa5xIjj9bqdcmC3H2970T0QQZO5ELD02UWWPw
 AbDmNmczI5mkrRE0XwEkYC1Ia0R3x2cIZLfvG8g=
X-Google-Smtp-Source: APXvYqw7vrKa86wgM7xQZbUqI66nryCSzVT8CDmEIiFSzEX4l+6wIpXOCUXWMyLEx8FAWtFe7vjXNDx9SCGoEmr0izw=
X-Received: by 2002:ac2:4476:: with SMTP id y22mr8317425lfl.169.1581955875256; 
 Mon, 17 Feb 2020 08:11:15 -0800 (PST)
MIME-Version: 1.0
References: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
 <20200214154104.114801-2-stefanl.teodorescu@gmail.com>
 <e6c4b825-4874-7a49-2809-3305661287fa@neclab.eu>
In-Reply-To: <e6c4b825-4874-7a49-2809-3305661287fa@neclab.eu>
From: Stefan Teodorescu <stefanl.teodorescu@gmail.com>
Date: Mon, 17 Feb 2020 18:11:04 +0200
Message-ID: <CAEiTdV7WF4qz7MBXsQLAMpQ3qDDwaQS-3JU4oLVcrcSie87xdw@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH v3 2/3] lib/devfs: Add /dev/null
 and /dev/zero support
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: minios-devel@lists.xen.org, Costin Lupu <costin.lupu@cs.pub.ro>
Content-Type: multipart/mixed; boundary="===============1933801274115652128=="
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

--===============1933801274115652128==
Content-Type: multipart/alternative; boundary="000000000000febdcb059ec7cda4"

--000000000000febdcb059ec7cda4
Content-Type: text/plain; charset="UTF-8"

Sure, you can change it if there is any problem, I have just copy pasted it
from another file.

Thanks,
Stefan

On Mon, 17 Feb 2020 at 18:04, Simon Kuenzer <simon.kuenzer@neclab.eu> wrote:

> Thanks for the update! See my comment inline.
>
> On 14.02.20 16:41, stefanl.teodorescu@gmail.com wrote:
> > From: Costin Lupu <costin.lupu@cs.pub.ro>
> >
> > This is shamelessly copied and adapted from our implementation
> > for /dev/random device support.
> >
> > Signed-off-by: Costin Lupu <costin.lupu@cs.pub.ro>
> > Signed-off-by: Stefan Teodorescu <stefanl.teodorescu@gmail.com>
> > ---
> >   lib/devfs/Config.uk               |  17 ++++
> >   lib/devfs/Makefile.uk             |   1 +
> >   lib/devfs/null.c                  | 145 ++++++++++++++++++++++++++++++
> >   lib/vfscore/include/vfscore/uio.h |   1 +
> >   4 files changed, 164 insertions(+)
> >   create mode 100644 lib/devfs/null.c
> >
> > diff --git a/lib/devfs/Config.uk b/lib/devfs/Config.uk
> > index 6f21c01c..af61747f 100644
> > --- a/lib/devfs/Config.uk
> > +++ b/lib/devfs/Config.uk
> > @@ -8,4 +8,21 @@ if LIBDEVFS
> >           bool "Mount /dev during boot"
> >       depends on LIBVFSCORE_AUTOMOUNT_ROOTFS
> >           default n
> > +
> > +     # hidden
> > +     config LIBDEVFS_DEV_NULL_ZERO
> > +             bool
> > +             default n
> > +
> > +     config LIBDEVFS_DEV_NULL
> > +             bool "Register null device"
> > +             default y if LIBDEVFS_AUTOMOUNT
> > +             select LIBDEVFS_DEV_NULL_ZERO
> > +             default n
> > +
> > +     config LIBDEVFS_DEV_ZERO
> > +             bool "Register zero device"
> > +             default y if LIBDEVFS_AUTOMOUNT
> > +             select LIBDEVFS_DEV_NULL_ZERO
> > +             default n
> >   endif
> > diff --git a/lib/devfs/Makefile.uk b/lib/devfs/Makefile.uk
> > index c496fd56..b23ebf15 100644
> > --- a/lib/devfs/Makefile.uk
> > +++ b/lib/devfs/Makefile.uk
> > @@ -6,3 +6,4 @@ LIBDEVFS_CFLAGS-$(call gcc_version_ge,8,0) +=
> -Wno-cast-function-type
> >
> >   LIBDEVFS_SRCS-y += $(LIBDEVFS_BASE)/device.c
> >   LIBDEVFS_SRCS-y += $(LIBDEVFS_BASE)/devfs_vnops.c
> > +LIBDEVFS_SRCS-$(CONFIG_LIBDEVFS_DEV_NULL_ZERO) +=
> $(LIBDEVFS_BASE)/null.c
> > diff --git a/lib/devfs/null.c b/lib/devfs/null.c
> > new file mode 100644
> > index 00000000..60ada995
> > --- /dev/null
> > +++ b/lib/devfs/null.c
> > @@ -0,0 +1,145 @@
> > +/* SPDX-License-Identifier: BSD-3-Clause */
> > +/*
> > + * Authors: Costin Lupu <costin.lupu@cs.pub.ro>
> > + *
> > + * Copyright (c) 2019, University Politehnica of Bucharest. All rights
> reserved.
> > + *
> > + * Redistribution and use in source and binary forms, with or without
> > + * modification, are permitted provided that the following conditions
> > + * are met:
> > + *
> > + * 1. Redistributions of source code must retain the above copyright
> > + *    notice, this list of conditions and the following disclaimer.
> > + * 2. Redistributions in binary form must reproduce the above copyright
> > + *    notice, this list of conditions and the following disclaimer in
> the
> > + *    documentation and/or other materials provided with the
> distribution.
> > + * 3. Neither the name of the copyright holder nor the names of its
> > + *    contributors may be used to endorse or promote products derived
> from
> > + *    this software without specific prior written permission.
> > + *
> > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> "AS IS"
> > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
> TO, THE
> > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> PURPOSE
> > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
> CONTRIBUTORS BE
> > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
> BUSINESS
> > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
> IN
> > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> OTHERWISE)
> > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
> OF THE
> > + * POSSIBILITY OF SUCH DAMAGE.
> > + *
> > + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>
> I know that you probably copied this license header from another file
> but we noticed that this sentence is probably in conflict with the
> license ahead. Can this be removed? With your okay, I would do it for
> you while upstreaming.
>
> > + */
> > +
> > +#include <uk/config.h>
> > +#include <stdlib.h>
> > +#include <string.h>
> > +#include <uk/ctors.h>
> > +#include <uk/print.h>
> > +#include <vfscore/uio.h>
> > +#include <devfs/device.h>
> > +
> > +
> > +int dev_null_write(struct device *dev __unused, struct uio *uio, int
> flags __unused)
> > +{
> > +     uio->uio_resid = 0;
> > +     return 0;
> > +}
> > +
> > +int dev_null_open(struct device *device __unused, int mode __unused)
> > +{
> > +     return 0;
> > +}
> > +
> > +
> > +int dev_null_close(struct device *device __unused)
> > +{
> > +     return 0;
> > +}
> > +
> > +#ifdef CONFIG_LIBDEVFS_DEV_NULL
> > +
> > +#define DEV_NULL_NAME "null"
> > +
> > +int dev_null_read(struct device *dev __unused, struct uio *uio, int
> flags __unused)
> > +{
> > +     uio->uio_resid = uio->uio_iov->iov_len;
> > +     return 0;
> > +}
> > +
> > +static struct devops null_devops = {
> > +     .read = dev_null_read,
> > +     .write = dev_null_write,
> > +     .open = dev_null_open,
> > +     .close = dev_null_close,
> > +};
> > +
> > +static struct driver drv_null = {
> > +     .devops = &null_devops,
> > +     .devsz = 0,
> > +     .name = DEV_NULL_NAME
> > +};
> > +#endif
> > +
> > +#ifdef CONFIG_LIBDEVFS_DEV_ZERO
> > +
> > +#define DEV_ZERO_NAME "zero"
> > +
> > +int dev_zero_read(struct device *dev __unused, struct uio *uio, int
> flags __unused)
> > +{
> > +     size_t count;
> > +     char *buf;
> > +
> > +     buf = uio->uio_iov->iov_base;
> > +     count = uio->uio_iov->iov_len;
> > +
> > +     memset(buf, 0, count);
> > +     uio->uio_resid = 0;
> > +     return 0;
> > +}
> > +
> > +static struct devops zero_devops = {
> > +     .read = dev_zero_read,
> > +     .write = dev_null_write,
> > +     .open = dev_null_open,
> > +     .close = dev_null_close,
> > +};
> > +
> > +static struct driver drv_zero = {
> > +     .devops = &zero_devops,
> > +     .devsz = 0,
> > +     .name = DEV_ZERO_NAME
> > +};
> > +#endif
> > +
> > +static int devfs_register_null(void)
> > +{
> > +     struct device *dev;
> > +
> > +#ifdef CONFIG_LIBDEVFS_DEV_NULL
> > +     uk_pr_debug("Register '%s' to devfs\n", DEV_NULL_NAME);
> > +
> > +     /* register /dev/null */
> > +     dev = device_create(&drv_null, DEV_NULL_NAME, D_CHR);
> > +     if (dev == NULL) {
> > +             uk_pr_err("Failed to register '%s' to devfs\n",
> DEV_NULL_NAME);
> > +             return -1;
> > +     }
> > +#endif
> > +
> > +#ifdef CONFIG_LIBDEVFS_DEV_ZERO
> > +     uk_pr_debug("Register '%s' to devfs\n", DEV_ZERO_NAME);
> > +
> > +     /* register /dev/zero */
> > +     dev = device_create(&drv_zero, DEV_ZERO_NAME, D_CHR);
> > +     if (dev == NULL) {
> > +             uk_pr_err("Failed to register '%s' to devfs\n",
> DEV_ZERO_NAME);
> > +             return -1;
> > +     }
> > +#endif
> > +
> > +     return 0;
> > +}
> > +
> > +devfs_initcall(devfs_register_null);
> > diff --git a/lib/vfscore/include/vfscore/uio.h
> b/lib/vfscore/include/vfscore/uio.h
> > index 83dd5b9a..b14fdb82 100644
> > --- a/lib/vfscore/include/vfscore/uio.h
> > +++ b/lib/vfscore/include/vfscore/uio.h
> > @@ -36,6 +36,7 @@
> >   #include <sys/types.h>
> >   #include <sys/uio.h>
> >   #include <limits.h>
> > +#include <uk/assert.h>
> >
> >   enum        uio_rw { UIO_READ, UIO_WRITE };
> >
> >
>

--000000000000febdcb059ec7cda4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div><div dir=3D"auto">Sure, you can change it if there is any problem, I h=
ave just copy pasted it from another file.</div></div><div dir=3D"auto"><br=
></div><div dir=3D"auto">Thanks,</div><div dir=3D"auto">Stefan</div><div><b=
r><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, =
17 Feb 2020 at 18:04, Simon Kuenzer &lt;<a href=3D"mailto:simon.kuenzer@nec=
lab.eu">simon.kuenzer@neclab.eu</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">Thanks for the update! See my comment inline.<br>
<br>
On 14.02.20 16:41, <a href=3D"mailto:stefanl.teodorescu@gmail.com" target=
=3D"_blank">stefanl.teodorescu@gmail.com</a> wrote:<br>
&gt; From: Costin Lupu &lt;<a href=3D"mailto:costin.lupu@cs.pub.ro" target=
=3D"_blank">costin.lupu@cs.pub.ro</a>&gt;<br>
&gt; <br>
&gt; This is shamelessly copied and adapted from our implementation<br>
&gt; for /dev/random device support.<br>
&gt; <br>
&gt; Signed-off-by: Costin Lupu &lt;<a href=3D"mailto:costin.lupu@cs.pub.ro=
" target=3D"_blank">costin.lupu@cs.pub.ro</a>&gt;<br>
&gt; Signed-off-by: Stefan Teodorescu &lt;<a href=3D"mailto:stefanl.teodore=
scu@gmail.com" target=3D"_blank">stefanl.teodorescu@gmail.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0lib/devfs/Config.uk=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0|=C2=A0 17 ++++<br>
&gt;=C2=A0 =C2=A0lib/devfs/Makefile.uk=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0|=C2=A0 =C2=A01 +<br>
&gt;=C2=A0 =C2=A0lib/devfs/null.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 | 145 ++++++++++++++++++++++++++++++<br>
&gt;=C2=A0 =C2=A0lib/vfscore/include/vfscore/uio.h |=C2=A0 =C2=A01 +<br>
&gt;=C2=A0 =C2=A04 files changed, 164 insertions(+)<br>
&gt;=C2=A0 =C2=A0create mode 100644 lib/devfs/null.c<br>
&gt; <br>
&gt; diff --git a/lib/devfs/Config.uk b/lib/devfs/Config.uk<br>
&gt; index 6f21c01c..af61747f 100644<br>
&gt; --- a/lib/devfs/Config.uk<br>
&gt; +++ b/lib/devfs/Config.uk<br>
&gt; @@ -8,4 +8,21 @@ if LIBDEVFS<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bool &quot;Mount /dev during b=
oot&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0depends on LIBVFSCORE_AUTOMOUNT_ROOTFS<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default n<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0# hidden<br>
&gt; +=C2=A0 =C2=A0 =C2=A0config LIBDEVFS_DEV_NULL_ZERO<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bool<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default n<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0config LIBDEVFS_DEV_NULL<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bool &quot;Register n=
ull device&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default y if LIBDEVFS=
_AUTOMOUNT<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0select LIBDEVFS_DEV_N=
ULL_ZERO<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default n<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0config LIBDEVFS_DEV_ZERO<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bool &quot;Register z=
ero device&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default y if LIBDEVFS=
_AUTOMOUNT<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0select LIBDEVFS_DEV_N=
ULL_ZERO<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default n<br>
&gt;=C2=A0 =C2=A0endif<br>
&gt; diff --git a/lib/devfs/Makefile.uk b/lib/devfs/Makefile.uk<br>
&gt; index c496fd56..b23ebf15 100644<br>
&gt; --- a/lib/devfs/Makefile.uk<br>
&gt; +++ b/lib/devfs/Makefile.uk<br>
&gt; @@ -6,3 +6,4 @@ LIBDEVFS_CFLAGS-$(call gcc_version_ge,8,0) +=3D -Wno-c=
ast-function-type<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0LIBDEVFS_SRCS-y +=3D $(LIBDEVFS_BASE)/device.c<br>
&gt;=C2=A0 =C2=A0LIBDEVFS_SRCS-y +=3D $(LIBDEVFS_BASE)/devfs_vnops.c<br>
&gt; +LIBDEVFS_SRCS-$(CONFIG_LIBDEVFS_DEV_NULL_ZERO) +=3D $(LIBDEVFS_BASE)/=
null.c<br>
&gt; diff --git a/lib/devfs/null.c b/lib/devfs/null.c<br>
&gt; new file mode 100644<br>
&gt; index 00000000..60ada995<br>
&gt; --- /dev/null<br>
&gt; +++ b/lib/devfs/null.c<br>
&gt; @@ -0,0 +1,145 @@<br>
&gt; +/* SPDX-License-Identifier: BSD-3-Clause */<br>
&gt; +/*<br>
&gt; + * Authors: Costin Lupu &lt;<a href=3D"mailto:costin.lupu@cs.pub.ro" =
target=3D"_blank">costin.lupu@cs.pub.ro</a>&gt;<br>
&gt; + *<br>
&gt; + * Copyright (c) 2019, University Politehnica of Bucharest. All right=
s reserved.<br>
&gt; + *<br>
&gt; + * Redistribution and use in source and binary forms, with or without=
<br>
&gt; + * modification, are permitted provided that the following conditions=
<br>
&gt; + * are met:<br>
&gt; + *<br>
&gt; + * 1. Redistributions of source code must retain the above copyright<=
br>
&gt; + *=C2=A0 =C2=A0 notice, this list of conditions and the following dis=
claimer.<br>
&gt; + * 2. Redistributions in binary form must reproduce the above copyrig=
ht<br>
&gt; + *=C2=A0 =C2=A0 notice, this list of conditions and the following dis=
claimer in the<br>
&gt; + *=C2=A0 =C2=A0 documentation and/or other materials provided with th=
e distribution.<br>
&gt; + * 3. Neither the name of the copyright holder nor the names of its<b=
r>
&gt; + *=C2=A0 =C2=A0 contributors may be used to endorse or promote produc=
ts derived from<br>
&gt; + *=C2=A0 =C2=A0 this software without specific prior written permissi=
on.<br>
&gt; + *<br>
&gt; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTOR=
S &quot;AS IS&quot;<br>
&gt; + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED =
TO, THE<br>
&gt; + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR=
 PURPOSE<br>
&gt; + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBU=
TORS BE<br>
&gt; + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, O=
R<br>
&gt; + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT =
OF<br>
&gt; + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BU=
SINESS<br>
&gt; + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETH=
ER IN<br>
&gt; + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
&gt; + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
&gt; + * POSSIBILITY OF SUCH DAMAGE.<br>
&gt; + *<br>
&gt; + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
<br>
I know that you probably copied this license header from another file <br>
but we noticed that this sentence is probably in conflict with the <br>
license ahead. Can this be removed? With your okay, I would do it for <br>
you while upstreaming.<br>
<br>
&gt; + */<br>
&gt; +<br>
&gt; +#include &lt;uk/config.h&gt;<br>
&gt; +#include &lt;stdlib.h&gt;<br>
&gt; +#include &lt;string.h&gt;<br>
&gt; +#include &lt;uk/ctors.h&gt;<br>
&gt; +#include &lt;uk/print.h&gt;<br>
&gt; +#include &lt;vfscore/uio.h&gt;<br>
&gt; +#include &lt;devfs/device.h&gt;<br>
&gt; +<br>
&gt; +<br>
&gt; +int dev_null_write(struct device *dev __unused, struct uio *uio, int =
flags __unused)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0uio-&gt;uio_resid =3D 0;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return 0;<br>
&gt; +}<br>
&gt; +<br>
&gt; +int dev_null_open(struct device *device __unused, int mode __unused)<=
br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return 0;<br>
&gt; +}<br>
&gt; +<br>
&gt; +<br>
&gt; +int dev_null_close(struct device *device __unused)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return 0;<br>
&gt; +}<br>
&gt; +<br>
&gt; +#ifdef CONFIG_LIBDEVFS_DEV_NULL<br>
&gt; +<br>
&gt; +#define DEV_NULL_NAME &quot;null&quot;<br>
&gt; +<br>
&gt; +int dev_null_read(struct device *dev __unused, struct uio *uio, int f=
lags __unused)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0uio-&gt;uio_resid =3D uio-&gt;uio_iov-&gt;iov_len=
;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return 0;<br>
&gt; +}<br>
&gt; +<br>
&gt; +static struct devops null_devops =3D {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.read =3D dev_null_read,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.write =3D dev_null_write,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.open =3D dev_null_open,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.close =3D dev_null_close,<br>
&gt; +};<br>
&gt; +<br>
&gt; +static struct driver drv_null =3D {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.devops =3D &amp;null_devops,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.devsz =3D 0,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.name =3D DEV_NULL_NAME<br>
&gt; +};<br>
&gt; +#endif<br>
&gt; +<br>
&gt; +#ifdef CONFIG_LIBDEVFS_DEV_ZERO<br>
&gt; +<br>
&gt; +#define DEV_ZERO_NAME &quot;zero&quot;<br>
&gt; +<br>
&gt; +int dev_zero_read(struct device *dev __unused, struct uio *uio, int f=
lags __unused)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0size_t count;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0char *buf;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0buf =3D uio-&gt;uio_iov-&gt;iov_base;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0count =3D uio-&gt;uio_iov-&gt;iov_len;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0memset(buf, 0, count);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0uio-&gt;uio_resid =3D 0;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return 0;<br>
&gt; +}<br>
&gt; +<br>
&gt; +static struct devops zero_devops =3D {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.read =3D dev_zero_read,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.write =3D dev_null_write,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.open =3D dev_null_open,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.close =3D dev_null_close,<br>
&gt; +};<br>
&gt; +<br>
&gt; +static struct driver drv_zero =3D {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.devops =3D &amp;zero_devops,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.devsz =3D 0,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0.name =3D DEV_ZERO_NAME<br>
&gt; +};<br>
&gt; +#endif<br>
&gt; +<br>
&gt; +static int devfs_register_null(void)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0struct device *dev;<br>
&gt; +<br>
&gt; +#ifdef CONFIG_LIBDEVFS_DEV_NULL<br>
&gt; +=C2=A0 =C2=A0 =C2=A0uk_pr_debug(&quot;Register &#39;%s&#39; to devfs\=
n&quot;, DEV_NULL_NAME);<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0/* register /dev/null */<br>
&gt; +=C2=A0 =C2=A0 =C2=A0dev =3D device_create(&amp;drv_null, DEV_NULL_NAM=
E, D_CHR);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0if (dev =3D=3D NULL) {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uk_pr_err(&quot;Faile=
d to register &#39;%s&#39; to devfs\n&quot;, DEV_NULL_NAME);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return -1;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0}<br>
&gt; +#endif<br>
&gt; +<br>
&gt; +#ifdef CONFIG_LIBDEVFS_DEV_ZERO<br>
&gt; +=C2=A0 =C2=A0 =C2=A0uk_pr_debug(&quot;Register &#39;%s&#39; to devfs\=
n&quot;, DEV_ZERO_NAME);<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0/* register /dev/zero */<br>
&gt; +=C2=A0 =C2=A0 =C2=A0dev =3D device_create(&amp;drv_zero, DEV_ZERO_NAM=
E, D_CHR);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0if (dev =3D=3D NULL) {<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uk_pr_err(&quot;Faile=
d to register &#39;%s&#39; to devfs\n&quot;, DEV_ZERO_NAME);<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return -1;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0}<br>
&gt; +#endif<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return 0;<br>
&gt; +}<br>
&gt; +<br>
&gt; +devfs_initcall(devfs_register_null);<br>
&gt; diff --git a/lib/vfscore/include/vfscore/uio.h b/lib/vfscore/include/v=
fscore/uio.h<br>
&gt; index 83dd5b9a..b14fdb82 100644<br>
&gt; --- a/lib/vfscore/include/vfscore/uio.h<br>
&gt; +++ b/lib/vfscore/include/vfscore/uio.h<br>
&gt; @@ -36,6 +36,7 @@<br>
&gt;=C2=A0 =C2=A0#include &lt;sys/types.h&gt;<br>
&gt;=C2=A0 =C2=A0#include &lt;sys/uio.h&gt;<br>
&gt;=C2=A0 =C2=A0#include &lt;limits.h&gt;<br>
&gt; +#include &lt;uk/assert.h&gt;<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0enum=C2=A0 =C2=A0 =C2=A0 =C2=A0 uio_rw { UIO_READ, UIO_WRI=
TE };<br>
&gt;=C2=A0 =C2=A0<br>
&gt; <br>
</blockquote></div></div>

--000000000000febdcb059ec7cda4--


--===============1933801274115652128==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

--===============1933801274115652128==--


From minios-devel-bounces@lists.xenproject.org Mon Feb 17 16:15:20 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 16:15:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3j3H-0002yR-VU; Mon, 17 Feb 2020 16:15:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=Hznm=4F=gmail.com=stefanl.teodorescu@srs-us1.protection.inumbo.net>)
 id 1j3j3G-0002yM-BI
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 16:15:18 +0000
X-Inumbo-ID: aeec82ea-51a0-11ea-bc8e-bc764e2007e4
Received: from mail-lj1-x244.google.com (unknown [2a00:1450:4864:20::244])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id aeec82ea-51a0-11ea-bc8e-bc764e2007e4;
 Mon, 17 Feb 2020 16:15:16 +0000 (UTC)
Received: by mail-lj1-x244.google.com with SMTP id q8so19490967ljb.2
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 08:15:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=Bkpk2Bwn8TBpeQyE/BT1fqGpgpZQ4fi/L3hrYhgrfZs=;
 b=Vlmj/qKfx6CKbB/zZvu8iDCj4cgw/zOX7gsdvvihGJGDIdFOPJEBX406OQrsXGYWFN
 53iLO0QT5s+aft6HexEl5tstbBwo9+g8hKRVpfGgQxQX3eAmO8Xo0VAjD2LCYZEDYIZ7
 qupIk+dQPTZht5C7g7AFp5tDI0VkzYflwfNoP8B/jeA3b9RX7pmuT6wXZC3ubZKhJrxp
 nFmuw3Y0TB2n1zKSSDtaTOHxS5WC5zdfAThdUI+hcR11asru+H5/wVy5NSsX8RO8m+La
 lQduoAuWAIaXZlSGoyuoBXF4q4YB55Aqz8myuoAa/GwMChyeiYM3gnQnt1b4NHq2Dj+G
 DaLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=Bkpk2Bwn8TBpeQyE/BT1fqGpgpZQ4fi/L3hrYhgrfZs=;
 b=KtqeFIPBjbPdztya7yOMrFs0N/Vh9gbzfGW4LcwF6cXgGpPopwMnNlZ+HI9XmXtMGq
 m7WD3UKJZXOTrNYc0UerRtIwPjGNldGnAWGlVPXGVhMlq2QZjrYTnqC7L6A1DO+NWvre
 +K9Fjaoy0yPYjCY5WPlRCAsSp68R+7hvlNXe9pe8SbsXG3jnhaYodQIZgCiTiHxIppYC
 2qGyeKaccdS0sc3dtFlq7IA5gTDiany2lMHmui6hzxk+bBZVqE0mVBsa7uSk2yL3bMZR
 icQ2AxVlWA9hQJJ+mL0G4WzG2/yQpw6Si+4kiR9T64rA6JWXiW0czOkYs2Ele85b+QT8
 e3xw==
X-Gm-Message-State: APjAAAXkypK9cuSfXp5xXjIkMRBbi5RUtY2wes3qmdyY4Apf86EQxMd5
 MEIR+Vgi11KmZZJAQzE84nhOzCYXW6BKkcI/x4MALQ==
X-Google-Smtp-Source: APXvYqy+tvjnYeZ1Cry0AlMKi0xTBBWBxehNmCjRzrIKquBrcfc384dV3kRjAx5nNXNy+s9i8oTnbPhACibBfHS/jDY=
X-Received: by 2002:a2e:a553:: with SMTP id e19mr10307427ljn.64.1581956115531; 
 Mon, 17 Feb 2020 08:15:15 -0800 (PST)
MIME-Version: 1.0
References: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
 <48534d66-f0ef-97fd-579d-76052a42f062@neclab.eu>
In-Reply-To: <48534d66-f0ef-97fd-579d-76052a42f062@neclab.eu>
From: Stefan Teodorescu <stefanl.teodorescu@gmail.com>
Date: Mon, 17 Feb 2020 18:15:04 +0200
Message-ID: <CAEiTdV7UfQqqqr5zuVMuzHFsBBb47Br5qMWQKir_6GO0CQzvfQ@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH v3 1/3] lib/uktime: Introduce
 POSIX timer stubs
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: minios-devel@lists.xen.org, Costin Lupu <costin.lupu@cs.pub.ro>
Content-Type: multipart/mixed; boundary="===============8064800599072601009=="
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

--===============8064800599072601009==
Content-Type: multipart/alternative; boundary="000000000000510a4f059ec7dc39"

--000000000000510a4f059ec7dc39
Content-Type: text/plain; charset="UTF-8"

Sure, you can change the header, I have just copy pasted it from another
file.

Thanks,
Stefan

On Mon, 17 Feb 2020 at 18:04, Simon Kuenzer <simon.kuenzer@neclab.eu> wrote:

> Hi, this looks good. I have just one question to the header.
>
> Thanks,
>
> Simon
>
> On 14.02.20 16:41, stefanl.teodorescu@gmail.com wrote:
> > From: Costin Lupu <costin.lupu@cs.pub.ro>
> >
> > We simply introduce the stubs for these functions. They will have to be
> > implemented later, therefore we do not add any license for now.
> >
> > Signed-off-by: Costin Lupu <costin.lupu@cs.pub.ro>
> > Signed-off-by: Stefan Teodorescu <stefanl.teodorescu@gmail.com>
> > ---
> >   lib/uktime/Makefile.uk   |  1 +
> >   lib/uktime/exportsyms.uk |  5 +++
> >   lib/uktime/timer.c       | 80 ++++++++++++++++++++++++++++++++++++++++
> >   3 files changed, 86 insertions(+)
> >   create mode 100644 lib/uktime/timer.c
> >
> > diff --git a/lib/uktime/Makefile.uk b/lib/uktime/Makefile.uk
> > index 47fbb4b3..2976a10f 100644
> > --- a/lib/uktime/Makefile.uk
> > +++ b/lib/uktime/Makefile.uk
> > @@ -11,3 +11,4 @@ LIBUKTIME_SRCS-y +=
> $(LIBUKTIME_BASE)/musl-imported/src/timegm.c
> >   LIBUKTIME_SRCS-y += $(LIBUKTIME_BASE)/musl-imported/src/__tm_to_secs.c
> >   LIBUKTIME_SRCS-y +=
> $(LIBUKTIME_BASE)/musl-imported/src/__year_to_secs.c
> >   LIBUKTIME_SRCS-y += $(LIBUKTIME_BASE)/time.c
> > +LIBUKTIME_SRCS-y += $(LIBUKTIME_BASE)/timer.c
> > diff --git a/lib/uktime/exportsyms.uk b/lib/uktime/exportsyms.uk
> > index bd9c49cf..82b70b7f 100644
> > --- a/lib/uktime/exportsyms.uk
> > +++ b/lib/uktime/exportsyms.uk
> > @@ -9,3 +9,8 @@ timegm
> >   times
> >   usleep
> >   utime
> > +timer_create
> > +timer_delete
> > +timer_settime
> > +timer_gettime
> > +timer_getoverrun
> > diff --git a/lib/uktime/timer.c b/lib/uktime/timer.c
> > new file mode 100644
> > index 00000000..0c8db40d
> > --- /dev/null
> > +++ b/lib/uktime/timer.c
> > @@ -0,0 +1,80 @@
> > +/* SPDX-License-Identifier: BSD-3-Clause */
> > +/*
> > + * Authors: Costin Lupu <costin.lupu@cs.pub.ro>
> > + *
> > + * Copyright (c) 2019, University Politehnica of Bucharest. All rights
> reserved.
> > + *
> > + * Redistribution and use in source and binary forms, with or without
> > + * modification, are permitted provided that the following conditions
> > + * are met:
> > + *
> > + * 1. Redistributions of source code must retain the above copyright
> > + *    notice, this list of conditions and the following disclaimer.
> > + * 2. Redistributions in binary form must reproduce the above copyright
> > + *    notice, this list of conditions and the following disclaimer in
> the
> > + *    documentation and/or other materials provided with the
> distribution.
> > + * 3. Neither the name of the copyright holder nor the names of its
> > + *    contributors may be used to endorse or promote products derived
> from
> > + *    this software without specific prior written permission.
> > + *
> > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> "AS IS"
> > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
> TO, THE
> > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> PURPOSE
> > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
> CONTRIBUTORS BE
> > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
> BUSINESS
> > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
> IN
> > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> OTHERWISE)
> > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
> OF THE
> > + * POSSIBILITY OF SUCH DAMAGE.
> > + *
> > + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
>
> I know that you probably copied this license header from another file
> but we noticed that this sentence is probably in conflict with the
> license ahead. Can this be removed? With your okay, I would do it for
> you while upstreaming.
>
> > + */
> > +
> > +#include <errno.h>
> > +#include <time.h>
> > +#include <uk/essentials.h>
> > +#include <uk/print.h>
> > +
> > +
> > +int timer_create(clockid_t clockid __unused,
> > +             struct sigevent *__restrict sevp __unused,
> > +             timer_t *__restrict timerid __unused)
> > +{
> > +     WARN_STUBBED();
> > +     errno = ENOTSUP;
> > +     return -1;
> > +}
> > +
> > +int timer_delete(timer_t timerid __unused)
> > +{
> > +     WARN_STUBBED();
> > +     errno = ENOTSUP;
> > +     return -1;
> > +}
> > +
> > +int timer_settime(timer_t timerid __unused,
> > +             int flags __unused,
> > +             const struct itimerspec *__restrict new_value __unused,
> > +             struct itimerspec *__restrict old_value __unused)
> > +{
> > +     WARN_STUBBED();
> > +     errno = ENOTSUP;
> > +     return -1;
> > +}
> > +
> > +int timer_gettime(timer_t timerid __unused,
> > +             struct itimerspec *curr_value __unused)
> > +{
> > +     WARN_STUBBED();
> > +     errno = ENOTSUP;
> > +     return -1;
> > +}
> > +
> > +int timer_getoverrun(timer_t timerid __unused)
> > +{
> > +     WARN_STUBBED();
> > +     errno = ENOTSUP;
> > +     return -1;
> > +}
> >
>

--000000000000510a4f059ec7dc39
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div><div dir=3D"auto">Sure, you can change the header, I have just copy pa=
sted it from another file.</div></div><div dir=3D"auto"><br></div><div dir=
=3D"auto">Thanks,</div><div dir=3D"auto">Stefan</div><div><br><div class=3D=
"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, 17 Feb 2020 at =
18:04, Simon Kuenzer &lt;<a href=3D"mailto:simon.kuenzer@neclab.eu">simon.k=
uenzer@neclab.eu</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,=
 this looks good. I have just one question to the header.<br>
<br>
Thanks,<br>
<br>
Simon<br>
<br>
On 14.02.20 16:41, <a href=3D"mailto:stefanl.teodorescu@gmail.com" target=
=3D"_blank">stefanl.teodorescu@gmail.com</a> wrote:<br>
&gt; From: Costin Lupu &lt;<a href=3D"mailto:costin.lupu@cs.pub.ro" target=
=3D"_blank">costin.lupu@cs.pub.ro</a>&gt;<br>
&gt; <br>
&gt; We simply introduce the stubs for these functions. They will have to b=
e<br>
&gt; implemented later, therefore we do not add any license for now.<br>
&gt; <br>
&gt; Signed-off-by: Costin Lupu &lt;<a href=3D"mailto:costin.lupu@cs.pub.ro=
" target=3D"_blank">costin.lupu@cs.pub.ro</a>&gt;<br>
&gt; Signed-off-by: Stefan Teodorescu &lt;<a href=3D"mailto:stefanl.teodore=
scu@gmail.com" target=3D"_blank">stefanl.teodorescu@gmail.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0lib/uktime/Makefile.uk=C2=A0 =C2=A0|=C2=A0 1 +<br>
&gt;=C2=A0 =C2=A0lib/uktime/<a href=3D"http://exportsyms.uk" rel=3D"norefer=
rer" target=3D"_blank">exportsyms.uk</a> |=C2=A0 5 +++<br>
&gt;=C2=A0 =C2=A0lib/uktime/timer.c=C2=A0 =C2=A0 =C2=A0 =C2=A0| 80 ++++++++=
++++++++++++++++++++++++++++++++<br>
&gt;=C2=A0 =C2=A03 files changed, 86 insertions(+)<br>
&gt;=C2=A0 =C2=A0create mode 100644 lib/uktime/timer.c<br>
&gt; <br>
&gt; diff --git a/lib/uktime/Makefile.uk b/lib/uktime/Makefile.uk<br>
&gt; index 47fbb4b3..2976a10f 100644<br>
&gt; --- a/lib/uktime/Makefile.uk<br>
&gt; +++ b/lib/uktime/Makefile.uk<br>
&gt; @@ -11,3 +11,4 @@ LIBUKTIME_SRCS-y +=3D $(LIBUKTIME_BASE)/musl-importe=
d/src/timegm.c<br>
&gt;=C2=A0 =C2=A0LIBUKTIME_SRCS-y +=3D $(LIBUKTIME_BASE)/musl-imported/src/=
__tm_to_secs.c<br>
&gt;=C2=A0 =C2=A0LIBUKTIME_SRCS-y +=3D $(LIBUKTIME_BASE)/musl-imported/src/=
__year_to_secs.c<br>
&gt;=C2=A0 =C2=A0LIBUKTIME_SRCS-y +=3D $(LIBUKTIME_BASE)/time.c<br>
&gt; +LIBUKTIME_SRCS-y +=3D $(LIBUKTIME_BASE)/timer.c<br>
&gt; diff --git a/lib/uktime/<a href=3D"http://exportsyms.uk" rel=3D"norefe=
rrer" target=3D"_blank">exportsyms.uk</a> b/lib/uktime/<a href=3D"http://ex=
portsyms.uk" rel=3D"noreferrer" target=3D"_blank">exportsyms.uk</a><br>
&gt; index bd9c49cf..82b70b7f 100644<br>
&gt; --- a/lib/uktime/<a href=3D"http://exportsyms.uk" rel=3D"noreferrer" t=
arget=3D"_blank">exportsyms.uk</a><br>
&gt; +++ b/lib/uktime/<a href=3D"http://exportsyms.uk" rel=3D"noreferrer" t=
arget=3D"_blank">exportsyms.uk</a><br>
&gt; @@ -9,3 +9,8 @@ timegm<br>
&gt;=C2=A0 =C2=A0times<br>
&gt;=C2=A0 =C2=A0usleep<br>
&gt;=C2=A0 =C2=A0utime<br>
&gt; +timer_create<br>
&gt; +timer_delete<br>
&gt; +timer_settime<br>
&gt; +timer_gettime<br>
&gt; +timer_getoverrun<br>
&gt; diff --git a/lib/uktime/timer.c b/lib/uktime/timer.c<br>
&gt; new file mode 100644<br>
&gt; index 00000000..0c8db40d<br>
&gt; --- /dev/null<br>
&gt; +++ b/lib/uktime/timer.c<br>
&gt; @@ -0,0 +1,80 @@<br>
&gt; +/* SPDX-License-Identifier: BSD-3-Clause */<br>
&gt; +/*<br>
&gt; + * Authors: Costin Lupu &lt;<a href=3D"mailto:costin.lupu@cs.pub.ro" =
target=3D"_blank">costin.lupu@cs.pub.ro</a>&gt;<br>
&gt; + *<br>
&gt; + * Copyright (c) 2019, University Politehnica of Bucharest. All right=
s reserved.<br>
&gt; + *<br>
&gt; + * Redistribution and use in source and binary forms, with or without=
<br>
&gt; + * modification, are permitted provided that the following conditions=
<br>
&gt; + * are met:<br>
&gt; + *<br>
&gt; + * 1. Redistributions of source code must retain the above copyright<=
br>
&gt; + *=C2=A0 =C2=A0 notice, this list of conditions and the following dis=
claimer.<br>
&gt; + * 2. Redistributions in binary form must reproduce the above copyrig=
ht<br>
&gt; + *=C2=A0 =C2=A0 notice, this list of conditions and the following dis=
claimer in the<br>
&gt; + *=C2=A0 =C2=A0 documentation and/or other materials provided with th=
e distribution.<br>
&gt; + * 3. Neither the name of the copyright holder nor the names of its<b=
r>
&gt; + *=C2=A0 =C2=A0 contributors may be used to endorse or promote produc=
ts derived from<br>
&gt; + *=C2=A0 =C2=A0 this software without specific prior written permissi=
on.<br>
&gt; + *<br>
&gt; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTOR=
S &quot;AS IS&quot;<br>
&gt; + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED =
TO, THE<br>
&gt; + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR=
 PURPOSE<br>
&gt; + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBU=
TORS BE<br>
&gt; + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, O=
R<br>
&gt; + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT =
OF<br>
&gt; + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BU=
SINESS<br>
&gt; + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETH=
ER IN<br>
&gt; + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER=
WISE)<br>
&gt; + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISE=
D OF THE<br>
&gt; + * POSSIBILITY OF SUCH DAMAGE.<br>
&gt; + *<br>
&gt; + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.<br>
<br>
I know that you probably copied this license header from another file <br>
but we noticed that this sentence is probably in conflict with the <br>
license ahead. Can this be removed? With your okay, I would do it for <br>
you while upstreaming.<br>
<br>
&gt; + */<br>
&gt; +<br>
&gt; +#include &lt;errno.h&gt;<br>
&gt; +#include &lt;time.h&gt;<br>
&gt; +#include &lt;uk/essentials.h&gt;<br>
&gt; +#include &lt;uk/print.h&gt;<br>
&gt; +<br>
&gt; +<br>
&gt; +int timer_create(clockid_t clockid __unused,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct sigevent *__re=
strict sevp __unused,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0timer_t *__restrict t=
imerid __unused)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0WARN_STUBBED();<br>
&gt; +=C2=A0 =C2=A0 =C2=A0errno =3D ENOTSUP;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return -1;<br>
&gt; +}<br>
&gt; +<br>
&gt; +int timer_delete(timer_t timerid __unused)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0WARN_STUBBED();<br>
&gt; +=C2=A0 =C2=A0 =C2=A0errno =3D ENOTSUP;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return -1;<br>
&gt; +}<br>
&gt; +<br>
&gt; +int timer_settime(timer_t timerid __unused,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int flags __unused,<b=
r>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0const struct itimersp=
ec *__restrict new_value __unused,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct itimerspec *__=
restrict old_value __unused)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0WARN_STUBBED();<br>
&gt; +=C2=A0 =C2=A0 =C2=A0errno =3D ENOTSUP;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return -1;<br>
&gt; +}<br>
&gt; +<br>
&gt; +int timer_gettime(timer_t timerid __unused,<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct itimerspec *cu=
rr_value __unused)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0WARN_STUBBED();<br>
&gt; +=C2=A0 =C2=A0 =C2=A0errno =3D ENOTSUP;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return -1;<br>
&gt; +}<br>
&gt; +<br>
&gt; +int timer_getoverrun(timer_t timerid __unused)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0WARN_STUBBED();<br>
&gt; +=C2=A0 =C2=A0 =C2=A0errno =3D ENOTSUP;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0return -1;<br>
&gt; +}<br>
&gt; <br>
</blockquote></div></div>

--000000000000510a4f059ec7dc39--


--===============8064800599072601009==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

--===============8064800599072601009==--


From minios-devel-bounces@lists.xenproject.org Mon Feb 17 16:28:12 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 16:28:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3jFi-0003wR-Au; Mon, 17 Feb 2020 16:28:10 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3jFg-0003wM-Rm
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 16:28:08 +0000
X-Inumbo-ID: 7a08689e-51a2-11ea-800b-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 7a08689e-51a2-11ea-800b-12813bfff9fa;
 Mon, 17 Feb 2020 16:28:06 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id DBDFF103A0E;
 Mon, 17 Feb 2020 17:28:05 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 1ivBMhnKm06E; Mon, 17 Feb 2020 17:28:05 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id B404A101048;
 Mon, 17 Feb 2020 17:28:05 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 17 Feb
 2020 17:28:05 +0100
To: Stefan Teodorescu <stefanl.teodorescu@gmail.com>
References: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
 <20200214154104.114801-2-stefanl.teodorescu@gmail.com>
 <e6c4b825-4874-7a49-2809-3305661287fa@neclab.eu>
 <CAEiTdV7WF4qz7MBXsQLAMpQ3qDDwaQS-3JU4oLVcrcSie87xdw@mail.gmail.com>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <ecd142e4-90fa-5b12-90e6-c65882a63d01@neclab.eu>
Date: Mon, 17 Feb 2020 17:28:04 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <CAEiTdV7WF4qz7MBXsQLAMpQ3qDDwaQS-3JU4oLVcrcSie87xdw@mail.gmail.com>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH v3 2/3] lib/devfs: Add /dev/null
 and /dev/zero support
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: minios-devel@lists.xen.org, Costin Lupu <costin.lupu@cs.pub.ro>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

T2theSwgZ3JlYXQuIFRoYW5rcyEKClJldmlld2VkLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4KCk9uIDE3LjAyLjIwIDE3OjExLCBTdGVmYW4gVGVvZG9yZXNjdSB3
cm90ZToKPiBTdXJlLCB5b3UgY2FuIGNoYW5nZSBpdCBpZiB0aGVyZSBpcyBhbnkgcHJvYmxlbSwg
SSBoYXZlIGp1c3QgY29weSBwYXN0ZWQgCj4gaXQgZnJvbSBhbm90aGVyIGZpbGUuCj4gCj4gVGhh
bmtzLAo+IFN0ZWZhbgo+IAo+IE9uIE1vbiwgMTcgRmViIDIwMjAgYXQgMTg6MDQsIFNpbW9uIEt1
ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1IAo+IDxtYWlsdG86c2ltb24ua3VlbnplckBu
ZWNsYWIuZXU+PiB3cm90ZToKPiAKPiAgICAgVGhhbmtzIGZvciB0aGUgdXBkYXRlISBTZWUgbXkg
Y29tbWVudCBpbmxpbmUuCj4gCj4gICAgIE9uIDE0LjAyLjIwIDE2OjQxLCBzdGVmYW5sLnRlb2Rv
cmVzY3VAZ21haWwuY29tCj4gICAgIDxtYWlsdG86c3RlZmFubC50ZW9kb3Jlc2N1QGdtYWlsLmNv
bT4gd3JvdGU6Cj4gICAgICA+IEZyb206IENvc3RpbiBMdXB1IDxjb3N0aW4ubHVwdUBjcy5wdWIu
cm8KPiAgICAgPG1haWx0bzpjb3N0aW4ubHVwdUBjcy5wdWIucm8+Pgo+ICAgICAgPgo+ICAgICAg
PiBUaGlzIGlzIHNoYW1lbGVzc2x5IGNvcGllZCBhbmQgYWRhcHRlZCBmcm9tIG91ciBpbXBsZW1l
bnRhdGlvbgo+ICAgICAgPiBmb3IgL2Rldi9yYW5kb20gZGV2aWNlIHN1cHBvcnQuCj4gICAgICA+
Cj4gICAgICA+IFNpZ25lZC1vZmYtYnk6IENvc3RpbiBMdXB1IDxjb3N0aW4ubHVwdUBjcy5wdWIu
cm8KPiAgICAgPG1haWx0bzpjb3N0aW4ubHVwdUBjcy5wdWIucm8+Pgo+ICAgICAgPiBTaWduZWQt
b2ZmLWJ5OiBTdGVmYW4gVGVvZG9yZXNjdSA8c3RlZmFubC50ZW9kb3Jlc2N1QGdtYWlsLmNvbQo+
ICAgICA8bWFpbHRvOnN0ZWZhbmwudGVvZG9yZXNjdUBnbWFpbC5jb20+Pgo+ICAgICAgPiAtLS0K
PiAgICAgID7CoCDCoGxpYi9kZXZmcy9Db25maWcudWvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHzC
oCAxNyArKysrCj4gICAgICA+wqAgwqBsaWIvZGV2ZnMvTWFrZWZpbGUudWvCoCDCoCDCoCDCoCDC
oCDCoCDCoHzCoCDCoDEgKwo+ICAgICAgPsKgIMKgbGliL2RldmZzL251bGwuY8KgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIHwgMTQ1Cj4gICAgICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Kwo+ICAgICAgPsKgIMKgbGliL3Zmc2NvcmUvaW5jbHVkZS92ZnNjb3JlL3Vpby5oIHzCoCDCoDEg
Kwo+ICAgICAgPsKgIMKgNCBmaWxlcyBjaGFuZ2VkLCAxNjQgaW5zZXJ0aW9ucygrKQo+ICAgICAg
PsKgIMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9kZXZmcy9udWxsLmMKPiAgICAgID4KPiAgICAg
ID4gZGlmZiAtLWdpdCBhL2xpYi9kZXZmcy9Db25maWcudWsgYi9saWIvZGV2ZnMvQ29uZmlnLnVr
Cj4gICAgICA+IGluZGV4IDZmMjFjMDFjLi5hZjYxNzQ3ZiAxMDA2NDQKPiAgICAgID4gLS0tIGEv
bGliL2RldmZzL0NvbmZpZy51awo+ICAgICAgPiArKysgYi9saWIvZGV2ZnMvQ29uZmlnLnVrCj4g
ICAgICA+IEBAIC04LDQgKzgsMjEgQEAgaWYgTElCREVWRlMKPiAgICAgID7CoCDCoCDCoCDCoCDC
oCDCoGJvb2wgIk1vdW50IC9kZXYgZHVyaW5nIGJvb3QiCj4gICAgICA+wqAgwqAgwqAgwqBkZXBl
bmRzIG9uIExJQlZGU0NPUkVfQVVUT01PVU5UX1JPT1RGUwo+ICAgICAgPsKgIMKgIMKgIMKgIMKg
IMKgZGVmYXVsdCBuCj4gICAgICA+ICsKPiAgICAgID4gK8KgIMKgIMKgIyBoaWRkZW4KPiAgICAg
ID4gK8KgIMKgIMKgY29uZmlnIExJQkRFVkZTX0RFVl9OVUxMX1pFUk8KPiAgICAgID4gK8KgIMKg
IMKgIMKgIMKgIMKgIMKgYm9vbAo+ICAgICAgPiArwqAgwqAgwqAgwqAgwqAgwqAgwqBkZWZhdWx0
IG4KPiAgICAgID4gKwo+ICAgICAgPiArwqAgwqAgwqBjb25maWcgTElCREVWRlNfREVWX05VTEwK
PiAgICAgID4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgYm9vbCAiUmVnaXN0ZXIgbnVsbCBkZXZpY2Ui
Cj4gICAgICA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoGRlZmF1bHQgeSBpZiBMSUJERVZGU19BVVRP
TU9VTlQKPiAgICAgID4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgc2VsZWN0IExJQkRFVkZTX0RFVl9O
VUxMX1pFUk8KPiAgICAgID4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgZGVmYXVsdCBuCj4gICAgICA+
ICsKPiAgICAgID4gK8KgIMKgIMKgY29uZmlnIExJQkRFVkZTX0RFVl9aRVJPCj4gICAgICA+ICvC
oCDCoCDCoCDCoCDCoCDCoCDCoGJvb2wgIlJlZ2lzdGVyIHplcm8gZGV2aWNlIgo+ICAgICAgPiAr
wqAgwqAgwqAgwqAgwqAgwqAgwqBkZWZhdWx0IHkgaWYgTElCREVWRlNfQVVUT01PVU5UCj4gICAg
ICA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoHNlbGVjdCBMSUJERVZGU19ERVZfTlVMTF9aRVJPCj4g
ICAgICA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoGRlZmF1bHQgbgo+ICAgICAgPsKgIMKgZW5kaWYK
PiAgICAgID4gZGlmZiAtLWdpdCBhL2xpYi9kZXZmcy9NYWtlZmlsZS51ayBiL2xpYi9kZXZmcy9N
YWtlZmlsZS51awo+ICAgICAgPiBpbmRleCBjNDk2ZmQ1Ni4uYjIzZWJmMTUgMTAwNjQ0Cj4gICAg
ICA+IC0tLSBhL2xpYi9kZXZmcy9NYWtlZmlsZS51awo+ICAgICAgPiArKysgYi9saWIvZGV2ZnMv
TWFrZWZpbGUudWsKPiAgICAgID4gQEAgLTYsMyArNiw0IEBAIExJQkRFVkZTX0NGTEFHUy0kKGNh
bGwgZ2NjX3ZlcnNpb25fZ2UsOCwwKSArPQo+ICAgICAtV25vLWNhc3QtZnVuY3Rpb24tdHlwZQo+
ICAgICAgPgo+ICAgICAgPsKgIMKgTElCREVWRlNfU1JDUy15ICs9ICQoTElCREVWRlNfQkFTRSkv
ZGV2aWNlLmMKPiAgICAgID7CoCDCoExJQkRFVkZTX1NSQ1MteSArPSAkKExJQkRFVkZTX0JBU0Up
L2RldmZzX3Zub3BzLmMKPiAgICAgID4gK0xJQkRFVkZTX1NSQ1MtJChDT05GSUdfTElCREVWRlNf
REVWX05VTExfWkVSTykgKz0KPiAgICAgJChMSUJERVZGU19CQVNFKS9udWxsLmMKPiAgICAgID4g
ZGlmZiAtLWdpdCBhL2xpYi9kZXZmcy9udWxsLmMgYi9saWIvZGV2ZnMvbnVsbC5jCj4gICAgICA+
IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gICAgICA+IGluZGV4IDAwMDAwMDAwLi42MGFkYTk5NQo+
ICAgICAgPiAtLS0gL2Rldi9udWxsCj4gICAgICA+ICsrKyBiL2xpYi9kZXZmcy9udWxsLmMKPiAg
ICAgID4gQEAgLTAsMCArMSwxNDUgQEAKPiAgICAgID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlm
aWVyOiBCU0QtMy1DbGF1c2UgKi8KPiAgICAgID4gKy8qCj4gICAgICA+ICsgKiBBdXRob3JzOiBD
b3N0aW4gTHVwdSA8Y29zdGluLmx1cHVAY3MucHViLnJvCj4gICAgIDxtYWlsdG86Y29zdGluLmx1
cHVAY3MucHViLnJvPj4KPiAgICAgID4gKyAqCj4gICAgICA+ICsgKiBDb3B5cmlnaHQgKGMpIDIw
MTksIFVuaXZlcnNpdHkgUG9saXRlaG5pY2Egb2YgQnVjaGFyZXN0LiBBbGwKPiAgICAgcmlnaHRz
IHJlc2VydmVkLgo+ICAgICAgPiArICoKPiAgICAgID4gKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3IKPiAgICAgd2l0aG91dAo+ICAg
ICAgPiArICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZwo+ICAgICBjb25kaXRpb25zCj4gICAgICA+ICsgKiBhcmUgbWV0Ogo+ICAgICAgPiAr
ICoKPiAgICAgID4gKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cj4gICAgICA+ICsgKsKgIMKgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KPiAgICAgID4g
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKPiAgICAgY29weXJpZ2h0Cj4gICAgICA+ICsgKsKgIMKgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKPiAgICAgZGlzY2xhaW1lciBpbiB0aGUK
PiAgICAgID4gKyAqwqAgwqAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCj4gICAgIGRpc3RyaWJ1dGlvbi4KPiAgICAgID4gKyAqIDMuIE5laXRo
ZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMK
PiAgICAgID4gKyAqwqAgwqAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cwo+ICAgICBkZXJpdmVkIGZyb20KPiAgICAgID4gKyAqwqAgwqAgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KPiAg
ICAgID4gKyAqCj4gICAgICA+ICsgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQKPiAgICAgQ09OVFJJQlVUT1JTICJBUyBJUyIKPiAgICAgID4g
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAo+ICAgICBMSU1JVEVEIFRPLCBUSEUKPiAgICAgID4gKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEKPiAgICAgUEFSVElDVUxBUiBQ
VVJQT1NFCj4gICAgICA+ICsgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IKPiAgICAgQ09OVFJJQlVUT1JTIEJFCj4gICAgICA+ICsgKiBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAo+ICAg
ICBFWEVNUExBUlksIE9SCj4gICAgICA+ICsgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAo+ICAgICBQUk9DVVJFTUVOVCBPRgo+ICAgICAgPiAr
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7Cj4gICAgIE9SIEJVU0lORVNTCj4gICAgICA+ICsgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKPiAgICAgV0hFVEhFUiBJ
Tgo+ICAgICAgPiArICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SCj4gICAgIE9USEVSV0lTRSkKPiAgICAgID4gKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCj4gICAg
IEFEVklTRUQgT0YgVEhFCj4gICAgICA+ICsgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
PiAgICAgID4gKyAqCj4gICAgICA+ICsgKiBUSElTIEhFQURFUiBNQVkgTk9UIEJFIEVYVFJBQ1RF
RCBPUiBNT0RJRklFRCBJTiBBTlkgV0FZLgo+IAo+ICAgICBJIGtub3cgdGhhdCB5b3UgcHJvYmFi
bHkgY29waWVkIHRoaXMgbGljZW5zZSBoZWFkZXIgZnJvbSBhbm90aGVyIGZpbGUKPiAgICAgYnV0
IHdlIG5vdGljZWQgdGhhdCB0aGlzIHNlbnRlbmNlIGlzIHByb2JhYmx5IGluIGNvbmZsaWN0IHdp
dGggdGhlCj4gICAgIGxpY2Vuc2UgYWhlYWQuIENhbiB0aGlzIGJlIHJlbW92ZWQ/IFdpdGggeW91
ciBva2F5LCBJIHdvdWxkIGRvIGl0IGZvcgo+ICAgICB5b3Ugd2hpbGUgdXBzdHJlYW1pbmcuCj4g
Cj4gICAgICA+ICsgKi8KPiAgICAgID4gKwo+ICAgICAgPiArI2luY2x1ZGUgPHVrL2NvbmZpZy5o
Pgo+ICAgICAgPiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICAgICAgPiArI2luY2x1ZGUgPHN0cmlu
Zy5oPgo+ICAgICAgPiArI2luY2x1ZGUgPHVrL2N0b3JzLmg+Cj4gICAgICA+ICsjaW5jbHVkZSA8
dWsvcHJpbnQuaD4KPiAgICAgID4gKyNpbmNsdWRlIDx2ZnNjb3JlL3Vpby5oPgo+ICAgICAgPiAr
I2luY2x1ZGUgPGRldmZzL2RldmljZS5oPgo+ICAgICAgPiArCj4gICAgICA+ICsKPiAgICAgID4g
K2ludCBkZXZfbnVsbF93cml0ZShzdHJ1Y3QgZGV2aWNlICpkZXYgX191bnVzZWQsIHN0cnVjdCB1
aW8gKnVpbywKPiAgICAgaW50IGZsYWdzIF9fdW51c2VkKQo+ICAgICAgPiArewo+ICAgICAgPiAr
wqAgwqAgwqB1aW8tPnVpb19yZXNpZCA9IDA7Cj4gICAgICA+ICvCoCDCoCDCoHJldHVybiAwOwo+
ICAgICAgPiArfQo+ICAgICAgPiArCj4gICAgICA+ICtpbnQgZGV2X251bGxfb3BlbihzdHJ1Y3Qg
ZGV2aWNlICpkZXZpY2UgX191bnVzZWQsIGludCBtb2RlIF9fdW51c2VkKQo+ICAgICAgPiArewo+
ICAgICAgPiArwqAgwqAgwqByZXR1cm4gMDsKPiAgICAgID4gK30KPiAgICAgID4gKwo+ICAgICAg
PiArCj4gICAgICA+ICtpbnQgZGV2X251bGxfY2xvc2Uoc3RydWN0IGRldmljZSAqZGV2aWNlIF9f
dW51c2VkKQo+ICAgICAgPiArewo+ICAgICAgPiArwqAgwqAgwqByZXR1cm4gMDsKPiAgICAgID4g
K30KPiAgICAgID4gKwo+ICAgICAgPiArI2lmZGVmIENPTkZJR19MSUJERVZGU19ERVZfTlVMTAo+
ICAgICAgPiArCj4gICAgICA+ICsjZGVmaW5lIERFVl9OVUxMX05BTUUgIm51bGwiCj4gICAgICA+
ICsKPiAgICAgID4gK2ludCBkZXZfbnVsbF9yZWFkKHN0cnVjdCBkZXZpY2UgKmRldiBfX3VudXNl
ZCwgc3RydWN0IHVpbyAqdWlvLAo+ICAgICBpbnQgZmxhZ3MgX191bnVzZWQpCj4gICAgICA+ICt7
Cj4gICAgICA+ICvCoCDCoCDCoHVpby0+dWlvX3Jlc2lkID0gdWlvLT51aW9faW92LT5pb3ZfbGVu
Owo+ICAgICAgPiArwqAgwqAgwqByZXR1cm4gMDsKPiAgICAgID4gK30KPiAgICAgID4gKwo+ICAg
ICAgPiArc3RhdGljIHN0cnVjdCBkZXZvcHMgbnVsbF9kZXZvcHMgPSB7Cj4gICAgICA+ICvCoCDC
oCDCoC5yZWFkID0gZGV2X251bGxfcmVhZCwKPiAgICAgID4gK8KgIMKgIMKgLndyaXRlID0gZGV2
X251bGxfd3JpdGUsCj4gICAgICA+ICvCoCDCoCDCoC5vcGVuID0gZGV2X251bGxfb3BlbiwKPiAg
ICAgID4gK8KgIMKgIMKgLmNsb3NlID0gZGV2X251bGxfY2xvc2UsCj4gICAgICA+ICt9Owo+ICAg
ICAgPiArCj4gICAgICA+ICtzdGF0aWMgc3RydWN0IGRyaXZlciBkcnZfbnVsbCA9IHsKPiAgICAg
ID4gK8KgIMKgIMKgLmRldm9wcyA9ICZudWxsX2Rldm9wcywKPiAgICAgID4gK8KgIMKgIMKgLmRl
dnN6ID0gMCwKPiAgICAgID4gK8KgIMKgIMKgLm5hbWUgPSBERVZfTlVMTF9OQU1FCj4gICAgICA+
ICt9Owo+ICAgICAgPiArI2VuZGlmCj4gICAgICA+ICsKPiAgICAgID4gKyNpZmRlZiBDT05GSUdf
TElCREVWRlNfREVWX1pFUk8KPiAgICAgID4gKwo+ICAgICAgPiArI2RlZmluZSBERVZfWkVST19O
QU1FICJ6ZXJvIgo+ICAgICAgPiArCj4gICAgICA+ICtpbnQgZGV2X3plcm9fcmVhZChzdHJ1Y3Qg
ZGV2aWNlICpkZXYgX191bnVzZWQsIHN0cnVjdCB1aW8gKnVpbywKPiAgICAgaW50IGZsYWdzIF9f
dW51c2VkKQo+ICAgICAgPiArewo+ICAgICAgPiArwqAgwqAgwqBzaXplX3QgY291bnQ7Cj4gICAg
ICA+ICvCoCDCoCDCoGNoYXIgKmJ1ZjsKPiAgICAgID4gKwo+ICAgICAgPiArwqAgwqAgwqBidWYg
PSB1aW8tPnVpb19pb3YtPmlvdl9iYXNlOwo+ICAgICAgPiArwqAgwqAgwqBjb3VudCA9IHVpby0+
dWlvX2lvdi0+aW92X2xlbjsKPiAgICAgID4gKwo+ICAgICAgPiArwqAgwqAgwqBtZW1zZXQoYnVm
LCAwLCBjb3VudCk7Cj4gICAgICA+ICvCoCDCoCDCoHVpby0+dWlvX3Jlc2lkID0gMDsKPiAgICAg
ID4gK8KgIMKgIMKgcmV0dXJuIDA7Cj4gICAgICA+ICt9Cj4gICAgICA+ICsKPiAgICAgID4gK3N0
YXRpYyBzdHJ1Y3QgZGV2b3BzIHplcm9fZGV2b3BzID0gewo+ICAgICAgPiArwqAgwqAgwqAucmVh
ZCA9IGRldl96ZXJvX3JlYWQsCj4gICAgICA+ICvCoCDCoCDCoC53cml0ZSA9IGRldl9udWxsX3dy
aXRlLAo+ICAgICAgPiArwqAgwqAgwqAub3BlbiA9IGRldl9udWxsX29wZW4sCj4gICAgICA+ICvC
oCDCoCDCoC5jbG9zZSA9IGRldl9udWxsX2Nsb3NlLAo+ICAgICAgPiArfTsKPiAgICAgID4gKwo+
ICAgICAgPiArc3RhdGljIHN0cnVjdCBkcml2ZXIgZHJ2X3plcm8gPSB7Cj4gICAgICA+ICvCoCDC
oCDCoC5kZXZvcHMgPSAmemVyb19kZXZvcHMsCj4gICAgICA+ICvCoCDCoCDCoC5kZXZzeiA9IDAs
Cj4gICAgICA+ICvCoCDCoCDCoC5uYW1lID0gREVWX1pFUk9fTkFNRQo+ICAgICAgPiArfTsKPiAg
ICAgID4gKyNlbmRpZgo+ICAgICAgPiArCj4gICAgICA+ICtzdGF0aWMgaW50IGRldmZzX3JlZ2lz
dGVyX251bGwodm9pZCkKPiAgICAgID4gK3sKPiAgICAgID4gK8KgIMKgIMKgc3RydWN0IGRldmlj
ZSAqZGV2Owo+ICAgICAgPiArCj4gICAgICA+ICsjaWZkZWYgQ09ORklHX0xJQkRFVkZTX0RFVl9O
VUxMCj4gICAgICA+ICvCoCDCoCDCoHVrX3ByX2RlYnVnKCJSZWdpc3RlciAnJXMnIHRvIGRldmZz
XG4iLCBERVZfTlVMTF9OQU1FKTsKPiAgICAgID4gKwo+ICAgICAgPiArwqAgwqAgwqAvKiByZWdp
c3RlciAvZGV2L251bGwgKi8KPiAgICAgID4gK8KgIMKgIMKgZGV2ID0gZGV2aWNlX2NyZWF0ZSgm
ZHJ2X251bGwsIERFVl9OVUxMX05BTUUsIERfQ0hSKTsKPiAgICAgID4gK8KgIMKgIMKgaWYgKGRl
diA9PSBOVUxMKSB7Cj4gICAgICA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoHVrX3ByX2VycigiRmFp
bGVkIHRvIHJlZ2lzdGVyICclcycgdG8gZGV2ZnNcbiIsCj4gICAgIERFVl9OVUxMX05BTUUpOwo+
ICAgICAgPiArwqAgwqAgwqAgwqAgwqAgwqAgwqByZXR1cm4gLTE7Cj4gICAgICA+ICvCoCDCoCDC
oH0KPiAgICAgID4gKyNlbmRpZgo+ICAgICAgPiArCj4gICAgICA+ICsjaWZkZWYgQ09ORklHX0xJ
QkRFVkZTX0RFVl9aRVJPCj4gICAgICA+ICvCoCDCoCDCoHVrX3ByX2RlYnVnKCJSZWdpc3RlciAn
JXMnIHRvIGRldmZzXG4iLCBERVZfWkVST19OQU1FKTsKPiAgICAgID4gKwo+ICAgICAgPiArwqAg
wqAgwqAvKiByZWdpc3RlciAvZGV2L3plcm8gKi8KPiAgICAgID4gK8KgIMKgIMKgZGV2ID0gZGV2
aWNlX2NyZWF0ZSgmZHJ2X3plcm8sIERFVl9aRVJPX05BTUUsIERfQ0hSKTsKPiAgICAgID4gK8Kg
IMKgIMKgaWYgKGRldiA9PSBOVUxMKSB7Cj4gICAgICA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoHVr
X3ByX2VycigiRmFpbGVkIHRvIHJlZ2lzdGVyICclcycgdG8gZGV2ZnNcbiIsCj4gICAgIERFVl9a
RVJPX05BTUUpOwo+ICAgICAgPiArwqAgwqAgwqAgwqAgwqAgwqAgwqByZXR1cm4gLTE7Cj4gICAg
ICA+ICvCoCDCoCDCoH0KPiAgICAgID4gKyNlbmRpZgo+ICAgICAgPiArCj4gICAgICA+ICvCoCDC
oCDCoHJldHVybiAwOwo+ICAgICAgPiArfQo+ICAgICAgPiArCj4gICAgICA+ICtkZXZmc19pbml0
Y2FsbChkZXZmc19yZWdpc3Rlcl9udWxsKTsKPiAgICAgID4gZGlmZiAtLWdpdCBhL2xpYi92ZnNj
b3JlL2luY2x1ZGUvdmZzY29yZS91aW8uaAo+ICAgICBiL2xpYi92ZnNjb3JlL2luY2x1ZGUvdmZz
Y29yZS91aW8uaAo+ICAgICAgPiBpbmRleCA4M2RkNWI5YS4uYjE0ZmRiODIgMTAwNjQ0Cj4gICAg
ICA+IC0tLSBhL2xpYi92ZnNjb3JlL2luY2x1ZGUvdmZzY29yZS91aW8uaAo+ICAgICAgPiArKysg
Yi9saWIvdmZzY29yZS9pbmNsdWRlL3Zmc2NvcmUvdWlvLmgKPiAgICAgID4gQEAgLTM2LDYgKzM2
LDcgQEAKPiAgICAgID7CoCDCoCNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KPiAgICAgID7CoCDCoCNp
bmNsdWRlIDxzeXMvdWlvLmg+Cj4gICAgICA+wqAgwqAjaW5jbHVkZSA8bGltaXRzLmg+Cj4gICAg
ICA+ICsjaW5jbHVkZSA8dWsvYXNzZXJ0Lmg+Cj4gICAgICA+Cj4gICAgICA+wqAgwqBlbnVtwqAg
wqAgwqAgwqAgdWlvX3J3IHsgVUlPX1JFQUQsIFVJT19XUklURSB9Owo+ICAgICAgPgo+ICAgICAg
Pgo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cj4gTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdAo+IE1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9t
aW5pb3MtZGV2ZWwKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9t
aW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 16:28:23 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 16:28:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3jFv-0003xG-D8; Mon, 17 Feb 2020 16:28:23 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3jFt-0003xA-WF
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 16:28:22 +0000
X-Inumbo-ID: 81e48606-51a2-11ea-800b-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 81e48606-51a2-11ea-800b-12813bfff9fa;
 Mon, 17 Feb 2020 16:28:20 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 0C8ACF2021;
 Mon, 17 Feb 2020 17:28:19 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 1TRaO7S6XsE6; Mon, 17 Feb 2020 17:28:18 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id C2D55F2007;
 Mon, 17 Feb 2020 17:28:12 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 17 Feb
 2020 17:28:12 +0100
To: Stefan Teodorescu <stefanl.teodorescu@gmail.com>
References: <20200214154104.114801-1-stefanl.teodorescu@gmail.com>
 <48534d66-f0ef-97fd-579d-76052a42f062@neclab.eu>
 <CAEiTdV7UfQqqqr5zuVMuzHFsBBb47Br5qMWQKir_6GO0CQzvfQ@mail.gmail.com>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <f9e1f08f-ea9b-a65a-5ad0-b27b8cc40ad1@neclab.eu>
Date: Mon, 17 Feb 2020 17:28:11 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <CAEiTdV7UfQqqqr5zuVMuzHFsBBb47Br5qMWQKir_6GO0CQzvfQ@mail.gmail.com>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH v3 1/3] lib/uktime: Introduce
 POSIX timer stubs
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: minios-devel@lists.xen.org, Costin Lupu <costin.lupu@cs.pub.ro>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

T2theSwgZ3JlYXQuIFRoYW5rcyEKClJldmlld2VkLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5r
dWVuemVyQG5lY2xhYi5ldT4KCk9uIDE3LjAyLjIwIDE3OjE1LCBTdGVmYW4gVGVvZG9yZXNjdSB3
cm90ZToKPiBTdXJlLCB5b3UgY2FuIGNoYW5nZSB0aGUgaGVhZGVyLCBJIGhhdmUganVzdCBjb3B5
IHBhc3RlZCBpdCBmcm9tIGFub3RoZXIgCj4gZmlsZS4KPiAKPiBUaGFua3MsCj4gU3RlZmFuCj4g
Cj4gT24gTW9uLCAxNyBGZWIgMjAyMCBhdCAxODowNCwgU2ltb24gS3VlbnplciA8c2ltb24ua3Vl
bnplckBuZWNsYWIuZXUgCj4gPG1haWx0bzpzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4+IHdyb3Rl
Ogo+IAo+ICAgICBIaSwgdGhpcyBsb29rcyBnb29kLiBJIGhhdmUganVzdCBvbmUgcXVlc3Rpb24g
dG8gdGhlIGhlYWRlci4KPiAKPiAgICAgVGhhbmtzLAo+IAo+ICAgICBTaW1vbgo+IAo+ICAgICBP
biAxNC4wMi4yMCAxNjo0MSwgc3RlZmFubC50ZW9kb3Jlc2N1QGdtYWlsLmNvbQo+ICAgICA8bWFp
bHRvOnN0ZWZhbmwudGVvZG9yZXNjdUBnbWFpbC5jb20+IHdyb3RlOgo+ICAgICAgPiBGcm9tOiBD
b3N0aW4gTHVwdSA8Y29zdGluLmx1cHVAY3MucHViLnJvCj4gICAgIDxtYWlsdG86Y29zdGluLmx1
cHVAY3MucHViLnJvPj4KPiAgICAgID4KPiAgICAgID4gV2Ugc2ltcGx5IGludHJvZHVjZSB0aGUg
c3R1YnMgZm9yIHRoZXNlIGZ1bmN0aW9ucy4gVGhleSB3aWxsIGhhdmUKPiAgICAgdG8gYmUKPiAg
ICAgID4gaW1wbGVtZW50ZWQgbGF0ZXIsIHRoZXJlZm9yZSB3ZSBkbyBub3QgYWRkIGFueSBsaWNl
bnNlIGZvciBub3cuCj4gICAgICA+Cj4gICAgICA+IFNpZ25lZC1vZmYtYnk6IENvc3RpbiBMdXB1
IDxjb3N0aW4ubHVwdUBjcy5wdWIucm8KPiAgICAgPG1haWx0bzpjb3N0aW4ubHVwdUBjcy5wdWIu
cm8+Pgo+ICAgICAgPiBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gVGVvZG9yZXNjdSA8c3RlZmFubC50
ZW9kb3Jlc2N1QGdtYWlsLmNvbQo+ICAgICA8bWFpbHRvOnN0ZWZhbmwudGVvZG9yZXNjdUBnbWFp
bC5jb20+Pgo+ICAgICAgPiAtLS0KPiAgICAgID7CoCDCoGxpYi91a3RpbWUvTWFrZWZpbGUudWvC
oCDCoHzCoCAxICsKPiAgICAgID7CoCDCoGxpYi91a3RpbWUvZXhwb3J0c3ltcy51ayA8aHR0cDov
L2V4cG9ydHN5bXMudWs+IHzCoCA1ICsrKwo+ICAgICAgPsKgIMKgbGliL3VrdGltZS90aW1lci5j
wqAgwqAgwqAgwqB8IDgwCj4gICAgICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKPiAgICAgID7CoCDCoDMgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygrKQo+ICAg
ICAgPsKgIMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi91a3RpbWUvdGltZXIuYwo+ICAgICAgPgo+
ICAgICAgPiBkaWZmIC0tZ2l0IGEvbGliL3VrdGltZS9NYWtlZmlsZS51ayBiL2xpYi91a3RpbWUv
TWFrZWZpbGUudWsKPiAgICAgID4gaW5kZXggNDdmYmI0YjMuLjI5NzZhMTBmIDEwMDY0NAo+ICAg
ICAgPiAtLS0gYS9saWIvdWt0aW1lL01ha2VmaWxlLnVrCj4gICAgICA+ICsrKyBiL2xpYi91a3Rp
bWUvTWFrZWZpbGUudWsKPiAgICAgID4gQEAgLTExLDMgKzExLDQgQEAgTElCVUtUSU1FX1NSQ1Mt
eSArPQo+ICAgICAkKExJQlVLVElNRV9CQVNFKS9tdXNsLWltcG9ydGVkL3NyYy90aW1lZ20uYwo+
ICAgICAgPsKgIMKgTElCVUtUSU1FX1NSQ1MteSArPQo+ICAgICAkKExJQlVLVElNRV9CQVNFKS9t
dXNsLWltcG9ydGVkL3NyYy9fX3RtX3RvX3NlY3MuYwo+ICAgICAgPsKgIMKgTElCVUtUSU1FX1NS
Q1MteSArPQo+ICAgICAkKExJQlVLVElNRV9CQVNFKS9tdXNsLWltcG9ydGVkL3NyYy9fX3llYXJf
dG9fc2Vjcy5jCj4gICAgICA+wqAgwqBMSUJVS1RJTUVfU1JDUy15ICs9ICQoTElCVUtUSU1FX0JB
U0UpL3RpbWUuYwo+ICAgICAgPiArTElCVUtUSU1FX1NSQ1MteSArPSAkKExJQlVLVElNRV9CQVNF
KS90aW1lci5jCj4gICAgICA+IGRpZmYgLS1naXQgYS9saWIvdWt0aW1lL2V4cG9ydHN5bXMudWsg
PGh0dHA6Ly9leHBvcnRzeW1zLnVrPgo+ICAgICBiL2xpYi91a3RpbWUvZXhwb3J0c3ltcy51ayA8
aHR0cDovL2V4cG9ydHN5bXMudWs+Cj4gICAgICA+IGluZGV4IGJkOWM0OWNmLi44MmI3MGI3ZiAx
MDA2NDQKPiAgICAgID4gLS0tIGEvbGliL3VrdGltZS9leHBvcnRzeW1zLnVrIDxodHRwOi8vZXhw
b3J0c3ltcy51az4KPiAgICAgID4gKysrIGIvbGliL3VrdGltZS9leHBvcnRzeW1zLnVrIDxodHRw
Oi8vZXhwb3J0c3ltcy51az4KPiAgICAgID4gQEAgLTksMyArOSw4IEBAIHRpbWVnbQo+ICAgICAg
PsKgIMKgdGltZXMKPiAgICAgID7CoCDCoHVzbGVlcAo+ICAgICAgPsKgIMKgdXRpbWUKPiAgICAg
ID4gK3RpbWVyX2NyZWF0ZQo+ICAgICAgPiArdGltZXJfZGVsZXRlCj4gICAgICA+ICt0aW1lcl9z
ZXR0aW1lCj4gICAgICA+ICt0aW1lcl9nZXR0aW1lCj4gICAgICA+ICt0aW1lcl9nZXRvdmVycnVu
Cj4gICAgICA+IGRpZmYgLS1naXQgYS9saWIvdWt0aW1lL3RpbWVyLmMgYi9saWIvdWt0aW1lL3Rp
bWVyLmMKPiAgICAgID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiAgICAgID4gaW5kZXggMDAwMDAw
MDAuLjBjOGRiNDBkCj4gICAgICA+IC0tLSAvZGV2L251bGwKPiAgICAgID4gKysrIGIvbGliL3Vr
dGltZS90aW1lci5jCj4gICAgICA+IEBAIC0wLDAgKzEsODAgQEAKPiAgICAgID4gKy8qIFNQRFgt
TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UgKi8KPiAgICAgID4gKy8qCj4gICAgICA+
ICsgKiBBdXRob3JzOiBDb3N0aW4gTHVwdSA8Y29zdGluLmx1cHVAY3MucHViLnJvCj4gICAgIDxt
YWlsdG86Y29zdGluLmx1cHVAY3MucHViLnJvPj4KPiAgICAgID4gKyAqCj4gICAgICA+ICsgKiBD
b3B5cmlnaHQgKGMpIDIwMTksIFVuaXZlcnNpdHkgUG9saXRlaG5pY2Egb2YgQnVjaGFyZXN0LiBB
bGwKPiAgICAgcmlnaHRzIHJlc2VydmVkLgo+ICAgICAgPiArICoKPiAgICAgID4gKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3IKPiAg
ICAgd2l0aG91dAo+ICAgICAgPiArICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZwo+ICAgICBjb25kaXRpb25zCj4gICAgICA+ICsgKiBhcmUg
bWV0Ogo+ICAgICAgPiArICoKPiAgICAgID4gKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cj4gICAgICA+ICsgKsKgIMKg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KPiAgICAgID4gKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKPiAgICAgY29weXJpZ2h0Cj4gICAgICA+ICsgKsKgIMKgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKPiAgICAgZGlz
Y2xhaW1lciBpbiB0aGUKPiAgICAgID4gKyAqwqAgwqAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCj4gICAgIGRpc3RyaWJ1dGlvbi4KPiAgICAg
ID4gKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKPiAgICAgID4gKyAqwqAgwqAgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwo+ICAgICBkZXJpdmVkIGZyb20KPiAgICAg
ID4gKyAqwqAgwqAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KPiAgICAgID4gKyAqCj4gICAgICA+ICsgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQKPiAgICAgQ09OVFJJQlVUT1JTICJB
UyBJUyIKPiAgICAgID4gKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAo+ICAgICBMSU1JVEVEIFRPLCBUSEUKPiAgICAgID4gKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEKPiAg
ICAgUEFSVElDVUxBUiBQVVJQT1NFCj4gICAgICA+ICsgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKPiAgICAgQ09OVFJJQlVUT1JTIEJF
Cj4gICAgICA+ICsgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAo+ICAgICBFWEVNUExBUlksIE9SCj4gICAgICA+ICsgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAo+ICAgICBQUk9DVVJFTUVO
VCBPRgo+ICAgICAgPiArICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7Cj4gICAgIE9SIEJVU0lORVNTCj4gICAgICA+ICsgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwK
PiAgICAgV0hFVEhFUiBJTgo+ICAgICAgPiArICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCj4gICAgIE9USEVSV0lTRSkKPiAgICAg
ID4gKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGCj4gICAgIEFEVklTRUQgT0YgVEhFCj4gICAgICA+ICsgKiBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KPiAgICAgID4gKyAqCj4gICAgICA+ICsgKiBUSElTIEhFQURFUiBNQVkg
Tk9UIEJFIEVYVFJBQ1RFRCBPUiBNT0RJRklFRCBJTiBBTlkgV0FZLgo+IAo+ICAgICBJIGtub3cg
dGhhdCB5b3UgcHJvYmFibHkgY29waWVkIHRoaXMgbGljZW5zZSBoZWFkZXIgZnJvbSBhbm90aGVy
IGZpbGUKPiAgICAgYnV0IHdlIG5vdGljZWQgdGhhdCB0aGlzIHNlbnRlbmNlIGlzIHByb2JhYmx5
IGluIGNvbmZsaWN0IHdpdGggdGhlCj4gICAgIGxpY2Vuc2UgYWhlYWQuIENhbiB0aGlzIGJlIHJl
bW92ZWQ/IFdpdGggeW91ciBva2F5LCBJIHdvdWxkIGRvIGl0IGZvcgo+ICAgICB5b3Ugd2hpbGUg
dXBzdHJlYW1pbmcuCj4gCj4gICAgICA+ICsgKi8KPiAgICAgID4gKwo+ICAgICAgPiArI2luY2x1
ZGUgPGVycm5vLmg+Cj4gICAgICA+ICsjaW5jbHVkZSA8dGltZS5oPgo+ICAgICAgPiArI2luY2x1
ZGUgPHVrL2Vzc2VudGlhbHMuaD4KPiAgICAgID4gKyNpbmNsdWRlIDx1ay9wcmludC5oPgo+ICAg
ICAgPiArCj4gICAgICA+ICsKPiAgICAgID4gK2ludCB0aW1lcl9jcmVhdGUoY2xvY2tpZF90IGNs
b2NraWQgX191bnVzZWQsCj4gICAgICA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoHN0cnVjdCBzaWdl
dmVudCAqX19yZXN0cmljdCBzZXZwIF9fdW51c2VkLAo+ICAgICAgPiArwqAgwqAgwqAgwqAgwqAg
wqAgwqB0aW1lcl90ICpfX3Jlc3RyaWN0IHRpbWVyaWQgX191bnVzZWQpCj4gICAgICA+ICt7Cj4g
ICAgICA+ICvCoCDCoCDCoFdBUk5fU1RVQkJFRCgpOwo+ICAgICAgPiArwqAgwqAgwqBlcnJubyA9
IEVOT1RTVVA7Cj4gICAgICA+ICvCoCDCoCDCoHJldHVybiAtMTsKPiAgICAgID4gK30KPiAgICAg
ID4gKwo+ICAgICAgPiAraW50IHRpbWVyX2RlbGV0ZSh0aW1lcl90IHRpbWVyaWQgX191bnVzZWQp
Cj4gICAgICA+ICt7Cj4gICAgICA+ICvCoCDCoCDCoFdBUk5fU1RVQkJFRCgpOwo+ICAgICAgPiAr
wqAgwqAgwqBlcnJubyA9IEVOT1RTVVA7Cj4gICAgICA+ICvCoCDCoCDCoHJldHVybiAtMTsKPiAg
ICAgID4gK30KPiAgICAgID4gKwo+ICAgICAgPiAraW50IHRpbWVyX3NldHRpbWUodGltZXJfdCB0
aW1lcmlkIF9fdW51c2VkLAo+ICAgICAgPiArwqAgwqAgwqAgwqAgwqAgwqAgwqBpbnQgZmxhZ3Mg
X191bnVzZWQsCj4gICAgICA+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoGNvbnN0IHN0cnVjdCBpdGlt
ZXJzcGVjICpfX3Jlc3RyaWN0IG5ld192YWx1ZSBfX3VudXNlZCwKPiAgICAgID4gK8KgIMKgIMKg
IMKgIMKgIMKgIMKgc3RydWN0IGl0aW1lcnNwZWMgKl9fcmVzdHJpY3Qgb2xkX3ZhbHVlIF9fdW51
c2VkKQo+ICAgICAgPiArewo+ICAgICAgPiArwqAgwqAgwqBXQVJOX1NUVUJCRUQoKTsKPiAgICAg
ID4gK8KgIMKgIMKgZXJybm8gPSBFTk9UU1VQOwo+ICAgICAgPiArwqAgwqAgwqByZXR1cm4gLTE7
Cj4gICAgICA+ICt9Cj4gICAgICA+ICsKPiAgICAgID4gK2ludCB0aW1lcl9nZXR0aW1lKHRpbWVy
X3QgdGltZXJpZCBfX3VudXNlZCwKPiAgICAgID4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgc3RydWN0
IGl0aW1lcnNwZWMgKmN1cnJfdmFsdWUgX191bnVzZWQpCj4gICAgICA+ICt7Cj4gICAgICA+ICvC
oCDCoCDCoFdBUk5fU1RVQkJFRCgpOwo+ICAgICAgPiArwqAgwqAgwqBlcnJubyA9IEVOT1RTVVA7
Cj4gICAgICA+ICvCoCDCoCDCoHJldHVybiAtMTsKPiAgICAgID4gK30KPiAgICAgID4gKwo+ICAg
ICAgPiAraW50IHRpbWVyX2dldG92ZXJydW4odGltZXJfdCB0aW1lcmlkIF9fdW51c2VkKQo+ICAg
ICAgPiArewo+ICAgICAgPiArwqAgwqAgwqBXQVJOX1NUVUJCRUQoKTsKPiAgICAgID4gK8KgIMKg
IMKgZXJybm8gPSBFTk9UU1VQOwo+ICAgICAgPiArwqAgwqAgwqByZXR1cm4gLTE7Cj4gICAgICA+
ICt9Cj4gICAgICA+Cj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v
bWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 19:02:18 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 19:02:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3lep-0003Gz-JH; Mon, 17 Feb 2020 19:02:15 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=6POj=4F=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j3leo-0003Gt-Ar
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 19:02:14 +0000
X-Inumbo-ID: 0125145c-51b8-11ea-8045-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 0125145c-51b8-11ea-8045-12813bfff9fa;
 Mon, 17 Feb 2020 19:02:12 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 75EF0410B0;
 Mon, 17 Feb 2020 20:02:11 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Mon, 17 Feb 2020 20:02:09 +0100
Message-Id: <20200217190209.28263-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/APPHELLOWORLD] Adapt helloworld app to
 work with kraft script.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2UgaW5jbHVkZSBhIGtyYWZ0LWNvbXBhdGlibGUgeWFtbCBmaWxlIHRvIHRoZSBoZWxsb3dvcmxk
IGFwcCBhbmQKdXBkYXRlIHRoZSBSRUFETUUubWQgdG8gcG9pbnQgdXNlcnMgdG8gdGhlIGtyYWZ0
IHNjcmlwdC4gV2UgcmVtb3ZlIHRoZQpub3cgb2Jzb2xldGUgZGVwcy5qc29uIGZpbGUuCgpTaWdu
ZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Ci0tLQogUkVB
RE1FLm1kICB8IDE1ICsrKysrKysrKysrLS0tLQogZGVwcy5qc29uICB8ICAzIC0tLQoga3JhZnQu
eWFtbCB8IDEyICsrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCsp
LCA3IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGRlcHMuanNvbgogY3JlYXRlIG1v
ZGUgMTAwNjQ0IGtyYWZ0LnlhbWwKCmRpZmYgLS1naXQgYS9SRUFETUUubWQgYi9SRUFETUUubWQK
aW5kZXggZjBlMzgyYS4uMWVjZTY1NiAxMDA2NDQKLS0tIGEvUkVBRE1FLm1kCisrKyBiL1JFQURN
RS5tZApAQCAtMSw1ICsxLDEyIEBACi0iSGVsbG8gV29ybGQiLUV4YW1wbGUgZm9yIFVuaWtyYWZ0
Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIFVuaWtyYWZ0ICJoZWxsbyB3
b3JsZCIgQXBwbGljYXRpb24KIAotUGxlYXNlIHJlZmVyIHRvIHRoZSBgUkVBRE1FLm1kYCBhcyB3
ZWxsIGFzIHRoZSBkb2N1bWVudGF0aW9uIGluIHRoZSBgZG9jL2AKLXN1YmRpcmVjdG9yeSBvZiB0
aGUgbWFpbiB1bmlrcmFmdCByZXBvc2l0b3J5LgorVG8gYnVpbGQgYW5kIHJ1biB0aGlzIGFwcGxp
Y2F0aW9uIHBsZWFzZSB1c2UgdGhlIGBrcmFmdGAgc2NyaXB0OgorCisgICAgZ2l0IGNsb25lIGh0
dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC9rcmFmdAorICAgIGNkIGtyYWZ0CisgICAgcHl0aG9u
IHNldHVwLnB5IGluc3RhbGwKKyAgICBrcmFmdCBsaXN0CisgICAga3JhZnQgdXAgLXAgW3BsYXRm
b3JtXSAtbSBbYXJjaGl0ZWN0dXJlXSBbYXBwIG5hbWVdCisKK0ZvciBtb3JlIGluZm9ybWF0aW9u
IGFib3V0IGBrcmFmdGAgdHlwZSBgYGBrcmFmdCAtaGBgYCBvciByZWFkIHRoZQorW2RvY3VtZW50
YXRpb25dKGh0dHA6Ly9kb2NzLnVuaWtyYWZ0Lm9yZykuCmRpZmYgLS1naXQgYS9kZXBzLmpzb24g
Yi9kZXBzLmpzb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1ZjY4YTYuLjAwMDAw
MDAKLS0tIGEvZGVwcy5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi17Ci0gICAg
ImNvcmUiOiAiMzNjYzAyYmEiCi19CmRpZmYgLS1naXQgYS9rcmFmdC55YW1sIGIva3JhZnQueWFt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNGMwNzRkCi0tLSAvZGV2L251
bGwKKysrIGIva3JhZnQueWFtbApAQCAtMCwwICsxLDEyIEBACitzcGVjaWZpY2F0aW9uOiAnMC40
JworCit1bmlrcmFmdDogJzAuNCcKKworYXJjaGl0ZWN0dXJlczoKKyAgeDg2XzY0OiB0cnVlCisg
IGFybTY0OiB0cnVlCisgICAgICAKK3BsYXRmb3JtczoKKyAgbGludXh1OiB0cnVlCisgIGt2bTog
dHJ1ZQorICB4ZW46IHRydWUKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp
bG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 19:06:30 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 19:06:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3liw-0003MJ-1o; Mon, 17 Feb 2020 19:06:30 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3liu-0003ME-C6
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 19:06:28 +0000
X-Inumbo-ID: 987c7340-51b8-11ea-bc8e-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 987c7340-51b8-11ea-bc8e-bc764e2007e4;
 Mon, 17 Feb 2020 19:06:26 +0000 (UTC)
Received: from c408.ant-net (c408.ant-net [192.168.0.168])
 by queen.nlehd.de (Postfix) with ESMTP id 0647F410B0;
 Mon, 17 Feb 2020 20:06:26 +0100 (CET)
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: minios-devel@lists.xen.org
Date: Mon, 17 Feb 2020 20:06:24 +0100
Message-Id: <20200217190624.30435-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/NEWLIB PATCH] Makefile.uk:
 -Wno-char-subscripts as global flag
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: felipe.huici@neclab.eu, Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RXhwb3NlcyB0aGUgR0NDIHN1cHByZXNzIGZsYWcgYC1Xbm8tY2hhci1zdWJzY3JpcHRzYCBnbG9i
YWxseS4gVGhlCmhlYWRlciA8Y3R5cGUuaD4gaXMgY2F1c2luZyB0aGUgd2FybmluZyB0byBhcHBl
YXIgd2hlbiB0aGUKbWFjcm9zIGlzbG93ZXIsIGlzdXBwZXIsIHRvbG93ZXIsIHRvdXBwZXIgYXJl
IHVzZWQuCgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xh
Yi5ldT4KLS0tCiBNYWtlZmlsZS51ayB8IDEwICsrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA3
IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsg
Yi9NYWtlZmlsZS51awppbmRleCA2NmMzYjg4Li5iNTljNDI4IDEwMDY0NAotLS0gYS9NYWtlZmls
ZS51aworKysgYi9NYWtlZmlsZS51awpAQCAtOTQsMTMgKzk0LDEzIEBAIExJQk5FV0xJQl9HTE9C
QUxfRkxBR1MteSAgKz0gLURfTERCTF9FUV9EQkwKIExJQk5FV0xJQl9HTE9CQUxfRkxBR1MteSAg
Kz0gLURfSEFWRV9MT05HX0RPVUJMRQogZW5kaWYKIAotQ0ZMQUdTLXkgICArPSAkKExJQk5FV0xJ
Ql9HTE9CQUxfRkxBR1MteSkKLUNYWEZMQUdTLXkgKz0gJChMSUJORVdMSUJfR0xPQkFMX0ZMQUdT
LXkpCitDRkxBR1MtJChDT05GSUdfTElCTkVXTElCQykgICArPSAkKExJQk5FV0xJQl9HTE9CQUxf
RkxBR1MteSkKK0NYWEZMQUdTLSQoQ09ORklHX0xJQk5FV0xJQkMpICs9ICQoTElCTkVXTElCX0dM
T0JBTF9GTEFHUy15KQogCiAjIFN1cHByZXNzIHNvbWUgd2FybmluZ3MgdG8gbWFrZSB0aGUgYnVp
bGQgcHJvY2VzcyBsb29rIG5lYXRlcgogTElCTkVXTElCX1NVUFBSRVNTX0ZMQUdTLXkgKz0gXAog
LVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhcmlhYmxlIC1Xbm8tbm9ubnVsbAkJ
CQlcCi0tV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlIC1Xbm8tdW51c2VkLWxhYmVsIC1Xbm8t
Y2hhci1zdWJzY3JpcHRzCQlcCistV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlIC1Xbm8tdW51
c2VkLWxhYmVsIAkJCQkJXAogLVduby11bnVzZWQtZnVuY3Rpb24gLVduby1taXNzaW5nLWZpZWxk
LWluaXRpYWxpemVycyAtV25vLXVuaW5pdGlhbGl6ZWQJCVwKIC1Xbm8tYXJyYXktYm91bmRzIC1X
bm8tbWF5YmUtdW5pbml0aWFsaXplZCAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC12YWx1
ZQlcCiAtV25vLXVudXNlZC1tYWNyb3MgLVduby1wYXJlbnRoZXNlcyAtV25vLWltcGxpY2l0LWZ1
bmN0aW9uLWRlY2xhcmF0aW9uCQlcCkBAIC0xMjEsNiArMTIxLDEwIEBAIExJQk5FV0xJQkdMVUVf
U1VQUFJFU1NfRkxBR1MteSArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIKIExJQk5FV0xJQkdMVUVf
Q0ZMQUdTLXkgICArPSAkKExJQk5FV0xJQkdMVUVfU1VQUFJFU1NfRkxBR1MteSkKIExJQk5FV0xJ
QkdMVUVfQ1hYRkxBR1MteSArPSAkKExJQk5FV0xJQkdMVUVfU1VQUFJFU1NfRkxBR1MteSkKIAor
TElCTkVXTElCX0dMT0JBTF9TVVBQUkVTU19GTEFHUy15ICs9IC1Xbm8tY2hhci1zdWJzY3JpcHRz
CitDRkxBR1MtJChDT05GSUdfTElCTkVXTElCQykgICArPSAkKExJQk5FV0xJQl9HTE9CQUxfU1VQ
UFJFU1NfRkxBR1MteSkKK0NYWEZMQUdTLSQoQ09ORklHX0xJQk5FV0xJQkMpICs9ICQoTElCTkVX
TElCX0dMT0JBTF9TVVBQUkVTU19GTEFHUy15KQorCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwog
IyBPUyBkZXBlbmRlbmNpZXMgY29kZSAtIEdsdWUgYmV0d2VlbiBVbmljb3JlIGFuZCBuZXdsaWIK
ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
bmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 19:09:51 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 19:09:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3lmA-0003WJ-Lg; Mon, 17 Feb 2020 19:09:50 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=RBfq=4F=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j3lm9-0003WE-Ni
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 19:09:49 +0000
X-Inumbo-ID: 116c0298-51b9-11ea-ade5-bc764e2007e4
Received: from mail-vs1-xe43.google.com (unknown [2607:f8b0:4864:20::e43])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 116c0298-51b9-11ea-ade5-bc764e2007e4;
 Mon, 17 Feb 2020 19:09:49 +0000 (UTC)
Received: by mail-vs1-xe43.google.com with SMTP id b79so11063499vsd.9
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 11:09:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=shLqm3Ell079IWyGKlsXA0gef9p8du+d7+sjVjKwv8Y=;
 b=krM+T4HmFwaQpoMW2MQeKpaw6fhqHzVFrHlsXy6RAiNz4QQP0SKmPUDzIoYAHMTbBo
 XjJ05JuwvgcBSbdxpVsAyTaV4vuxtLqU9fmAG/x3+dn497fU957X1ozj3J28+kzg9q3v
 PBFnf2KoB8g9TZwNMiiTmfvuKcdCLK5rcdTtS/nt8GP3QLmOkdsbAkvzEszXowJ9D1X8
 X7TSPMguSjugjGc8S4kkcafPlTdwWZ0HN+6FLljjpsrs4Is3ypinyu9dKFujY10lr23G
 FGCz7SMWBhQQOTSKLuvSu4PBLqwuvPu70mJNbLHct8td0j3qPdPPDwtGQN3ura2YDOG3
 iCgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=shLqm3Ell079IWyGKlsXA0gef9p8du+d7+sjVjKwv8Y=;
 b=uXocCpN7GQebDB47V5MWF2j3tnZrT5NysqWXuGzXfUtM0mv/GfxS5FvlE86yZJZ285
 M4uuiki8o/Vkttx6/zOaXKFEgpG1uGr2KBLYjmN9x8mB7CF3aJkxM7OvsVm5ZuqFkGWl
 ZNBU+vDHAk9mX3KJKy6/a4A6R4F30sb5G0MxNDosZ0WxsLJ1mDEI+YdLBwuR4jplauJ5
 V/9WAOBM6bWhpuhm5jn+DW8mHuZ9x0g+9QzDdhazGPqVYlYamBEMzHPjFYtpf3hlz1Jc
 B6xBzktSPmEmRDd3dY9OGwgV/QrcCBE8xjpjEeTY8eRcYgaYeqXgUznSDvaG3dJmuiV0
 OgFg==
X-Gm-Message-State: APjAAAV5le8sRT4VxtG4SR+Rau9BwvoSbXxeehElFyr0y5xbz9QYykcz
 qJOzDfuPvxtCoVV0tMLAearHukWsTsbj8F1B1oXvaXIU
X-Google-Smtp-Source: APXvYqwckjdtN4hJJuQgXGqfyPqFE3/bSsSloIgIUqA4AmRPYBxDLlSKCEHle0kgcy7uQpoXlsNQj3NimJP3GQM4jPk=
X-Received: by 2002:a67:e912:: with SMTP id c18mr8683220vso.72.1581966588711; 
 Mon, 17 Feb 2020 11:09:48 -0800 (PST)
MIME-Version: 1.0
References: <20200217190624.30435-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200217190624.30435-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Mon, 17 Feb 2020 20:09:37 +0100
Message-ID: <CAEX4t-PMFFRdu+4rS24N0EB1AVQ4-n9WwXZ65hFS4sBGoKS3JQ@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT/NEWLIB PATCH] Makefile.uk:
 -Wno-char-subscripts as global flag
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIHRoYW5rcyBmb3IgdGhlIGZpeC4KClJldmlld2VkLWJ5OiBGZWxpcGUgSHVpY2kg
PGZlbGlwZS5odWljaUBuZWNsYWIuZXU+CgpPbiBNb24sIEZlYiAxNywgMjAyMCBhdCA4OjA2IFBN
IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90ZToKPgo+IEV4cG9z
ZXMgdGhlIEdDQyBzdXBwcmVzcyBmbGFnIGAtV25vLWNoYXItc3Vic2NyaXB0c2AgZ2xvYmFsbHku
IFRoZQo+IGhlYWRlciA8Y3R5cGUuaD4gaXMgY2F1c2luZyB0aGUgd2FybmluZyB0byBhcHBlYXIg
d2hlbiB0aGUKPiBtYWNyb3MgaXNsb3dlciwgaXN1cHBlciwgdG9sb3dlciwgdG91cHBlciBhcmUg
dXNlZC4KPgo+IFNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVj
bGFiLmV1Pgo+IC0tLQo+ICBNYWtlZmlsZS51ayB8IDEwICsrKysrKystLS0KPiAgMSBmaWxlIGNo
YW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9N
YWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCj4gaW5kZXggNjZjM2I4OC4uYjU5YzQyOCAxMDA2NDQK
PiAtLS0gYS9NYWtlZmlsZS51awo+ICsrKyBiL01ha2VmaWxlLnVrCj4gQEAgLTk0LDEzICs5NCwx
MyBAQCBMSUJORVdMSUJfR0xPQkFMX0ZMQUdTLXkgICs9IC1EX0xEQkxfRVFfREJMCj4gIExJQk5F
V0xJQl9HTE9CQUxfRkxBR1MteSAgKz0gLURfSEFWRV9MT05HX0RPVUJMRQo+ICBlbmRpZgo+Cj4g
LUNGTEFHUy15ICAgKz0gJChMSUJORVdMSUJfR0xPQkFMX0ZMQUdTLXkpCj4gLUNYWEZMQUdTLXkg
Kz0gJChMSUJORVdMSUJfR0xPQkFMX0ZMQUdTLXkpCj4gK0NGTEFHUy0kKENPTkZJR19MSUJORVdM
SUJDKSAgICs9ICQoTElCTkVXTElCX0dMT0JBTF9GTEFHUy15KQo+ICtDWFhGTEFHUy0kKENPTkZJ
R19MSUJORVdMSUJDKSArPSAkKExJQk5FV0xJQl9HTE9CQUxfRkxBR1MteSkKPgo+ICAjIFN1cHBy
ZXNzIHNvbWUgd2FybmluZ3MgdG8gbWFrZSB0aGUgYnVpbGQgcHJvY2VzcyBsb29rIG5lYXRlcgo+
ICBMSUJORVdMSUJfU1VQUFJFU1NfRkxBR1MteSArPSBcCj4gIC1Xbm8tdW51c2VkLXBhcmFtZXRl
ciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW5vbm51bGwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKPiAtLVduby11bnVzZWQtYnV0LXNldC12YXJpYWJsZSAtV25vLXVudXNlZC1s
YWJlbCAtV25vLWNoYXItc3Vic2NyaXB0cyAgICAgICAgICAgIFwKPiArLVduby11bnVzZWQtYnV0
LXNldC12YXJpYWJsZSAtV25vLXVudXNlZC1sYWJlbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAo+ICAtV25vLXVudXNlZC1mdW5jdGlvbiAtV25vLW1pc3NpbmctZmll
bGQtaW5pdGlhbGl6ZXJzIC1Xbm8tdW5pbml0aWFsaXplZCAgICAgICAgICAgICAgICBcCj4gIC1X
bm8tYXJyYXktYm91bmRzIC1Xbm8tbWF5YmUtdW5pbml0aWFsaXplZCAtV25vLXBvaW50ZXItc2ln
biAtV25vLXVudXNlZC12YWx1ZSBcCj4gIC1Xbm8tdW51c2VkLW1hY3JvcyAtV25vLXBhcmVudGhl
c2VzIC1Xbm8taW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb24gICAgICAgICBcCj4gQEAgLTEy
MSw2ICsxMjEsMTAgQEAgTElCTkVXTElCR0xVRV9TVVBQUkVTU19GTEFHUy15ICs9IC1Xbm8tdW51
c2VkLXBhcmFtZXRlcgo+ICBMSUJORVdMSUJHTFVFX0NGTEFHUy15ICAgKz0gJChMSUJORVdMSUJH
TFVFX1NVUFBSRVNTX0ZMQUdTLXkpCj4gIExJQk5FV0xJQkdMVUVfQ1hYRkxBR1MteSArPSAkKExJ
Qk5FV0xJQkdMVUVfU1VQUFJFU1NfRkxBR1MteSkKPgo+ICtMSUJORVdMSUJfR0xPQkFMX1NVUFBS
RVNTX0ZMQUdTLXkgKz0gLVduby1jaGFyLXN1YnNjcmlwdHMKPiArQ0ZMQUdTLSQoQ09ORklHX0xJ
Qk5FV0xJQkMpICAgKz0gJChMSUJORVdMSUJfR0xPQkFMX1NVUFBSRVNTX0ZMQUdTLXkpCj4gK0NY
WEZMQUdTLSQoQ09ORklHX0xJQk5FV0xJQkMpICs9ICQoTElCTkVXTElCX0dMT0JBTF9TVVBQUkVT
U19GTEFHUy15KQo+ICsKPiAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPiAgIyBPUyBkZXBlbmRl
bmNpZXMgY29kZSAtIEdsdWUgYmV0d2VlbiBVbmljb3JlIGFuZCBuZXdsaWIKPiAgIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKPiAtLQo+IDIuMjAuMQo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwo+IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBN
aW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVsCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1p
bmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 19:15:36 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 19:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3lrj-0004QG-0d; Mon, 17 Feb 2020 19:15:35 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3lri-0004QB-Bf
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 19:15:34 +0000
X-Inumbo-ID: de95e5fe-51b9-11ea-b0fd-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id de95e5fe-51b9-11ea-b0fd-bc764e2007e4;
 Mon, 17 Feb 2020 19:15:33 +0000 (UTC)
Received: from c408.ant-net (c408.ant-net [192.168.0.168])
 by queen.nlehd.de (Postfix) with ESMTP id 0FCD6411AC;
 Mon, 17 Feb 2020 20:15:33 +0100 (CET)
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: minios-devel@lists.xen.org
Date: Mon, 17 Feb 2020 20:15:30 +0100
Message-Id: <20200217191530.30565-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/uknetdev: Avoid signed and
 unsigned comparison
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: felipe.huici@neclab.eu, Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

QXZvaWRzIHRoZSB3YXJuaW5nICdjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25l
ZCBpbnRlZ2VyCmV4cHJlc3Npb25zJyBpbiBgbmV0YnVmLmNgLiBUaGUgY29tcGlsZXIgaXMgaW1w
bGljaXRseSBhIHN1YnN0cmFjdGlvbgpiZXR3ZWVuIHR3byB1aW50MTZfdCB1cGNhc3RpbmcgdG8g
aW50LiBOb3JtYWxseSwgb3ZlcmZsb3dzIGNvdWxkCmhhcHBlbiBidXQgbm90IGluIHRoaXMgcGFy
dGljdWxhciBjYXNlLgoKU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24ua3Vlbnpl
ckBuZWNsYWIuZXU+Ci0tLQogbGliL3VrbmV0ZGV2L25ldGJ1Zi5jIHwgNCArKy0tCiAxIGZpbGUg
Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp
Yi91a25ldGRldi9uZXRidWYuYyBiL2xpYi91a25ldGRldi9uZXRidWYuYwppbmRleCA5NmE1ZjY4
Li5iZDM5YzU0IDEwMDY0NAotLS0gYS9saWIvdWtuZXRkZXYvbmV0YnVmLmMKKysrIGIvbGliL3Vr
bmV0ZGV2L25ldGJ1Zi5jCkBAIC0xMTcsNyArMTE3LDcgQEAgc3RydWN0IHVrX25ldGJ1ZiAqdWtf
bmV0YnVmX2FsbG9jX2J1ZihzdHJ1Y3QgdWtfYWxsb2MgKmEsIHNpemVfdCBidWZsZW4sCiAJICog
V2UgY2FuIG9ubHkgZG8gdGhpcyBpZiB0aGUgZ2l2ZW4gaGVhZHJvb20gc3RheXMgd2l0aGluCiAJ
ICogIHVpbnQxNl90IGJvdW5kcyBhZnRlciB0aGUgb3BlcmF0aW9uLgogCSAqLwotCWlmIChsaWtl
bHkoVUlOVDE2X01BWCAtIGhlYWRyb29tID4gTkVUQlVGX0FERFJfQUxJR05NRU5UKSkgeworCWlm
IChsaWtlbHkoKHNpemVfdCkoVUlOVDE2X01BWCAtIGhlYWRyb29tKSA+IE5FVEJVRl9BRERSX0FM
SUdOTUVOVCkpIHsKIAkJaWYgKHByaXZsZW4gPT0gMCkgewogCQkJcHJpdl9vZmZzZXQgICAgPSAw
OwogCQkJYnVmX29mZnNldCAgICAgPSBzaXplb2YoKm0pOwpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0
cnVjdCB1a19uZXRidWYgKnVrX25ldGJ1Zl9wcmVwYXJlX2J1Zih2b2lkICptZW0sIHNpemVfdCBz
aXplLAogCSAqIFdlIGNhbiBvbmx5IGRvIHRoaXMgaWYgdGhlIGdpdmVuIGhlYWRyb29tIHN0YXlz
IHdpdGhpbgogCSAqICB1aW50MTZfdCBib3VuZHMgYWZ0ZXIgdGhlIG9wZXJhdGlvbi4KIAkgKi8K
LQlpZiAobGlrZWx5KFVJTlQxNl9NQVggLSBoZWFkcm9vbSA+IE5FVEJVRl9BRERSX0FMSUdOTUVO
VCkpIHsKKwlpZiAobGlrZWx5KChzaXplX3QpKFVJTlQxNl9NQVggLSBoZWFkcm9vbSkgPiBORVRC
VUZfQUREUl9BTElHTk1FTlQpKSB7CiAJCWlmIChwcml2bGVuID09IDApIHsKIAkJCXByaXZfb2Zm
c2V0ID0gMDsKIAkJCWJ1Zl9vZmZzZXQgID0gc2l6ZW9mKCptKTsKLS0gCjIuMjAuMQoKCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBt
YWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 19:46:27 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 19:46:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3mLa-0007W4-N4; Mon, 17 Feb 2020 19:46:26 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=NhI0=4F=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j3mLZ-0007Vx-Ey
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 19:46:25 +0000
X-Inumbo-ID: 2d682dd2-51be-11ea-aa99-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 2d682dd2-51be-11ea-aa99-bc764e2007e4;
 Mon, 17 Feb 2020 19:46:24 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id C2F63F2021;
 Mon, 17 Feb 2020 20:46:22 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Pi9fHoa4yXbg; Mon, 17 Feb 2020 20:46:22 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 85CBDF2007
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 20:46:20 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 17 Feb
 2020 20:46:20 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200217190209.28263-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <317f6dcb-238c-9cb6-911f-78d91eae4eb6@neclab.eu>
Date: Mon, 17 Feb 2020 20:46:19 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200217190209.28263-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/APPHELLOWORLD] Adapt helloworld app to
 work with kraft script.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJA
bmVjbGFiLmV1PgoKT24gMTcuMDIuMjAgMjA6MDIsIEZlbGlwZSBIdWljaSB3cm90ZToKPiBXZSBp
bmNsdWRlIGEga3JhZnQtY29tcGF0aWJsZSB5YW1sIGZpbGUgdG8gdGhlIGhlbGxvd29ybGQgYXBw
IGFuZAo+IHVwZGF0ZSB0aGUgUkVBRE1FLm1kIHRvIHBvaW50IHVzZXJzIHRvIHRoZSBrcmFmdCBz
Y3JpcHQuIFdlIHJlbW92ZSB0aGUKPiBub3cgb2Jzb2xldGUgZGVwcy5qc29uIGZpbGUuCj4gCj4g
U2lnbmVkLW9mZi1ieTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1Pgo+IC0t
LQo+ICAgUkVBRE1FLm1kICB8IDE1ICsrKysrKysrKysrLS0tLQo+ICAgZGVwcy5qc29uICB8ICAz
IC0tLQo+ICAga3JhZnQueWFtbCB8IDEyICsrKysrKysrKysrKwo+ICAgMyBmaWxlcyBjaGFuZ2Vk
LCAyMyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0
IGRlcHMuanNvbgo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGtyYWZ0LnlhbWwKPiAKPiBkaWZmIC0t
Z2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1kCj4gaW5kZXggZjBlMzgyYS4uMWVjZTY1NiAxMDA2
NDQKPiAtLS0gYS9SRUFETUUubWQKPiArKysgYi9SRUFETUUubWQKPiBAQCAtMSw1ICsxLDEyIEBA
Cj4gLSJIZWxsbyBXb3JsZCItRXhhbXBsZSBmb3IgVW5pa3JhZnQKPiAtPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQo+ICsjIFVuaWtyYWZ0ICJoZWxsbyB3b3JsZCIgQXBwbGljYXRp
b24KPiAgIAo+IC1QbGVhc2UgcmVmZXIgdG8gdGhlIGBSRUFETUUubWRgIGFzIHdlbGwgYXMgdGhl
IGRvY3VtZW50YXRpb24gaW4gdGhlIGBkb2MvYAo+IC1zdWJkaXJlY3Rvcnkgb2YgdGhlIG1haW4g
dW5pa3JhZnQgcmVwb3NpdG9yeS4KPiArVG8gYnVpbGQgYW5kIHJ1biB0aGlzIGFwcGxpY2F0aW9u
IHBsZWFzZSB1c2UgdGhlIGBrcmFmdGAgc2NyaXB0Ogo+ICsKPiArICAgIGdpdCBjbG9uZSBodHRw
czovL2dpdGh1Yi5jb20vdW5pa3JhZnQva3JhZnQKPiArICAgIGNkIGtyYWZ0Cj4gKyAgICBweXRo
b24gc2V0dXAucHkgaW5zdGFsbAo+ICsgICAga3JhZnQgbGlzdAo+ICsgICAga3JhZnQgdXAgLXAg
W3BsYXRmb3JtXSAtbSBbYXJjaGl0ZWN0dXJlXSBbYXBwIG5hbWVdCj4gKwo+ICtGb3IgbW9yZSBp
bmZvcm1hdGlvbiBhYm91dCBga3JhZnRgIHR5cGUgYGBga3JhZnQgLWhgYGAgb3IgcmVhZCB0aGUK
PiArW2RvY3VtZW50YXRpb25dKGh0dHA6Ly9kb2NzLnVuaWtyYWZ0Lm9yZykuCj4gZGlmZiAtLWdp
dCBhL2RlcHMuanNvbiBiL2RlcHMuanNvbgo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGlu
ZGV4IGI1ZjY4YTYuLjAwMDAwMDAKPiAtLS0gYS9kZXBzLmpzb24KPiArKysgL2Rldi9udWxsCj4g
QEAgLTEsMyArMCwwIEBACj4gLXsKPiAtICAgICJjb3JlIjogIjMzY2MwMmJhIgo+IC19Cj4gZGlm
ZiAtLWdpdCBhL2tyYWZ0LnlhbWwgYi9rcmFmdC55YW1sCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK
PiBpbmRleCAwMDAwMDAwLi5jNGMwNzRkCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2tyYWZ0Lnlh
bWwKPiBAQCAtMCwwICsxLDEyIEBACj4gK3NwZWNpZmljYXRpb246ICcwLjQnCj4gKwo+ICt1bmlr
cmFmdDogJzAuNCcKPiArCj4gK2FyY2hpdGVjdHVyZXM6Cj4gKyAgeDg2XzY0OiB0cnVlCj4gKyAg
YXJtNjQ6IHRydWUKPiArCj4gK3BsYXRmb3JtczoKPiArICBsaW51eHU6IHRydWUKPiArICBrdm06
IHRydWUKPiArICB4ZW46IHRydWUKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s
aXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 17 21:09:23 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 17 Feb 2020 21:09:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j3ndm-0006MS-Cm; Mon, 17 Feb 2020 21:09:18 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=RBfq=4F=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j3ndl-0006MN-38
 for minios-devel@lists.xen.org; Mon, 17 Feb 2020 21:09:17 +0000
X-Inumbo-ID: c14e109c-51c9-11ea-b0fd-bc764e2007e4
Received: from mail-ua1-x941.google.com (unknown [2607:f8b0:4864:20::941])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id c14e109c-51c9-11ea-b0fd-bc764e2007e4;
 Mon, 17 Feb 2020 21:09:16 +0000 (UTC)
Received: by mail-ua1-x941.google.com with SMTP id o42so6652853uad.10
 for <minios-devel@lists.xen.org>; Mon, 17 Feb 2020 13:09:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=64txEHpbz05hOHlcCLPNLMVlvfpbJzTQt8av5bMtqjw=;
 b=dMGhqDGrWsRITLNp/+CuWRQV/T08xlyijIXgiofeXLMsObLYGH/+TzFkXj2hmnzl54
 BNVCmrLuN49xdYKZDga8sOQn1jg7prDVmzJAWwY6jwvUgREwUj+cWu3kNsa/gHC9e73E
 xsCsU4LM1c6l5OZkceNBjKCxqKCS8vmz5TXPWacSrU6g4bNEISSQ4+VThD7CWx+7s1cU
 bex1OyjaqRp63X/D9K0Wvbw1d29j1t31tfqTFX+uTiY9Ti9kJ6Uqbx6zLpwDLtzsUdYo
 ia7dhwDLS+3VVzK8Mk39cJkONewFb/5lBcSZrozB8pns4LMjGytTGgjMNjn3Hh6dBbCu
 znCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=64txEHpbz05hOHlcCLPNLMVlvfpbJzTQt8av5bMtqjw=;
 b=d3YlsGWDbBre0kl7rLggFngmYtohM+pgFjraJMYF7q4jqR8HNgxh1gzppPjXrwJL31
 z7FxpjDM031c/c/EUzj7o0gyRM0FvMa2jtX9luMXTrzFXAVFICB6MhYU2+s6q1VGyjxr
 4w4i/bRieysaMf00teLz/j4LKNonfEAv/CZEIIV8wpYuuLF3Gjht1UuG4s6Yrk12FOqt
 0CIGlb64tgkiwDJ6oJXr7LkgAvkkzJXKUbH3gfI+iXSuL0ss+VoK7TYAaLLd2kFAEdKm
 kAyLZYvBIuOTs/VcSiG089tSQzQod4NtGleaxs0aZxyIdRSAuAUqZxvp3Jv1XPPEzjGp
 Tjpw==
X-Gm-Message-State: APjAAAWqo2QRUwDKLEQ4lFjrwC1ZuxAsp69LHqlxra4m7Olb3cUhfSEZ
 nQg8g7crAQEsIaqvVw6FixbMYNhAY3WpZCUT7cFX8eB3
X-Google-Smtp-Source: APXvYqwl3y4u3EqP9OVFRscG3MtKssHf+eNSS8cYdCXdOnxNfOrronIl9/DFmJXD0oGC16eVnw/jeA5+8y6hzAALip0=
X-Received: by 2002:ab0:2a93:: with SMTP id h19mr8451927uar.27.1581973755772; 
 Mon, 17 Feb 2020 13:09:15 -0800 (PST)
MIME-Version: 1.0
References: <20200217191530.30565-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200217191530.30565-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Mon, 17 Feb 2020 22:09:04 +0100
Message-ID: <CAEX4t-Ohjt5mn9kZucmRDJUH8_BhP4eq9p_tkmWGDgfjxESchA@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/uknetdev: Avoid signed and
 unsigned comparison
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIHRoYW5rcyBmb3IgdGhlIHBhdGNoLgoKUmV2aWV3ZWQtYnk6IEZlbGlwZSBIdWlj
aSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KCk9uIE1vbiwgRmViIDE3LCAyMDIwIGF0IDg6MTUg
UE0gU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+IHdyb3RlOgo+Cj4gQXZv
aWRzIHRoZSB3YXJuaW5nICdjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBp
bnRlZ2VyCj4gZXhwcmVzc2lvbnMnIGluIGBuZXRidWYuY2AuIFRoZSBjb21waWxlciBpcyBpbXBs
aWNpdGx5IGEgc3Vic3RyYWN0aW9uCj4gYmV0d2VlbiB0d28gdWludDE2X3QgdXBjYXN0aW5nIHRv
IGludC4gTm9ybWFsbHksIG92ZXJmbG93cyBjb3VsZAo+IGhhcHBlbiBidXQgbm90IGluIHRoaXMg
cGFydGljdWxhciBjYXNlLgo+Cj4gU2lnbmVkLW9mZi1ieTogU2ltb24gS3VlbnplciA8c2ltb24u
a3VlbnplckBuZWNsYWIuZXU+Cj4gLS0tCj4gIGxpYi91a25ldGRldi9uZXRidWYuYyB8IDQgKyst
LQo+ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Cj4g
ZGlmZiAtLWdpdCBhL2xpYi91a25ldGRldi9uZXRidWYuYyBiL2xpYi91a25ldGRldi9uZXRidWYu
Ywo+IGluZGV4IDk2YTVmNjguLmJkMzljNTQgMTAwNjQ0Cj4gLS0tIGEvbGliL3VrbmV0ZGV2L25l
dGJ1Zi5jCj4gKysrIGIvbGliL3VrbmV0ZGV2L25ldGJ1Zi5jCj4gQEAgLTExNyw3ICsxMTcsNyBA
QCBzdHJ1Y3QgdWtfbmV0YnVmICp1a19uZXRidWZfYWxsb2NfYnVmKHN0cnVjdCB1a19hbGxvYyAq
YSwgc2l6ZV90IGJ1ZmxlbiwKPiAgICAgICAgICAqIFdlIGNhbiBvbmx5IGRvIHRoaXMgaWYgdGhl
IGdpdmVuIGhlYWRyb29tIHN0YXlzIHdpdGhpbgo+ICAgICAgICAgICogIHVpbnQxNl90IGJvdW5k
cyBhZnRlciB0aGUgb3BlcmF0aW9uLgo+ICAgICAgICAgICovCj4gLSAgICAgICBpZiAobGlrZWx5
KFVJTlQxNl9NQVggLSBoZWFkcm9vbSA+IE5FVEJVRl9BRERSX0FMSUdOTUVOVCkpIHsKPiArICAg
ICAgIGlmIChsaWtlbHkoKHNpemVfdCkoVUlOVDE2X01BWCAtIGhlYWRyb29tKSA+IE5FVEJVRl9B
RERSX0FMSUdOTUVOVCkpIHsKPiAgICAgICAgICAgICAgICAgaWYgKHByaXZsZW4gPT0gMCkgewo+
ICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZfb2Zmc2V0ICAgID0gMDsKPiAgICAgICAgICAg
ICAgICAgICAgICAgICBidWZfb2Zmc2V0ICAgICA9IHNpemVvZigqbSk7Cj4gQEAgLTE2Niw3ICsx
NjYsNyBAQCBzdHJ1Y3QgdWtfbmV0YnVmICp1a19uZXRidWZfcHJlcGFyZV9idWYodm9pZCAqbWVt
LCBzaXplX3Qgc2l6ZSwKPiAgICAgICAgICAqIFdlIGNhbiBvbmx5IGRvIHRoaXMgaWYgdGhlIGdp
dmVuIGhlYWRyb29tIHN0YXlzIHdpdGhpbgo+ICAgICAgICAgICogIHVpbnQxNl90IGJvdW5kcyBh
ZnRlciB0aGUgb3BlcmF0aW9uLgo+ICAgICAgICAgICovCj4gLSAgICAgICBpZiAobGlrZWx5KFVJ
TlQxNl9NQVggLSBoZWFkcm9vbSA+IE5FVEJVRl9BRERSX0FMSUdOTUVOVCkpIHsKPiArICAgICAg
IGlmIChsaWtlbHkoKHNpemVfdCkoVUlOVDE2X01BWCAtIGhlYWRyb29tKSA+IE5FVEJVRl9BRERS
X0FMSUdOTUVOVCkpIHsKPiAgICAgICAgICAgICAgICAgaWYgKHByaXZsZW4gPT0gMCkgewo+ICAg
ICAgICAgICAgICAgICAgICAgICAgIHByaXZfb2Zmc2V0ID0gMDsKPiAgICAgICAgICAgICAgICAg
ICAgICAgICBidWZfb2Zmc2V0ICA9IHNpemVvZigqbSk7Cj4gLS0KPiAyLjIwLjEKPgo+Cj4gX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBNaW5pb3MtZGV2
ZWwgbWFpbGluZyBsaXN0Cj4gTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0
cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbAoK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Tue Feb 18 14:28:49 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 18 Feb 2020 14:28:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j43rg-00013h-V9; Tue, 18 Feb 2020 14:28:44 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=G2bn=4G=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j43rf-00013c-5U
 for minios-devel@lists.xen.org; Tue, 18 Feb 2020 14:28:43 +0000
X-Inumbo-ID: f5313a06-525a-11ea-bc8e-bc764e2007e4
Received: from mh-fa-0.lancs.ac.uk (unknown [148.88.65.130])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id f5313a06-525a-11ea-bc8e-bc764e2007e4;
 Tue, 18 Feb 2020 14:28:41 +0000 (UTC)
Received: from queen.nlehd.de ([195.37.154.80] helo=localhost.localdomain)
 by mh-fa-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j43ra-000T8c-78; Tue, 18 Feb 2020 14:28:39 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Tue, 18 Feb 2020 15:28:25 +0100
Message-Id: <20200218142825.92035-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-fa-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT PATCH] doc: Update kraft documentation.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBk
b2MvZ3VpZGVzL2tyYWZ0LnJzdCB8IDIyNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKyksIDYxIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMva3JhZnQucnN0IGIvZG9jL2d1aWRlcy9r
cmFmdC5yc3QKaW5kZXggNWU1MzI3Ni4uYjZjMjY5NiAxMDA2NDQKLS0tIGEvZG9jL2d1aWRlcy9r
cmFmdC5yc3QKKysrIGIvZG9jL2d1aWRlcy9rcmFmdC5yc3QKQEAgLTEzLDIyICsxMywyNiBAQCB1
bmlrZXJuZWwgYXBwbGljYXRpb25zLgogUXVpY2sgc3RhcnQKID09PT09PT09PT09CiAKLWBga3Jh
ZnRgYCBjYW4gYmUgaW5zdGFsbGVkIGJ5IGRpcmVjdGx5IGNsb25pbmcgaXRzIHNvdXJjZSBmcm9t
IGBHaXRIdWIgPGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC90b29scy5naXQ+YF86IDo6Citg
YGtyYWZ0YGAgY2FuIGJlIGluc3RhbGxlZCBieSBkaXJlY3RseSBjbG9uaW5nIGl0cyBzb3VyY2Ug
ZnJvbSBgR2l0SHViIDxodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQva3JhZnQuZ2l0PmBfOiA6
OgogCi0gIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQvdG9vbHMuZ2l0Ci0g
IGNkIHRvb2xzICYmIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsCisgIGdpdCBjbG9uZSBodHRwczov
L2dpdGh1Yi5jb20vdW5pa3JhZnQva3JhZnQuZ2l0CisgIGNkIGtyYWZ0CisgIHB5dGhvbjMgc2V0
dXAucHkgaW5zdGFsbAogCiAuLiBub3RlOjoKICAgQWRkaXRpb25hbCBkZXBlbmRlbmNpZXMgaW5j
bHVkZSBgZ2l0YCwgYG1ha2VgLCBuY3Vyc2VzLCBgZmxleGAsIGB3Z2V0YCwKLSAgYHVuemlwYCwg
YHRhcmAsIGBweXRob24zYCBhbmQgYGdjY2AuICBEZXRhaWxzIG9uIGhvdyB0byBjb25maWd1cmUg
aG93Ci0gIGBga3JhZnRgYCBpbnRlcmFjdHMgd2l0aCBnY2MgYW5kIHRoZSBVbmlrcmFmdCBidWls
ZCBzeXN0ZW0gaW4gYWRkaXRpb24gb24gaG93Ci0gIHRvIHVzZSBgYGtyYWZ0YGAgd2l0aCBEb2Nr
ZXIgaXMgY292ZXJlZCBpbiA6cmVmOmBhZHZhbmNlZF91c2FnZWAuCisgIGB1bnppcGAsIGB0YXJg
LCBgcHl0aG9uM2AgKGluY2x1ZGluZyAgYHNldHVwdG9vbHNgKSBhbmQgYGdjY2AuICBEZXRhaWxz
IG9uCisgIGhvdyB0byBjb25maWd1cmUgaG93IGBga3JhZnRgYCBpbnRlcmFjdHMgd2l0aCBnY2Mg
YW5kIHRoZSBVbmlrcmFmdCBidWlsZAorICBzeXN0ZW0gaW4gYWRkaXRpb24gb24gaG93IHRvIHVz
ZSBgYGtyYWZ0YGAgd2l0aCBEb2NrZXIgaXMgY292ZXJlZCBpbgorICA6cmVmOmBhZHZhbmNlZF91
c2FnZWAuCiAKIE9uY2UgYGBrcmFmdGBgIGl0IGluc3RhbGxlZCB5b3UgY2FuIGJlZ2luIGJ5IGlu
aXRpYWxpemluZyBhIG5ldyB1bmlrZXJuZWwKIHJlcG9zaXRvcnkgdXNpbmcgYGBrcmFmdCBpbml0
YGAuICBBcyBhbiBleGFtcGxlLCB5b3UgY2FuIGJ1aWxkIGEgUHl0aG9uIDMKIHVuaWtlcm5lbCBh
cHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmc6IDo6CiAKLSAga3JhZnQgaW5pdCAt
YSBweXRob24zIC4vbXktZmlyc3QtdW5pa2VybmVsCisgIGtyYWZ0IGxpc3QKKyAgbWtkaXIgfi9t
eS1maXJzdC11bmlrZXJuZWwgJiYgY2Qgfi9teS1maXJzdC11bmlrZXJuZWwgCisgIGtyYWZ0IHVw
IC1hIGhlbGxvd29ybGQgLW0geDg2XzY0IC1wIGt2bQogCiAuLiBub3RlOjoKICAgSWYgdGhpcyBp
cyB0aGUgZmlyc3QgdGltZSB5b3UgYXJlIHJ1bm5pbmcgYGBrcmFmdGBgLCB5b3Ugd2lsbCBiZSBw
cm9tcHRlZCB0byAKQEAgLTU5LDggKzYzLDkgQEAgVGhlIGNvbmZpZ3VyYXRpb24gc3RlcCB1c2Vk
IGluIGBga3JhZnRgYCB3aWxsIHBlcmZvcm0gbmVjZXNzYXJ5IGNoZWNrcwogcGVydGFpbmluZyB0
byBjb21wYXRpYmlsaXR5IGFuZCBhdmFpbGFiaWxpdHkgb2Ygc291cmNlIGNvZGUgYW5kIHdpbGwg
cG9wdWxhdGUKIHlvdXIgYXBwbGljYXRpb24gZGlyZWN0b3J5IHdpdGggbmV3IGZpbGVzIGFuZCBm
b2xkZXJzLCBpbmNsdWRpbmc6CiAKLSAgKiBgYGRlcHMuanNvbmBgIC0tIFRoaXMgZmlsZSBob2xk
cyBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCB2ZXJzaW9uIG9mIHRoZQotICAgIFVuaWtyYWZ0IGNv
cmUgYW5kIGFkZGl0aW9uYWwgbGlicmFyaWVzIHRvIHVzZSBmb3IgdGhlIGJ1aWxkLgorICAqIGBg
a3JhZnQueWFtbGBgIC0tIFRoaXMgZmlsZSBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCB2
ZXJzaW9uIG9mIHRoZQorICAgIFVuaWtyYWZ0IGNvcmUsIGFkZGl0aW9uYWwgbGlicmFyaWVzLCB3
aGljaCBhcmNoaXRlY3R1cmVzIGFuZCBwbGF0Zm9ybXMgdG8KKyAgICB0YXJnZXQgYW5kIHdoaWNo
IG5ldHdvcmsgYnJpZGdlcyBhbmQgdm9sdW1lcyB0byBtb3VudCBkdXJpcm5nIHJ1bnRpbWUuCiAg
ICogYGBNYWtlZmlsZS51a2BgIC0tIEEgS2NvbmZpZyB0YXJnZXQgZmlsZSB5b3UgY2FuIHVzZSB0
byBjcmVhdGUgY29tcGlsZS10aW1lCiAgICAgdG9nZ2xlcyBmb3IgeW91ciBhcHBsaWNhdGlvbi4g
CiAgICogYGBidWlsZC9gYCAtLSBBbGwgYnVpbGQgYXJ0aWZhY3RzIGFyZSBwbGFjZWQgaW4gdGhp
cyBkaXJlY3RvcnkgaW5jbHVkaW5nIApAQCAtODcsMzggKzkyLDEwNyBAQCBPdmVydmlldyBvZiBj
b21tYW5kcwogICBVc2FnZToga3JhZnQgW09QVElPTlNdIENPTU1BTkQgW0FSR1NdLi4uCiAKICAg
T3B0aW9uczoKLSAgICAtdiwgLS12ZXJib3NlICBFbmFibGVzIHZlcmJvc2UgbW9kZS4KLSAgICAt
ViwgLS12ZXJzaW9uICBQcmludCB0aGUgdmVyc2lvbiBhbmQgZXhpdC4KLSAgICAtLWhlbHAgICAg
ICAgICBTaG93IHRoaXMgbWVzc2FnZSBhbmQgZXhpdC4KKyAgICAtLXZlcnNpb24gICAgICAgICAg
ICAgICAgICAgICAgIFNob3cgdGhlIHZlcnNpb24gYW5kIGV4aXQuCisgICAgLUMsIC0taWdub3Jl
LWdpdC1jaGVja291dC1lcnJvcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IElnbm9yZSBjaGVja291dCBlcnJvcnMuCisgICAgLVgsIC0tZG9udC1jaGVja291dCAgICAgICAg
ICAgICBEbyBub3QgY2hlY2tvdXQgcmVwb3NpdG9yaWVzLgorICAgIC12LCAtLXZlcmJvc2UgICAg
ICAgICAgICAgICAgICAgRW5hYmxlcyB2ZXJib3NlIG1vZGUuCisgICAgLWgsIC0taGVscCAgICAg
ICAgICAgICAgICAgICAgICBTaG93IHRoaXMgbWVzc2FnZSBhbmQgZXhpdC4KIAogICBDb21tYW5k
czoKLSAgICBidWlsZCAgICAgIEJ1aWxkIHRoZSB1bmlrcmFmdCBhcHBsaWFuY2UuCi0gICAgY29u
ZmlndXJlICBTZXRzIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIGFuIGFwcGxpYW5jZS4K
LSAgICBjcmVhdGVmcyAgIEdlbmVyYXRlIGEgc3RhdGljIGZpbGVzeXN0ZW0gZm9yIHRoZSB1bmlr
cmFmdCBhcHBsaWFuY2UuCi0gICAgaW5pdCAgICAgICBJbml0aWFsaXplIGEgbmV3IHVuaWtyYWZ0
IHByb2plY3QuCi0gICAgbGlzdCAgICAgICBMaXN0IHN1cHBvcnRlZCB1bmlrcmFmdCBhcmNoaXRl
Y3R1cmVzLCBwbGF0Zm9ybXMsIGxpYnJhcmllcyBvcgotICAgICAgICAgICAgICAgYXBwbGljYXRp
b25zIHZpYSByZW1vdGUgcmVwb3NpdG9yaWVzLgotICAgIHJ1biAgICAgICAgUnVuIHRoZSB1bmlr
cmFmdCBhcHBsaWFuY2UuCi0gICAgdXBkYXRlICAgICBMaXN0IHN1cHBvcnRlZCB1bmlrcmFmdCBh
cmNoaXRlY3R1cmVzLCBwbGF0Zm9ybXMsIGxpYnJhcmllcyBvcgotICAgICAgICAgICAgICAgYXBw
bGljYXRpb25zIHZpYSByZW1vdGUgcmVwb3NpdG9yaWVzLgorICAgIGJ1aWxkICAgICAgQnVpbGQg
dGhlIGFwcGxpY2F0aW9uLgorICAgIGNsZWFuICAgICAgQ2xlYW4gdGhlIGFwcGxpY2F0aW9uLgor
ICAgIGNvbmZpZ3VyZSAgQ29uZmlndXJlIHRoZSBhcHBsaWNhdGlvbi4KKyAgICBpbml0ICAgICAg
IEluaXRpYWxpemUgYSBuZXcgdW5pa3JhZnQgYXBwbGljYXRpb24uCisgICAgbGlzdCAgICAgICBM
aXN0IGFyY2hpdGVjdHVyZXMsIHBsYXRmb3JtcywgbGlicmFyaWVzIG9yIGFwcGxpY2F0aW9ucy4K
KyAgICBydW4gICAgICAgIFJ1biB0aGUgYXBwbGljYXRpb24uCisgICAgdXAgICAgICAgICBDb25m
aWd1cmUsIGJ1aWxkIGFuZCBydW4gYW4gYXBwbGljYXRpb24uCisKKyAgSW5mbHVlbnRpYWwgRW52
aXJvbm1lbnRhbCBWYXJpYWJsZXM6CisgICAgVUtfV09SS0RJUiBUaGUgd29ya2luZyBkaXJlY3Rv
cnkgZm9yIGFsbCBVbmlrcmFmdAorICAgICAgICAgICAgICAgc291cmNlIGNvZGUgW2RlZmF1bHQ6
IH4vLnVuaWtyYWZ0XQorICAgIFVLX1JPT1QgICAgVGhlIGRpcmVjdG9yeSBmb3IgVW5pa3JhZnQn
cyBjb3JlIHNvdXJjZQorICAgICAgICAgICAgICAgY29kZSBbZGVmYXVsdDogJFVLX1dPUktESVIv
dW5pa3JhZnRdCisgICAgVUtfTElCUyAgICBUaGUgZGlyZWN0b3J5IG9mIGFsbCB0aGUgZXh0ZXJu
YWwgVW5pa3JhZnQKKyAgICAgICAgICAgICAgIGxpYnJhcmllcyBbZGVmYXVsdDogJFVLX1dPUktE
SVIvbGlic10KKyAgICBVS19BUFBTICAgIFRoZSBkaXJlY3Rvcnkgb2YgYWxsIHRoZSB0ZW1wbGF0
ZSBhcHBsaWNhdGlvbnMKKyAgICAgICAgICAgICAgIFtkZWZhdWx0OiAkVUtfV09SS0RJUi9hcHBz
XQorICAgIEtSQUZUQ09ORiAgVGhlIGxvY2F0aW9uIG9mIGtyYWZ0J3MgcHJlZmVyZW5jZXMgZmls
ZQorICAgICAgICAgICAgICAgW2RlZmF1bHQ6IH4vLmtyYWZ0cmNdCisKKyAgSGVscDoKKyAgICBG
b3IgaGVscCB1c2luZyB0aGlzIHRvb2wsIHBsZWFzZSBvcGVuIGFuIGlzc3VlIG9uIEdpdGh1YjoK
KyAgICBodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQva3JhZnQKKworCisuLiBfa3JhZnRfbGlz
dDoKKworVmlld2luZyBVbmlrcmFmdCBsaWJyYXJ5IHBvb2xzCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAorOjoKKworICBVc2FnZToga3JhZnQgbGlzdCBbT1BUSU9OU10KIAotLi4g
X2tyYWZ0X3VwZGF0ZToKKyAgICBSZXRyaWV2ZXMgbGlzdHMgb2YgYXZhaWxhYmxlIGFyY2hpdGVj
dHVyZXMsIHBsYXRmb3JtcywgbGlicmFyaWVzIGFuZAorICAgIGFwcGxpY2F0aW9ucyBzdXBwb3J0
ZWQgYnkgdW5pa3JhZnQuICBVc2UgdGhpcyBjb21tYW5kIGlmIHlvdSB3aXNoIHRvCisgICAgZGV0
ZXJtaW5lIChhbmQgdGhlbiBsYXRlciBzZWxlY3QpIHRoZSBwb3NzaWJsZSB0YXJnZXRzIGZvciB5
b3VydW5pa3JhZnQKKyAgICBhcHBsaWNhdGlvbi4KIAotVXBkYXRpbmcgVW5pa3JhZnQgbGlicmFy
eSBwb29scworICAgIEJ5IGRlZmF1bHQsIHRoaXMgc3ViY29tbWFuZCB3aWxsIGxpc3QgYWxsIHBv
c3NpYmxlIHRhcmdldHMuCisKKyAgT3B0aW9uczoKKyAgICAtYywgLS1jb3JlICAgICAgICAgRGlz
cGxheSBpbmZvcm1hdGlvbiBhYm91dCBVbmlrcmFmdCdzIGNvcmUgcmVwb3NpdG9yeS4KKyAgICAt
cCwgLS1wbGF0cyAgICAgICAgTGlzdCBzdXBwb3J0ZWQgcGxhdGZvcm1zLgorICAgIC1sLCAtLWxp
YnMgICAgICAgICBMaXN0IHN1cHBvcnRlZCBsaWJyYXJpZXMuCisgICAgLWEsIC0tYXBwcyAgICAg
ICAgIExpc3Qgc3VwcG9ydGVkIGFwcGxpY2F0aW9uIHJ1bnRpbWUgZXhlY3V0aW9uCisgICAgICAg
ICAgICAgICAgICAgICAgIGVudmlyb25tZW50cy4KKyAgICAtZCwgLS1zaG93LWxvY2FsICAgU2hv
dyBsb2NhbCBzb3VyY2UgcGF0aC4KKyAgICAtciwgLS1zaG93LW9yaWdpbiAgU2hvdyByZW1vdGUg
c291cmNlIGxvY2F0aW9uLgorICAgIC1uLCAtLXBhZ2luYXRlICAgICBQYWdpbmF0ZSBvdXRwdXQu
CisgICAgLXUsIC0tdXBkYXRlICAgICAgIFJldHJpZXZlcyBsaXN0cyBvZiBhdmFpbGFibGUgYXJj
aGl0ZWN0dXJlcywgcGxhdGZvcm1zCisgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcmllcyBh
bmQgYXBwbGljYXRpb25zIHN1cHBvcnRlZCBieSBVbmlrcmFmdC4KKyAgICAtRiwgLS1mbHVzaCAg
ICAgICAgQ2xlYW5zIHRoZSBjYWNoZSBhbmQgbGlzdHMuCisgICAgLWgsIC0taGVscCAgICAgICAg
IFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgorCisKKy4uIF9rcmFmdF91cDoKKworUXVpY2sg
VW5pa3JhZnQgcHJvamVjdCBjcmVhdGlvbgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCiA6OgogCi0gIFVzYWdlOiBrcmFmdCB1cGRhdGUgW09QVElPTlNdCisgIFVzYWdlOiBrcmFm
dCB1cCBbT1BUSU9OU10gTkFNRQogCi0gICAgVGhpcyBzdWJjb21tYW5kIHJldHJpZXZlcyBsaXN0
cyBvZiBhdmFpbGFibGUgYXJjaGl0ZWN0dXJlcywgcGxhdGZvcm1zLAotICAgIGxpYnJhcmllcyBh
bmQgYXBwbGljYXRpb25zIHN1cHBvcnRlZCBieSB1bmlrcmFmdC4KKyAgICBDb25maWd1cmVzLCBi
dWlsZHMgYW5kIHJ1bnMgYW4gYXBwbGljYXRpb24gZm9yIGEgc2VsZWN0ZWQgYXJjaGl0ZWN0dXJl
IGFuZAorICAgIHBsYXRmb3JtLgogCiAgIE9wdGlvbnM6Ci0gICAgLXMsIC0tc3RhZ2luZyAgVXNl
IHN0YWdpbmcgYnJhbmNoIChoZXJlIGJlIGRyYWdvbnMpLgotICAgIC0taGVscCAgICAgICAgIFNo
b3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgotCisgICAgLXAsIC0tcGxhdCBbbGludXh1fGt2bXx4
ZW5dICAgIFRhcmdldCBwbGF0Zm9ybS4KKyAgICAtbSwgLS1hcmNoIFt4ODZfNjR8YXJtfGFybTY0
XSAgVGFyZ2V0IGFyY2hpdGVjdHVyZS4KKyAgICAtaSwgLS1pbml0cmQgVEVYVCAgICAgICAgICAg
ICAgUHJvdmlkZSBhbiBpbml0IHJhbWRpc2suCisgICAgLVgsIC0tYmFja2dyb3VuZCAgICAgICAg
ICAgICAgIFJ1biBpbiBiYWNrZ3JvdW5kLgorICAgIC1QLCAtLXBhdXNlZCAgICAgICAgICAgICAg
ICAgICBSdW4gdGhlIGFwcGxpY2F0aW9uIGluIHBhdXNlZCBzdGF0ZS4KKyAgICAtZywgLS1nZGIg
SU5URUdFUiAgICAgICAgICAgICAgUnVuIGEgR0RCIHNlcnZlciBmb3IgdGhlIGd1ZXN0IG9uIHNw
ZWNpZmllZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LgorICAgIC1u
LCAtLXZpcnRpby1uaWMgVEVYVCAgICAgICAgICBBdHRhY2ggYSBOQVQtZWQgdmlydGlvLU5JQyB0
byB0aGUgZ3Vlc3QuCisgICAgLWIsIC0tYnJpZGdlIFRFWFQgICAgICAgICAgICAgIEF0dGFjaCBh
IE5BVC1lZCB2aXJ0aW8tTklDIGFuIGV4aXN0aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyaWRnZS4KKyAgICAtViwgLS1pbnRlcmZhY2UgVEVYVCAgICAgICAgICAgQXNz
aWduIGhvc3QgZGV2aWNlIGludGVyZmFjZSBkaXJlY3RseSBhcworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2aXJ0aW8tTklDIHRvIHRoZSBndWVzdC4KKyAgICAtRCwgLS1kcnkt
cnVuICAgICAgICAgICAgICAgICAgUGVyZm9ybSBhIGRyeSBydW4uCisgICAgLU0sIC0tbWVtb3J5
IElOVEVHRVIgICAgICAgICAgIEFzc2lnbiBNQiBtZW1vcnkgdG8gdGhlIGd1ZXN0LgorICAgIC1z
LCAtLWNwdS1zb2NrZXRzIElOVEVHRVIgICAgICBOdW1iZXIgb2YgZ3Vlc3QgQ1BVIHNvY2tldHMu
CisgICAgLWMsIC0tY3B1LWNvcmVzIElOVEVHRVIgICAgICAgIE51bWJlciBvZiBndWVzdCBjb3Jl
cyBwZXIgc29ja2V0LgorICAgIC1GLCAtLWZvcmNlICAgICAgICAgICAgICAgICAgICBPdmVyd3Jp
dGUgYW55IGV4aXN0aW5nIGZpbGVzIGluIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd29ya2luZyBkaXJlY3RvcnkuCisgICAgLWosIC0tZmFzdCAgICAgICAgICAg
ICAgICAgICAgIFVzZSBhbGwgQ1BVIGNvcmVzIHRvIGJ1aWxkIHRoZSBhcHBsaWNhdGlvbi4KKyAg
ICAtLXdpdGgtZG5zbWFzcSAgICAgICAgICAgICAgICAgU3RhcnQgYSBEbnNtYXNxIHNlcnZlci4K
KyAgICAtLWlwLXJhbmdlIFRFWFQgICAgICAgICAgICAgICAgU2V0IHRoZSBJUCByYW5nZSBmb3Ig
RG5zbWFzcS4KKyAgICAtLWlwLW5ldG1hc2sgVEVYVCAgICAgICAgICAgICAgU2V0IHRoZSBuZXRt
YXNrIGZvciBEbnNtYXNxLgorICAgIC0taXAtbGVhc2UtdGltZSBURVhUICAgICAgICAgICBTZXQg
dGhlIElQIGxlYXNlIHRpbWUgZm9yIERuc21hc3EuCisgICAgLWgsIC0taGVscCAgICAgICAgICAg
ICAgICAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgogCiAuLiBfa3JhZnRfaW5pdDoK
IApAQCAtMTI3LDE5ICsyMDEsMTkgQEAgSW5pdGlhbGl6aW5nIGEgVW5pa3JhZnQgcHJvamVjdAog
CiA6OgogCi0gIFVzYWdlOiBrcmFmdCBpbml0IFtPUFRJT05TXSBbUEFUSF0gW05BTUVdCisgIFVz
YWdlOiBrcmFmdCBpbml0IFtPUFRJT05TXSBOQU1FCiAKLSAgICBUaGlzIHN1YmNvbW1hbmQgaW5p
dGlhbGl6ZXMgYSBuZXcgdW5pa3JhZnQgYXBwbGljYXRpb24gYXQgYSBzZWxlY3RlZCBwYXRoLgor
ICAgIEluaXRpYWxpemVzIGEgbmV3IHVuaWtyYWZ0IGFwcGxpY2F0aW9uLgogCiAgICAgU3RhcnQg
aGVyZSBpZiB0aGlzIGlzIHlvdXIgZmlyc3QgdGltZSB1c2luZyAodW5pKWtyYWZ0LgogCiAgIE9w
dGlvbnM6Ci0gICAgLW0sIC0tYXJjaCBURVhUICBUYXJnZXQgYXJjaGl0ZWN0dXJlICBbZGVmYXVs
dDogKGR5bmFtaWMpXQotICAgIC1wLCAtLXBsYXQgVEVYVCAgVGFyZ2V0IHBsYXRmb3JtICBbZGVm
YXVsdDogbGludXh1XQotICAgIC1sLCAtLWxpYiBURVhUICAgVGFyZ2V0IHBsYXRmb3JtCi0gICAg
LWEsIC0tYXBwIFRFWFQgICBUYXJnZXQgYXBwbGljYXRpb24KLSAgICAtRiwgLS1mb3JjZSAgICAg
IE92ZXJ3cml0ZSBhbnkgZXhpc3RpbmcgZmlsZXMuCi0gICAgLS1oZWxwICAgICAgICAgICBTaG93
IHRoaXMgbWVzc2FnZSBhbmQgZXhpdC4KKyAgICAtYSwgLS1hcHAgVEVYVCAgICAgICAgICAgICAg
ICAgVXNlIGFuIGV4aXN0aW5nIGFwcGxpY2F0aW9uIGFzIGEgdGVtcGxhdGUuCisgICAgLXAsIC0t
cGxhdCBbbGludXh1fGt2bXx4ZW5dICAgIFRhcmdldCBwbGF0Zm9ybS4KKyAgICAtbSwgLS1hcmNo
IFt4ODZfNjR8YXJtfGFybTY0XSAgVGFyZ2V0IGFyY2hpdGVjdHVyZS4KKyAgICAtViwgLS12ZXJz
aW9uIFRFWFQgICAgICAgICAgICAgVXNlIHNwZWNpZmljIFVuaWtyYWZ0IHJlbGVhc2UgdmVyc2lv
bi4KKyAgICAtRiwgLS1mb3JjZSAgICAgICAgICAgICAgICAgICAgT3ZlcndyaXRlIGFueSBleGlz
dGluZyBmaWxlcy4KKyAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgU2hvdyB0aGlz
IG1lc3NhZ2UgYW5kIGV4aXQuCiAKIAogLi4gX2tyYWZ0X2NvbmZpZ3VyZToKQEAgLTE0OSwxNyAr
MjIzLDEzIEBAIENvbmZpZ3VyaW5nIGEgVW5pa3JhZnQgYXBwbGljYXRpb24KIAogOjoKIAotICBV
c2FnZToga3JhZnQgY29uZmlndXJlIFtPUFRJT05TXSBbUEFUSF0KLQotICAgIFRoaXMgc3ViY29t
bWFuZCBwb3B1bGF0ZXMgdGhlIGxvY2FsIC5jb25maWcgZm9yIHRoZSB1bmlrcmFmdCBhcHBsaWFu
Y2UKLSAgICB3aXRoIHdpdGggdGhlIGRlZmF1bHQgdmFsdWVzIGZvdW5kIGZvciB0aGUgdGFyZ2V0
IGFwcGxpY2F0aW9uLgorICBVc2FnZToga3JhZnQgY29uZmlndXJlIFtPUFRJT05TXQogCiAgIE9w
dGlvbnM6Ci0gICAgLW4sIC0tbWVudWNvbmZpZyAgICAgVXNlIFVuaWtyYWZ0J3MgbmN1cnNlcyBL
Y29uZmlnIGVkaXRvci4KLSAgICAtZCwgLS1kdW1wLW1ha2VmaWxlICBXcml0ZSBhIE1ha2VmaWxl
IGNvbXBhdGlibGUgVW5pa3JhZnQncyBidWlsZCBzeXN0ZW0uCi0gICAgLXUsIC0tZHVtcC11bmlr
cmFmdCAgQ29weSBVbmlrcmFmdCBhbmQgc291cmNlIGxpYnJhcmllcyBpbnRvIHRoZSBwYXRoLgot
ICAgIC0taGVscCAgICAgICAgICAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgotCisg
ICAgLXAsIC0tcGxhdCBbbGludXh1fGt2bXx4ZW5dICAgIFRhcmdldCBwbGF0Zm9ybS4KKyAgICAt
bSwgLS1hcmNoIFt4ODZfNjR8YXJtfGFybTY0XSAgVGFyZ2V0IGFyY2hpdGVjdHVyZS4KKyAgICAt
aywgLS1tZW51Y29uZmlnICAgICAgICAgICAgICAgVXNlIFVuaWtyYWZ0J3MgbmN1cnNlcyBLY29u
ZmlnIGVkaXRvci4KKyAgICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgU2hvdyB0aGlz
IG1lc3NhZ2UgYW5kIGV4aXQuCiAKIAogLi4gX2tyYWZ0X2J1aWxkOgpAQCAtMTY5LDE1ICsyMzks
NDcgQEAgQnVpbGRpbmcgYSBVbmlrcmFmdCBhcHBsaWNhdGlvbgogCiA6OgogCi0gIFVzYWdlOiBr
cmFmdCBidWlsZCBbT1BUSU9OU10gW1BBVEhdCisgIFVzYWdlOiBrcmFmdCBidWlsZCBbT1BUSU9O
U10KIAotICAgIFRoaXMgYnVpbGRzIHRoZSB1bmlrcmFmdCBhcHBsaWFuY2UgZm9yIHRoZSB0YXJn
ZXQgYXJjaGl0ZWN0dXJlLCBwbGF0Zm9ybQotICAgIGFuZCB3aXRoIGFsbCBhZGRpdGlvbmFsIGxp
YnJhcmllcyBhbmQgY29uZmlndXJhdGlvbnMuCisgICAgQnVpbGRzIHRoZSBVbmlrcmFmdCBhcHBs
aWNhdGlvbiBmb3IgdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUgYW5kIHBsYXRmb3JtLgogCiAgIE9w
dGlvbnM6CiAgICAgLWosIC0tZmFzdCAgVXNlIGFsbCBDUFUgY29yZXMgdG8gYnVpbGQgdGhlIGFw
cGxpY2F0aW9uLgotICAgIC0taGVscCAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0Lgor
ICAgIC1oLCAtLWhlbHAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgogCisuLiBfa3JhZnRf
cnVuOgorCitSdW5uaW5nIGEgVW5pa3JhZnQgYXBwbGljYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCis6OgorCisgIFVzYWdlOiBrcmFmdCBydW4gW09QVElPTlNdIFtBUkdT
XS4uLgorCisgIE9wdGlvbnM6CisgICAgLXAsIC0tcGxhdCBbbGludXh1fGt2bXx4ZW5dICAgIFRh
cmdldCBwbGF0Zm9ybS4gIFtkZWZhdWx0OiBsaW51eHVdCisgICAgLW0sIC0tYXJjaCBbeDg2XzY0
fGFybXxhcm02NF0gIFRhcmdldCBhcmNoaXRlY3R1cmUuICBbZGVmYXVsdDogKGR5bmFtaWMpXQor
ICAgIC1pLCAtLWluaXRyZCBURVhUICAgICAgICAgICAgICBQcm92aWRlIGFuIGluaXQgcmFtZGlz
ay4KKyAgICAtWCwgLS1iYWNrZ3JvdW5kICAgICAgICAgICAgICAgUnVuIGluIGJhY2tncm91bmQu
CisgICAgLVAsIC0tcGF1c2VkICAgICAgICAgICAgICAgICAgIFJ1biB0aGUgYXBwbGljYXRpb24g
aW4gcGF1c2VkIHN0YXRlLgorICAgIC1nLCAtLWdkYiBJTlRFR0VSICAgICAgICAgICAgICBSdW4g
YSBHREIgc2VydmVyIGZvciB0aGUgZ3Vlc3QgYXQgUE9SVC4KKyAgICAtbiwgLS12aXJ0aW8tbmlj
IFRFWFQgICAgICAgICAgQXR0YWNoIGEgTkFULWVkIHZpcnRpby1OSUMgdG8gdGhlIGd1ZXN0Lgor
ICAgIC1iLCAtLWJyaWRnZSBURVhUICAgICAgICAgICAgICBBdHRhY2ggYSBOQVQtZWQgdmlydGlv
LU5JQyBhbiBleGlzdGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmlk
Z2UuCisgICAgLVYsIC0taW50ZXJmYWNlIFRFWFQgICAgICAgICAgIEFzc2lnbiBob3N0IGRldmlj
ZSBpbnRlcmZhY2UgZGlyZWN0bHkgYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmlydGlvLU5JQyB0byB0aGUgZ3Vlc3QuCisgICAgLUQsIC0tZHJ5LXJ1biAgICAgICAgICAg
ICAgICAgIFBlcmZvcm0gYSBkcnkgcnVuLgorICAgIC1NLCAtLW1lbW9yeSBJTlRFR0VSICAgICAg
ICAgICBBc3NpZ24gTUIgbWVtb3J5IHRvIHRoZSBndWVzdC4KKyAgICAtcywgLS1jcHUtc29ja2V0
cyBJTlRFR0VSICAgICAgTnVtYmVyIG9mIGd1ZXN0IENQVSBzb2NrZXRzLgorICAgIC1jLCAtLWNw
dS1jb3JlcyBJTlRFR0VSICAgICAgICBOdW1iZXIgb2YgZ3Vlc3QgY29yZXMgcGVyIHNvY2tldC4K
KyAgICAtLXdpdGgtZG5zbWFzcSAgICAgICAgICAgICAgICAgU3RhcnQgYSBEbnNtYXNxIHNlcnZl
ci4KKyAgICAtLWlwLXJhbmdlIFRFWFQgICAgICAgICAgICAgICAgU2V0IHRoZSBJUCByYW5nZSBm
b3IgRG5zbWFzcS4gIFtkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNzIuODguMC4xLDE3Mi44OC4wLjI1NF0KKyAgICAtLWlwLW5ldG1hc2sgVEVYVCAgICAgICAg
ICAgICAgU2V0IHRoZSBuZXRtYXNrIGZvciBEbnNtYXNxLiAgW2RlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDI1NS4yNTUuMC4wXQorICAgIC0taXAtbGVhc2UtdGlt
ZSBURVhUICAgICAgICAgICBTZXQgdGhlIElQIGxlYXNlIHRpbWUgZm9yIERuc21hc3EuICBbZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTJoXQorICAgIC1oLCAt
LWhlbHAgICAgICAgICAgICAgICAgICAgICBTaG93IHRoaXMgbWVzc2FnZSBhbmQgZXhpdC4KIAog
Li4gX2FkdmFuY2VkX3VzYWdlOgogCkBAIC0xOTgsMTQgKzMwMCwxNiBAQCBJbmZsdWVudGlhbCBl
bnZpcm9ubWVudGFsIHZhcmlhYmxlcwogYGBrcmFmdGBgIHVzZXMgZW52aXJvbm1lbnRhbCB2YXJp
YWJsZXMgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhdGlvbiBvZiB0aGUgVW5pa3JhZnQKIGNvcmUgc291
cmNlIGNvZGUgYW5kIGFsbCBsaWJyYXJ5IHBvb2xzLiAgVGhpcyBpcyBzZXQgdXNpbmcgdGhlIGZv
bGxvd2luZzoKIAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IEVudmlyb25t
ZW50YWwgdmFyaWFibGUgfCBEZWZhdWx0IHZhbHVlICAgICAgICAgICAgfCBVc2FnZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwKLSs9PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09
PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
KwotfCBgYFVLX1dPUktESVJgYCAgICAgICAgIHwgYGB+Ly51bmlrcmFmdGBgICAgICAgICAgIHwg
VGhlIHJvb3QgZGlyZWN0b3J5IGZvciBhbGwgc291cmNlcyB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKLXwgYGBVS19ST09UYGAgICAgICAgICAgICB8IGBgJFVLX1dPUktESVIv
dW5pa3JhZnRgYCB8IFRoZSBVbmlrcmFmdCBjb3JlIHNvdXJjZSBjb2RlICAgICAgfAotKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgVUtfTElCU2BgICAgICAgICAgICAgfCBg
YCRVS19XT1JLRElSL2xpYnNgYCAgICAgfCBMaWJyYXJ5IHBvb2wgc291cmNlcyAgICAgICAgICAg
ICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYFVLX0FQUFNgYCAg
ICAgICAgICAgIHwgYGAkVUtfV09SS0RJUi9hcHBzYGAgICAgIHwgQXBwbGljYXRpb25zIGFuZCB0
ZW1wbGF0ZXMgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgRW52aXJvbm1lbnRhbCB2
YXJpYWJsZSB8IERlZmF1bHQgdmFsdWUgICAgICAgICAgICB8IFVzYWdlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwKKys9PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09
PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSsKK3wgYGBVS19XT1JLRElSYGAgICAgICAgICB8IGBgfi8udW5pa3JhZnRgYCAgICAg
ICAgICB8IFRoZSByb290IGRpcmVjdG9yeSBmb3IgYWxsIHNvdXJjZXMuICAgICAgIHwKKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBVS19ST09UYGAgICAgICAg
ICAgICB8IGBgJFVLX1dPUktESVIvdW5pa3JhZnRgYCB8IFRoZSBVbmlrcmFmdCBjb3JlIHNvdXJj
ZSBjb2RlLiAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSsKK3wgYGBVS19MSUJTYGAgICAgICAgICAgICB8IGBgJFVLX1dPUktESVIvbGlic2BgICAg
ICB8IExpYnJhcnkgcG9vbCBzb3VyY2VzLiAgICAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBVS19BUFBTYGAgICAgICAgICAg
ICB8IGBgJFVLX1dPUktESVIvYXBwc2BgICAgICB8IEFwcGxpY2F0aW9ucyBhbmQgdGVtcGxhdGVz
LiAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSsKK3wgYGBLUkFGVENPTkZgYCAgICAgICAgICB8IGBgfi8ua3JhZnRyY2BgICAgICAgICAgICB8
IFRoZSBsb2NhdGlvbiBvZiBrcmFmdCdzIHByZWZlcmVuY2VzIGZpbGUuIHwKKystLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Ci0tIAoyLjI0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWlu
aW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Tue Feb 18 14:33:05 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 18 Feb 2020 14:33:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j43vt-0001oT-DV; Tue, 18 Feb 2020 14:33:05 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=2T1S=4G=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j43vt-0001oO-4E
 for minios-devel@lists.xen.org; Tue, 18 Feb 2020 14:33:05 +0000
X-Inumbo-ID: 9154cd4e-525b-11ea-ade5-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 9154cd4e-525b-11ea-ade5-bc764e2007e4;
 Tue, 18 Feb 2020 14:33:02 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id B5140F2025;
 Tue, 18 Feb 2020 15:33:01 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Y6osOi17lkSr; Tue, 18 Feb 2020 15:33:01 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from Oberon.office.hd (Oberon.office.hd [192.168.24.90])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 859B3F200D;
 Tue, 18 Feb 2020 15:32:57 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by Oberon.office.hd
 (192.168.24.90) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 18 Feb
 2020 15:32:57 +0100
To: Alexander Jung <a.jung@lancs.ac.uk>, <minios-devel@lists.xen.org>
References: <20200218142825.92035-1-a.jung@lancs.ac.uk>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <b8bcc436-81dc-40c2-51ed-6cc48f6a731f@neclab.eu>
Date: Tue, 18 Feb 2020 15:32:56 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200218142825.92035-1-a.jung@lancs.ac.uk>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To Oberon.office.hd
 (192.168.24.90)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] doc: Update kraft documentation.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJA
bmVjbGFiLmV1PgoKT24gMTguMDIuMjAgMTU6MjgsIEFsZXhhbmRlciBKdW5nIHdyb3RlOgo+IFNp
Z25lZC1vZmYtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+Cj4gLS0tCj4g
ICBkb2MvZ3VpZGVzL2tyYWZ0LnJzdCB8IDIyNiArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrLS0tLS0tLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKyksIDYx
IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL2tyYWZ0LnJzdCBiL2Rv
Yy9ndWlkZXMva3JhZnQucnN0Cj4gaW5kZXggNWU1MzI3Ni4uYjZjMjY5NiAxMDA2NDQKPiAtLS0g
YS9kb2MvZ3VpZGVzL2tyYWZ0LnJzdAo+ICsrKyBiL2RvYy9ndWlkZXMva3JhZnQucnN0Cj4gQEAg
LTEzLDIyICsxMywyNiBAQCB1bmlrZXJuZWwgYXBwbGljYXRpb25zLgo+ICAgUXVpY2sgc3RhcnQK
PiAgID09PT09PT09PT09Cj4gICAKPiAtYGBrcmFmdGBgIGNhbiBiZSBpbnN0YWxsZWQgYnkgZGly
ZWN0bHkgY2xvbmluZyBpdHMgc291cmNlIGZyb20gYEdpdEh1YiA8aHR0cHM6Ly9naXRodWIuY29t
L3VuaWtyYWZ0L3Rvb2xzLmdpdD5gXzogOjoKPiArYGBrcmFmdGBgIGNhbiBiZSBpbnN0YWxsZWQg
YnkgZGlyZWN0bHkgY2xvbmluZyBpdHMgc291cmNlIGZyb20gYEdpdEh1YiA8aHR0cHM6Ly9naXRo
dWIuY29tL3VuaWtyYWZ0L2tyYWZ0LmdpdD5gXzogOjoKPiAgIAo+IC0gIGdpdCBjbG9uZSBodHRw
czovL2dpdGh1Yi5jb20vdW5pa3JhZnQvdG9vbHMuZ2l0Cj4gLSAgY2QgdG9vbHMgJiYgcHl0aG9u
IHNldHVwLnB5IGluc3RhbGwKPiArICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3VuaWty
YWZ0L2tyYWZ0LmdpdAo+ICsgIGNkIGtyYWZ0Cj4gKyAgcHl0aG9uMyBzZXR1cC5weSBpbnN0YWxs
Cj4gICAKPiAgIC4uIG5vdGU6Ogo+ICAgICBBZGRpdGlvbmFsIGRlcGVuZGVuY2llcyBpbmNsdWRl
IGBnaXRgLCBgbWFrZWAsIG5jdXJzZXMsIGBmbGV4YCwgYHdnZXRgLAo+IC0gIGB1bnppcGAsIGB0
YXJgLCBgcHl0aG9uM2AgYW5kIGBnY2NgLiAgRGV0YWlscyBvbiBob3cgdG8gY29uZmlndXJlIGhv
dwo+IC0gIGBga3JhZnRgYCBpbnRlcmFjdHMgd2l0aCBnY2MgYW5kIHRoZSBVbmlrcmFmdCBidWls
ZCBzeXN0ZW0gaW4gYWRkaXRpb24gb24gaG93Cj4gLSAgdG8gdXNlIGBga3JhZnRgYCB3aXRoIERv
Y2tlciBpcyBjb3ZlcmVkIGluIDpyZWY6YGFkdmFuY2VkX3VzYWdlYC4KPiArICBgdW56aXBgLCBg
dGFyYCwgYHB5dGhvbjNgIChpbmNsdWRpbmcgIGBzZXR1cHRvb2xzYCkgYW5kIGBnY2NgLiAgRGV0
YWlscyBvbgo+ICsgIGhvdyB0byBjb25maWd1cmUgaG93IGBga3JhZnRgYCBpbnRlcmFjdHMgd2l0
aCBnY2MgYW5kIHRoZSBVbmlrcmFmdCBidWlsZAo+ICsgIHN5c3RlbSBpbiBhZGRpdGlvbiBvbiBo
b3cgdG8gdXNlIGBga3JhZnRgYCB3aXRoIERvY2tlciBpcyBjb3ZlcmVkIGluCj4gKyAgOnJlZjpg
YWR2YW5jZWRfdXNhZ2VgLgo+ICAgCj4gICBPbmNlIGBga3JhZnRgYCBpdCBpbnN0YWxsZWQgeW91
IGNhbiBiZWdpbiBieSBpbml0aWFsaXppbmcgYSBuZXcgdW5pa2VybmVsCj4gICByZXBvc2l0b3J5
IHVzaW5nIGBga3JhZnQgaW5pdGBgLiAgQXMgYW4gZXhhbXBsZSwgeW91IGNhbiBidWlsZCBhIFB5
dGhvbiAzCj4gICB1bmlrZXJuZWwgYXBwbGljYXRpb24gYnkgcnVubmluZyB0aGUgZm9sbG93aW5n
OiA6Ogo+ICAgCj4gLSAga3JhZnQgaW5pdCAtYSBweXRob24zIC4vbXktZmlyc3QtdW5pa2VybmVs
Cj4gKyAga3JhZnQgbGlzdAo+ICsgIG1rZGlyIH4vbXktZmlyc3QtdW5pa2VybmVsICYmIGNkIH4v
bXktZmlyc3QtdW5pa2VybmVsCj4gKyAga3JhZnQgdXAgLWEgaGVsbG93b3JsZCAtbSB4ODZfNjQg
LXAga3ZtCj4gICAKPiAgIC4uIG5vdGU6Ogo+ICAgICBJZiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1l
IHlvdSBhcmUgcnVubmluZyBgYGtyYWZ0YGAsIHlvdSB3aWxsIGJlIHByb21wdGVkIHRvCj4gQEAg
LTU5LDggKzYzLDkgQEAgVGhlIGNvbmZpZ3VyYXRpb24gc3RlcCB1c2VkIGluIGBga3JhZnRgYCB3
aWxsIHBlcmZvcm0gbmVjZXNzYXJ5IGNoZWNrcwo+ICAgcGVydGFpbmluZyB0byBjb21wYXRpYmls
aXR5IGFuZCBhdmFpbGFiaWxpdHkgb2Ygc291cmNlIGNvZGUgYW5kIHdpbGwgcG9wdWxhdGUKPiAg
IHlvdXIgYXBwbGljYXRpb24gZGlyZWN0b3J5IHdpdGggbmV3IGZpbGVzIGFuZCBmb2xkZXJzLCBp
bmNsdWRpbmc6Cj4gICAKPiAtICAqIGBgZGVwcy5qc29uYGAgLS0gVGhpcyBmaWxlIGhvbGRzIGlu
Zm9ybWF0aW9uIGFib3V0IHdoaWNoIHZlcnNpb24gb2YgdGhlCj4gLSAgICBVbmlrcmFmdCBjb3Jl
IGFuZCBhZGRpdGlvbmFsIGxpYnJhcmllcyB0byB1c2UgZm9yIHRoZSBidWlsZC4KPiArICAqIGBg
a3JhZnQueWFtbGBgIC0tIFRoaXMgZmlsZSBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCB2
ZXJzaW9uIG9mIHRoZQo+ICsgICAgVW5pa3JhZnQgY29yZSwgYWRkaXRpb25hbCBsaWJyYXJpZXMs
IHdoaWNoIGFyY2hpdGVjdHVyZXMgYW5kIHBsYXRmb3JtcyB0bwo+ICsgICAgdGFyZ2V0IGFuZCB3
aGljaCBuZXR3b3JrIGJyaWRnZXMgYW5kIHZvbHVtZXMgdG8gbW91bnQgZHVyaXJuZyBydW50aW1l
Lgo+ICAgICAqIGBgTWFrZWZpbGUudWtgYCAtLSBBIEtjb25maWcgdGFyZ2V0IGZpbGUgeW91IGNh
biB1c2UgdG8gY3JlYXRlIGNvbXBpbGUtdGltZQo+ICAgICAgIHRvZ2dsZXMgZm9yIHlvdXIgYXBw
bGljYXRpb24uCj4gICAgICogYGBidWlsZC9gYCAtLSBBbGwgYnVpbGQgYXJ0aWZhY3RzIGFyZSBw
bGFjZWQgaW4gdGhpcyBkaXJlY3RvcnkgaW5jbHVkaW5nCj4gQEAgLTg3LDM4ICs5MiwxMDcgQEAg
T3ZlcnZpZXcgb2YgY29tbWFuZHMKPiAgICAgVXNhZ2U6IGtyYWZ0IFtPUFRJT05TXSBDT01NQU5E
IFtBUkdTXS4uLgo+ICAgCj4gICAgIE9wdGlvbnM6Cj4gLSAgICAtdiwgLS12ZXJib3NlICBFbmFi
bGVzIHZlcmJvc2UgbW9kZS4KPiAtICAgIC1WLCAtLXZlcnNpb24gIFByaW50IHRoZSB2ZXJzaW9u
IGFuZCBleGl0Lgo+IC0gICAgLS1oZWxwICAgICAgICAgU2hvdyB0aGlzIG1lc3NhZ2UgYW5kIGV4
aXQuCj4gKyAgICAtLXZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhlIHZlcnNp
b24gYW5kIGV4aXQuCj4gKyAgICAtQywgLS1pZ25vcmUtZ2l0LWNoZWNrb3V0LWVycm9ycwo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZ25vcmUgY2hlY2tvdXQgZXJyb3Jz
Lgo+ICsgICAgLVgsIC0tZG9udC1jaGVja291dCAgICAgICAgICAgICBEbyBub3QgY2hlY2tvdXQg
cmVwb3NpdG9yaWVzLgo+ICsgICAgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgICAgICAgICBFbmFi
bGVzIHZlcmJvc2UgbW9kZS4KPiArICAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAg
U2hvdyB0aGlzIG1lc3NhZ2UgYW5kIGV4aXQuCj4gICAKPiAgICAgQ29tbWFuZHM6Cj4gLSAgICBi
dWlsZCAgICAgIEJ1aWxkIHRoZSB1bmlrcmFmdCBhcHBsaWFuY2UuCj4gLSAgICBjb25maWd1cmUg
IFNldHMgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgYW4gYXBwbGlhbmNlLgo+IC0gICAg
Y3JlYXRlZnMgICBHZW5lcmF0ZSBhIHN0YXRpYyBmaWxlc3lzdGVtIGZvciB0aGUgdW5pa3JhZnQg
YXBwbGlhbmNlLgo+IC0gICAgaW5pdCAgICAgICBJbml0aWFsaXplIGEgbmV3IHVuaWtyYWZ0IHBy
b2plY3QuCj4gLSAgICBsaXN0ICAgICAgIExpc3Qgc3VwcG9ydGVkIHVuaWtyYWZ0IGFyY2hpdGVj
dHVyZXMsIHBsYXRmb3JtcywgbGlicmFyaWVzIG9yCj4gLSAgICAgICAgICAgICAgIGFwcGxpY2F0
aW9ucyB2aWEgcmVtb3RlIHJlcG9zaXRvcmllcy4KPiAtICAgIHJ1biAgICAgICAgUnVuIHRoZSB1
bmlrcmFmdCBhcHBsaWFuY2UuCj4gLSAgICB1cGRhdGUgICAgIExpc3Qgc3VwcG9ydGVkIHVuaWty
YWZ0IGFyY2hpdGVjdHVyZXMsIHBsYXRmb3JtcywgbGlicmFyaWVzIG9yCj4gLSAgICAgICAgICAg
ICAgIGFwcGxpY2F0aW9ucyB2aWEgcmVtb3RlIHJlcG9zaXRvcmllcy4KPiArICAgIGJ1aWxkICAg
ICAgQnVpbGQgdGhlIGFwcGxpY2F0aW9uLgo+ICsgICAgY2xlYW4gICAgICBDbGVhbiB0aGUgYXBw
bGljYXRpb24uCj4gKyAgICBjb25maWd1cmUgIENvbmZpZ3VyZSB0aGUgYXBwbGljYXRpb24uCj4g
KyAgICBpbml0ICAgICAgIEluaXRpYWxpemUgYSBuZXcgdW5pa3JhZnQgYXBwbGljYXRpb24uCj4g
KyAgICBsaXN0ICAgICAgIExpc3QgYXJjaGl0ZWN0dXJlcywgcGxhdGZvcm1zLCBsaWJyYXJpZXMg
b3IgYXBwbGljYXRpb25zLgo+ICsgICAgcnVuICAgICAgICBSdW4gdGhlIGFwcGxpY2F0aW9uLgo+
ICsgICAgdXAgICAgICAgICBDb25maWd1cmUsIGJ1aWxkIGFuZCBydW4gYW4gYXBwbGljYXRpb24u
Cj4gKwo+ICsgIEluZmx1ZW50aWFsIEVudmlyb25tZW50YWwgVmFyaWFibGVzOgo+ICsgICAgVUtf
V09SS0RJUiBUaGUgd29ya2luZyBkaXJlY3RvcnkgZm9yIGFsbCBVbmlrcmFmdAo+ICsgICAgICAg
ICAgICAgICBzb3VyY2UgY29kZSBbZGVmYXVsdDogfi8udW5pa3JhZnRdCj4gKyAgICBVS19ST09U
ICAgIFRoZSBkaXJlY3RvcnkgZm9yIFVuaWtyYWZ0J3MgY29yZSBzb3VyY2UKPiArICAgICAgICAg
ICAgICAgY29kZSBbZGVmYXVsdDogJFVLX1dPUktESVIvdW5pa3JhZnRdCj4gKyAgICBVS19MSUJT
ICAgIFRoZSBkaXJlY3Rvcnkgb2YgYWxsIHRoZSBleHRlcm5hbCBVbmlrcmFmdAo+ICsgICAgICAg
ICAgICAgICBsaWJyYXJpZXMgW2RlZmF1bHQ6ICRVS19XT1JLRElSL2xpYnNdCj4gKyAgICBVS19B
UFBTICAgIFRoZSBkaXJlY3Rvcnkgb2YgYWxsIHRoZSB0ZW1wbGF0ZSBhcHBsaWNhdGlvbnMKPiAr
ICAgICAgICAgICAgICAgW2RlZmF1bHQ6ICRVS19XT1JLRElSL2FwcHNdCj4gKyAgICBLUkFGVENP
TkYgIFRoZSBsb2NhdGlvbiBvZiBrcmFmdCdzIHByZWZlcmVuY2VzIGZpbGUKPiArICAgICAgICAg
ICAgICAgW2RlZmF1bHQ6IH4vLmtyYWZ0cmNdCj4gKwo+ICsgIEhlbHA6Cj4gKyAgICBGb3IgaGVs
cCB1c2luZyB0aGlzIHRvb2wsIHBsZWFzZSBvcGVuIGFuIGlzc3VlIG9uIEdpdGh1YjoKPiArICAg
IGh0dHBzOi8vZ2l0aHViLmNvbS91bmlrcmFmdC9rcmFmdAo+ICsKPiArCj4gKy4uIF9rcmFmdF9s
aXN0Ogo+ICsKPiArVmlld2luZyBVbmlrcmFmdCBsaWJyYXJ5IHBvb2xzCj4gKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgCj4gKzo6Cj4gKwo+ICsgIFVzYWdlOiBrcmFmdCBsaXN0
IFtPUFRJT05TXQo+ICAgCj4gLS4uIF9rcmFmdF91cGRhdGU6Cj4gKyAgICBSZXRyaWV2ZXMgbGlz
dHMgb2YgYXZhaWxhYmxlIGFyY2hpdGVjdHVyZXMsIHBsYXRmb3JtcywgbGlicmFyaWVzIGFuZAo+
ICsgICAgYXBwbGljYXRpb25zIHN1cHBvcnRlZCBieSB1bmlrcmFmdC4gIFVzZSB0aGlzIGNvbW1h
bmQgaWYgeW91IHdpc2ggdG8KPiArICAgIGRldGVybWluZSAoYW5kIHRoZW4gbGF0ZXIgc2VsZWN0
KSB0aGUgcG9zc2libGUgdGFyZ2V0cyBmb3IgeW91cnVuaWtyYWZ0Cj4gKyAgICBhcHBsaWNhdGlv
bi4KPiAgIAo+IC1VcGRhdGluZyBVbmlrcmFmdCBsaWJyYXJ5IHBvb2xzCj4gKyAgICBCeSBkZWZh
dWx0LCB0aGlzIHN1YmNvbW1hbmQgd2lsbCBsaXN0IGFsbCBwb3NzaWJsZSB0YXJnZXRzLgo+ICsK
PiArICBPcHRpb25zOgo+ICsgICAgLWMsIC0tY29yZSAgICAgICAgIERpc3BsYXkgaW5mb3JtYXRp
b24gYWJvdXQgVW5pa3JhZnQncyBjb3JlIHJlcG9zaXRvcnkuCj4gKyAgICAtcCwgLS1wbGF0cyAg
ICAgICAgTGlzdCBzdXBwb3J0ZWQgcGxhdGZvcm1zLgo+ICsgICAgLWwsIC0tbGlicyAgICAgICAg
IExpc3Qgc3VwcG9ydGVkIGxpYnJhcmllcy4KPiArICAgIC1hLCAtLWFwcHMgICAgICAgICBMaXN0
IHN1cHBvcnRlZCBhcHBsaWNhdGlvbiBydW50aW1lIGV4ZWN1dGlvbgo+ICsgICAgICAgICAgICAg
ICAgICAgICAgIGVudmlyb25tZW50cy4KPiArICAgIC1kLCAtLXNob3ctbG9jYWwgICBTaG93IGxv
Y2FsIHNvdXJjZSBwYXRoLgo+ICsgICAgLXIsIC0tc2hvdy1vcmlnaW4gIFNob3cgcmVtb3RlIHNv
dXJjZSBsb2NhdGlvbi4KPiArICAgIC1uLCAtLXBhZ2luYXRlICAgICBQYWdpbmF0ZSBvdXRwdXQu
Cj4gKyAgICAtdSwgLS11cGRhdGUgICAgICAgUmV0cmlldmVzIGxpc3RzIG9mIGF2YWlsYWJsZSBh
cmNoaXRlY3R1cmVzLCBwbGF0Zm9ybXMKPiArICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJp
ZXMgYW5kIGFwcGxpY2F0aW9ucyBzdXBwb3J0ZWQgYnkgVW5pa3JhZnQuCj4gKyAgICAtRiwgLS1m
bHVzaCAgICAgICAgQ2xlYW5zIHRoZSBjYWNoZSBhbmQgbGlzdHMuCj4gKyAgICAtaCwgLS1oZWxw
ICAgICAgICAgU2hvdyB0aGlzIG1lc3NhZ2UgYW5kIGV4aXQuCj4gKwo+ICsKPiArLi4gX2tyYWZ0
X3VwOgo+ICsKPiArUXVpY2sgVW5pa3JhZnQgcHJvamVjdCBjcmVhdGlvbgo+ICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgCj4gICA6Ogo+ICAgCj4gLSAgVXNhZ2U6IGtyYWZ0
IHVwZGF0ZSBbT1BUSU9OU10KPiArICBVc2FnZToga3JhZnQgdXAgW09QVElPTlNdIE5BTUUKPiAg
IAo+IC0gICAgVGhpcyBzdWJjb21tYW5kIHJldHJpZXZlcyBsaXN0cyBvZiBhdmFpbGFibGUgYXJj
aGl0ZWN0dXJlcywgcGxhdGZvcm1zLAo+IC0gICAgbGlicmFyaWVzIGFuZCBhcHBsaWNhdGlvbnMg
c3VwcG9ydGVkIGJ5IHVuaWtyYWZ0Lgo+ICsgICAgQ29uZmlndXJlcywgYnVpbGRzIGFuZCBydW5z
IGFuIGFwcGxpY2F0aW9uIGZvciBhIHNlbGVjdGVkIGFyY2hpdGVjdHVyZSBhbmQKPiArICAgIHBs
YXRmb3JtLgo+ICAgCj4gICAgIE9wdGlvbnM6Cj4gLSAgICAtcywgLS1zdGFnaW5nICBVc2Ugc3Rh
Z2luZyBicmFuY2ggKGhlcmUgYmUgZHJhZ29ucykuCj4gLSAgICAtLWhlbHAgICAgICAgICBTaG93
IHRoaXMgbWVzc2FnZSBhbmQgZXhpdC4KPiAtCj4gKyAgICAtcCwgLS1wbGF0IFtsaW51eHV8a3Zt
fHhlbl0gICAgVGFyZ2V0IHBsYXRmb3JtLgo+ICsgICAgLW0sIC0tYXJjaCBbeDg2XzY0fGFybXxh
cm02NF0gIFRhcmdldCBhcmNoaXRlY3R1cmUuCj4gKyAgICAtaSwgLS1pbml0cmQgVEVYVCAgICAg
ICAgICAgICAgUHJvdmlkZSBhbiBpbml0IHJhbWRpc2suCj4gKyAgICAtWCwgLS1iYWNrZ3JvdW5k
ICAgICAgICAgICAgICAgUnVuIGluIGJhY2tncm91bmQuCj4gKyAgICAtUCwgLS1wYXVzZWQgICAg
ICAgICAgICAgICAgICAgUnVuIHRoZSBhcHBsaWNhdGlvbiBpbiBwYXVzZWQgc3RhdGUuCj4gKyAg
ICAtZywgLS1nZGIgSU5URUdFUiAgICAgICAgICAgICAgUnVuIGEgR0RCIHNlcnZlciBmb3IgdGhl
IGd1ZXN0IG9uIHNwZWNpZmllZAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvcnQuCj4gKyAgICAtbiwgLS12aXJ0aW8tbmljIFRFWFQgICAgICAgICAgQXR0YWNoIGEgTkFU
LWVkIHZpcnRpby1OSUMgdG8gdGhlIGd1ZXN0Lgo+ICsgICAgLWIsIC0tYnJpZGdlIFRFWFQgICAg
ICAgICAgICAgIEF0dGFjaCBhIE5BVC1lZCB2aXJ0aW8tTklDIGFuIGV4aXN0aW5nCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJpZGdlLgo+ICsgICAgLVYsIC0taW50ZXJm
YWNlIFRFWFQgICAgICAgICAgIEFzc2lnbiBob3N0IGRldmljZSBpbnRlcmZhY2UgZGlyZWN0bHkg
YXMKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0aW8tTklDIHRvIHRo
ZSBndWVzdC4KPiArICAgIC1ELCAtLWRyeS1ydW4gICAgICAgICAgICAgICAgICBQZXJmb3JtIGEg
ZHJ5IHJ1bi4KPiArICAgIC1NLCAtLW1lbW9yeSBJTlRFR0VSICAgICAgICAgICBBc3NpZ24gTUIg
bWVtb3J5IHRvIHRoZSBndWVzdC4KPiArICAgIC1zLCAtLWNwdS1zb2NrZXRzIElOVEVHRVIgICAg
ICBOdW1iZXIgb2YgZ3Vlc3QgQ1BVIHNvY2tldHMuCj4gKyAgICAtYywgLS1jcHUtY29yZXMgSU5U
RUdFUiAgICAgICAgTnVtYmVyIG9mIGd1ZXN0IGNvcmVzIHBlciBzb2NrZXQuCj4gKyAgICAtRiwg
LS1mb3JjZSAgICAgICAgICAgICAgICAgICAgT3ZlcndyaXRlIGFueSBleGlzdGluZyBmaWxlcyBp
biBjdXJyZW50Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2luZyBk
aXJlY3RvcnkuCj4gKyAgICAtaiwgLS1mYXN0ICAgICAgICAgICAgICAgICAgICAgVXNlIGFsbCBD
UFUgY29yZXMgdG8gYnVpbGQgdGhlIGFwcGxpY2F0aW9uLgo+ICsgICAgLS13aXRoLWRuc21hc3Eg
ICAgICAgICAgICAgICAgIFN0YXJ0IGEgRG5zbWFzcSBzZXJ2ZXIuCj4gKyAgICAtLWlwLXJhbmdl
IFRFWFQgICAgICAgICAgICAgICAgU2V0IHRoZSBJUCByYW5nZSBmb3IgRG5zbWFzcS4KPiArICAg
IC0taXAtbmV0bWFzayBURVhUICAgICAgICAgICAgICBTZXQgdGhlIG5ldG1hc2sgZm9yIERuc21h
c3EuCj4gKyAgICAtLWlwLWxlYXNlLXRpbWUgVEVYVCAgICAgICAgICAgU2V0IHRoZSBJUCBsZWFz
ZSB0aW1lIGZvciBEbnNtYXNxLgo+ICsgICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAg
IFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0Lgo+ICAgCj4gICAuLiBfa3JhZnRfaW5pdDoKPiAg
IAo+IEBAIC0xMjcsMTkgKzIwMSwxOSBAQCBJbml0aWFsaXppbmcgYSBVbmlrcmFmdCBwcm9qZWN0
Cj4gICAKPiAgIDo6Cj4gICAKPiAtICBVc2FnZToga3JhZnQgaW5pdCBbT1BUSU9OU10gW1BBVEhd
IFtOQU1FXQo+ICsgIFVzYWdlOiBrcmFmdCBpbml0IFtPUFRJT05TXSBOQU1FCj4gICAKPiAtICAg
IFRoaXMgc3ViY29tbWFuZCBpbml0aWFsaXplcyBhIG5ldyB1bmlrcmFmdCBhcHBsaWNhdGlvbiBh
dCBhIHNlbGVjdGVkIHBhdGguCj4gKyAgICBJbml0aWFsaXplcyBhIG5ldyB1bmlrcmFmdCBhcHBs
aWNhdGlvbi4KPiAgIAo+ICAgICAgIFN0YXJ0IGhlcmUgaWYgdGhpcyBpcyB5b3VyIGZpcnN0IHRp
bWUgdXNpbmcgKHVuaSlrcmFmdC4KPiAgIAo+ICAgICBPcHRpb25zOgo+IC0gICAgLW0sIC0tYXJj
aCBURVhUICBUYXJnZXQgYXJjaGl0ZWN0dXJlICBbZGVmYXVsdDogKGR5bmFtaWMpXQo+IC0gICAg
LXAsIC0tcGxhdCBURVhUICBUYXJnZXQgcGxhdGZvcm0gIFtkZWZhdWx0OiBsaW51eHVdCj4gLSAg
ICAtbCwgLS1saWIgVEVYVCAgIFRhcmdldCBwbGF0Zm9ybQo+IC0gICAgLWEsIC0tYXBwIFRFWFQg
ICBUYXJnZXQgYXBwbGljYXRpb24KPiAtICAgIC1GLCAtLWZvcmNlICAgICAgT3ZlcndyaXRlIGFu
eSBleGlzdGluZyBmaWxlcy4KPiAtICAgIC0taGVscCAgICAgICAgICAgU2hvdyB0aGlzIG1lc3Nh
Z2UgYW5kIGV4aXQuCj4gKyAgICAtYSwgLS1hcHAgVEVYVCAgICAgICAgICAgICAgICAgVXNlIGFu
IGV4aXN0aW5nIGFwcGxpY2F0aW9uIGFzIGEgdGVtcGxhdGUuCj4gKyAgICAtcCwgLS1wbGF0IFts
aW51eHV8a3ZtfHhlbl0gICAgVGFyZ2V0IHBsYXRmb3JtLgo+ICsgICAgLW0sIC0tYXJjaCBbeDg2
XzY0fGFybXxhcm02NF0gIFRhcmdldCBhcmNoaXRlY3R1cmUuCj4gKyAgICAtViwgLS12ZXJzaW9u
IFRFWFQgICAgICAgICAgICAgVXNlIHNwZWNpZmljIFVuaWtyYWZ0IHJlbGVhc2UgdmVyc2lvbi4K
PiArICAgIC1GLCAtLWZvcmNlICAgICAgICAgICAgICAgICAgICBPdmVyd3JpdGUgYW55IGV4aXN0
aW5nIGZpbGVzLgo+ICsgICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhp
cyBtZXNzYWdlIGFuZCBleGl0Lgo+ICAgCj4gICAKPiAgIC4uIF9rcmFmdF9jb25maWd1cmU6Cj4g
QEAgLTE0OSwxNyArMjIzLDEzIEBAIENvbmZpZ3VyaW5nIGEgVW5pa3JhZnQgYXBwbGljYXRpb24K
PiAgIAo+ICAgOjoKPiAgIAo+IC0gIFVzYWdlOiBrcmFmdCBjb25maWd1cmUgW09QVElPTlNdIFtQ
QVRIXQo+IC0KPiAtICAgIFRoaXMgc3ViY29tbWFuZCBwb3B1bGF0ZXMgdGhlIGxvY2FsIC5jb25m
aWcgZm9yIHRoZSB1bmlrcmFmdCBhcHBsaWFuY2UKPiAtICAgIHdpdGggd2l0aCB0aGUgZGVmYXVs
dCB2YWx1ZXMgZm91bmQgZm9yIHRoZSB0YXJnZXQgYXBwbGljYXRpb24uCj4gKyAgVXNhZ2U6IGty
YWZ0IGNvbmZpZ3VyZSBbT1BUSU9OU10KPiAgIAo+ICAgICBPcHRpb25zOgo+IC0gICAgLW4sIC0t
bWVudWNvbmZpZyAgICAgVXNlIFVuaWtyYWZ0J3MgbmN1cnNlcyBLY29uZmlnIGVkaXRvci4KPiAt
ICAgIC1kLCAtLWR1bXAtbWFrZWZpbGUgIFdyaXRlIGEgTWFrZWZpbGUgY29tcGF0aWJsZSBVbmlr
cmFmdCdzIGJ1aWxkIHN5c3RlbS4KPiAtICAgIC11LCAtLWR1bXAtdW5pa3JhZnQgIENvcHkgVW5p
a3JhZnQgYW5kIHNvdXJjZSBsaWJyYXJpZXMgaW50byB0aGUgcGF0aC4KPiAtICAgIC0taGVscCAg
ICAgICAgICAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0Lgo+IC0KPiArICAgIC1wLCAt
LXBsYXQgW2xpbnV4dXxrdm18eGVuXSAgICBUYXJnZXQgcGxhdGZvcm0uCj4gKyAgICAtbSwgLS1h
cmNoIFt4ODZfNjR8YXJtfGFybTY0XSAgVGFyZ2V0IGFyY2hpdGVjdHVyZS4KPiArICAgIC1rLCAt
LW1lbnVjb25maWcgICAgICAgICAgICAgICBVc2UgVW5pa3JhZnQncyBuY3Vyc2VzIEtjb25maWcg
ZWRpdG9yLgo+ICsgICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhpcyBt
ZXNzYWdlIGFuZCBleGl0Lgo+ICAgCj4gICAKPiAgIC4uIF9rcmFmdF9idWlsZDoKPiBAQCAtMTY5
LDE1ICsyMzksNDcgQEAgQnVpbGRpbmcgYSBVbmlrcmFmdCBhcHBsaWNhdGlvbgo+ICAgCj4gICA6
Ogo+ICAgCj4gLSAgVXNhZ2U6IGtyYWZ0IGJ1aWxkIFtPUFRJT05TXSBbUEFUSF0KPiArICBVc2Fn
ZToga3JhZnQgYnVpbGQgW09QVElPTlNdCj4gICAKPiAtICAgIFRoaXMgYnVpbGRzIHRoZSB1bmlr
cmFmdCBhcHBsaWFuY2UgZm9yIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLCBwbGF0Zm9ybQo+IC0g
ICAgYW5kIHdpdGggYWxsIGFkZGl0aW9uYWwgbGlicmFyaWVzIGFuZCBjb25maWd1cmF0aW9ucy4K
PiArICAgIEJ1aWxkcyB0aGUgVW5pa3JhZnQgYXBwbGljYXRpb24gZm9yIHRoZSB0YXJnZXQgYXJj
aGl0ZWN0dXJlIGFuZCBwbGF0Zm9ybS4KPiAgIAo+ICAgICBPcHRpb25zOgo+ICAgICAgIC1qLCAt
LWZhc3QgIFVzZSBhbGwgQ1BVIGNvcmVzIHRvIGJ1aWxkIHRoZSBhcHBsaWNhdGlvbi4KPiAtICAg
IC0taGVscCAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0Lgo+ICsgICAgLWgsIC0taGVs
cCAgU2hvdyB0aGlzIG1lc3NhZ2UgYW5kIGV4aXQuCj4gICAKPiArLi4gX2tyYWZ0X3J1bjoKPiAr
Cj4gK1J1bm5pbmcgYSBVbmlrcmFmdCBhcHBsaWNhdGlvbgo+ICstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KPiArCj4gKzo6Cj4gKwo+ICsgIFVzYWdlOiBrcmFmdCBydW4gW09QVElPTlNd
IFtBUkdTXS4uLgo+ICsKPiArICBPcHRpb25zOgo+ICsgICAgLXAsIC0tcGxhdCBbbGludXh1fGt2
bXx4ZW5dICAgIFRhcmdldCBwbGF0Zm9ybS4gIFtkZWZhdWx0OiBsaW51eHVdCj4gKyAgICAtbSwg
LS1hcmNoIFt4ODZfNjR8YXJtfGFybTY0XSAgVGFyZ2V0IGFyY2hpdGVjdHVyZS4gIFtkZWZhdWx0
OiAoZHluYW1pYyldCj4gKyAgICAtaSwgLS1pbml0cmQgVEVYVCAgICAgICAgICAgICAgUHJvdmlk
ZSBhbiBpbml0IHJhbWRpc2suCj4gKyAgICAtWCwgLS1iYWNrZ3JvdW5kICAgICAgICAgICAgICAg
UnVuIGluIGJhY2tncm91bmQuCj4gKyAgICAtUCwgLS1wYXVzZWQgICAgICAgICAgICAgICAgICAg
UnVuIHRoZSBhcHBsaWNhdGlvbiBpbiBwYXVzZWQgc3RhdGUuCj4gKyAgICAtZywgLS1nZGIgSU5U
RUdFUiAgICAgICAgICAgICAgUnVuIGEgR0RCIHNlcnZlciBmb3IgdGhlIGd1ZXN0IGF0IFBPUlQu
Cj4gKyAgICAtbiwgLS12aXJ0aW8tbmljIFRFWFQgICAgICAgICAgQXR0YWNoIGEgTkFULWVkIHZp
cnRpby1OSUMgdG8gdGhlIGd1ZXN0Lgo+ICsgICAgLWIsIC0tYnJpZGdlIFRFWFQgICAgICAgICAg
ICAgIEF0dGFjaCBhIE5BVC1lZCB2aXJ0aW8tTklDIGFuIGV4aXN0aW5nCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJpZGdlLgo+ICsgICAgLVYsIC0taW50ZXJmYWNlIFRF
WFQgICAgICAgICAgIEFzc2lnbiBob3N0IGRldmljZSBpbnRlcmZhY2UgZGlyZWN0bHkgYXMKPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0aW8tTklDIHRvIHRoZSBndWVz
dC4KPiArICAgIC1ELCAtLWRyeS1ydW4gICAgICAgICAgICAgICAgICBQZXJmb3JtIGEgZHJ5IHJ1
bi4KPiArICAgIC1NLCAtLW1lbW9yeSBJTlRFR0VSICAgICAgICAgICBBc3NpZ24gTUIgbWVtb3J5
IHRvIHRoZSBndWVzdC4KPiArICAgIC1zLCAtLWNwdS1zb2NrZXRzIElOVEVHRVIgICAgICBOdW1i
ZXIgb2YgZ3Vlc3QgQ1BVIHNvY2tldHMuCj4gKyAgICAtYywgLS1jcHUtY29yZXMgSU5URUdFUiAg
ICAgICAgTnVtYmVyIG9mIGd1ZXN0IGNvcmVzIHBlciBzb2NrZXQuCj4gKyAgICAtLXdpdGgtZG5z
bWFzcSAgICAgICAgICAgICAgICAgU3RhcnQgYSBEbnNtYXNxIHNlcnZlci4KPiArICAgIC0taXAt
cmFuZ2UgVEVYVCAgICAgICAgICAgICAgICBTZXQgdGhlIElQIHJhbmdlIGZvciBEbnNtYXNxLiAg
W2RlZmF1bHQ6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcyLjg4LjAu
MSwxNzIuODguMC4yNTRdCj4gKyAgICAtLWlwLW5ldG1hc2sgVEVYVCAgICAgICAgICAgICAgU2V0
IHRoZSBuZXRtYXNrIGZvciBEbnNtYXNxLiAgW2RlZmF1bHQ6Cj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjU1LjI1NS4wLjBdCj4gKyAgICAtLWlwLWxlYXNlLXRpbWUgVEVY
VCAgICAgICAgICAgU2V0IHRoZSBJUCBsZWFzZSB0aW1lIGZvciBEbnNtYXNxLiAgW2RlZmF1bHQ6
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTJoXQo+ICsgICAgLWgsIC0t
aGVscCAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0Lgo+ICAg
Cj4gICAuLiBfYWR2YW5jZWRfdXNhZ2U6Cj4gICAKPiBAQCAtMTk4LDE0ICszMDAsMTYgQEAgSW5m
bHVlbnRpYWwgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMKPiAgIGBga3JhZnRgYCB1c2VzIGVudmly
b25tZW50YWwgdmFyaWFibGVzIHRvIGRldGVybWluZSB0aGUgbG9jYXRpb24gb2YgdGhlIFVuaWty
YWZ0Cj4gICBjb3JlIHNvdXJjZSBjb2RlIGFuZCBhbGwgbGlicmFyeSBwb29scy4gIFRoaXMgaXMg
c2V0IHVzaW5nIHRoZSBmb2xsb3dpbmc6Cj4gICAKPiAtKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rCj4gLXwgRW52aXJvbm1lbnRhbCB2YXJpYWJsZSB8IERlZmF1bHQgdmFsdWUgICAg
ICAgICAgICB8IFVzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+IC0rPT09PT09
PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSsKPiAtfCBgYFVLX1dPUktESVJgYCAgICAgICAgIHwg
YGB+Ly51bmlrcmFmdGBgICAgICAgICAgIHwgVGhlIHJvb3QgZGlyZWN0b3J5IGZvciBhbGwgc291
cmNlcyB8Cj4gLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+IC18IGBgVUtfUk9P
VGBgICAgICAgICAgICAgfCBgYCRVS19XT1JLRElSL3VuaWtyYWZ0YGAgfCBUaGUgVW5pa3JhZnQg
Y29yZSBzb3VyY2UgY29kZSAgICAgIHwKPiAtKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCj4gLXwgYGBVS19MSUJTYGAgICAgICAgICAgICB8IGBgJFVLX1dPUktESVIvbGlic2BgICAg
ICB8IExpYnJhcnkgcG9vbCBzb3VyY2VzICAgICAgICAgICAgICAgfAo+IC0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKPiAtfCBgYFVLX0FQUFNgYCAgICAgICAgICAgIHwgYGAkVUtf
V09SS0RJUi9hcHBzYGAgICAgIHwgQXBwbGljYXRpb25zIGFuZCB0ZW1wbGF0ZXMgICAgICAgICB8
Cj4gLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ICsrLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gK3wgRW52aXJvbm1lbnRhbCB2YXJpYWJsZSB8IERl
ZmF1bHQgdmFsdWUgICAgICAgICAgICB8IFVzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwKPiArKz09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09
PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kwo+
ICt8IGBgVUtfV09SS0RJUmBgICAgICAgICAgfCBgYH4vLnVuaWtyYWZ0YGAgICAgICAgICAgfCBU
aGUgcm9vdCBkaXJlY3RvcnkgZm9yIGFsbCBzb3VyY2VzLiAgICAgICB8Cj4gKystLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiArfCBgYFVLX1JPT1RgYCAgICAgICAgICAg
IHwgYGAkVUtfV09SS0RJUi91bmlrcmFmdGBgIHwgVGhlIFVuaWtyYWZ0IGNvcmUgc291cmNlIGNv
ZGUuICAgICAgICAgICAgfAo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCj4gK3wgYGBVS19MSUJTYGAgICAgICAgICAgICB8IGBgJFVLX1dPUktESVIvbGlic2BgICAg
ICB8IExpYnJhcnkgcG9vbCBzb3VyY2VzLiAgICAgICAgICAgICAgICAgICAgIHwKPiArKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ICt8IGBgVUtfQVBQU2BgICAgICAg
ICAgICAgfCBgYCRVS19XT1JLRElSL2FwcHNgYCAgICAgfCBBcHBsaWNhdGlvbnMgYW5kIHRlbXBs
YXRlcy4gICAgICAgICAgICAgICB8Cj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSsKPiArfCBgYEtSQUZUQ09ORmBgICAgICAgICAgIHwgYGB+Ly5rcmFmdHJjYGAgICAg
ICAgICAgIHwgVGhlIGxvY2F0aW9uIG9mIGtyYWZ0J3MgcHJlZmVyZW5jZXMgZmlsZS4gfAo+ICsr
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v
bWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Tue Feb 18 21:20:42 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 18 Feb 2020 21:20:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4AIK-0007Wl-Ll; Tue, 18 Feb 2020 21:20:40 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=v2GT=4G=neclab.eu=sharan.santhanam@srs-us1.protection.inumbo.net>)
 id 1j4AIJ-0007Wg-Js
 for minios-devel@lists.xen.org; Tue, 18 Feb 2020 21:20:39 +0000
X-Inumbo-ID: 81d89042-5294-11ea-aa99-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 81d89042-5294-11ea-aa99-bc764e2007e4;
 Tue, 18 Feb 2020 21:20:38 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id B84CEF2025;
 Tue, 18 Feb 2020 22:20:36 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id HKsAuan5885k; Tue, 18 Feb 2020 22:20:36 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 94529F200D
 for <minios-devel@lists.xen.org>; Tue, 18 Feb 2020 22:20:34 +0100 (CET)
Received: from N-1309.office.hd (192.168.24.96) by puck.office.hd
 (192.168.24.91) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 18 Feb
 2020 22:20:33 +0100
From: Sharan Santhanam <sharan.santhanam@neclab.eu>
To: <minios-devel@lists.xen.org>
Date: Tue, 18 Feb 2020 22:20:26 +0100
Message-ID: <1582060826-18145-1-git-send-email-sharan.santhanam@neclab.eu>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] [UNIKRAFT/SQLITE PATCH] sqlite: Use
 implicit-fallthrough only for gcc > 7
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Sharan Santhanam <sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhlIHBhdGNoIHVzZXMgdGhlIGZsYWcgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCBvbmx5IGZvciB3
aGlsZQpjb21waWxpbmcgd2l0aCBnY2MgPiA3LjAuCgpTaWduZWQtb2ZmLWJ5OiBTaGFyYW4gU2Fu
dGhhbmFtIDxzaGFyYW4uc2FudGhhbmFtQG5lY2xhYi5ldT4KLS0tCiBNYWtlZmlsZS51ayB8IDgg
KysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awppbmRleCBmMGE3YWZkLi5m
ODI4N2I3IDEwMDY0NAotLS0gYS9NYWtlZmlsZS51aworKysgYi9NYWtlZmlsZS51awpAQCAtNjYs
MTEgKzY2LDEzIEBAIExJQlNRTElURV9DSU5DTFVERVMgKz0gLUkkKExJQlNRTElURV9TUkMpCiBM
SUJTUUxJVEVfRkxBR1MgPSAtRF9IQVZFX1NRTElURV9DT05GSUdfSCAtRFNRTElURV9PTUlUX0xP
QURfRVhURU5TSU9OCiAKICMgU3VwcHJlc3Mgc29tZSB3YXJuaW5ncyB0byBtYWtlIHRoZSBidWls
ZCBwcm9jZXNzIGxvb2sgbmVhdGVyCi1MSUJTUUxJVEVfU1VQUFJFU1NfRkxBR1MgKz0gLVduby11
bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhcmlhYmxlCQlcCi0tV25vLWNhc3QtZnVuY3Rp
b24tdHlwZSAtV25vLWNoYXItc3Vic2NyaXB0cyAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoPTAJCVwK
K0xJQlNRTElURV9TVVBQUkVTU19GTEFHUy15ICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25v
LXVudXNlZC12YXJpYWJsZQkJXAorLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUgLVduby1jaGFyLXN1
YnNjcmlwdHMKKworTElCU1FMSVRFX1NVUFBSRVNTX0ZMQUdTLSQoY2FsbCBnY2NfdmVyc2lvbl9n
ZSw3LDApICs9LVdpbXBsaWNpdC1mYWxsdGhyb3VnaD0wCQlcCiAKIExJQlNRTElURV9DRkxBR1Mt
eSArPSAkKExJQlNRTElURV9GTEFHUykKLUxJQlNRTElURV9DRkxBR1MteSArPSAkKExJQlNRTElU
RV9TVVBQUkVTU19GTEFHUykKK0xJQlNRTElURV9DRkxBR1MteSArPSAkKExJQlNRTElURV9TVVBQ
UkVTU19GTEFHUy15KQogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBHbHVlIGNvZGUKLS0g
CjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3Mt
ZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Tue Feb 18 21:26:55 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 18 Feb 2020 21:26:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4AOM-0007dJ-98; Tue, 18 Feb 2020 21:26:54 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=2T1S=4G=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j4AOL-0007dE-3v
 for minios-devel@lists.xen.org; Tue, 18 Feb 2020 21:26:53 +0000
X-Inumbo-ID: 604f7318-5295-11ea-ade5-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 604f7318-5295-11ea-ade5-bc764e2007e4;
 Tue, 18 Feb 2020 21:26:51 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 7F4F51039C9;
 Tue, 18 Feb 2020 22:26:50 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id K67IsBXDU9fO; Tue, 18 Feb 2020 22:26:50 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 5BA23100000
 for <minios-devel@lists.xen.org>; Tue, 18 Feb 2020 22:26:50 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 18 Feb
 2020 22:26:49 +0100
To: Sharan Santhanam <sharan.santhanam@neclab.eu>, <minios-devel@lists.xen.org>
References: <1582060826-18145-1-git-send-email-sharan.santhanam@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <d3c9299e-f1e2-cda2-7f9b-d6ae2c033146@neclab.eu>
Date: Tue, 18 Feb 2020 22:26:49 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <1582060826-18145-1-git-send-email-sharan.santhanam@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/SQLITE PATCH] sqlite: Use
 implicit-fallthrough only for gcc > 7
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGV5IHRoZSBwYXRjaCBsb29rcyBnb29kLiBBIHF1ZXN0aW9uOiBEb24ndCB5b3Ugd2FudCB0byB1
c2UgCi1Xbm8taW1wbGljaXQtZmFsbHRocm91Z2ggaW5zdGVhZCBvZiAtV2ltcGxpY2l0LWZhbGx0
aHJvdWdoPTAgLSB0aGlzIAp3b3VsZCBiZSB0aGVuIGlubGluZSB3aXRoIHRoZSBvdGhlciBzdXBw
cmVzcyBmbGFncyB0aGF0IHdlIGFyZSB1c2luZy4KClRoYW5rcywKClNpbW9uCgpPbiAxOC4wMi4y
MCAyMjoyMCwgU2hhcmFuIFNhbnRoYW5hbSB3cm90ZToKPiBUaGUgcGF0Y2ggdXNlcyB0aGUgZmxh
ZyAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIG9ubHkgZm9yIHdoaWxlCj4gY29tcGlsaW5nIHdpdGgg
Z2NjID4gNy4wLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNoYXJhbiBTYW50aGFuYW0gPHNoYXJhbi5z
YW50aGFuYW1AbmVjbGFiLmV1Pgo+IC0tLQo+ICAgTWFrZWZpbGUudWsgfCA4ICsrKysrLS0tCj4g
ICAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+IAo+IGRp
ZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCj4gaW5kZXggZjBhN2FmZC4uZjgy
ODdiNyAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51awo+ICsrKyBiL01ha2VmaWxlLnVrCj4gQEAg
LTY2LDExICs2NiwxMyBAQCBMSUJTUUxJVEVfQ0lOQ0xVREVTICs9IC1JJChMSUJTUUxJVEVfU1JD
KQo+ICAgTElCU1FMSVRFX0ZMQUdTID0gLURfSEFWRV9TUUxJVEVfQ09ORklHX0ggLURTUUxJVEVf
T01JVF9MT0FEX0VYVEVOU0lPTgo+ICAgCj4gICAjIFN1cHByZXNzIHNvbWUgd2FybmluZ3MgdG8g
bWFrZSB0aGUgYnVpbGQgcHJvY2VzcyBsb29rIG5lYXRlcgo+IC1MSUJTUUxJVEVfU1VQUFJFU1Nf
RkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhcmlhYmxlCQlcCj4g
LS1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlIC1Xbm8tY2hhci1zdWJzY3JpcHRzIC1XaW1wbGljaXQt
ZmFsbHRocm91Z2g9MAkJXAo+ICtMSUJTUUxJVEVfU1VQUFJFU1NfRkxBR1MteSArPSAtV25vLXVu
dXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUJCVwKPiArLVduby1jYXN0LWZ1bmN0
aW9uLXR5cGUgLVduby1jaGFyLXN1YnNjcmlwdHMKPiArCj4gK0xJQlNRTElURV9TVVBQUkVTU19G
TEFHUy0kKGNhbGwgZ2NjX3ZlcnNpb25fZ2UsNywwKSArPS1XaW1wbGljaXQtZmFsbHRocm91Z2g9
MAkJXAo+ICAgCj4gICBMSUJTUUxJVEVfQ0ZMQUdTLXkgKz0gJChMSUJTUUxJVEVfRkxBR1MpCj4g
LUxJQlNRTElURV9DRkxBR1MteSArPSAkKExJQlNRTElURV9TVVBQUkVTU19GTEFHUykKPiArTElC
U1FMSVRFX0NGTEFHUy15ICs9ICQoTElCU1FMSVRFX1NVUFBSRVNTX0ZMQUdTLXkpCj4gICAKPiAg
ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4gICAjIEdsdWUgY29kZQo+IAoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcg
bGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Tue Feb 18 21:41:54 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 18 Feb 2020 21:41:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4Acq-0000mK-Mc; Tue, 18 Feb 2020 21:41:52 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=2T1S=4G=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j4Acp-0000mF-2L
 for minios-devel@lists.xen.org; Tue, 18 Feb 2020 21:41:51 +0000
X-Inumbo-ID: 77bb9a52-5297-11ea-bc8e-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 77bb9a52-5297-11ea-bc8e-bc764e2007e4;
 Tue, 18 Feb 2020 21:41:49 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id A3011F2025;
 Tue, 18 Feb 2020 22:41:48 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id UPUzqMuPbA9k; Tue, 18 Feb 2020 22:41:48 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 6AA3BF200D
 for <minios-devel@lists.xen.org>; Tue, 18 Feb 2020 22:41:46 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 18 Feb
 2020 22:41:45 +0100
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: Sharan Santhanam <sharan.santhanam@neclab.eu>, <minios-devel@lists.xen.org>
References: <1582060826-18145-1-git-send-email-sharan.santhanam@neclab.eu>
 <d3c9299e-f1e2-cda2-7f9b-d6ae2c033146@neclab.eu>
Message-ID: <7459f3db-5ad9-72cc-6ad6-a71f80ec281d@neclab.eu>
Date: Tue, 18 Feb 2020 22:41:45 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <d3c9299e-f1e2-cda2-7f9b-d6ae2c033146@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/SQLITE PATCH] sqlite: Use
 implicit-fallthrough only for gcc > 7
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

TmV2ZXIgbWluZC4gSSBqdXN0IGxlYXJuZWQgdGhhdCBmb3IgdGhpcyBmbGFnLCB0aGVyZSBhcmUg
ZGlmZmVyZW50IApsZXZlbHMgb2Ygd2FybmluZ3MuCgpUaGFua3MhCgpSZXZpZXdlZC1ieTogU2lt
b24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+CgpPbiAxOC4wMi4yMCAyMjoyNiwg
U2ltb24gS3VlbnplciB3cm90ZToKPiBIZXkgdGhlIHBhdGNoIGxvb2tzIGdvb2QuIEEgcXVlc3Rp
b246IERvbid0IHlvdSB3YW50IHRvIHVzZSAKPiAtV25vLWltcGxpY2l0LWZhbGx0aHJvdWdoIGlu
c3RlYWQgb2YgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaD0wIC0gdGhpcyAKPiB3b3VsZCBiZSB0aGVu
IGlubGluZSB3aXRoIHRoZSBvdGhlciBzdXBwcmVzcyBmbGFncyB0aGF0IHdlIGFyZSB1c2luZy4K
PiAKPiBUaGFua3MsCj4gCj4gU2ltb24KPiAKPiBPbiAxOC4wMi4yMCAyMjoyMCwgU2hhcmFuIFNh
bnRoYW5hbSB3cm90ZToKPj4gVGhlIHBhdGNoIHVzZXMgdGhlIGZsYWcgLVdpbXBsaWNpdC1mYWxs
dGhyb3VnaCBvbmx5IGZvciB3aGlsZQo+PiBjb21waWxpbmcgd2l0aCBnY2MgPiA3LjAuCj4+Cj4+
IFNpZ25lZC1vZmYtYnk6IFNoYXJhbiBTYW50aGFuYW0gPHNoYXJhbi5zYW50aGFuYW1AbmVjbGFi
LmV1Pgo+PiAtLS0KPj4gwqAgTWFrZWZpbGUudWsgfCA4ICsrKysrLS0tCj4+IMKgIDEgZmlsZSBj
aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQg
YS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCj4+IGluZGV4IGYwYTdhZmQuLmY4Mjg3YjcgMTAw
NjQ0Cj4+IC0tLSBhL01ha2VmaWxlLnVrCj4+ICsrKyBiL01ha2VmaWxlLnVrCj4+IEBAIC02Niwx
MSArNjYsMTMgQEAgTElCU1FMSVRFX0NJTkNMVURFUyArPSAtSSQoTElCU1FMSVRFX1NSQykKPj4g
wqAgTElCU1FMSVRFX0ZMQUdTID0gLURfSEFWRV9TUUxJVEVfQ09ORklHX0ggLURTUUxJVEVfT01J
VF9MT0FEX0VYVEVOU0lPTgo+PiDCoCAjIFN1cHByZXNzIHNvbWUgd2FybmluZ3MgdG8gbWFrZSB0
aGUgYnVpbGQgcHJvY2VzcyBsb29rIG5lYXRlcgo+PiAtTElCU1FMSVRFX1NVUFBSRVNTX0ZMQUdT
ICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAKPj4gLVduby11bnVzZWQtdmFyaWFibGXCoMKgwqDC
oMKgwqDCoCBcCj4+IC0tV25vLWNhc3QtZnVuY3Rpb24tdHlwZSAtV25vLWNoYXItc3Vic2NyaXB0
cyAKPj4gLVdpbXBsaWNpdC1mYWxsdGhyb3VnaD0wwqDCoMKgwqDCoMKgwqAgXAo+PiArTElCU1FM
SVRFX1NVUFBSRVNTX0ZMQUdTLXkgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyIAo+PiAtV25vLXVu
dXNlZC12YXJpYWJsZcKgwqDCoMKgwqDCoMKgIFwKPj4gKy1Xbm8tY2FzdC1mdW5jdGlvbi10eXBl
IC1Xbm8tY2hhci1zdWJzY3JpcHRzCj4+ICsKPj4gK0xJQlNRTElURV9TVVBQUkVTU19GTEFHUy0k
KGNhbGwgZ2NjX3ZlcnNpb25fZ2UsNywwKSAKPj4gKz0tV2ltcGxpY2l0LWZhbGx0aHJvdWdoPTDC
oMKgwqDCoMKgwqDCoCBcCj4+IMKgIExJQlNRTElURV9DRkxBR1MteSArPSAkKExJQlNRTElURV9G
TEFHUykKPj4gLUxJQlNRTElURV9DRkxBR1MteSArPSAkKExJQlNRTElURV9TVVBQUkVTU19GTEFH
UykKPj4gK0xJQlNRTElURV9DRkxBR1MteSArPSAkKExJQlNRTElURV9TVVBQUkVTU19GTEFHUy15
KQo+PiAgIAo+PiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAKPj4KPj4gwqAgIyBHbHVlIGNvZGUK
Pj4KPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+
IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWlu
aW9zLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9z
LWRldmVs

From minios-devel-bounces@lists.xenproject.org Wed Feb 19 08:36:46 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 19 Feb 2020 08:36:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4Kqa-0002cc-Ha; Wed, 19 Feb 2020 08:36:44 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=Xo8z=4H=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1j4KqZ-0002cX-V8
 for minios-devel@lists.xen.org; Wed, 19 Feb 2020 08:36:43 +0000
X-Inumbo-ID: f347fcdc-52f2-11ea-ade5-bc764e2007e4
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (unknown
 [40.107.4.41]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id f347fcdc-52f2-11ea-ade5-bc764e2007e4;
 Wed, 19 Feb 2020 08:36:41 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=f/hVtjTHtLNVlIRrZVqq3KTMyGslbeQBRJoky+NV6hdxdHzz3oyg9tlfFb4XMOeLud8vWqLUvcY04yC1BNlB4WQveP2XnKNtnZ/gLl4MI+6kHMwIlAmvqy37wMnxNgDHdaf8m7NCozD19fuObVQMjKxxJ2q9FSEqtWJ0A5BBrACRmtZnO/fMZmbsCKSX/Nr3sADW+9TySEQQcrNDJoFJOEfrnJFBWNuujX3o7DA2KTaFtVWoF4BJlKG+kQ/hsyUyG12Fwx0AU1K1bwC2E3JLyznHNbbB8wjNQZgTVhZeAzcNVuMwID1mHpU+4ueCDsIPIXXr4hva8dPBND0r53acEA==
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=Zs4oliTihyUrYIUpduTlgwZVraOFJZYuZVJXtxt6Jss=;
 b=Xy+X6VWKMZRQW88rxPuTBBXHWQFTU06NnAP24JYIdXSyD8cstnqBME4pmR61D8meQExf/jX/LT3VnqrTcwAj8TO7N5vtut4lmBJwlOHTwyWoA0rmyVWMrlrk7bSST3Jrs2YMvb5wTFmK7H535fK9RV9FbJ5M3XOi0mpE3z0KSzDRq3u90e9E9hhSovTvHxRH/5zuG2eas7QHNbSS0hlN7CiPyfNNgaWBJVXtcoKtiqzN2XH8XzKUb2YeRrG/OEMDqkTQ1ITs4GSaWxmRBtfhbSNVO7z/KepAdzB1YOnaJhK64BE+W07QYwxSCk6h6w5I+l/adHyeqMrOlX8RiWCmuA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB4867.eurprd01.prod.exchangelabs.com (20.177.189.31) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2729.22; Wed, 19 Feb
 2020 08:36:39 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2729.033; Wed, 19 Feb 2020
 08:36:39 +0000
Received: from localhost.localdomain (2a02:2f0b:8808:aa00:c42f:67fe:c4dd:b98e)
 by VI1P194CA0033.EURP194.PROD.OUTLOOK.COM (2603:10a6:803:3c::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2729.25 via Frontend
 Transport; Wed, 19 Feb 2020 08:36:38 +0000
From: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH 1/1] Fix crash caused by the Optimize for
 Performance config option
Thread-Index: AQHV5v+06LNTqa/olUKewVyxngeIfA==
Date: Wed, 19 Feb 2020 08:36:39 +0000
Message-ID: <20200219083630.12983-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: VI1P194CA0033.EURP194.PROD.OUTLOOK.COM
 (2603:10a6:803:3c::22) To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 2.20.1
x-originating-ip: [2a02:2f0b:8808:aa00:c42f:67fe:c4dd:b98e]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9b4430f1-e308-419d-41ae-08d7b516d694
x-ms-traffictypediagnostic: AM6PR01MB4867:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <AM6PR01MB4867FB51B812719517806DF4A6100@AM6PR01MB4867.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:983;
x-forefront-prvs: 0318501FAE
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(136003)(396003)(39840400004)(376002)(366004)(346002)(189003)(199004)(6916009)(54906003)(1076003)(2906002)(71200400001)(6486002)(6512007)(786003)(66446008)(66476007)(16526019)(85182001)(4326008)(186003)(508600001)(66946007)(52116002)(86362001)(5660300002)(81156014)(81166006)(85202003)(8936002)(64756008)(8676002)(66556008)(316002)(6506007)(2616005)(69590400006);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB4867;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:0; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: FmeVQr0geQgw42DkIlEt1VmnpZ/KdiC92y78WrmU0rU/ttxDfubXDdvL109ldylYripI0T+lMERKhi+R8vmdIqw/emHLM/62BBccHtl28hq5754lryPLuxVDw1d42MQqm+MDCnq3rJT4MrCyM2pYb3RNYUOXNkEx1DADyeQncOC+mMoZDP1CxzmEw/3+WaTiPENmX9+fff+EZZSMlgAHCNgwPIOeoRDN2QexJtEERTCr3TtYEcBwFx02S5ouiVV1OSdrwB9ukpiGVRNhvMZSUp/GjyXIaFXtjjrxKbxhk8iZcjcOjKECj1ugU/GaHeWbDtCTf6zhIApoWCHQO+ux9t+GKG47sRZgBNEgpNqJoOEEe2cIujDwolH9bF64ZZjty0Y5sUFmmS7hpof3Y2sRqxAIL1X+dNrQ6o63OZlCecDoU55MdskYkKGqZ5Dv3H35OnHIIkMLQ7ewuByVQWZDQeQR4Ak/sI67tl2MwS7ieSWxbz/llRvmydo06BZDlvJFwaeXf18/TcrjHhoURb7NDPGrQkj60oJjQywXR5tCw6E=
x-ms-exchange-antispam-messagedata: XcheUMLTYIatVq+3npzPKJ5Cd0MMMwRkhcNb2Iu19J4xjD+pyozM53uCJpJUiAXF/uZ/LBcEY0X4cd3lrEFbV1hIjoqDckVFCRPgi85BS3PkfqFF3OgXMi2nO1gk7R1m1LzqD4mOof6I8UG+J07CjhVPZMUtO1zsFL3zM39aXM2PlXV+Q6iWxdVhPRhf5U1NGoORBFputkOxHbsL5Z9VIQ==
Content-ID: <CF273F0478D2744E901EAC556402A4E6@eurprd01.prod.exchangelabs.com>
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b4430f1-e308-419d-41ae-08d7b516d694
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Feb 2020 08:36:39.2721 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MQsLIR7vAgq+Wi+i4DipKEKjNs++T0+cxrVjWMhHrUrL3q4XJVxOdpNzaW2hA/Se6e8w5NhEnGWeFfcxSrP7d9uZY8femo3V5c5/1EjtLAHxiIR6ZyBWDnkFYy8ucIjX
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4867
Subject: [Minios-devel] [UNIKRAFT PATCH 1/1] Fix crash caused by the
 Optimize for Performance config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>,
 "simon.kuenzer@neclab.eu" <simon.kuenzer@neclab.eu>,
 =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2UgZGlzYWJsZSB0aGUgZ2NzZSwgZ251LXVuaXF1ZSwgYW5kIG1vdmUtbG9vcC1pbnZhcmlhbnRz
DQpmbGFncyBlbmFibGVkIGJ5IE8yLiBUaGlzIHNvbHZlcyB0aGUgY3Jhc2ggb24gc2V2ZXJhbCBl
eHRlcm5hbA0KbGlicmFyaWVzKGUuZy4gcnVieSwgbWljcm9weXRob24pLg0KDQpTaWduZWQtb2Zm
LWJ5OiBWbGFkLUFuZHJlaSBCxIJET0lVIDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBi
LnJvPg0KLS0tDQogTWFrZWZpbGUudWsgfCA2ICsrKy0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu
c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBi
L01ha2VmaWxlLnVrDQppbmRleCA2N2MzNzJlNS4uMzU5OTczZjMgMTAwNjQ0DQotLS0gYS9NYWtl
ZmlsZS51aw0KKysrIGIvTWFrZWZpbGUudWsNCkBAIC0zMSw5ICszMSw5IEBAIExERkxBR1MgICAg
ICs9IC1ub3N0ZGluYyAtbm9zdGRsaWIgLVdsLC0tb21hZ2ljIC1XbCwtLWJ1aWxkLWlkPW5vbmUN
CiBDRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfTk9ORSkgICAgICAgICAgICArPSAtTzAgLWZuby1v
cHRpbWl6ZS1zaWJsaW5nLWNhbGxzIC1mbm8tdHJlZS12ZWN0b3JpemUNCiBDWFhGTEFHUy0kKENP
TkZJR19PUFRJTUlaRV9OT05FKSAgICAgICAgICArPSAtTzAgLWZuby1vcHRpbWl6ZS1zaWJsaW5n
LWNhbGxzIC1mbm8tdHJlZS12ZWN0b3JpemUNCiBHT0NGTEFHUy0kKENPTkZJR19PUFRJTUlaRV9O
T05FKSAgICAgICAgICArPSAtTzAgLWZuby1vcHRpbWl6ZS1zaWJsaW5nLWNhbGxzIC1mbm8tdHJl
ZS12ZWN0b3JpemUNCi1DRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfUEVSRikgICAgICAgICAgICAr
PSAtTzINCi1DWFhGTEFHUy0kKENPTkZJR19PUFRJTUlaRV9QRVJGKSAgICAgICAgICArPSAtTzIN
Ci1HT0NGTEFHUy0kKENPTkZJR19PUFRJTUlaRV9QRVJGKSAgICAgICAgICArPSAtTzINCitDRkxB
R1MtJChDT05GSUdfT1BUSU1JWkVfUEVSRikgICAgICAgICAgICArPSAtTzIgLWZuby1nY3NlIC1m
bm8tZ251LXVuaXF1ZSAtZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzDQorQ1hYRkxBR1MtJChDT05G
SUdfT1BUSU1JWkVfUEVSRikgICAgICAgICAgKz0gLU8yIC1mbm8tZ2NzZSAtZm5vLWdudS11bmlx
dWUgLWZuby1tb3ZlLWxvb3AtaW52YXJpYW50cw0KK0dPQ0ZMQUdTLSQoQ09ORklHX09QVElNSVpF
X1BFUkYpICAgICAgICAgICs9IC1PMiAtZm5vLWdjc2UgLWZuby1nbnUtdW5pcXVlIC1mbm8tbW92
ZS1sb29wLWludmFyaWFudHMNCiBDRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfU0laRSkgICAgICAg
ICAgICArPSAtT3MNCiBDWFhGTEFHUy0kKENPTkZJR19PUFRJTUlaRV9TSVpFKSAgICAgICAgICAr
PSAtT3MNCiBHT0NGTEFHUy0kKENPTkZJR19PUFRJTUlaRV9TSVpFKSAgICAgICAgICArPSAtT3MN
Ci0tIA0KMi4yMC4xDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9t
aW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 19 13:48:41 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 19 Feb 2020 13:48:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4PiP-0000EH-78; Wed, 19 Feb 2020 13:48:37 +0000
Received: from root by lists.xenproject.org with local (Exim 4.89)
 (envelope-from <root@lists.xen.org>) id 1j4PiO-0000DV-4z
 for minios-devel@lists.xenproject.org; Wed, 19 Feb 2020 13:48:36 +0000
From: Ian Jackson <ian.jackson@citrix.com>
To: minios-devel@lists.xenproject.org
Message-Id: <E1j4PiO-0000DV-4z@lists.xenproject.org>
Date: Wed, 19 Feb 2020 13:48:36 +0000
Subject: [Minios-devel] Xen mailing lists: dropping Subject line tags, etc.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkuIFRoaXMgbWVzc2FnZSBpcyBiZWluZyBzZW50IG9uY2UgdG8gZWFjaCBtYWlsaW5nIGxpc3Qg
aG9zdGVkIGJ5CnRoZSBYZW4gUHJvamVjdC4KCkluY3JlYXNpbmdseSwgbWFpbCBzeXN0ZW1zIG9u
IHRoZSBwdWJsaWMgaW50ZXJuZXQgYXJlIGRlbWFuZGluZwpyZXN0cmljdGl2ZSBTUEYgY29uZmln
dXJhdGlvbnMgWzFdIGFuZCBES0lNIHNpZ25hdHVyZXMgWzJdLgoKQ3VycmVudGx5IHRoZSBYZW4g
UHJvamVjdCBzeXN0ZW1zIGhhdmUgbGliZXJhbCBjb25maWd1cmF0aW9ucy4KVW5mb3J0dW5hdGVs
eSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIGhhdmluZyB0cm91YmxlIHdpdGggbWFpbHMgYmVpbmcK
YmxvY2tlZCBhcyBzcGFtLiBXZSBpbnRlbmQgdG8gdGlnaHRlbiB0aGUgY29uZmlndXJhdGlvbi4K
CkZvciBtYWlsaW5nIGxpc3RzLCB0aGlzIHdpbGwgbWVhbiB3ZSBuZWVkIHRvIHN0b3AgYWRkaW5n
IHRoZQpbbGlzdC1uYW1lXSB0YWcgdG8gdGhlIFN1YmplY3QgbGluZSwgYW5kIHN0b3AgYWRkaW5n
IHRoZSBmb290ZXJzCmdpdmluZyBtYWlsaW5nIGxpc3QgaW5mb3JtYXRpb24uCgpUaGUgaW5mb3Jt
YXRpb24gaW4gdGhlIFN1YmplY3QgbGluZSB0YWcgaXMgYWxzbyBhdmFpbGFibGUgaW4gdmFyaW91
cwpoZWFkZXJzLCBtb3N0bHkgTGlzdC0qLCBwcm92aWRlZCBieSBNYWlsbWFuLCBvdXIgbWFpbGlu
ZyBsaXN0IG1hbmFnZXIKc29mdHdhcmUuCgpJZiB5b3UgYXJlIGN1cnJlbnRseSBmaWx0ZXJpbmcg
YmFzZWQgb24gU3ViamVjdCBsaW5lIHRhZ3MsIHdlCnJlY29tbWVuZCB5b3UgY2hhbmdlIHRvIGZp
bHRlcmluZyBiYXNlZCBvbiB0aGUgTGlzdC1JZCBoZWFkZXIuIEZvcgpleGFtcGxlLCBtZXNzYWdl
cyB0byB4ZW4tZGV2ZWwgY29tZSB3aXRoOgpMaXN0LUlkOiBYZW4gZGV2ZWxvcGVyIGRpc2N1c3Np
b24gPHhlbi1kZXZlbC5saXN0cy54ZW5wcm9qZWN0Lm9yZz4KWW91IGNhbiBtYWtlIHRoaXMgY2hh
bmdlIHJpZ2h0IGF3YXkuCgpMaXN0IHN1YnNjcmliZXJzIGFuZCBwb3N0ZXJzIHNob3VsZCBub3Qg
bmVlZCB0byBtYWtlIGFueSBvdGhlcgpjb25maWd1cmF0aW9uIGNoYW5nZXMuCgpXZSBhcmUgbm90
IGdvaW5nIHRvIG1ha2UgdGhpcyBjaGFuZ2UgaW1tZWRpYXRlbHksIGFuZCBub3QgYmVmb3JlIHRo
ZQoxNHRoIG9mIE1hcmNoLiAgV2UnbGwgbWFrZSBvbmUgZnVydGhlciBhbm5vdW5jZW1lbnQgd2hl
biB0aGUgY2hhbmdlCmhhcyBiZWVuIG1hZGUuCgpUaGFua3MgZm9yIHlvdXIgYXR0ZW50aW9uLgpJ
YW4uCihvbiBiZWhhbGYgb2YgdGhlIFhlbiBQcm9qZWN0KQoKWzFdIGh0dHBzOi8vZW4ud2lraXBl
ZGlhLm9yZy93aWtpL1NlbmRlcl9Qb2xpY3lfRnJhbWV3b3JrClsyXSBodHRwczovL2VuLndpa2lw
ZWRpYS5vcmcvd2lraS9Ea2ltI0Fubm90YXRpb25zX2J5X21haWxpbmdfbGlzdHMKCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWls
aW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 19 17:14:18 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 19 Feb 2020 17:14:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4SvP-0007Ig-04; Wed, 19 Feb 2020 17:14:15 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=IiKR=4H=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j4SvN-0007Ia-9e
 for minios-devel@lists.xen.org; Wed, 19 Feb 2020 17:14:13 +0000
X-Inumbo-ID: 3eef8392-533b-11ea-83de-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 3eef8392-533b-11ea-83de-12813bfff9fa;
 Wed, 19 Feb 2020 17:14:12 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id E7B42103BA3;
 Wed, 19 Feb 2020 18:14:10 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 20_J_H8R9IFb; Wed, 19 Feb 2020 18:14:10 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id BEB75FFAA7;
 Wed, 19 Feb 2020 18:14:10 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 19 Feb
 2020 18:14:10 +0100
To: =?UTF-8?Q?Vlad-Andrei_B=c4=82DOIU_=2878692=29?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
References: <20200219083630.12983-1-vlad_andrei.badoiu@stud.acs.upb.ro>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <1766157e-e339-59ec-6261-6882d3d044c3@neclab.eu>
Date: Wed, 19 Feb 2020 18:14:09 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200219083630.12983-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 1/1] Fix crash caused by the
 Optimize for Performance config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGV5LAoKdGhhbmtzIGEgbG90IGZvciBmaWd1cmluZyB0aGlzIHByb2JsZW0gb3V0LiBIb3dldmVy
LCBjYW4geW91IHNlbmQgdGhpcyAKYXMgYSBwYXRjaCB0byB0aGUgYWZmZWN0ZWQgcmVwb3NpdG9y
aWVzIChydWJ5LCBtaWNyb3B5dGhvbik/IEkgdGhpbmsgd2UgCnNob3VsZCBub3Qgc2V0IHRoaXMg
ZXZlcnl3aGVyZSBpZiBub3QgbmVlZGVkLgoKWW91IGNhbiBhZGQgdGhlIGZsYWdzIGdsb2JhbGx5
IGZyb20gd2l0aGluIHRoZSBNYWtlZnVsZS51ayBvZiBlYWNoIApsaWJyYXJ5IGJ5IGRvaW5nIChm
b3IgZXhhbXBsZSBsaWJydWJ5KToKCkNGTEFHUy0kKENPTkZJR19MSUJSVUJZKSAgICs9IC1mbm8t
Z2NzZSAtZm5vLWdudS11bmlxdWUgXAoJCQkgICAgICAtZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRz
CkNYWEZMQUdTLSQoQ09ORklHX0xJQlJVQlkpICs9IC1mbm8tZ2NzZSAtZm5vLWdudS11bmlxdWUg
XAoJCQkgICAgICAtZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzCkdPRkxBR1MtJChDT05GSUdfTElC
UlVCWSkgICs9IC1mbm8tZ2NzZSAtZm5vLWdudS11bmlxdWUgXAoJCQkgICAgICAtZm5vLW1vdmUt
bG9vcC1pbnZhcmlhbnRzCgpUaGFua3MsCgpTaW1vbgoKT24gMTkuMDIuMjAgMDk6MzYsIFZsYWQt
QW5kcmVpIELEgkRPSVUgKDc4NjkyKSB3cm90ZToKPiBXZSBkaXNhYmxlIHRoZSBnY3NlLCBnbnUt
dW5pcXVlLCBhbmQgbW92ZS1sb29wLWludmFyaWFudHMKPiBmbGFncyBlbmFibGVkIGJ5IE8yLiBU
aGlzIHNvbHZlcyB0aGUgY3Jhc2ggb24gc2V2ZXJhbCBleHRlcm5hbAo+IGxpYnJhcmllcyhlLmcu
IHJ1YnksIG1pY3JvcHl0aG9uKS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBWbGFkLUFuZHJlaSBCxIJE
T0lVIDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPgo+IC0tLQo+ICAgTWFrZWZp
bGUudWsgfCA2ICsrKy0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBk
ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51awo+
IGluZGV4IDY3YzM3MmU1Li4zNTk5NzNmMyAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51awo+ICsr
KyBiL01ha2VmaWxlLnVrCj4gQEAgLTMxLDkgKzMxLDkgQEAgTERGTEFHUyAgICAgKz0gLW5vc3Rk
aW5jIC1ub3N0ZGxpYiAtV2wsLS1vbWFnaWMgLVdsLC0tYnVpbGQtaWQ9bm9uZQo+ICAgQ0ZMQUdT
LSQoQ09ORklHX09QVElNSVpFX05PTkUpICAgICAgICAgICAgKz0gLU8wIC1mbm8tb3B0aW1pemUt
c2libGluZy1jYWxscyAtZm5vLXRyZWUtdmVjdG9yaXplCj4gICBDWFhGTEFHUy0kKENPTkZJR19P
UFRJTUlaRV9OT05FKSAgICAgICAgICArPSAtTzAgLWZuby1vcHRpbWl6ZS1zaWJsaW5nLWNhbGxz
IC1mbm8tdHJlZS12ZWN0b3JpemUKPiAgIEdPQ0ZMQUdTLSQoQ09ORklHX09QVElNSVpFX05PTkUp
ICAgICAgICAgICs9IC1PMCAtZm5vLW9wdGltaXplLXNpYmxpbmctY2FsbHMgLWZuby10cmVlLXZl
Y3Rvcml6ZQo+IC1DRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfUEVSRikgICAgICAgICAgICArPSAt
TzIKPiAtQ1hYRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfUEVSRikgICAgICAgICAgKz0gLU8yCj4g
LUdPQ0ZMQUdTLSQoQ09ORklHX09QVElNSVpFX1BFUkYpICAgICAgICAgICs9IC1PMgo+ICtDRkxB
R1MtJChDT05GSUdfT1BUSU1JWkVfUEVSRikgICAgICAgICAgICArPSAtTzIgLWZuby1nY3NlIC1m
bm8tZ251LXVuaXF1ZSAtZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzCj4gK0NYWEZMQUdTLSQoQ09O
RklHX09QVElNSVpFX1BFUkYpICAgICAgICAgICs9IC1PMiAtZm5vLWdjc2UgLWZuby1nbnUtdW5p
cXVlIC1mbm8tbW92ZS1sb29wLWludmFyaWFudHMKPiArR09DRkxBR1MtJChDT05GSUdfT1BUSU1J
WkVfUEVSRikgICAgICAgICAgKz0gLU8yIC1mbm8tZ2NzZSAtZm5vLWdudS11bmlxdWUgLWZuby1t
b3ZlLWxvb3AtaW52YXJpYW50cwo+ICAgQ0ZMQUdTLSQoQ09ORklHX09QVElNSVpFX1NJWkUpICAg
ICAgICAgICAgKz0gLU9zCj4gICBDWFhGTEFHUy0kKENPTkZJR19PUFRJTUlaRV9TSVpFKSAgICAg
ICAgICArPSAtT3MKPiAgIEdPQ0ZMQUdTLSQoQ09ORklHX09QVElNSVpFX1NJWkUpICAgICAgICAg
ICs9IC1Pcwo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlv
cy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Wed Feb 19 22:42:37 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 19 Feb 2020 22:42:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4Y35-0005i4-ND; Wed, 19 Feb 2020 22:42:31 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=Xo8z=4H=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1j4Y34-0005hz-Jq
 for minios-devel@lists.xen.org; Wed, 19 Feb 2020 22:42:30 +0000
X-Inumbo-ID: 1acc0688-5369-11ea-8489-12813bfff9fa
Received: from EUR02-HE1-obe.outbound.protection.outlook.com (unknown
 [40.107.1.65]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 1acc0688-5369-11ea-8489-12813bfff9fa;
 Wed, 19 Feb 2020 22:42:28 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UUWPmPPqTkCsnROA6kOm3BTVMT7kq9K3D8zG2IseQ0KpO52co/DM8k2QTyNg3TQBxZvXz89KE+lLiXSQwFpRSn52Rl/L6H2F69SAuGThp8qyejD+G/rcP+fAS1atuHu+C96V6GiOjEKLCYyiGFGJqM4N3VScJ44LTUGwAP8FazCamlMoO1Qto2+BnndfKPYn8JgbdiZWY+Mfep9BOywLeW5Ioyn7ntTaBg7NzOUDt4oHPtungCL22QCNOxq/u7+F++PxTduU3JbxcCZ2k7fDLuyE+GCvEdOZKf6R2ZXXOzSAnZidUcDi62wtgB44PjyF0+RBQoPolxM63tXfJYchlA==
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=a+a0GYCHh7cEjVVNpyKGVMOVkAoyaFpfK6bhO/tnA0w=;
 b=TrOSM/FsaRIlGdOpr+o05R5wUkJYomeQSr0ZweTPAoqqMs6n9qCRj5mM78BBYLlRWYKxOREPaq1Fy/Cv//7jvqiM4SscxphBNUKrrxpEIqMbp5gc+VLCAFQWwRIkdWb1EpRBtChZOkN9yjh4UCaEOiRPxLJkrXxKDZfJUT6CIyEF+PFppCKf9v0x8LsfpXZfmK2TRk9JDwSCSt/7RYB+ARJNYnxaZxb6/IM/+a9908chm1ZEAMgNrPQwCK0AXi2mtQlpeSb/LJlTn4cdRbx6mC1DFRJ8AyZhwm2DzK/ZvW8++cZ2XRxsO8kwK3TDv/sVa3iLOmya4A4LRTZ3o8B+Vg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB4168.eurprd01.prod.exchangelabs.com (20.177.39.81) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2729.22; Wed, 19 Feb 2020 22:42:26 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2729.033; Wed, 19 Feb 2020
 22:42:25 +0000
Received: from [IPv6:2a02:2f0b:8808:aa00:c42f:67fe:c4dd:b98e]
 (2a02:2f0b:8808:aa00:c42f:67fe:c4dd:b98e) by
 VI1PR0401CA0023.eurprd04.prod.outlook.com (2603:10a6:800:4a::33) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.17 via Frontend
 Transport; Wed, 19 Feb 2020 22:42:25 +0000
From: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT PATCH 1/1] Fix crash caused by the Optimize for
 Performance config option
Thread-Index: AQHV5v+06LNTqa/olUKewVyxngeIfKgiwf+AgABbtgA=
Date: Wed, 19 Feb 2020 22:42:25 +0000
Message-ID: <3e4bb5f4-4397-9b0b-8f10-3488999769f4@stud.acs.upb.ro>
References: <20200219083630.12983-1-vlad_andrei.badoiu@stud.acs.upb.ro>
 <1766157e-e339-59ec-6261-6882d3d044c3@neclab.eu>
In-Reply-To: <1766157e-e339-59ec-6261-6882d3d044c3@neclab.eu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: VI1PR0401CA0023.eurprd04.prod.outlook.com
 (2603:10a6:800:4a::33) To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [2a02:2f0b:8808:aa00:c42f:67fe:c4dd:b98e]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d5fc389f-9767-4165-86ad-08d7b58cfdf1
x-ms-traffictypediagnostic: AM6PR01MB4168:
x-microsoft-antispam-prvs: <AM6PR01MB4168989BCD184952A39AF4C7A6100@AM6PR01MB4168.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-forefront-prvs: 0318501FAE
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(396003)(136003)(346002)(376002)(39840400004)(199004)(189003)(786003)(52116002)(4326008)(81166006)(508600001)(6486002)(316002)(110136005)(71200400001)(81156014)(8676002)(186003)(5660300002)(8936002)(31696002)(53546011)(2616005)(2906002)(85182001)(16526019)(66946007)(66446008)(66476007)(66556008)(64756008)(31686004)(85202003)(86362001);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB4168;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: fhuASW/tMEsM3Vkp3D1wx+9ONipxlCPj8ncpCK0jCeuXGlnD+om+8MJgFPw1Jf28vC9uLCajXMS/94+i9m2jgg7NiMdDiKMH7X0Qy8BgfG8JQNYWbwgGIsechhlKKo1RbbXb8sT1Hge7ZiJ7rKLM3OBIAJjCt393QR1LHWgHMtDSbL9Ptd6dJcZvz1JfrTvRij4UcmUts6S3hPKD8vOIfYX8ZCGiUN8qvcAjNv4noVYJ6xcjAYwgIP3z9s8jpxGxJASseBGU0bOk0G0nTTcQSmo4p8zmrWd8pLGQChKWk3qIMU+f67tQL0R21KfHRtQITNIJO5JG+kHsmz2P6KSEpwdP7bcawFE220YmcrSvzzZd9sHCmxIZdMLZEKqL5Hd4QTlCRGvZa6kzvAWYJLsM0wi+NEy46gCBoGCgOCAPzplmnNdWEp8j0krT4TAwXC7i
x-ms-exchange-antispam-messagedata: YADAm/hDYWNzIxqpQIJZsAK+6tZU6EaHoz063E8L9NTDFtl//zVQ/cLpysZX62TYFb9PWZr23+V6pQbepjBgLo7Z6Czp8Kxtgj+SASOu4xEgyuZ3Y2ic/uzf7h/CsztEv21NtEBC4+HNZBa3mnYnShfrEEnAzXppZacAbAjxt3us44PQs+nPjuTf6Y1CbOx1ABvnqjtd5FLq+M64HND40w==
x-ms-exchange-transport-forked: True
Content-ID: <D871518A9545F1488D33F703CDF35D4D@eurprd01.prod.exchangelabs.com>
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: d5fc389f-9767-4165-86ad-08d7b58cfdf1
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Feb 2020 22:42:25.9016 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: bWdcWK2tF7uJjQsok/A1KpLj0HkF/Tu7YYAUsVmt7ugBodwoc2vi5lLWmJNweXHZmpaSNCXjqkY7HXyvVoAkw5phrQJTSLgD7oKS1Ef02PNrCNS7uzxr1yrNsw8Vle8/
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4168
Subject: Re: [Minios-devel] [UNIKRAFT PATCH 1/1] Fix crash caused by the
 Optimize for Performance config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGV5IFNpbW9uLA0KDQpUaGF0IHNvdW5kcyBnb29kLCBJJ2xsIGEgcGF0Y2ggZm9yIGVhY2ggbGli
cmFyeS4NCg0KQ2hlZXJzLA0KDQpWbGFkDQoNCk9uIDE5LjAyLjIwMjAgMTk6MTQsIFNpbW9uIEt1
ZW56ZXIgd3JvdGU6DQo+IEhleSwNCj4NCj4gdGhhbmtzIGEgbG90IGZvciBmaWd1cmluZyB0aGlz
IHByb2JsZW0gb3V0LiBIb3dldmVyLCBjYW4geW91IHNlbmQgdGhpcyANCj4gYXMgYSBwYXRjaCB0
byB0aGUgYWZmZWN0ZWQgcmVwb3NpdG9yaWVzIChydWJ5LCBtaWNyb3B5dGhvbik/IEkgdGhpbmsg
DQo+IHdlIHNob3VsZCBub3Qgc2V0IHRoaXMgZXZlcnl3aGVyZSBpZiBub3QgbmVlZGVkLg0KPg0K
PiBZb3UgY2FuIGFkZCB0aGUgZmxhZ3MgZ2xvYmFsbHkgZnJvbSB3aXRoaW4gdGhlIE1ha2VmdWxl
LnVrIG9mIGVhY2ggDQo+IGxpYnJhcnkgYnkgZG9pbmcgKGZvciBleGFtcGxlIGxpYnJ1YnkpOg0K
Pg0KPiBDRkxBR1MtJChDT05GSUdfTElCUlVCWSnCoMKgICs9IC1mbm8tZ2NzZSAtZm5vLWdudS11
bmlxdWUgXA0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC1mbm8tbW92ZS1s
b29wLWludmFyaWFudHMNCj4gQ1hYRkxBR1MtJChDT05GSUdfTElCUlVCWSkgKz0gLWZuby1nY3Nl
IC1mbm8tZ251LXVuaXF1ZSBcDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
LWZuby1tb3ZlLWxvb3AtaW52YXJpYW50cw0KPiBHT0ZMQUdTLSQoQ09ORklHX0xJQlJVQlkpwqAg
Kz0gLWZuby1nY3NlIC1mbm8tZ251LXVuaXF1ZSBcDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgLWZuby1tb3ZlLWxvb3AtaW52YXJpYW50cw0KPg0KPiBUaGFua3MsDQo+DQo+
IFNpbW9uDQo+DQo+IE9uIDE5LjAyLjIwIDA5OjM2LCBWbGFkLUFuZHJlaSBCxIJET0lVICg3ODY5
Mikgd3JvdGU6DQo+PiBXZSBkaXNhYmxlIHRoZSBnY3NlLCBnbnUtdW5pcXVlLCBhbmQgbW92ZS1s
b29wLWludmFyaWFudHMNCj4+IGZsYWdzIGVuYWJsZWQgYnkgTzIuIFRoaXMgc29sdmVzIHRoZSBj
cmFzaCBvbiBzZXZlcmFsIGV4dGVybmFsDQo+PiBsaWJyYXJpZXMoZS5nLiBydWJ5LCBtaWNyb3B5
dGhvbikuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogVmxhZC1BbmRyZWkgQsSCRE9JVSA8dmxhZF9h
bmRyZWkuYmFkb2l1QHN0dWQuYWNzLnVwYi5ybz4NCj4+IC0tLQ0KPj4gwqAgTWFrZWZpbGUudWsg
fCA2ICsrKy0tLQ0KPj4gwqAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxl
dGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudWsgYi9NYWtlZmlsZS51aw0K
Pj4gaW5kZXggNjdjMzcyZTUuLjM1OTk3M2YzIDEwMDY0NA0KPj4gLS0tIGEvTWFrZWZpbGUudWsN
Cj4+ICsrKyBiL01ha2VmaWxlLnVrDQo+PiBAQCAtMzEsOSArMzEsOSBAQCBMREZMQUdTwqDCoMKg
wqAgKz0gLW5vc3RkaW5jIC1ub3N0ZGxpYiAtV2wsLS1vbWFnaWMgDQo+PiAtV2wsLS1idWlsZC1p
ZD1ub25lDQo+PiDCoCBDRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfTk9ORSnCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgICs9IC1PMCANCj4+IC1mbm8tb3B0aW1pemUtc2libGluZy1jYWxscyAtZm5vLXRy
ZWUtdmVjdG9yaXplDQo+PiDCoCBDWFhGTEFHUy0kKENPTkZJR19PUFRJTUlaRV9OT05FKcKgwqDC
oMKgwqDCoMKgwqDCoCArPSAtTzAgDQo+PiAtZm5vLW9wdGltaXplLXNpYmxpbmctY2FsbHMgLWZu
by10cmVlLXZlY3Rvcml6ZQ0KPj4gwqAgR09DRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfTk9ORSnC
oMKgwqDCoMKgwqDCoMKgwqAgKz0gLU8wIA0KPj4gLWZuby1vcHRpbWl6ZS1zaWJsaW5nLWNhbGxz
IC1mbm8tdHJlZS12ZWN0b3JpemUNCj4+IC1DRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfUEVSRinC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgICs9IC1PMg0KPj4gLUNYWEZMQUdTLSQoQ09ORklHX09QVElN
SVpFX1BFUkYpwqDCoMKgwqDCoMKgwqDCoMKgICs9IC1PMg0KPj4gLUdPQ0ZMQUdTLSQoQ09ORklH
X09QVElNSVpFX1BFUkYpwqDCoMKgwqDCoMKgwqDCoMKgICs9IC1PMg0KPj4gK0NGTEFHUy0kKENP
TkZJR19PUFRJTUlaRV9QRVJGKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKz0gLU8yIC1mbm8tZ2Nz
ZSANCj4+IC1mbm8tZ251LXVuaXF1ZSAtZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzDQo+PiArQ1hY
RkxBR1MtJChDT05GSUdfT1BUSU1JWkVfUEVSRinCoMKgwqDCoMKgwqDCoMKgwqAgKz0gLU8yIC1m
bm8tZ2NzZSANCj4+IC1mbm8tZ251LXVuaXF1ZSAtZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzDQo+
PiArR09DRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfUEVSRinCoMKgwqDCoMKgwqDCoMKgwqAgKz0g
LU8yIC1mbm8tZ2NzZSANCj4+IC1mbm8tZ251LXVuaXF1ZSAtZm5vLW1vdmUtbG9vcC1pbnZhcmlh
bnRzDQo+PiDCoCBDRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfU0laRSnCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgICs9IC1Pcw0KPj4gwqAgQ1hYRkxBR1MtJChDT05GSUdfT1BUSU1JWkVfU0laRSnCoMKg
wqDCoMKgwqDCoMKgwqAgKz0gLU9zDQo+PiDCoCBHT0NGTEFHUy0kKENPTkZJR19PUFRJTUlaRV9T
SVpFKcKgwqDCoMKgwqDCoMKgwqDCoCArPSAtT3MNCj4+DQpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlv
cy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 09:04:47 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 09:04:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4hlC-0000HV-KB; Thu, 20 Feb 2020 09:04:42 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=SLu8=4I=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j4hlC-0000HQ-0Q
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 09:04:42 +0000
X-Inumbo-ID: 06b20e34-53c0-11ea-ade5-bc764e2007e4
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 06b20e34-53c0-11ea-ade5-bc764e2007e4;
 Thu, 20 Feb 2020 09:04:40 +0000 (UTC)
Received: from localhost (c431.ant-net [192.168.0.36])
 by queen.nlehd.de (Postfix) with ESMTP id 8C1EC40DC0;
 Thu, 20 Feb 2020 10:04:39 +0100 (CET)
From: Felipe Huici <felipe.huici@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 20 Feb 2020 10:04:38 +0100
Message-Id: <20200220090438.11236-1-felipe.huici@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT] doc/users: replace resources with link to
 Unikraft website.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmVwbGFjZSB0aGUgZG9jdW1lbnQgbGlzdGluZyBhZGRpdGlvbmFsIHJlc291cmNlcyB3aXRoIGEg
bGluayB0byB0aGUKcmVzb3VyY2VzIGFyZWEgb2YgdGhlIG5ld2x5IGRlcGxveWVkIFVuaWtyYWZ0
IHdlYnNpdGUuCgpTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNs
YWIuZXU+Ci0tLQogZG9jL2d1aWRlcy91c2Vycy1yZXNvdXJjZXMucnN0IHwgNSArLS0tLQogMSBm
aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L2RvYy9ndWlkZXMvdXNlcnMtcmVzb3VyY2VzLnJzdCBiL2RvYy9ndWlkZXMvdXNlcnMtcmVzb3Vy
Y2VzLnJzdAppbmRleCBiZGZlNTMwYy4uOWM0MGMwYjMgMTAwNjQ0Ci0tLSBhL2RvYy9ndWlkZXMv
dXNlcnMtcmVzb3VyY2VzLnJzdAorKysgYi9kb2MvZ3VpZGVzL3VzZXJzLXJlc291cmNlcy5yc3QK
QEAgLTEsOCArMSw1IEBACiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIEFk
ZGl0aW9uYWwgUmVzb3VyY2VzCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
LUJlbG93IGlzIGEgc2hvcnQgbGlzdCBvZiBhZGRpdGlvbmFsIHJlc291cmNlcyByZWxhdGVkIHRv
IFVuaWtyYWZ0OgogCi0gKiBgVW5pa3JhZnQgdGVhbSA8aHR0cHM6Ly93d3cueGVucHJvamVjdC5v
cmcvZGV2ZWxvcGVycy90ZWFtcy91bmlrcmFmdC8+YF8KLSAqIGBNYWlsaW5nIGxpc3Qgc3Vic2Ny
aXB0aW9uIDxodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby9taW5pb3MtZGV2ZWw+YF8KLSAqIGBNYWlsaW5nIGxpc3QgYXJjaGl2ZXMgPGh0dHBzOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC9taW5pb3MtZGV2ZWwvPmBfCitQbGVh
c2UgZmluZCBhIGxpc3Qgb2YgYWRkaXRpb25hbCByZXNvdXJjZXMgYGhlcmUgPGh0dHA6Ly93d3cu
dW5pa3JhZnQub3JnL3Jlc291cmNlcz5gXyAuCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0
Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 09:21:34 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 09:21:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4i1W-0002G4-8c; Thu, 20 Feb 2020 09:21:34 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=dn6B=4I=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j4i1V-0002Fy-Jo
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 09:21:33 +0000
X-Inumbo-ID: 6191acb8-53c2-11ea-ade5-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 6191acb8-53c2-11ea-ade5-bc764e2007e4;
 Thu, 20 Feb 2020 09:21:32 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 24E771041D5;
 Thu, 20 Feb 2020 10:21:31 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id gQWBsNrIzW7z; Thu, 20 Feb 2020 10:21:31 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 0320BFFAC0
 for <minios-devel@lists.xen.org>; Thu, 20 Feb 2020 10:21:31 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 20 Feb
 2020 10:21:30 +0100
To: Felipe Huici <felipe.huici@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200220090438.11236-1-felipe.huici@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <25e5e676-be2d-518d-27b1-368897878e35@neclab.eu>
Date: Thu, 20 Feb 2020 10:21:30 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200220090438.11236-1-felipe.huici@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT] doc/users: replace resources with
 link to Unikraft website.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzLgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFi
LmV1PgoKT24gMjAuMDIuMjAgMTA6MDQsIEZlbGlwZSBIdWljaSB3cm90ZToKPiBSZXBsYWNlIHRo
ZSBkb2N1bWVudCBsaXN0aW5nIGFkZGl0aW9uYWwgcmVzb3VyY2VzIHdpdGggYSBsaW5rIHRvIHRo
ZQo+IHJlc291cmNlcyBhcmVhIG9mIHRoZSBuZXdseSBkZXBsb3llZCBVbmlrcmFmdCB3ZWJzaXRl
Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEZlbGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5l
dT4KPiAtLS0KPiAgIGRvYy9ndWlkZXMvdXNlcnMtcmVzb3VyY2VzLnJzdCB8IDUgKy0tLS0KPiAg
IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZm
IC0tZ2l0IGEvZG9jL2d1aWRlcy91c2Vycy1yZXNvdXJjZXMucnN0IGIvZG9jL2d1aWRlcy91c2Vy
cy1yZXNvdXJjZXMucnN0Cj4gaW5kZXggYmRmZTUzMGMuLjljNDBjMGIzIDEwMDY0NAo+IC0tLSBh
L2RvYy9ndWlkZXMvdXNlcnMtcmVzb3VyY2VzLnJzdAo+ICsrKyBiL2RvYy9ndWlkZXMvdXNlcnMt
cmVzb3VyY2VzLnJzdAo+IEBAIC0xLDggKzEsNSBAQAo+ICAgKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCj4gICBBZGRpdGlvbmFsIFJlc291cmNlcwo+ICAgKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCj4gLUJlbG93IGlzIGEgc2hvcnQgbGlzdCBvZiBhZGRp
dGlvbmFsIHJlc291cmNlcyByZWxhdGVkIHRvIFVuaWtyYWZ0Ogo+ICAgCj4gLSAqIGBVbmlrcmFm
dCB0ZWFtIDxodHRwczovL3d3dy54ZW5wcm9qZWN0Lm9yZy9kZXZlbG9wZXJzL3RlYW1zL3VuaWty
YWZ0Lz5gXwo+IC0gKiBgTWFpbGluZyBsaXN0IHN1YnNjcmlwdGlvbiA8aHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVsPmBfCj4g
LSAqIGBNYWlsaW5nIGxpc3QgYXJjaGl2ZXMgPGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv
YXJjaGl2ZXMvaHRtbC9taW5pb3MtZGV2ZWwvPmBfCj4gK1BsZWFzZSBmaW5kIGEgbGlzdCBvZiBh
ZGRpdGlvbmFsIHJlc291cmNlcyBgaGVyZSA8aHR0cDovL3d3dy51bmlrcmFmdC5vcmcvcmVzb3Vy
Y2VzPmBfIC4KPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5p
b3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 09:34:00 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 09:34:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4iDU-0003dn-O8; Thu, 20 Feb 2020 09:33:56 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=dn6B=4I=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j4iDT-0003dg-9y
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 09:33:55 +0000
X-Inumbo-ID: 1c13a78e-53c4-11ea-84f0-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 1c13a78e-53c4-11ea-84f0-12813bfff9fa;
 Thu, 20 Feb 2020 09:33:54 +0000 (UTC)
Received: from c408.ant-net (c408.ant-net [192.168.0.168])
 by queen.nlehd.de (Postfix) with ESMTP id 7087D40DC0;
 Thu, 20 Feb 2020 10:33:53 +0100 (CET)
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 20 Feb 2020 10:33:51 +0100
Message-Id: <20200220093351.20929-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH] build: Call `gitsha1` from Unikraft
 base
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: felipe.huici@neclab.eu, Simon Kuenzer <simon.kuenzer@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Q2FsbHMgYHN1cHBvcnQvc2NyaXB0cy9naXRzaGExYCBmcm9tIHRoZSBVbmlrcmFmdCBiYXNlIGZv
bGRlci4gVGhlCnNjcmlwdCBzdXBwb3NlbHkgZGV0ZWN0cyB0aGUgY3VycmVudCBHaXQgY29tbWl0
IGhhc2ggYW5kIGZpZ3VyZXMgb3V0CmlmIHRoZXJlIGFyZSB1bmNvbW1pdHRlZCBjaGFuZ2VzLiBU
aGUgc2NyaXB0J3Mgb3V0cHV0IGlzIGFkZGVkIHRvIHRoZQp2ZXJzaW9uIG51bWJlci4KClNpZ25l
ZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PgotLS0KIE1h
a2VmaWxlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggMTc3MDhiZWYu
LjcyNWIwMTJhIDEwMDY0NAotLS0gYS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtMTk5LDkg
KzE5OSw5IEBAIGluY2x1ZGUgJChDT05GSUdfVUtfQkFTRSkvdmVyc2lvbi5tawogIyBDb21wdXRl
IHRoZSBmdWxsIGxvY2FsIHZlcnNpb24gc3RyaW5nIHNvIHBhY2thZ2VzIGNhbiB1c2UgaXQgYXMt
aXMKICMgTmVlZCB0byBleHBvcnQgaXQsIHNvIGl0IGNhbiBiZSBnb3QgZnJvbSBlbnZpcm9ubWVu
dCBpbiBjaGlsZHJlbiAoZWcuIG1jb25mKQogaWZkZWYgVUtfRVhUUkFWRVJTSU9OCi1leHBvcnQg
VUtfRlVMTFZFUlNJT04gOj0gJChVS19WRVJTSU9OKS4kKFVLX1NVQlZFUlNJT04pLiQoVUtfRVhU
UkFWRVJTSU9OKSQoc2hlbGwgJChTQ1JJUFRTX0RJUikvZ2l0c2hhMSkKK2V4cG9ydCBVS19GVUxM
VkVSU0lPTiA6PSAkKFVLX1ZFUlNJT04pLiQoVUtfU1VCVkVSU0lPTikuJChVS19FWFRSQVZFUlNJ
T04pJChzaGVsbCBjZCAkKENPTkZJR19VS19CQVNFKTsgJChTQ1JJUFRTX0RJUikvZ2l0c2hhMSkK
IGVsc2UKLWV4cG9ydCBVS19GVUxMVkVSU0lPTiA6PSAkKFVLX1ZFUlNJT04pLiQoVUtfU1VCVkVS
U0lPTikkKHNoZWxsICQoU0NSSVBUU19ESVIpL2dpdHNoYTEpCitleHBvcnQgVUtfRlVMTFZFUlNJ
T04gOj0gJChVS19WRVJTSU9OKS4kKFVLX1NVQlZFUlNJT04pJChzaGVsbCBjZCAkKENPTkZJR19V
S19CQVNFKTsgJChTQ1JJUFRTX0RJUikvZ2l0c2hhMSkKIGVuZGlmCiAKICMgRGVmYXVsdCBpbWFn
ZSBuYW1lCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu
Zm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 09:52:27 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 09:52:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4iVO-0005Yw-60; Thu, 20 Feb 2020 09:52:26 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=e7Vo=4I=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j4iVM-0005Yq-FT
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 09:52:24 +0000
X-Inumbo-ID: b1d325fe-53c6-11ea-ade5-bc764e2007e4
Received: from mail-vk1-xa41.google.com (unknown [2607:f8b0:4864:20::a41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b1d325fe-53c6-11ea-ade5-bc764e2007e4;
 Thu, 20 Feb 2020 09:52:24 +0000 (UTC)
Received: by mail-vk1-xa41.google.com with SMTP id i78so1015395vke.0
 for <minios-devel@lists.xen.org>; Thu, 20 Feb 2020 01:52:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=xJ40gDEhbHKe6HPy/L36TCuUNBqbalosR2ajaKXdsYk=;
 b=ODAp+KW25bXjcA0bstU/FMMJqpcT5zVb5d1oll4DU5Pxf1GXO2gWcrK3F1eOe4Lgum
 MDWTO+bVrArsppeYwjODFh+0cNMNkRdtLcHLH4Fvak6DiXQoCwVWrXV2qAdHYX0Yhck2
 WbfmFkTC9iHO6szNeAIhz2dtA8m1Rv5ttkfi4J/7pjBgKgnpNtV4X5xKxqSx6khb/O2t
 MmsCPWAx0xze6U5x8dBjDFTdhmqjC1sjWTJHVuRtCwhHNHHs9+1/6FRTxUu1bIHQmB3K
 Er6MFDt9sEEoEptmLT/3u4OONePfaGI3h1VHDOqQ5OL3Fq7PQFH8qwdxHoTPyPYPv+jL
 G4Eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=xJ40gDEhbHKe6HPy/L36TCuUNBqbalosR2ajaKXdsYk=;
 b=ZtRfW2hhZjN4AHWT0SUcJOj8wtzCAPfc0tqvtyIpB3A8zl7e5tPKMku2Q1cMNJWe0P
 ON0OMlBuaurMFoYccTkN4W3CzCB8oBn5j6Vb+17gZ4rBj0yHtOEzkUUYRmd94F7S+LWf
 83TEasGodPd2FdPHVGdLcZqPpuDUhvThz1sTdgsENflWXQ+Tkl4ONN+dSrYRRPaT83Lq
 qdYKH45EVB8aBJjl+brT7WQHY39GawNzRdZYz5vOilLHFusaGaKAT0suFl9S9shMCwkz
 cZK9sCr2SAJQIioqmDoVsNN8t2/8c2/3UvJ2OLx9zx+EvutSgR4oAjayAq26/LLPSaiK
 F3RQ==
X-Gm-Message-State: APjAAAVy5DRyKNAg3PFQSiQlh6ckW0h3r9rqLuCKyuLO4cHSoHXNnqQe
 S8dSP67IfC0gSOr0az7NkdouYzJqKXfe+VtipG5fcODAGIc=
X-Google-Smtp-Source: APXvYqwhlnK4g3YZ+y1r6Uvyp1cErIuXHFL8hoNkzA/A0i6giTnfi/MQ8gAYWj+Z65u/rVxSWSeaQFaA/YOCWtiY+kk=
X-Received: by 2002:a1f:7cc2:: with SMTP id x185mr13497675vkc.1.1582192343683; 
 Thu, 20 Feb 2020 01:52:23 -0800 (PST)
MIME-Version: 1.0
References: <20200220093351.20929-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200220093351.20929-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Thu, 20 Feb 2020 10:52:12 +0100
Message-ID: <CAEX4t-M6o13C=Qz-rNygpLfGg-EnQ7=oi2wbQNWk_V1ajbcbfQ@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] build: Call `gitsha1` from
 Unikraft base
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, minios-devel@lists.xen.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24sIHRoYW5rcyBmb3IgdGhlIHBhdGNoLgoKUmV2aWV3ZWQtYnk6IEZlbGlwZSBIdWlj
aSA8ZmVsaXBlLmh1aWNpQG5lY2xhYi5ldT4KCk9uIFRodSwgRmViIDIwLCAyMDIwIGF0IDEwOjM0
IEFNIFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PiB3cm90ZToKPgo+IENh
bGxzIGBzdXBwb3J0L3NjcmlwdHMvZ2l0c2hhMWAgZnJvbSB0aGUgVW5pa3JhZnQgYmFzZSBmb2xk
ZXIuIFRoZQo+IHNjcmlwdCBzdXBwb3NlbHkgZGV0ZWN0cyB0aGUgY3VycmVudCBHaXQgY29tbWl0
IGhhc2ggYW5kIGZpZ3VyZXMgb3V0Cj4gaWYgdGhlcmUgYXJlIHVuY29tbWl0dGVkIGNoYW5nZXMu
IFRoZSBzY3JpcHQncyBvdXRwdXQgaXMgYWRkZWQgdG8gdGhlCj4gdmVyc2lvbiBudW1iZXIuCj4K
PiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4K
PiAtLS0KPiAgTWFrZWZpbGUgfCA0ICsrLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u
cygrKSwgMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxl
Cj4gaW5kZXggMTc3MDhiZWYuLjcyNWIwMTJhIDEwMDY0NAo+IC0tLSBhL01ha2VmaWxlCj4gKysr
IGIvTWFrZWZpbGUKPiBAQCAtMTk5LDkgKzE5OSw5IEBAIGluY2x1ZGUgJChDT05GSUdfVUtfQkFT
RSkvdmVyc2lvbi5tawo+ICAjIENvbXB1dGUgdGhlIGZ1bGwgbG9jYWwgdmVyc2lvbiBzdHJpbmcg
c28gcGFja2FnZXMgY2FuIHVzZSBpdCBhcy1pcwo+ICAjIE5lZWQgdG8gZXhwb3J0IGl0LCBzbyBp
dCBjYW4gYmUgZ290IGZyb20gZW52aXJvbm1lbnQgaW4gY2hpbGRyZW4gKGVnLiBtY29uZikKPiAg
aWZkZWYgVUtfRVhUUkFWRVJTSU9OCj4gLWV4cG9ydCBVS19GVUxMVkVSU0lPTiA6PSAkKFVLX1ZF
UlNJT04pLiQoVUtfU1VCVkVSU0lPTikuJChVS19FWFRSQVZFUlNJT04pJChzaGVsbCAkKFNDUklQ
VFNfRElSKS9naXRzaGExKQo+ICtleHBvcnQgVUtfRlVMTFZFUlNJT04gOj0gJChVS19WRVJTSU9O
KS4kKFVLX1NVQlZFUlNJT04pLiQoVUtfRVhUUkFWRVJTSU9OKSQoc2hlbGwgY2QgJChDT05GSUdf
VUtfQkFTRSk7ICQoU0NSSVBUU19ESVIpL2dpdHNoYTEpCj4gIGVsc2UKPiAtZXhwb3J0IFVLX0ZV
TExWRVJTSU9OIDo9ICQoVUtfVkVSU0lPTikuJChVS19TVUJWRVJTSU9OKSQoc2hlbGwgJChTQ1JJ
UFRTX0RJUikvZ2l0c2hhMSkKPiArZXhwb3J0IFVLX0ZVTExWRVJTSU9OIDo9ICQoVUtfVkVSU0lP
TikuJChVS19TVUJWRVJTSU9OKSQoc2hlbGwgY2QgJChDT05GSUdfVUtfQkFTRSk7ICQoU0NSSVBU
U19ESVIpL2dpdHNoYTEpCj4gIGVuZGlmCj4KPiAgIyBEZWZhdWx0IGltYWdlIG5hbWUKPiAtLQo+
IDIuMjAuMQo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwo+IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBNaW5pb3MtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu
Zm8vbWluaW9zLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v
bWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 09:58:34 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 09:58:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4ibK-0005pk-2D; Thu, 20 Feb 2020 09:58:34 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=SL86=4I=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1j4ibI-0005pc-EB
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 09:58:32 +0000
X-Inumbo-ID: 8b8ba7c7-53c7-11ea-84f2-12813bfff9fa
Received: from EUR04-DB3-obe.outbound.protection.outlook.com (unknown
 [40.107.6.44]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 8b8ba7c7-53c7-11ea-84f2-12813bfff9fa;
 Thu, 20 Feb 2020 09:58:30 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=fa8H+EiH3MyqQaU2VHyyneblk8M6KyTrEyhfYbhJP9T5ADPMl0Xe5/LU2wlwmdj5uFol60GtOoL6Nai4yrQC7s7wFcTDBiG3Zp0PUm/6L2Mu8s6uocIPmtfiOW/yG1FKjHJmGsyAHJP/xxMx9Lsb0J/A21mPeRAL6Nlcz0k+LUSzO3nZzb7zX4ZpC83DfOLrVWkooBoZ5okHS0u9T5MxyEYglqZMrOI6Zl7FBOuauVeS81DJamDM/JDOwKE2sEBsAynhmr17N1gupaT4lL/HbSsGFMwLCOD03nJaPtGXq/VCu7EluNf5F4x9NoZy9CixCAhZs6ywb1Lbzilwm9K/2Q==
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=zHwdnrEdfuoFiey0mUDBCWZgWN4/j16qQ3ctaDYPLPE=;
 b=LjYd3EaACbY/Q32sBtdFMrWgWyPo5ZQRAMH+9pzh9IIXx70j7Hvsoei5lipthdw/TxOJgmvY8vJYDQNM0vx24G/Gzte0mmsY6vPRx6npQVMuhfz3oxkDMfm6MEmJ7+Zw0Cf+vxEQBWt5NDfGSonCQ6lgy9eK24lT0W6Gm5yBLaevp7LVPBQOyKsNeREa+sbECmmOCkHa1Q9MoWlMFbEM93JjbGiiy0ycagjshZnYSSio8PQRAij9shWHeFh2YCzVHgQIG/vscruawwwuQSZ1PQeeYFtWC0FHWNdgZKzReyXW5Sa5XJvA3Axrw8090NzvTsgtL3RSTho5w8XC/oHV0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB5301.eurprd01.prod.exchangelabs.com (20.178.94.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2729.22; Thu, 20 Feb 2020 09:58:29 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2729.033; Thu, 20 Feb 2020
 09:58:28 +0000
Received: from thinky.precis.pub.ro (141.85.233.104) by
 FR2P281CA0030.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::17) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2750.18 via Frontend Transport; Thu, 20 Feb 2020 09:58:28 +0000
From: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT/RUBY PATCH 1/1] Fix crash caused by the Optimize for
 Performance config option
Thread-Index: AQHV59RNCqTsD9QRZ0G/dQzObEANFQ==
Date: Thu, 20 Feb 2020 09:58:28 +0000
Message-ID: <20200220095809.17091-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: FR2P281CA0030.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:14::17) To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 2.20.1
x-originating-ip: [141.85.233.104]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 7557c89c-2db8-49f4-5364-08d7b5eb6f71
x-ms-traffictypediagnostic: AM6PR01MB5301:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <AM6PR01MB53014796EA6000BF19BF0E51A6130@AM6PR01MB5301.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:626;
x-forefront-prvs: 031996B7EF
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(376002)(39830400003)(396003)(346002)(136003)(189003)(199004)(1076003)(86362001)(52116002)(316002)(508600001)(66556008)(66476007)(54906003)(66946007)(64756008)(71200400001)(786003)(66446008)(956004)(4326008)(81166006)(5660300002)(85202003)(8936002)(2906002)(81156014)(2616005)(8676002)(6916009)(6512007)(85182001)(4744005)(6486002)(26005)(186003)(16526019)(6506007);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB5301;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:0; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: hOQie8/RY38aYfNlYyZKB/N14qiOVDAW96uTyKjaD/vtoDoGrSMKBNQFdRQYzI06JgMwL5MjOL3/Px9ZmPi+4Zyw2PWCDaW9CTl3Nx6DoizED0QZvb/gShQwpnhvTp4kYNl2AQh3c/Mv6byBlK43iKlTpO14LdYMTKen5dojKfkIxpTHqYh1YiRcu0/vmb1VfigYi2D6JAZTsWjjAPLwcS1+va820XrbDfz3ZueA+Bxs4nS51/6X+PLy8R9XZuTkQ6uaZZqQPFkyWcxoC0SYzboGi57NeYNhngmwUYbZr4e5cSYbm4iuN0ctgnURRYOFm92Sgy8kaA4h6F6tluSziZRlZB1X/foLps6Vl+UqDewTVB7bgI5hZ/y6OK85dntuUl/09H1x5jTx99a/4sv6qYa1EAD/qiMustIktIW/C8+33udoAQ8Dboz0oRu/ac+1
x-ms-exchange-antispam-messagedata: Tdps8af/68CJkdV6tT4Ta4gKdRPiXJILsKSn/AuaRmMTG5cfqHc+Ih0GjdhlZFzZENPwT4bXVZAV5Z9pdsFQFW8eE7aXy2U2AhKtjBCVwNhiU14hCGOZWs/wG0GYdC/UkzCxK/8JpvUC1QOfrFmK/A==
Content-ID: <ADDD40C4865AD740A6CAE0BEC48C92D4@eurprd01.prod.exchangelabs.com>
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: 7557c89c-2db8-49f4-5364-08d7b5eb6f71
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2020 09:58:28.9513 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9tvqCLxOMiJciY3svhmItECzHr/7pAn71P5IsQhMG77uRRYef0IWuMtykkFU4tU0VbxMYLC3PAvJvE1Jr0n07wNyEFSjvWcrz7HpVHWurTC9vfO5U76miC9tPiwY99XW
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB5301
Subject: [Minios-devel] [UNIKRAFT/RUBY PATCH 1/1] Fix crash caused by the
 Optimize for Performance config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>,
 "simon.kuenzer@neclab.eu" <simon.kuenzer@neclab.eu>,
 =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2UgZGlzYWJsZSB0aGUgZ2NzZSwgZ251LXVuaXF1ZSwgYW5kIG1vdmUtbG9vcC1pbnZhcmlhbnRz
DQpmbGFncyBlbmFibGVkIGJ5IE8yLg0KDQpTaWduZWQtb2ZmLWJ5OiBWbGFkLUFuZHJlaSBCxIJE
T0lVIDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPg0KLS0tDQogTWFrZWZpbGUu
dWsgfCA3ICsrKysrKysNCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspDQoNCmRpZmYg
LS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrDQppbmRleCA2ZDcwNmIzLi44NzA0NWY2
IDEwMDY0NA0KLS0tIGEvTWFrZWZpbGUudWsNCisrKyBiL01ha2VmaWxlLnVrDQpAQCAtNzQsNiAr
NzQsMTMgQEAgTElCUlVCWV9TVVBSRVNTX0NYWEZMQUdTLXkgKz0gJChMSUJSVUJZX1NVUFBSRVNT
X0ZMQUdTLXkpDQogTElCUlVCWV9DRkxBR1MteSAgICAgICAgICAgKz0gJChMSUJSVUJZX1NVUFJF
U1NfQ0ZMQUdTLXkpDQogTElCUlVCWV9DWFhGTEFHUy15ICAgICAgICAgKz0gJChMSUJSVUJZX1NV
UFJFU1NfQ1hYRkxBR1MteSkNCiANCitDRkxBR1MtJChDT05GSUdfTElCUlVCWSkgICArPSAtZm5v
LWdjc2UgLWZuby1nbnUtdW5pcXVlIFwNCisgICAgICAgICAgICAgICAgICAtZm5vLW1vdmUtbG9v
cC1pbnZhcmlhbnRzDQorQ1hYRkxBR1MtJChDT05GSUdfTElCUlVCWSkgKz0gLWZuby1nY3NlIC1m
bm8tZ251LXVuaXF1ZSBcDQorICAgICAgICAgICAgICAgICAgLWZuby1tb3ZlLWxvb3AtaW52YXJp
YW50cw0KK0dPRkxBR1MtJChDT05GSUdfTElCUlVCWSkgICs9IC1mbm8tZ2NzZSAtZm5vLWdudS11
bmlxdWUgXA0KKyAgICAgICAgICAgICAgICAgIC1mbm8tbW92ZS1sb29wLWludmFyaWFudHMNCisN
CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICMgSGVscGVycw0KICMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjDQotLSANCjIuMjAuMQ0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 10:30:20 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 10:30:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4j62-0001sI-KD; Thu, 20 Feb 2020 10:30:18 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=dn6B=4I=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j4j61-0001rY-FI
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 10:30:17 +0000
X-Inumbo-ID: fb86d826-53cb-11ea-b0fd-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fb86d826-53cb-11ea-b0fd-bc764e2007e4;
 Thu, 20 Feb 2020 10:30:15 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id C930AF2032;
 Thu, 20 Feb 2020 11:30:14 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id C4y74mJytNHu; Thu, 20 Feb 2020 11:30:14 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 8FD53F2031;
 Thu, 20 Feb 2020 11:30:10 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 20 Feb
 2020 11:30:03 +0100
To: =?UTF-8?Q?Vlad-Andrei_B=c4=82DOIU_=2878692=29?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
References: <20200220095809.17091-1-vlad_andrei.badoiu@stud.acs.upb.ro>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <9e235511-7989-8c7e-0557-277102b9f0ce@neclab.eu>
Date: Thu, 20 Feb 2020 11:30:02 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200220095809.17091-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/RUBY PATCH 1/1] Fix crash caused by
 the Optimize for Performance config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJA
bmVjbGFiLmV1PgoKT24gMjAuMDIuMjAgMTA6NTgsIFZsYWQtQW5kcmVpIELEgkRPSVUgKDc4Njky
KSB3cm90ZToKPiBXZSBkaXNhYmxlIHRoZSBnY3NlLCBnbnUtdW5pcXVlLCBhbmQgbW92ZS1sb29w
LWludmFyaWFudHMKPiBmbGFncyBlbmFibGVkIGJ5IE8yLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFZs
YWQtQW5kcmVpIELEgkRPSVUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVkLmFjcy51cGIucm8+Cj4g
LS0tCj4gICBNYWtlZmlsZS51ayB8IDcgKysrKysrKwo+ICAgMSBmaWxlIGNoYW5nZWQsIDcgaW5z
ZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCj4g
aW5kZXggNmQ3MDZiMy4uODcwNDVmNiAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51awo+ICsrKyBi
L01ha2VmaWxlLnVrCj4gQEAgLTc0LDYgKzc0LDEzIEBAIExJQlJVQllfU1VQUkVTU19DWFhGTEFH
Uy15ICs9ICQoTElCUlVCWV9TVVBQUkVTU19GTEFHUy15KQo+ICAgTElCUlVCWV9DRkxBR1MteSAg
ICAgICAgICAgKz0gJChMSUJSVUJZX1NVUFJFU1NfQ0ZMQUdTLXkpCj4gICBMSUJSVUJZX0NYWEZM
QUdTLXkgICAgICAgICArPSAkKExJQlJVQllfU1VQUkVTU19DWFhGTEFHUy15KQo+ICAgCj4gK0NG
TEFHUy0kKENPTkZJR19MSUJSVUJZKSAgICs9IC1mbm8tZ2NzZSAtZm5vLWdudS11bmlxdWUgXAo+
ICsgICAgICAgICAgICAgICAgICAtZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzCj4gK0NYWEZMQUdT
LSQoQ09ORklHX0xJQlJVQlkpICs9IC1mbm8tZ2NzZSAtZm5vLWdudS11bmlxdWUgXAo+ICsgICAg
ICAgICAgICAgICAgICAtZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzCj4gK0dPRkxBR1MtJChDT05G
SUdfTElCUlVCWSkgICs9IC1mbm8tZ2NzZSAtZm5vLWdudS11bmlxdWUgXAo+ICsgICAgICAgICAg
ICAgICAgICAtZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzCj4gKwo+ICAgIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMKPiAgICMgSGVscGVycwo+ICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPiAKCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 11:20:45 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 11:20:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4jsp-0006u0-2P; Thu, 20 Feb 2020 11:20:43 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=SL86=4I=stud.acs.upb.ro=vlad_andrei.badoiu@srs-us1.protection.inumbo.net>)
 id 1j4jsn-0006tv-OF
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 11:20:41 +0000
X-Inumbo-ID: 05ac95c8-53d3-11ea-aa99-bc764e2007e4
Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown
 [40.107.7.48]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 05ac95c8-53d3-11ea-aa99-bc764e2007e4;
 Thu, 20 Feb 2020 11:20:39 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=V6oEDNWo2ypIHpOE5+iz2hJcjMvvtqy+uEuLo/v6SsGjnTUJgTs3ylj05P7SgZEA2xMHVEkghv4Nt0n/MyhKLUoSUOLFgdgjybPeVcTuJG5snMGO5aDSU6mxsWfjWQcJWcARmo+hUR9s0mKMsYu+jR9KmoEt2QDMc5wu/UttzBYh8QFxGuh+YbErtNx/2qUs14D1CIVrXF3mHQe5yTC3sylNBF97Hki5SOkIZB6hWs9a9Z454hN3WYxi+JGuMg66M36mA//sGrygogKKepquCHgQ284MG+dhfcPj9OQuS0cI+6Bjk2tRtNGB4Csd70qC3WTZIzWbB5IIkqVEj9PyEQ==
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=9bDJ8SRPc1WE81wDdeS45n/Ab0D5c0+oi16/BnHe+1k=;
 b=ap4ZrLegFuwfDcDqR5x2oWpcyEI8/9GwP1KcYxPFNe9UyCCH9aUf9hoItPQPelC5Ssz6U/Eymz6sJImV84Pfbsj8ruxz3YBs7YFe1drG01JcS6ogV3ZyacdSiNZhxc0iXX6y4IuyslEodyIfN4cO9DF71PYZaknLI/yjAg1HwiOUwnJE8lBK0mXciSaG98aNOdgBB3KQjYhG4gyz4YyguGkqwYSe8Ag7AMv2OVHARrfb7+6j5CDnGQYMFzo9AZU+YLLsdN41cqf08h7FB2QfNajUYBwxvY+awBy6BeJ4sbj4LMX0zIo/viLdjGI3kAh9vi9KFipEhGrtENv8vwBgJQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=stud.acs.upb.ro; dmarc=pass action=none
 header.from=stud.acs.upb.ro; dkim=pass header.d=stud.acs.upb.ro; arc=none
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com (20.177.197.151)
 by AM6PR01MB5026.eurprd01.prod.exchangelabs.com (20.177.188.147) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.18; Thu, 20 Feb
 2020 11:20:37 +0000
Received: from AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710]) by AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 ([fe80::813c:62eb:5e9:1710%6]) with mapi id 15.20.2729.033; Thu, 20 Feb 2020
 11:20:37 +0000
Received: from thinky.precis.pub.ro (141.85.233.104) by
 AM0PR02CA0056.eurprd02.prod.outlook.com (2603:10a6:208:d2::33) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2750.18 via Frontend Transport; Thu, 20 Feb 2020 11:20:36 +0000
From: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
To: "minios-devel@lists.xen.org" <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT/MICROPYTHON PATCH 1/1] Fix crash caused by the
 Optimize for Performance config option
Thread-Index: AQHV59/GkFgNm3mQwUWueiITTpESjw==
Date: Thu, 20 Feb 2020 11:20:37 +0000
Message-ID: <20200220112027.27169-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: AM0PR02CA0056.eurprd02.prod.outlook.com
 (2603:10a6:208:d2::33) To AM6PR01MB4679.eurprd01.prod.exchangelabs.com
 (2603:10a6:20b:67::23)
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=vlad_andrei.badoiu@stud.acs.upb.ro; 
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 2.20.1
x-originating-ip: [141.85.233.104]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2666f536-c71e-46a3-797c-08d7b5f6e900
x-ms-traffictypediagnostic: AM6PR01MB5026:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <AM6PR01MB5026EBA847E484ED85527B18A6130@AM6PR01MB5026.eurprd01.prod.exchangelabs.com>
x-ms-oob-tlc-oobclassifiers: OLM:1091;
x-forefront-prvs: 031996B7EF
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(376002)(346002)(366004)(396003)(136003)(39830400003)(199004)(189003)(54906003)(66556008)(5660300002)(66446008)(64756008)(66476007)(2906002)(6512007)(786003)(16526019)(316002)(85182001)(1076003)(26005)(6916009)(6506007)(2616005)(4744005)(52116002)(86362001)(81156014)(6486002)(4326008)(186003)(8936002)(66946007)(8676002)(956004)(508600001)(71200400001)(85202003)(81166006);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR01MB5026;
 H:AM6PR01MB4679.eurprd01.prod.exchangelabs.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: stud.acs.upb.ro does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 9RLpNOsnYyHmk67xjDvMh281OFa7Af8y/77lptmfVNJfE+bh8dXIWwuRclszKcfOGC9WjP+fkTIGqjED9xAG7IPkA23ml8qTsoww6Puz1mFW3GuCPnlJ2j0n67zmr3/5jK+35FPX4Dz8ymK4fGbTh4wY15yXAkjM9L9Kapv4KrOOnq50SCi+1kis6nSHQlB9wF486yl1kJ8Ua5HzfHQgzx3Uz/VXwbXFP0fIvPcJXIYaXaRkojRJB0UMMGs4VNXCdsoQh4B0IwjDKnOKQZbW8j59FhU7s2lxM2FB1S07RcQE5h3TB4EwlFNd+9kIcHqQJiju9wsCQHcRGMIt18R3gbAnyLq1fJnmnBS6su4W0VYxRvdbn2nb+ohI86+UoA/oAjfDvEjgdU6y9RM79HQY36EiNkmpZbBxO7ISwMFLDkgTAreKrV37q8kf5VC4nZKM
x-ms-exchange-antispam-messagedata: LBAAmoA8bsm7jhmb1KZv719VUErKFUvY6Dyzn5uCAKjjffz+uoh9sUr1bhoOJwRcGIP0PHdatUpVb6aXcY08PtvWRzE8YKd4y5gS8RWNGsJuIVgi94IULeBaEumqJEB05eu/shA7LJv/wuVBC+cduA==
Content-ID: <64AEA1C8B5D17749940F83B7232571FC@eurprd01.prod.exchangelabs.com>
MIME-Version: 1.0
X-OriginatorOrg: stud.acs.upb.ro
X-MS-Exchange-CrossTenant-Network-Message-Id: 2666f536-c71e-46a3-797c-08d7b5f6e900
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2020 11:20:37.3968 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2d8cc8ba-8dda-4334-9e5c-fac2092e9bac
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: NDRIhiN0OSvkfta7/BUYBQl3WP9KM4WF5wgL77EYeySK0LAuR/SuIEvMqT4P6SV4MedS8vRauPZ04XXPKGT6moxIIhoonpvD0KpVJXnN3HU9dM7+G6Rb6LZLqkHIgJfB
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB5026
Subject: [Minios-devel] [UNIKRAFT/MICROPYTHON PATCH 1/1] Fix crash caused by
 the Optimize for Performance config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>,
 "simon.kuenzer@neclab.eu" <simon.kuenzer@neclab.eu>,
 =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2UgZGlzYWJsZSB0aGUgZ2NzZSwgZ251LXVuaXF1ZSwgYW5kIG1vdmUtbG9vcC1pbnZhcmlhbnRz
DQpmbGFncyBlbmFibGVkIGJ5IE8yLg0KDQpTaWduZWQtb2ZmLWJ5OiBWbGFkLUFuZHJlaSBCxIJE
T0lVIDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPg0KLS0tDQogTWFrZWZpbGUu
dWsgfCA3ICsrKysrKysNCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspDQoNCmRpZmYg
LS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrDQppbmRleCAxNGUxMGZhLi42ZWJlMDk4
IDEwMDY0NA0KLS0tIGEvTWFrZWZpbGUudWsNCisrKyBiL01ha2VmaWxlLnVrDQpAQCAtMTAxLDYg
KzEwMSwxMyBAQCBMSUJNSUNST1BZVEhPTl9DRkxBR1MteSArPSAtRFVOSVggLUROX1g2NCAtRCBN
SUNST1BZX1BZX0xXSVAgIFwNCiAJCQkgICAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlICAg
ICAgIFwNCiAJCQkgICAtV25vLXVudXNlZC1mdW5jdGlvbg0KIA0KK0NGTEFHUy0kKENPTkZJR19M
SUJSVUJZKQkrPSAtZm5vLWdjc2UgLWZuby1nbnUtdW5pcXVlIFwNCisJCS1mbm8tbW92ZS1sb29w
LWludmFyaWFudHMNCitDWFhGTEFHUy0kKENPTkZJR19MSUJSVUJZKSAJKz0gLWZuby1nY3NlIC1m
bm8tZ251LXVuaXF1ZSBcDQorCQktZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzDQorR09GTEFHUy0k
KENPTkZJR19MSUJSVUJZKQkrPSAtZm5vLWdjc2UgLWZuby1nbnUtdW5pcXVlIFwNCisJCS1mbm8t
bW92ZS1sb29wLWludmFyaWFudHMNCisNCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICMgVW5p
a3JhZnQgPC0+IE1pY3JvcHl0aG9uIGdsdWUgY29kZQ0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
DQotLSANCjIuMjAuMQ0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v
bWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 12:48:47 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 12:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4lG0-0007Ao-9P; Thu, 20 Feb 2020 12:48:44 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=dn6B=4I=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j4lFz-0007Ah-Hd
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 12:48:43 +0000
X-Inumbo-ID: 52372f46-53df-11ea-851b-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id 52372f46-53df-11ea-851b-12813bfff9fa;
 Thu, 20 Feb 2020 12:48:41 +0000 (UTC)
Received: from c408.ant-net (c408.ant-net [192.168.0.168])
 by queen.nlehd.de (Postfix) with ESMTP id 0015540127;
 Thu, 20 Feb 2020 13:48:39 +0100 (CET)
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: minios-devel@lists.xen.org
Date: Thu, 20 Feb 2020 13:48:31 +0100
Message-Id: <20200220124831.29998-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH v2] Fix crash caused by the
 "Optimize for Performance" config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: felipe.huici@neclab.eu, Simon Kuenzer <simon.kuenzer@neclab.eu>,
 =?UTF-8?q?Vlad-Andrei=20B=C4=82DOIU=20=2878692=29?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, sharan.santhanam@neclab.eu
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogVmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIpIDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1
ZC5hY3MudXBiLnJvPgoKV2UgZGlzYWJsZSB0aGUgZ2NzZSwgZ251LXVuaXF1ZSwgYW5kIG1vdmUt
bG9vcC1pbnZhcmlhbnRzCmZsYWdzIGVuYWJsZWQgYnkgTzIuCgpTaWduZWQtb2ZmLWJ5OiBWbGFk
LUFuZHJlaSBCxIJET0lVIDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPgpTaWdu
ZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5lY2xhYi5ldT4KLS0tCiBN
YWtlZmlsZS51ayB8IDcgKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQoK
ZGlmZiAtLWdpdCBhL01ha2VmaWxlLnVrIGIvTWFrZWZpbGUudWsKaW5kZXggMTRlMTBmYS4uODg3
NDdjYyAxMDA2NDQKLS0tIGEvTWFrZWZpbGUudWsKKysrIGIvTWFrZWZpbGUudWsKQEAgLTEwMSw2
ICsxMDEsMTMgQEAgTElCTUlDUk9QWVRIT05fQ0ZMQUdTLXkgKz0gLURVTklYIC1ETl9YNjQgLUQg
TUlDUk9QWV9QWV9MV0lQICBcCiAJCQkgICAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlICAg
ICAgIFwKIAkJCSAgIC1Xbm8tdW51c2VkLWZ1bmN0aW9uCiAKK0xJQk1JQ1JPUFlUSE9OX09QVElN
SVpBVElPTlMgKz0gLWZuby1nY3NlIC1mbm8tZ251LXVuaXF1ZSBcCisJCQkJLWZuby1tb3ZlLWxv
b3AtaW52YXJpYW50cworCitDRkxBR1MtJChDT05GSUdfTElCTUlDUk9QWVRIT04pICAgKz0gJChM
SUJNSUNST1BZVEhPTl9PUFRJTUlaQVRJT05TKQorQ1hYRkxBR1MtJChDT05GSUdfTElCTUlDUk9Q
WVRIT04pICs9ICQoTElCTUlDUk9QWVRIT05fT1BUSU1JWkFUSU9OUykKK0dPRkxBR1MtJChDT05G
SUdfTElCTUlDUk9QWVRIT04pICArPSAkKExJQk1JQ1JPUFlUSE9OX09QVElNSVpBVElPTlMpCisK
ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFVuaWtyYWZ0IDwtPiBNaWNyb3B5dGhvbiBnbHVl
IGNvZGUKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBs
aXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 12:50:08 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 12:50:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4lHL-000802-Rw; Thu, 20 Feb 2020 12:50:07 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=e7Vo=4I=gmail.com=felipehuici@srs-us1.protection.inumbo.net>)
 id 1j4lHK-0007ry-RY
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 12:50:06 +0000
X-Inumbo-ID: 84bfdc42-53df-11ea-ade5-bc764e2007e4
Received: from mail-vk1-xa41.google.com (unknown [2607:f8b0:4864:20::a41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 84bfdc42-53df-11ea-ade5-bc764e2007e4;
 Thu, 20 Feb 2020 12:50:06 +0000 (UTC)
Received: by mail-vk1-xa41.google.com with SMTP id i78so1146330vke.0
 for <minios-devel@lists.xen.org>; Thu, 20 Feb 2020 04:50:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc:content-transfer-encoding;
 bh=vXEBmTyTGQFI5yssc1WG4H1zw0lQNoEiu94SeYSBeT8=;
 b=WbGF9eLKH6uR3Cbsuq4tlTnCp8e+OYc1mck2+TcYK4S/K/D67RYlqHa7ke+WeRf26b
 UoH5xhUa+NW/xwNzYzfxD3u8dJAwodWLbfPgK+h2ZZz3sbokpb1PoM7RCTu4G7zNjAU5
 ZfiLlGcYFh4NE0fvyjxEmfR0L2bEuURGC13f9IjNPXT/9E4BuzwQz+8JFIY3Dm73NHvq
 TdE+MYdloFR4c+sXTMaK7IIpChIfL2zxty+A+sDzcwXBLjOqR3qKEaYl/7TAGYjPhjAP
 FVMh6DlUmz4zCNbMeaq/i4b4o+CBnGf3lUUmjDcSPahfdf+DLpzUf9KZPMs693d827wt
 hT2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc:content-transfer-encoding;
 bh=vXEBmTyTGQFI5yssc1WG4H1zw0lQNoEiu94SeYSBeT8=;
 b=osY5NaIIs6zJHKZzdsOJ+OYuMi1H2nRTplGH2zCuWLlGkgXL67MziPVXvXfOeJflZ7
 Zgvoyw2/WUMDHBkoz2K2vAJvLeJy2Z7g58EfbfuRgSBbLyI1gKT/YBOFJg6FbLdRKW+R
 42kFoYkXzEIa5R7uyKN0vvpq+3qcI1lI/l2pxyAIXjY9tPGiaGKV0OfkBaq7Dt5gOO8H
 1iBPpTegHAYnborbkmjuRo/+anPJ9ZiyfMPTtbaw7PKW2Ion+WzwGmXNdiiI6GyQEaj2
 j6PAvQZQTgvGnt4PhK62Wfe15ambDq6+hsd0HRUf1pUGgcKxsk61wh603N2JeDiSNE2t
 9RQw==
X-Gm-Message-State: APjAAAX5RucvcxUjCp44ghIJqkqtmqTdw1gywOL3Mh3LnWG5oZA/VL5s
 kozy3ziHnMP2hMXb7kt1L66faq4WnxijLu3rO4w=
X-Google-Smtp-Source: APXvYqwzS+63QREafP6B265/ot+SvxP885hmg7n2MgEC+7vSmE3e6g+EZ7zSOmXs+E1PSzRxSoVSMYkK0idJB8rIsOs=
X-Received: by 2002:a1f:328a:: with SMTP id y132mr14276464vky.60.1582203005442; 
 Thu, 20 Feb 2020 04:50:05 -0800 (PST)
MIME-Version: 1.0
References: <20200220124831.29998-1-simon.kuenzer@neclab.eu>
In-Reply-To: <20200220124831.29998-1-simon.kuenzer@neclab.eu>
From: "felipehuici ." <felipehuici@gmail.com>
Date: Thu, 20 Feb 2020 13:49:54 +0100
Message-ID: <CAEX4t-PeV577_W5+CybSh+chOanne2ueqy5AMrgYCPPU6JuqpQ@mail.gmail.com>
To: Simon Kuenzer <simon.kuenzer@neclab.eu>
Subject: Re: [Minios-devel] [UNIKRAFT PATCH v2] Fix crash caused by the
 "Optimize for Performance" config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 =?UTF-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, minios-devel@lists.xen.org,
 Sharan Santhanam <sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIFNpbW9uLgoKUmV2aWV3ZWQtYnk6IEZlbGlwZSBIdWljaSA8ZmVsaXBlLmh1aWNpQG5l
Y2xhYi5ldT4KCk9uIFRodSwgRmViIDIwLCAyMDIwIGF0IDE6NDggUE0gU2ltb24gS3VlbnplciA8
c2ltb24ua3VlbnplckBuZWNsYWIuZXU+IHdyb3RlOgo+Cj4gRnJvbTogVmxhZC1BbmRyZWkgQsSC
RE9JVSAoNzg2OTIpIDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPgo+Cj4gV2Ug
ZGlzYWJsZSB0aGUgZ2NzZSwgZ251LXVuaXF1ZSwgYW5kIG1vdmUtbG9vcC1pbnZhcmlhbnRzCj4g
ZmxhZ3MgZW5hYmxlZCBieSBPMi4KPgo+IFNpZ25lZC1vZmYtYnk6IFZsYWQtQW5kcmVpIELEgkRP
SVUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVkLmFjcy51cGIucm8+Cj4gU2lnbmVkLW9mZi1ieTog
U2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+Cj4gLS0tCj4gIE1ha2VmaWxl
LnVrIHwgNyArKysrKysrCj4gIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKPgo+IGRp
ZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCj4gaW5kZXggMTRlMTBmYS4uODg3
NDdjYyAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51awo+ICsrKyBiL01ha2VmaWxlLnVrCj4gQEAg
LTEwMSw2ICsxMDEsMTMgQEAgTElCTUlDUk9QWVRIT05fQ0ZMQUdTLXkgKz0gLURVTklYIC1ETl9Y
NjQgLUQgTUlDUk9QWV9QWV9MV0lQICBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLVdu
by11bnVzZWQtYnV0LXNldC12YXJpYWJsZSAgICAgICBcCj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLVduby11bnVzZWQtZnVuY3Rpb24KPgo+ICtMSUJNSUNST1BZVEhPTl9PUFRJTUlaQVRJ
T05TICs9IC1mbm8tZ2NzZSAtZm5vLWdudS11bmlxdWUgXAo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLWZuby1tb3ZlLWxvb3AtaW52YXJpYW50cwo+ICsKPiArQ0ZMQUdTLSQoQ09O
RklHX0xJQk1JQ1JPUFlUSE9OKSAgICs9ICQoTElCTUlDUk9QWVRIT05fT1BUSU1JWkFUSU9OUykK
PiArQ1hYRkxBR1MtJChDT05GSUdfTElCTUlDUk9QWVRIT04pICs9ICQoTElCTUlDUk9QWVRIT05f
T1BUSU1JWkFUSU9OUykKPiArR09GTEFHUy0kKENPTkZJR19MSUJNSUNST1BZVEhPTikgICs9ICQo
TElCTUlDUk9QWVRIT05fT1BUSU1JWkFUSU9OUykKPiArCj4gICMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCj4gICMgVW5pa3JhZnQgPC0+IE1pY3JvcHl0aG9uIGdsdWUgY29kZQo+ICAjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIwo+IC0tCj4gMi4yMC4xCj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCj4gTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdAo+IE1p
bmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWlu
aW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 12:50:12 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 12:50:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4lHQ-00084Q-Tc; Thu, 20 Feb 2020 12:50:12 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=dn6B=4I=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j4lHP-00084E-DU
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 12:50:11 +0000
X-Inumbo-ID: 86eee6b6-53df-11ea-8521-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 86eee6b6-53df-11ea-8521-12813bfff9fa;
 Thu, 20 Feb 2020 12:50:10 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 347AF103BF7;
 Thu, 20 Feb 2020 13:50:09 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id kLjqT11f4zgi; Thu, 20 Feb 2020 13:50:09 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 0FDAAFFAC0;
 Thu, 20 Feb 2020 13:50:09 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 20 Feb
 2020 13:50:08 +0100
To: <minios-devel@lists.xen.org>
References: <20200220124831.29998-1-simon.kuenzer@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <069d15f3-7823-3f82-f3f0-297f375463d1@neclab.eu>
Date: Thu, 20 Feb 2020 13:50:07 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200220124831.29998-1-simon.kuenzer@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH v2] Fix crash caused by the
 "Optimize for Performance" config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: felipe.huici@neclab.eu, =?UTF-8?Q?Vlad-Andrei_B=c4=82DOIU_=2878692=29?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, sharan.santhanam@neclab.eu
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U29ycnkgLSB0aGlzIHBhdGNoIGlzIGludGVuZGVkIGZvciBtaWNyb3B5dGhvbi4KCk9uIDIwLjAy
LjIwIDEzOjQ4LCBTaW1vbiBLdWVuemVyIHdyb3RlOgo+IEZyb206IFZsYWQtQW5kcmVpIELEgkRP
SVUgKDc4NjkyKSA8dmxhZF9hbmRyZWkuYmFkb2l1QHN0dWQuYWNzLnVwYi5ybz4KPiAKPiBXZSBk
aXNhYmxlIHRoZSBnY3NlLCBnbnUtdW5pcXVlLCBhbmQgbW92ZS1sb29wLWludmFyaWFudHMKPiBm
bGFncyBlbmFibGVkIGJ5IE8yLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFZsYWQtQW5kcmVpIELEgkRP
SVUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVkLmFjcy51cGIucm8+Cj4gU2lnbmVkLW9mZi1ieTog
U2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+Cj4gLS0tCj4gICBNYWtlZmls
ZS51ayB8IDcgKysrKysrKwo+ICAgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQo+IAo+
IGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCj4gaW5kZXggMTRlMTBmYS4u
ODg3NDdjYyAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51awo+ICsrKyBiL01ha2VmaWxlLnVrCj4g
QEAgLTEwMSw2ICsxMDEsMTMgQEAgTElCTUlDUk9QWVRIT05fQ0ZMQUdTLXkgKz0gLURVTklYIC1E
Tl9YNjQgLUQgTUlDUk9QWV9QWV9MV0lQICBcCj4gICAJCQkgICAtV25vLXVudXNlZC1idXQtc2V0
LXZhcmlhYmxlICAgICAgIFwKPiAgIAkJCSAgIC1Xbm8tdW51c2VkLWZ1bmN0aW9uCj4gICAKPiAr
TElCTUlDUk9QWVRIT05fT1BUSU1JWkFUSU9OUyArPSAtZm5vLWdjc2UgLWZuby1nbnUtdW5pcXVl
IFwKPiArCQkJCS1mbm8tbW92ZS1sb29wLWludmFyaWFudHMKPiArCj4gK0NGTEFHUy0kKENPTkZJ
R19MSUJNSUNST1BZVEhPTikgICArPSAkKExJQk1JQ1JPUFlUSE9OX09QVElNSVpBVElPTlMpCj4g
K0NYWEZMQUdTLSQoQ09ORklHX0xJQk1JQ1JPUFlUSE9OKSArPSAkKExJQk1JQ1JPUFlUSE9OX09Q
VElNSVpBVElPTlMpCj4gK0dPRkxBR1MtJChDT05GSUdfTElCTUlDUk9QWVRIT04pICArPSAkKExJ
Qk1JQ1JPUFlUSE9OX09QVElNSVpBVElPTlMpCj4gKwo+ICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKPiAgICMgVW5pa3JhZnQgPC0+IE1pY3JvcHl0aG9uIGdsdWUgY29kZQo+ICAgIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m
by9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 12:51:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 12:51:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4lIi-000892-Am; Thu, 20 Feb 2020 12:51:32 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=dn6B=4I=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j4lIh-00088p-6d
 for minios-devel@lists.xen.org; Thu, 20 Feb 2020 12:51:31 +0000
X-Inumbo-ID: b67eeb2e-53df-11ea-aa99-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b67eeb2e-53df-11ea-aa99-bc764e2007e4;
 Thu, 20 Feb 2020 12:51:29 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 15AA81041E5;
 Thu, 20 Feb 2020 13:51:29 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id HhcrrNJcoYSy; Thu, 20 Feb 2020 13:51:28 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id DDD061041D5;
 Thu, 20 Feb 2020 13:51:28 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 20 Feb
 2020 13:51:28 +0100
To: =?UTF-8?Q?Vlad-Andrei_B=c4=82DOIU_=2878692=29?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
References: <20200220112027.27169-1-vlad_andrei.badoiu@stud.acs.upb.ro>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <c4930b59-a5cb-3ec7-93eb-9ab383fbafa7@neclab.eu>
Date: Thu, 20 Feb 2020 13:51:27 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200220112027.27169-1-vlad_andrei.badoiu@stud.acs.upb.ro>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/MICROPYTHON PATCH 1/1] Fix crash
 caused by the Optimize for Performance config option
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "felipe.huici@neclab.eu" <felipe.huici@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

T24gMjAuMDIuMjAgMTI6MjAsIFZsYWQtQW5kcmVpIELEgkRPSVUgKDc4NjkyKSB3cm90ZToKPiBX
ZSBkaXNhYmxlIHRoZSBnY3NlLCBnbnUtdW5pcXVlLCBhbmQgbW92ZS1sb29wLWludmFyaWFudHMK
PiBmbGFncyBlbmFibGVkIGJ5IE8yLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFZsYWQtQW5kcmVpIELE
gkRPSVUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVkLmFjcy51cGIucm8+Cj4gLS0tCj4gICBNYWtl
ZmlsZS51ayB8IDcgKysrKysrKwo+ICAgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQo+
IAo+IGRpZmYgLS1naXQgYS9NYWtlZmlsZS51ayBiL01ha2VmaWxlLnVrCj4gaW5kZXggMTRlMTBm
YS4uNmViZTA5OCAxMDA2NDQKPiAtLS0gYS9NYWtlZmlsZS51awo+ICsrKyBiL01ha2VmaWxlLnVr
Cj4gQEAgLTEwMSw2ICsxMDEsMTMgQEAgTElCTUlDUk9QWVRIT05fQ0ZMQUdTLXkgKz0gLURVTklY
IC1ETl9YNjQgLUQgTUlDUk9QWV9QWV9MV0lQICBcCj4gICAJCQkgICAtV25vLXVudXNlZC1idXQt
c2V0LXZhcmlhYmxlICAgICAgIFwKPiAgIAkJCSAgIC1Xbm8tdW51c2VkLWZ1bmN0aW9uCj4gICAK
PiArQ0ZMQUdTLSQoQ09ORklHX0xJQlJVQlkpCSs9IC1mbm8tZ2NzZSAtZm5vLWdudS11bmlxdWUg
XAo+ICsJCS1mbm8tbW92ZS1sb29wLWludmFyaWFudHMKPiArQ1hYRkxBR1MtJChDT05GSUdfTElC
UlVCWSkgCSs9IC1mbm8tZ2NzZSAtZm5vLWdudS11bmlxdWUgXAo+ICsJCS1mbm8tbW92ZS1sb29w
LWludmFyaWFudHMKPiArR09GTEFHUy0kKENPTkZJR19MSUJSVUJZKQkrPSAtZm5vLWdjc2UgLWZu
by1nbnUtdW5pcXVlIFwKPiArCQktZm5vLW1vdmUtbG9vcC1pbnZhcmlhbnRzCgpIZXksIGl0IG5l
ZWRzIHRvIGJlICpGTEFHUy0kKENPTkZJR19MSUJNSUNST1BZVEhPTikgKz0gLi4uLCBJIHNlbnQg
YSB2Mi4KClRoYW5rcywKClNpbW9uCgo+ICsKPiAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4g
ICAjIFVuaWtyYWZ0IDwtPiBNaWNyb3B5dGhvbiBnbHVlIGNvZGUKPiAgICMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWlu
aW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Thu Feb 20 20:32:05 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 20:32:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4sUK-0008MC-IE; Thu, 20 Feb 2020 20:32:00 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <SRS0=GF6m=4I=owl.eu.com=hle@srs-us1.protection.inumbo.net>)
 id 1j4sUJ-0008M7-9R
 for minios-devel@lists.xenproject.org; Thu, 20 Feb 2020 20:31:59 +0000
X-Inumbo-ID: 09dd2b92-5420-11ea-8597-12813bfff9fa
Received: from relay1-d.mail.gandi.net (unknown [217.70.183.193])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 09dd2b92-5420-11ea-8597-12813bfff9fa;
 Thu, 20 Feb 2020 20:31:57 +0000 (UTC)
X-Originating-IP: 141.70.45.131
Received: from localhost (hadi-gate-vlan-851.hadiko.whka.de [141.70.45.131])
 (Authenticated sender: hle@owl.eu.com)
 by relay1-d.mail.gandi.net (Postfix) with ESMTPSA id 62C3A240004;
 Thu, 20 Feb 2020 20:31:55 +0000 (UTC)
Date: Thu, 20 Feb 2020 21:31:54 +0100
From: Hugo Lefeuvre <hle@owl.eu.com>
To: minios-devel@lists.xenproject.org
Message-ID: <eb2817fcf01c606ae84b1049a97a1b11afa6c0aa.1582230342.git.hle@owl.eu.com>
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/vfscore: fix null pointer
 dereference
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: multipart/mixed; boundary="===============5634590506799067772=="
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>


--===============5634590506799067772==
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="4j2js7izrk4ml2jt"
Content-Disposition: inline


--4j2js7izrk4ml2jt
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

fhold(fp) is called before checking for !fp, leading to null pointer
dereference if the allocation can't be satisfied. Make sure to check
for !fp before doing anything with this pointer.

Signed-off-by: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
---
 lib/vfscore/syscalls.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/vfscore/syscalls.c b/lib/vfscore/syscalls.c
index 11813db..9b5a6bd 100644
--- a/lib/vfscore/syscalls.c
+++ b/lib/vfscore/syscalls.c
@@ -198,11 +198,11 @@ sys_open(char *path, int flags, mode_t mode, struct v=
fscore_file **fpp)
 	}
=20
 	fp =3D calloc(sizeof(struct vfscore_file), 1);
-	fhold(fp);
 	if (!fp) {
 	    error =3D ENOMEM;
 	    goto out_vn_unlock;
 	}
+	fhold(fp);
 	fp->f_flags =3D flags;
=20
 	// OSv was using a intrusive_ptr which was increasing the refcount
--=20
2.24.1

--4j2js7izrk4ml2jt
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQGzBAABCgAdFiEEeDb9QWtkMa2LX4zREeMFjl5EGkIFAl5O7LoACgkQEeMFjl5E
GkJBkgv9GkIzyiNHeTksKMLg9l+M46kpLwYv89Qi5pyVhYFCyZTVWNWp012V01zj
LWNZRczsSbLYFwX4SCu7uaFFtXc9GDx1pEL7p8SRRJaelBqE9TVxyeQI9isJ/B4Z
9IbUw5GezGfDj/+vul9A4JUn3nl2SoWJpfG6urvNAZH4zPKtML4ehNcVOMGcw6nP
yQbjWZVGMKIYBSbxdp2E4XocjrItpjQpkXqW0ExlGJsJZpNuvsWyK5S+9+VX04e1
YtYtQxDJRQ/YypOfTzQD5G5cqDpluF/BvqPDvTa9Ld/CtFvXOoHFd8i3PUpkQy7C
A7sINAqkk4kgfa647qcVNgGQtaOsTnbZN1C1Kh0lIsixShJ6EVanSPY4X8or1ZrR
UIlWmr6K4dHArouog5TR1mG6icgXWk1kaVcPjkjwGLQ2hyvRlZUnv9VGe9BeS7fp
sqDlvSGTDMIF/0dz2ZBv1gAtnHF1dd1O9gFW6OG1TtYZ4BDjKKAfEEhIYnGHtlBh
/TvA3HT8
=LNxu
-----END PGP SIGNATURE-----

--4j2js7izrk4ml2jt--


--===============5634590506799067772==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

--===============5634590506799067772==--


From minios-devel-bounces@lists.xenproject.org Thu Feb 20 22:00:51 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 20 Feb 2020 22:00:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j4tsG-0008SM-JT; Thu, 20 Feb 2020 22:00:48 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=7mCc=4I=neclab.eu=sharan.santhanam@srs-us1.protection.inumbo.net>)
 id 1j4tsG-0008SH-2Q
 for minios-devel@lists.xenproject.org; Thu, 20 Feb 2020 22:00:48 +0000
X-Inumbo-ID: 714a41e7-542c-11ea-85b3-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 714a41e7-542c-11ea-85b3-12813bfff9fa;
 Thu, 20 Feb 2020 22:00:46 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 08F0DF2013;
 Thu, 20 Feb 2020 23:00:45 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id YYQPO54uWUSN; Thu, 20 Feb 2020 23:00:44 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id D6E09F200B
 for <minios-devel@lists.xenproject.org>; Thu, 20 Feb 2020 23:00:42 +0100 (CET)
Received: from [10.7.0.73] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 20 Feb
 2020 23:00:42 +0100
To: <minios-devel@lists.xenproject.org>
References: <eb2817fcf01c606ae84b1049a97a1b11afa6c0aa.1582230342.git.hle@owl.eu.com>
From: Sharan Santhanam <sharan.santhanam@neclab.eu>
Message-ID: <59b67409-04c7-d689-85b3-d66d64b0362c@neclab.eu>
Date: Thu, 20 Feb 2020 23:00:41 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <eb2817fcf01c606ae84b1049a97a1b11afa6c0aa.1582230342.git.hle@owl.eu.com>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] lib/vfscore: fix null pointer
 dereference
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UGF0Y2ggc2VlbXMgZmluZS4gR29vZCBzcG90ISEKClJldmlld2VkLWJ5OiBTaGFyYW4gU2FudGhh
bmFtIDxzaGFyYW4uc2FudGhhbmFtQG5lY2xhYi5ldT4KCk9uIDIvMjAvMjAgOTozMSBQTSwgSHVn
byBMZWZldXZyZSB3cm90ZToKPiBmaG9sZChmcCkgaXMgY2FsbGVkIGJlZm9yZSBjaGVja2luZyBm
b3IgIWZwLCBsZWFkaW5nIHRvIG51bGwgcG9pbnRlcgo+IGRlcmVmZXJlbmNlIGlmIHRoZSBhbGxv
Y2F0aW9uIGNhbid0IGJlIHNhdGlzZmllZC4gTWFrZSBzdXJlIHRvIGNoZWNrCj4gZm9yICFmcCBi
ZWZvcmUgZG9pbmcgYW55dGhpbmcgd2l0aCB0aGlzIHBvaW50ZXIuCj4gCj4gU2lnbmVkLW9mZi1i
eTogSHVnbyBMZWZldXZyZSA8aHVnby5sZWZldXZyZUBuZWNsYWIuZXU+Cj4gLS0tCj4gICBsaWIv
dmZzY29yZS9zeXNjYWxscy5jIHwgMiArLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u
KCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2xpYi92ZnNjb3JlL3N5c2NhbGxz
LmMgYi9saWIvdmZzY29yZS9zeXNjYWxscy5jCj4gaW5kZXggMTE4MTNkYi4uOWI1YTZiZCAxMDA2
NDQKPiAtLS0gYS9saWIvdmZzY29yZS9zeXNjYWxscy5jCj4gKysrIGIvbGliL3Zmc2NvcmUvc3lz
Y2FsbHMuYwo+IEBAIC0xOTgsMTEgKzE5OCwxMSBAQCBzeXNfb3BlbihjaGFyICpwYXRoLCBpbnQg
ZmxhZ3MsIG1vZGVfdCBtb2RlLCBzdHJ1Y3QgdmZzY29yZV9maWxlICoqZnBwKQo+ICAgCX0KPiAg
IAo+ICAgCWZwID0gY2FsbG9jKHNpemVvZihzdHJ1Y3QgdmZzY29yZV9maWxlKSwgMSk7Cj4gLQlm
aG9sZChmcCk7Cj4gICAJaWYgKCFmcCkgewo+ICAgCSAgICBlcnJvciA9IEVOT01FTTsKPiAgIAkg
ICAgZ290byBvdXRfdm5fdW5sb2NrOwo+ICAgCX0KPiArCWZob2xkKGZwKTsKPiAgIAlmcC0+Zl9m
bGFncyA9IGZsYWdzOwo+ICAgCj4gICAJLy8gT1N2IHdhcyB1c2luZyBhIGludHJ1c2l2ZV9wdHIg
d2hpY2ggd2FzIGluY3JlYXNpbmcgdGhlIHJlZmNvdW50Cj4gCj4gCj4gX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBNaW5pb3MtZGV2ZWwgbWFpbGluZyBs
aXN0Cj4gTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4gaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbAo+IAoKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxp
bmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 07:59:01 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 07:59:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j53D8-0008Or-Hf; Fri, 21 Feb 2020 07:58:58 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=mT7k=4J=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j53D7-0008Om-4C
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 07:58:57 +0000
X-Inumbo-ID: 01625e79-5480-11ea-85f4-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 01625e79-5480-11ea-85f4-12813bfff9fa;
 Fri, 21 Feb 2020 07:58:55 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 8706B10189D;
 Fri, 21 Feb 2020 08:58:54 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 7CiwcLyqKxzN; Fri, 21 Feb 2020 08:58:54 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 601D6FF894;
 Fri, 21 Feb 2020 08:58:54 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 21 Feb
 2020 08:58:54 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 21 Feb 2020 08:58:54
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT/ARM-INTRINSICS PATCH 1/3] Introduce library skeleton
Thread-Index: AQHV0Q8c70JdhKHJsUW/f3dhdH04sagld2aA
Date: Fri, 21 Feb 2020 07:58:53 +0000
Message-ID: <09D23B39-A8BB-4581-A03A-A203CFE2E56A@neclab.eu>
References: <20200122103116.14323-1-vlad_andrei.badoiu@stud.acs.upb.ro>
 <20200122103116.14323-2-vlad_andrei.badoiu@stud.acs.upb.ro>
In-Reply-To: <20200122103116.14323-2-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.13.200210
x-originating-ip: [192.168.24.96]
Content-ID: <5C4E827DA31ABB49ABE31C4067A155A6@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/ARM-INTRINSICS PATCH 1/3] Introduce
 library skeleton
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgVmxhZCwgdGhhbmtzIGZvciB0aGlzIHBhdGNoLCBsb29rcyBnb29kLg0KDQpSZXZpZXdlZC1i
eTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1Pg0KDQotLSBGZWxpcGUNCg0K
77u/T24gMjIuMDEuMjAsIDExOjMxLCAiVmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIpIiA8dmxh
ZF9hbmRyZWkuYmFkb2l1QHN0dWQuYWNzLnVwYi5ybz4gd3JvdGU6DQoNCiAgICBUaGUgbGlicmFy
eSB3aWxsIHByb3ZpZGUgYXJtIGludHJpbnNpY3Mgd2l0aCBkaWZmZXJlbnQgbGljZW5zZXMgYmFz
ZWQgb24gdGhlDQogICAgc291cmNlLiBDdXJyZW50bHksIHdlIHN1cHBvcnQgb25seSBHTlV2MyBm
cm9tIEdDQy4NCiAgICANCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkLUFuZHJlaSBCYWRvaXUgPHZs
YWRfYW5kcmVpLmJhZG9pdUBzdHVkLmFjcy51cGIucm8+DQogICAgLS0tDQogICAgIC5naXRpZ25v
cmUgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKw0KICAgICBDT0RJTkdfU1RZ
TEUubWQgfCAgNCArKysrDQogICAgIENPTlRSSUJVVElORy5tZCB8ICA0ICsrKysNCiAgICAgQ09Q
WUlORy5tZCAgICAgIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQogICAgIENv
bmZpZy51ayAgICAgICB8IDEwICsrKysrKysrKysNCiAgICAgTUFJTlRBSU5FUlMubWQgIHwgMTEg
KysrKysrKysrKysNCiAgICAgUkVBRE1FLm1kICAgICAgIHwgIDUgKysrKysNCiAgICAgNyBmaWxl
cyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspDQogICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCAuZ2l0
aWdub3JlDQogICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBDT0RJTkdfU1RZTEUubWQNCiAgICAgY3Jl
YXRlIG1vZGUgMTAwNjQ0IENPTlRSSUJVVElORy5tZA0KICAgICBjcmVhdGUgbW9kZSAxMDA2NDQg
Q09QWUlORy5tZA0KICAgICBjcmVhdGUgbW9kZSAxMDA2NDQgQ29uZmlnLnVrDQogICAgIGNyZWF0
ZSBtb2RlIDEwMDY0NCBNQUlOVEFJTkVSUy5tZA0KICAgICBjcmVhdGUgbW9kZSAxMDA2NDQgUkVB
RE1FLm1kDQogICAgDQogICAgZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlDQog
ICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAwMDAwMDAwLi43NWQyZmQzDQogICAg
LS0tIC9kZXYvbnVsbA0KICAgICsrKyBiLy5naXRpZ25vcmUNCiAgICBAQCAtMCwwICsxLDI3IEBA
DQogICAgKyouZGVwZW5kDQogICAgKyoubw0KICAgICsqLmENCiAgICArKi5kDQogICAgKyouc28N
CiAgICArKi5vcmlnDQogICAgKyoucmVqDQogICAgKyouYmFrDQogICAgKyouc3dwDQogICAgKyp+
DQogICAgKywqDQogICAgK1wjKlwjDQogICAgKy5cIyoNCiAgICArXCNfKlwjDQogICAgKy5cI18q
DQogICAgKyEuZ2l0aWdub3JlDQogICAgKy4qDQogICAgKw0KICAgICsjIGdudSBnbG9iYWwgZmls
ZXMNCiAgICArR1BBVEgNCiAgICArR1JUQUdTDQogICAgK0dTWU1TDQogICAgK0dUQUdTDQogICAg
Kw0KICAgICsjIGNzY29wZSBmaWxlcw0KICAgICtjc2NvcGUuKg0KICAgICtuY3Njb3BlLioNCiAg
ICBkaWZmIC0tZ2l0IGEvQ09ESU5HX1NUWUxFLm1kIGIvQ09ESU5HX1NUWUxFLm1kDQogICAgbmV3
IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAwMDAwMDAwLi41NzMwMDQxDQogICAgLS0tIC9k
ZXYvbnVsbA0KICAgICsrKyBiL0NPRElOR19TVFlMRS5tZA0KICAgIEBAIC0wLDAgKzEsNCBAQA0K
ICAgICtDb2RpbmcgU3R5bGUNCiAgICArPT09PT09PT09PT09DQogICAgKw0KICAgICtQbGVhc2Ug
cmVmZXIgdG8gdGhlIGBDT0RJTkdfU1RZTEUubWRgIGZpbGUgaW4gdGhlIG1haW4gVW5pa3JhZnQg
cmVwb3NpdG9yeS4NCiAgICBkaWZmIC0tZ2l0IGEvQ09OVFJJQlVUSU5HLm1kIGIvQ09OVFJJQlVU
SU5HLm1kDQogICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAwMDAwMDAwLi41ZjU1
ZWNhDQogICAgLS0tIC9kZXYvbnVsbA0KICAgICsrKyBiL0NPTlRSSUJVVElORy5tZA0KICAgIEBA
IC0wLDAgKzEsNCBAQA0KICAgICtDb250cmlidXRpbmcgdG8gVW5pa3JhZnQNCiAgICArPT09PT09
PT09PT09PT09PT09PT09PT0NCiAgICArDQogICAgK1BsZWFzZSByZWZlciB0byB0aGUgYENPTlRS
SUJVVElORy5tZGAgZmlsZSBpbiB0aGUgbWFpbiBVbmlrcmFmdCByZXBvc2l0b3J5Lg0KICAgIGRp
ZmYgLS1naXQgYS9DT1BZSU5HLm1kIGIvQ09QWUlORy5tZA0KICAgIG5ldyBmaWxlIG1vZGUgMTAw
NjQ0DQogICAgaW5kZXggMDAwMDAwMC4uZWUyMDRlMQ0KICAgIC0tLSAvZGV2L251bGwNCiAgICAr
KysgYi9DT1BZSU5HLm1kDQogICAgQEAgLTAsMCArMSwzMCBAQA0KICAgICtMaWNlbnNlDQogICAg
Kz09PT09PT0NCiAgICArDQogICAgK1VuaWtyYWZ0IGFybS1pbnRyaW5zaWNzIHdyYXBwZXINCiAg
ICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICArDQogICAgK1RoaXMgcmVwb3NpdG9yeSBj
b250YWlucyB3cmFwcGVyIGNvZGUgdG8gYnVpbGQgYXJtLWludHJpbnNpY3Mgd2l0aCBVbmlrcmFm
dC4NCiAgICArRWFjaCBDIGNvZGUgZmlsZSBpbiB0aGlzIHJlcG9zaXRvcnkgc2hvdWxkIGRlY2xh
cmUgd2hvIGlzIHRoZQ0KICAgICtjb3B5cmlnaHQgb3duZXIgYW5kIHVuZGVyIHdoaWNoIHRlcm1z
IGFuZCBjb25kaXRpb25zIHRoZSBjb2RlIGlzDQogICAgK2xpY2Vuc2VkLiBJZiBzdWNoIGEgbGlj
ZW5jZSBub3RlIGlzIG1pc3NpbmcsIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0DQogICAgK25vdGlj
ZSB3aWxsIGFwcGx5Og0KICAgICsNCiAgICArCUNvcHlyaWdodCAoYykgMjAxOSwgVW5pdmVyc2l0
eSBQb2xpdGVobmljYSBvZiBCdWNoYXJlc3QuIEFsbCByaWdodHMgDQogICAgKwlyZXNlcnZlZC4N
CiAgICArDQogICAgKwlUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yDQogICAgKwltb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljDQogICAgKwlMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXINCiAgICArCXZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiAg
ICArCQ0KICAgICsJVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsDQogICAgKwlidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KICAgICsJTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUNCiAgICArCUxl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQogICAgKwkNCiAg
ICArCVlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMNCiAgICArCUxpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnkgaW4gdGhl
IGZpbGUgQ09QWUlORy5MSUI7DQogICAgKwlpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sDQogICAgKwk1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAs
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBDQogICAgKw0KICAgIGRpZmYgLS1naXQgYS9Db25m
aWcudWsgYi9Db25maWcudWsNCiAgICBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAgIGluZGV4IDAw
MDAwMDAuLmNiYTQzYzQNCiAgICAtLS0gL2Rldi9udWxsDQogICAgKysrIGIvQ29uZmlnLnVrDQog
ICAgQEAgLTAsMCArMSwxMCBAQA0KICAgICttZW51Y29uZmlnIExJQkFSTV9JTlRSSU5TSUNTDQog
ICAgKyAgICBib29sICJBcm0gTmVvbiBJbnRyaW5zaWNzIg0KICAgICsgICAgZGVmYXVsdCBuDQog
ICAgKw0KICAgICtpZiBMSUJBUk1fSU5UUklOU0lDUw0KICAgICsNCiAgICArY29uZmlnIExJQkFS
TV9JTlRSSU5TSUNTX0dDQw0KICAgICsJYm9vbCAiVXNlIHRoZSBpbnRyaW5zaWNzIGZyb20gR0ND
IChHTlV2MykiDQogICAgKwlkZWZhdWx0IHkNCiAgICArZW5kaWYNCiAgICBkaWZmIC0tZ2l0IGEv
TUFJTlRBSU5FUlMubWQgYi9NQUlOVEFJTkVSUy5tZA0KICAgIG5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQogICAgaW5kZXggMDAwMDAwMC4uMGZiZDlhMA0KICAgIC0tLSAvZGV2L251bGwNCiAgICArKysg
Yi9NQUlOVEFJTkVSUy5tZA0KICAgIEBAIC0wLDAgKzEsMTEgQEANCiAgICArTWFpbnRhaW5lcnMg
TGlzdA0KICAgICs9PT09PT09PT09PT09PT09DQogICAgKw0KICAgICtGb3Igbm90ZXMgb24gaG93
IHRvIHJlYWQgdGhpcyBpbmZvcm1hdGlvbiwgcGxlYXNlIHJlZmVyIHRvIGBNQUlOVEFJTkVSUy5t
ZGAgaW4NCiAgICArdGhlIG1haW4gVW5pa3JhZnQgcmVwb3NpdG9yeS4NCiAgICArDQogICAgKwlM
SUJBUk1fSU5UUklOU0lDUy1VTklLUkFGVA0KICAgICsJTToJRmVsaXBlIEh1aWNpIDxmZWxpcGUu
aHVpY2lAbmVjbGFiLmV1Pg0KICAgICsJTToJVmxhZC1BbmRyZWkgQmFkb2l1IDx2bGFkX2FuZHJl
aS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPg0KICAgICsJTDoJbWluaW9zLWRldmVsQGxpc3RzLnhl
bi5vcmcNCiAgICArCUY6ICoNCiAgICBkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1k
DQogICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAwMDAwMDAwLi5lZDZhZTdjDQog
ICAgLS0tIC9kZXYvbnVsbA0KICAgICsrKyBiL1JFQURNRS5tZA0KICAgIEBAIC0wLDAgKzEsNSBA
QA0KICAgICtsaWJhcm1cX2ludHJpbmlzY3MgZm9yIFVuaWtyYWZ0DQogICAgKz09PT09PT09PT09
PT09PT09PT0NCiAgICArDQogICAgK1BsZWFzZSByZWZlciB0byB0aGUgYFJFQURNRS5tZGAgYXMg
d2VsbCBhcyB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgYGRvYy9gDQogICAgK3N1YmRpcmVjdG9y
eSBvZiB0aGUgbWFpbiB1bmlrcmFmdCByZXBvc2l0b3J5Lg0KICAgIC0tIA0KICAgIDIuMjAuMQ0K
ICAgIA0KICAgIA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWlu
aW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 08:20:37 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 08:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j53Y3-00037D-HF; Fri, 21 Feb 2020 08:20:35 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=mT7k=4J=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j53Y1-000375-Ku
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 08:20:33 +0000
X-Inumbo-ID: 0696f8f6-5483-11ea-85f6-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 0696f8f6-5483-11ea-85f6-12813bfff9fa;
 Fri, 21 Feb 2020 08:20:32 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 36753F2017;
 Fri, 21 Feb 2020 09:20:31 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 5hp5Fx2nEyEU; Fri, 21 Feb 2020 09:20:31 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 0AF83F2016;
 Fri, 21 Feb 2020 09:20:27 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 21 Feb
 2020 09:20:26 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 21 Feb 2020 09:20:26
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT/ARM-INTRINSICS PATCH 2/3] Add Makefile.uk
Thread-Index: AQHV0Q8bWBIC12zzJUWTDQGrvIDV4qglfWsA
Date: Fri, 21 Feb 2020 08:20:26 +0000
Message-ID: <ACA0B3D8-5639-47A0-B47A-A26C4CB81094@neclab.eu>
References: <20200122103116.14323-1-vlad_andrei.badoiu@stud.acs.upb.ro>
 <20200122103116.14323-3-vlad_andrei.badoiu@stud.acs.upb.ro>
In-Reply-To: <20200122103116.14323-3-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.13.200210
x-originating-ip: [192.168.24.96]
Content-ID: <376426BF48516048A33E2891C6804C8F@office.hd>
MIME-Version: 1.0
Subject: Re: [Minios-devel] [UNIKRAFT/ARM-INTRINSICS PATCH 2/3] Add
 Makefile.uk
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgVmxhZCwgdGhhbmtzIGZvciB0aGlzIHBhdGNoLCBsb29rcyBnb29kLg0KDQpSZXZpZXdlZC1i
eTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1Pg0KDQotLSBGZWxpcGUNCg0K
77u/T24gMjIuMDEuMjAsIDExOjMxLCAiVmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIpIiA8dmxh
ZF9hbmRyZWkuYmFkb2l1QHN0dWQuYWNzLnVwYi5ybz4gd3JvdGU6DQoNCiAgICBTaWduZWQtb2Zm
LWJ5OiBWbGFkLUFuZHJlaSBCYWRvaXUgPHZsYWRfYW5kcmVpLmJhZG9pdUBzdHVkLmFjcy51cGIu
cm8+DQogICAgLS0tDQogICAgIE1ha2VmaWxlLnVrIHwgNDQgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysNCiAgICAgMSBmaWxlIGNoYW5nZWQsIDQ0IGluc2VydGlv
bnMoKykNCiAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1ha2VmaWxlLnVrDQogICAgDQogICAgZGlm
ZiAtLWdpdCBhL01ha2VmaWxlLnVrIGIvTWFrZWZpbGUudWsNCiAgICBuZXcgZmlsZSBtb2RlIDEw
MDY0NA0KICAgIGluZGV4IDAwMDAwMDAuLjQxZDk1MGENCiAgICAtLS0gL2Rldi9udWxsDQogICAg
KysrIGIvTWFrZWZpbGUudWsNCiAgICBAQCAtMCwwICsxLDQ0IEBADQogICAgKyMgIGxpYmFybV9p
bnRyaW5zaWNzIE1ha2VmaWxlLnVrDQogICAgKyMNCiAgICArIyAgQXV0aG9yczogVmxhZC1BbmRy
ZWkgQmFkb2l1IDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPg0KICAgICsjDQog
ICAgKyMgIENvcHlyaWdodCAoYykgMjAxOSwgVW5pdmVyc2l0eSBQb2xpdGVobmljYSBvZiBCdWNo
YXJlc3QuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogICAgKyMNCiAgICArIyAgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQog
ICAgKyMgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucw0KICAgICsjICBhcmUgbWV0Og0KICAgICsjDQogICAgKyMgIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0DQogICAgKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4NCiAgICArIyAgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAgICArIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQ0KICAgICsjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KICAgICsjICAzLiBOZWl0aGVyIHRoZSBu
YW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzDQogICAgKyMg
ICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tDQogICAgKyMgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogICAgKyMNCiAgICArIyAgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAi
QVMgSVMiDQogICAgKyMgIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUNCiAgICArIyAgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UNCiAgICArIyAgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRQ0KICAgICsjICBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SDQogICAgKyMg
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GDQogICAgKyMgIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KICAgICsjICBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTg0KICAgICsjICBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQ0KICAgICsjICBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQ0K
ICAgICsjICBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAgICArIw0KICAgICsjICBUSElT
IEhFQURFUiBNQVkgTk9UIEJFIEVYVFJBQ1RFRCBPUiBNT0RJRklFRCBJTiBBTlkgV0FZLg0KICAg
ICsjDQogICAgKw0KICAgICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAgICsjIExpYnJhcnkg
cmVnaXN0cmF0aW9uDQogICAgKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogICAgKyQoZXZhbCAk
KGNhbGwgYWRkbGliX3MsbGliYXJtX2ludHJpbnNpY3MsJChDT05GSUdfTElCQVJNX0lOVFJJTlNJ
Q1MpKSkNCiAgICArDQogICAgKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogICAgKyMgTGlicmFy
eSBpbmNsdWRlcw0KICAgICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAgICtDSU5DTFVERVMt
JChDT05GSUdfTElCQVJNX0lOVFJJTlNJQ1NfR0NDKSArPSAtSSQoTElCQVJNX0lOVFJJTlNJQ1Nf
QkFTRSkvaW5jbHVkZS9nY2MNCiAgICArQ1hYSU5DTFVERVMtJChDT05GSUdfTElCQVJNX0lOVFJJ
TlNJQ1NfR0NDKSArPSAtSSQoTElCQVJNX0lOVFJJTlNJQ1NfQkFTRSkvaW5jbHVkZS9nY2MNCiAg
ICAtLSANCiAgICAyLjIwLjENCiAgICANCiAgICANCg0KX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3Mt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t
YWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 08:21:36 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 08:21:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j53Z2-000390-2q; Fri, 21 Feb 2020 08:21:36 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=mT7k=4J=neclab.eu=felipe.huici@srs-us1.protection.inumbo.net>)
 id 1j53Yc-00038h-9h
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 08:21:10 +0000
X-Inumbo-ID: 1c103d64-5483-11ea-b0fd-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 1c103d64-5483-11ea-b0fd-bc764e2007e4;
 Fri, 21 Feb 2020 08:21:08 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 45C9710189D;
 Fri, 21 Feb 2020 09:21:07 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ugdtUMy34ZuH; Fri, 21 Feb 2020 09:21:06 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 8390DFF894;
 Fri, 21 Feb 2020 09:21:06 +0100 (CET)
Received: from oberon.office.hd (192.168.24.90) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 21 Feb
 2020 09:21:03 +0100
Received: from oberon.office.hd ([192.168.126.11]) by Oberon.office.hd
 ([192.168.126.11]) with mapi id 15.01.1713.009; Fri, 21 Feb 2020 09:21:03
 +0100
From: Felipe Huici <Felipe.Huici@neclab.eu>
To: =?utf-8?B?VmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIp?=
 <vlad_andrei.badoiu@stud.acs.upb.ro>, "minios-devel@lists.xen.org"
 <minios-devel@lists.xen.org>
Thread-Topic: [UNIKRAFT/ARM-INTRINSICS PATCH 3/3] Add headers from GCC
Thread-Index: AQHV0Q8xrmCNrqm0fUG4cKgqBGTSgqglfZWA
Date: Fri, 21 Feb 2020 08:21:02 +0000
Message-ID: <8229E159-3B9D-46D7-B1BE-18A0D5855FB8@neclab.eu>
References: <20200122103116.14323-1-vlad_andrei.badoiu@stud.acs.upb.ro>
 <20200122103116.14323-4-vlad_andrei.badoiu@stud.acs.upb.ro>
In-Reply-To: <20200122103116.14323-4-vlad_andrei.badoiu@stud.acs.upb.ro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.13.200210
x-originating-ip: [192.168.24.96]
Content-ID: <5E33BD58DA327B4E9F1A33EE879784E6@office.hd>
MIME-Version: 1.0
X-Mailman-Approved-At: Fri, 21 Feb 2020 08:21:34 +0000
Subject: Re: [Minios-devel] [UNIKRAFT/ARM-INTRINSICS PATCH 3/3] Add headers
 from GCC
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgVmxhZCwgdGhhbmtzIGZvciB0aGlzIHBhdGNoLCBsb29rcyBnb29kLg0KDQpSZXZpZXdlZC1i
eTogRmVsaXBlIEh1aWNpIDxmZWxpcGUuaHVpY2lAbmVjbGFiLmV1Pg0KDQotLSBGZWxpcGUNCg0K
77u/T24gMjIuMDEuMjAsIDExOjMyLCAiVmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIpIiA8dmxh
ZF9hbmRyZWkuYmFkb2l1QHN0dWQuYWNzLnVwYi5ybz4gd3JvdGU6DQoNCiAgICBUaGUgaGVhZGVy
cyBhcmUgdW5kZXIgdGhlIEdOVXYzIGxpY2Vuc2UuDQogICAgDQogICAgU2lnbmVkLW9mZi1ieTog
VmxhZC1BbmRyZWkgQmFkb2l1IDx2bGFkX2FuZHJlaS5iYWRvaXVAc3R1ZC5hY3MudXBiLnJvPg0K
ICAgIC0tLQ0KICAgICBpbmNsdWRlL2djYy9hcm1fZnAxNi5oIHwgICA1NzkgKw0KICAgICBpbmNs
dWRlL2djYy9hcm1fbmVvbi5oIHwgMzE2OTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrDQogICAgIDIgZmlsZXMgY2hhbmdlZCwgMzIyNzIgaW5zZXJ0aW9ucygrKQ0KICAg
ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9nY2MvYXJtX2ZwMTYuaA0KICAgICBjcmVhdGUg
bW9kZSAxMDA2NDQgaW5jbHVkZS9nY2MvYXJtX25lb24uaA0KICAgIA0KICAgIGRpZmYgLS1naXQg
YS9pbmNsdWRlL2djYy9hcm1fZnAxNi5oIGIvaW5jbHVkZS9nY2MvYXJtX2ZwMTYuaA0KICAgIG5l
dyBmaWxlIG1vZGUgMTAwNjQ0DQogICAgaW5kZXggMDAwMDAwMC4uNTVmOWI4Yw0KICAgIC0tLSAv
ZGV2L251bGwNCiAgICArKysgYi9pbmNsdWRlL2djYy9hcm1fZnAxNi5oDQogICAgQEAgLTAsMCAr
MSw1NzkgQEANCiAgICArLyogQVJNIEZQMTYgc2NhbGFyIGludHJpbnNpY3MgaW5jbHVkZSBmaWxl
Lg0KICAgICsNCiAgICArICAgQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuDQogICAgKyAgIENvbnRyaWJ1dGVkIGJ5IEFSTSBMdGQuDQogICAgKw0K
ICAgICsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuDQogICAgKw0KICAgICsgICBHQ0MgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdA0K
ICAgICsgICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGFzIHB1Ymxpc2hlZA0KICAgICsgICBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91cg0KICAgICsgICBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLg0KICAgICsNCiAgICArICAgR0NDIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUDQogICAgKyAgIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWQ0KICAg
ICsgICBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdl
bmVyYWwgUHVibGljDQogICAgKyAgIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiAgICArDQog
ICAgKyAgIFVuZGVyIFNlY3Rpb24gNyBvZiBHUEwgdmVyc2lvbiAzLCB5b3UgYXJlIGdyYW50ZWQg
YWRkaXRpb25hbA0KICAgICsgICBwZXJtaXNzaW9ucyBkZXNjcmliZWQgaW4gdGhlIEdDQyBSdW50
aW1lIExpYnJhcnkgRXhjZXB0aW9uLCB2ZXJzaW9uDQogICAgKyAgIDMuMSwgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQogICAgKw0KICAgICsgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBhbmQNCiAgICArICAgYSBjb3B5IG9mIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4Y2VwdGlv
biBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsNCiAgICArICAgc2VlIHRoZSBmaWxlcyBDT1BZSU5H
MyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlDQogICAgKyAg
IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovDQogICAgKw0KICAgICsjaWZuZGVm
IF9BQVJDSDY0X0ZQMTZfSF8NCiAgICArI2RlZmluZSBfQUFSQ0g2NF9GUDE2X0hfDQogICAgKw0K
ICAgICsjaW5jbHVkZSA8c3RkaW50Lmg+DQogICAgKw0KICAgICsjcHJhZ21hIEdDQyBwdXNoX29w
dGlvbnMNCiAgICArI3ByYWdtYSBHQ0MgdGFyZ2V0ICgiYXJjaD1hcm12OC4yLWErZnAxNiIpDQog
ICAgKw0KICAgICt0eXBlZGVmIF9fZnAxNiBmbG9hdDE2X3Q7DQogICAgKw0KICAgICsvKiBBUk12
OC4yLUEgRlAxNiBvbmUgb3BlcmFuZCBzY2FsYXIgaW50cmluc2ljcy4gICovDQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBmbG9hdDE2X3QgX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmFic2hfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Fic2hmIChfX2EpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSB1aW50MTZfdCBfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y2VxemhfZjE2IChmbG9hdDE2
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NtZXFoZl91
c3MgKF9fYSwgMC4wZik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGlj
IF9faW5saW5lIHVpbnQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQog
ICAgK3ZjZ2V6aF9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfY21nZWhmX3VzcyAoX19hLCAwLjBmKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgdWludDE2X3QgX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmNndHpoX2YxNiAoZmxvYXQxNl90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jbWd0aGZfdXNzIChfX2EsIDAu
MGYpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSB1
aW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y2xlemhf
ZjE2IChmbG9hdDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X2NtbGVoZl91c3MgKF9fYSwgMC4wZik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gc3RhdGljIF9faW5saW5lIHVpbnQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXykpDQogICAgK3ZjbHR6aF9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY21sdGhmX3VzcyAoX19hLCAwLjBmKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgZmxvYXQxNl90IF9f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRoX2YxNl9zMTYgKGlu
dDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zsb2F0
aGloZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19p
bmxpbmUgZmxvYXQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAg
K3ZjdnRoX2YxNl9zMzIgKGludDMyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X2Zsb2F0c2loZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBzdGF0aWMgX19pbmxpbmUgZmxvYXQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXykpDQogICAgK3ZjdnRoX2YxNl9zNjQgKGludDY0X3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zsb2F0ZGloZiAoX19hKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgZmxvYXQxNl90IF9fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRoX2YxNl91MTYgKHVpbnQx
Nl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbG9hdHVu
c2hpaGZfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGlj
IF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0K
ICAgICt2Y3Z0aF9mMTZfdTMyICh1aW50MzJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfZmxvYXR1bnNzaWhmX3VzIChfX2EpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBmbG9hdDE2X3QgX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmN2dGhfZjE2X3U2NCAodWludDY0X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zsb2F0dW5zZGloZl91
cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxp
bmUgaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0
aF9zMTZfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X2ZpeF90cnVuY2hmaGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIGludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fKSkNCiAgICArdmN2dGhfczMyX2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9maXhfdHJ1bmNoZnNpIChfX2EpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBpbnQ2NF90IF9f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRoX3M2NF9mMTYgKGZs
b2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZml4
X3RydW5jaGZkaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0
aWMgX19pbmxpbmUgdWludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkN
CiAgICArdmN2dGhfdTE2X2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9maXh1bnNfdHJ1bmNoZmhpX3VzIChfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSB1aW50MzJfdCBfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0aF91MzJfZjE2IChmbG9hdDE2
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZpeHVuc190
cnVuY2hmc2lfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3Rh
dGljIF9faW5saW5lIHVpbnQ2NF90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykp
DQogICAgK3ZjdnRoX3U2NF9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfZml4dW5zX3RydW5jaGZkaV91cyAoX19hKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgaW50MTZfdCBfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0YWhfczE2X2YxNiAoZmxvYXQx
Nl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9scm91bmRo
ZmhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lu
bGluZSBpbnQzMl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3Zj
dnRhaF9zMzJfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X2xyb3VuZGhmc2kgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIGludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fKSkNCiAgICArdmN2dGFoX3M2NF9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbHJvdW5kaGZkaSAoX19hKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgdWludDE2X3QgX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmN2dGFoX3UxNl9mMTYgKGZs
b2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbHJv
dW5kdWhmaGlfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3Rh
dGljIF9faW5saW5lIHVpbnQzMl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykp
DQogICAgK3ZjdnRhaF91MzJfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xyb3VuZHVoZnNpX3VzIChfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSB1aW50NjRfdCBfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0YWhfdTY0X2YxNiAoZmxvYXQxNl90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9scm91bmR1aGZk
aV91cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19p
bmxpbmUgaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2
Y3Z0bWhfczE2X2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9sZmxvb3JoZmhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBpbnQzMl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXykpDQogICAgK3ZjdnRtaF9zMzJfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xmbG9vcmhmc2kgKF9fYSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIGludDY0X3QgX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmN2dG1oX3M2NF9mMTYgKGZs
b2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZs
b29yaGZkaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMg
X19pbmxpbmUgdWludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAg
ICArdmN2dG1oX3UxNl9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfbGZsb29ydWhmaGlfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIHVpbnQzMl90IF9fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRtaF91MzJfZjE2IChmbG9hdDE2X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xmbG9vcnVoZnNpX3Vz
IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGlu
ZSB1aW50NjRfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0
bWhfdTY0X2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9sZmxvb3J1aGZkaV91cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0bmhfczE2X2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sZnJpbnRuaGZoaSAoX19hKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgaW50MzJfdCBf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0bmhfczMyX2YxNiAo
ZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9s
ZnJpbnRuaGZzaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0
aWMgX19pbmxpbmUgaW50NjRfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0K
ICAgICt2Y3Z0bmhfczY0X2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9sZnJpbnRuaGZkaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgdWludDE2X3QgX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmN2dG5oX3UxNl9mMTYgKGZsb2F0MTZfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZyaW50bnVoZmhpX3Vz
IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGlu
ZSB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0
bmhfdTMyX2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9sZnJpbnRudWhmc2lfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIHVpbnQ2NF90IF9fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRuaF91NjRfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xmcmludG51aGZkaV91cyAoX19h
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgaW50
MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0cGhfczE2
X2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9sY2VpbGhmaGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
c3RhdGljIF9faW5saW5lIGludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
KSkNCiAgICArdmN2dHBoX3MzMl9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGNlaWxoZnNpIChfX2EpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBpbnQ2NF90IF9fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRwaF9zNjRfZjE2IChmbG9hdDE2X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xjZWlsaGZkaSAoX19h
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgdWlu
dDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmN2dHBoX3Ux
Nl9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfbGNlaWx1aGZoaV91cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBzdGF0aWMgX19pbmxpbmUgdWludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fKSkNCiAgICArdmN2dHBoX3UzMl9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGNlaWx1aGZzaV91cyAoX19hKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgdWludDY0X3QgX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmN2dHBoX3U2NF9mMTYgKGZs
b2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGNl
aWx1aGZkaV91cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0
aWMgX19pbmxpbmUgZmxvYXQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykp
DQogICAgK3ZuZWdoX2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9uZWdoZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBzdGF0aWMgX19pbmxpbmUgZmxvYXQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXykpDQogICAgK3ZyZWNwZWhfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZyZWNwZWhmIChfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBmbG9hdDE2X3QgX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdnJlY3B4aF9mMTYgKGZsb2F0MTZf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZnJlY3B4aGYg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5l
IGZsb2F0MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2cm5k
aF9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfYnRydW5jaGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
c3RhdGljIF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18pKQ0KICAgICt2cm5kYWhfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JvdW5kaGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2cm5kaWhfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X25lYXJieWludGhmIChfX2EpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBmbG9hdDE2
X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdnJuZG1oX2YxNiAo
ZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9m
bG9vcmhmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBf
X2lubGluZSBmbG9hdDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAg
ICArdnJuZG5oX2YxNiAoZmxvYXQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9mcmludG5oZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBzdGF0aWMgX19pbmxpbmUgZmxvYXQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXykpDQogICAgK3ZybmRwaF9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY2VpbGhmIChfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBmbG9hdDE2X3QgX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdnJuZHhoX2YxNiAoZmxvYXQxNl90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yaW50aGYgKF9fYSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIGZsb2F0
MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2cnNxcnRlaF9m
MTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfcnNxcnRlaGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3Rh
dGljIF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18p
KQ0KICAgICt2c3FydGhfZjE2IChmbG9hdDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3NxcnRoZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArLyog
QVJNdjguMi1BIEZQMTYgdHdvIG9wZXJhbmRzIHNjYWxhciBpbnRyaW5zaWNzLiAgKi8NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2YWRkaF9mMTYgKGZsb2F0MTZfdCBfX2Es
IGZsb2F0MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICsgX19iOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBmbG9hdDE2X3QgX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmFiZGhfZjE2IChmbG9hdDE2
X3QgX19hLCBmbG9hdDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X2ZhYmRoZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIHN0YXRpYyBfX2lubGluZSB1aW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18pKQ0KICAgICt2Y2FnZWhfZjE2IChmbG9hdDE2X3QgX19hLCBmbG9hdDE2X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZhY2dlaGZfdXNzIChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5l
IHVpbnQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjYWd0
aF9mMTYgKGZsb2F0MTZfdCBfX2EsIGZsb2F0MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfZmFjZ3RoZl91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgdWludDE2X3QgX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmNhbGVoX2YxNiAoZmxvYXQxNl90IF9f
YSwgZmxvYXQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9mYWNsZWhmX3VzcyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIHN0YXRpYyBfX2lubGluZSB1aW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18pKQ0KICAgICt2Y2FsdGhfZjE2IChmbG9hdDE2X3QgX19hLCBmbG9hdDE2X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZhY2x0aGZfdXNzIChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5l
IHVpbnQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjZXFo
X2YxNiAoZmxvYXQxNl90IF9fYSwgZmxvYXQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9jbWVxaGZfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIHVpbnQxNl90IF9fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjZ2VoX2YxNiAoZmxvYXQxNl90IF9fYSwg
ZmxvYXQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9j
bWdlaGZfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
c3RhdGljIF9faW5saW5lIHVpbnQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XykpDQogICAgK3ZjZ3RoX2YxNiAoZmxvYXQxNl90IF9fYSwgZmxvYXQxNl90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jbWd0aGZfdXNzIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIHVpbnQx
Nl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjbGVoX2YxNiAo
ZmxvYXQxNl90IF9fYSwgZmxvYXQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9jbWxlaGZfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIHVpbnQxNl90IF9fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjbHRoX2YxNiAoZmxvYXQxNl90IF9fYSwgZmxvYXQx
Nl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jbWx0aGZf
dXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGlj
IF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0K
ICAgICt2Y3Z0aF9uX2YxNl9zMTYgKGludDE2X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NjdnRmaGkgKF9fYSwgX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgZmxvYXQxNl90
IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRoX25fZjE2X3Mz
MiAoaW50MzJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfc2N2dGZzaWhmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0aF9uX2YxNl9zNjQgKGludDY0X3QgX19hLCBj
b25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nj
dnRmZGloZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0
YXRpYyBfX2lubGluZSBmbG9hdDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
KSkNCiAgICArdmN2dGhfbl9mMTZfdTE2ICh1aW50MTZfdCBfX2EsIGNvbnN0IGludCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdWN2dGZoaV9zdXMgKF9fYSwg
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUg
ZmxvYXQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRo
X25fZjE2X3UzMiAodWludDMyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VjdnRmc2loZl9zdXMgKF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgZmxvYXQxNl90IF9f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRoX25fZjE2X3U2NCAo
dWludDY0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3VjdnRmZGloZl9zdXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2Y3Z0aF9uX3MxNl9mMTYgKGZsb2F0MTZfdCBfX2Es
IGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
ZmN2dHpzaGYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBz
dGF0aWMgX19pbmxpbmUgaW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18p
KQ0KICAgICt2Y3Z0aF9uX3MzMl9mMTYgKGZsb2F0MTZfdCBfX2EsIGNvbnN0IGludCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZmN2dHpzaGZzaSAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBp
bnQ2NF90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRoX25f
czY0X2YxNiAoZmxvYXQxNl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mY3Z0enNoZmRpIChfX2EsIF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIHVpbnQxNl90IF9fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZjdnRoX25fdTE2X2YxNiAoZmxvYXQx
Nl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9mY3Z0enVoZl91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgdWludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fKSkNCiAgICArdmN2dGhfbl91MzJfZjE2IChmbG9hdDE2X3QgX19hLCBjb25z
dCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZjdnR6
dWhmc2lfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
c3RhdGljIF9faW5saW5lIHVpbnQ2NF90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XykpDQogICAgK3ZjdnRoX25fdTY0X2YxNiAoZmxvYXQxNl90IF9fYSwgY29uc3QgaW50IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mY3Z0enVoZmRpX3VzcyAo
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lu
bGluZSBmbG9hdDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICAr
dmRpdmhfZjE2IChmbG9hdDE2X3QgX19hLCBmbG9hdDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYSAvIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0
aWMgX19pbmxpbmUgZmxvYXQxNl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykp
DQogICAgK3ZtYXhoX2YxNiAoZmxvYXQxNl90IF9fYSwgZmxvYXQxNl90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbWF4aGYgKF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgZmxvYXQxNl90IF9f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZtYXhubWhfZjE2IChmbG9h
dDE2X3QgX19hLCBmbG9hdDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X2ZtYXhoZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIHN0YXRpYyBfX2lubGluZSBmbG9hdDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fKSkNCiAgICArdm1pbmhfZjE2IChmbG9hdDE2X3QgX19hLCBmbG9hdDE2X3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtaW5oZiAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBm
bG9hdDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdm1pbm5t
aF9mMTYgKGZsb2F0MTZfdCBfX2EsIGZsb2F0MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfZm1pbmhmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2bXVsaF9mMTYgKGZsb2F0MTZfdCBfX2EsIGZs
b2F0MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBmbG9hdDE2X3QgX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdm11bHhoX2YxNiAoZmxvYXQxNl90
IF9fYSwgZmxvYXQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9mbXVseGhmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gc3RhdGljIF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18pKQ0KICAgICt2cmVjcHNoX2YxNiAoZmxvYXQxNl90IF9fYSwgZmxvYXQxNl90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mcmVjcHNoZiAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBm
bG9hdDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdnJzcXJ0
c2hfZjE2IChmbG9hdDE2X3QgX19hLCBmbG9hdDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JzcXJ0c2hmIChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gc3RhdGljIF9faW5saW5lIGZsb2F0MTZfdCBfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQ0KICAgICt2c3ViaF9mMTYgKGZsb2F0MTZfdCBfX2Es
IGZsb2F0MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIC0gX19iOw0KICAgICt9
DQogICAgKw0KICAgICsvKiBBUk12OC4yLUEgRlAxNiB0aHJlZSBvcGVyYW5kcyBzY2FsYXIgaW50
cmluc2ljcy4gICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIHN0YXRpYyBfX2lubGluZSBm
bG9hdDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fKSkNCiAgICArdmZtYWhf
ZjE2IChmbG9hdDE2X3QgX19hLCBmbG9hdDE2X3QgX19iLCBmbG9hdDE2X3QgX19jKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtYWhmIChfX2IsIF9fYywgX19hKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBzdGF0aWMgX19pbmxpbmUgZmxvYXQx
Nl90IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpDQogICAgK3ZmbXNoX2YxNiAo
ZmxvYXQxNl90IF9fYSwgZmxvYXQxNl90IF9fYiwgZmxvYXQxNl90IF9fYykNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbm1haGYgKF9fYiwgX19jLCBfX2EpOw0KICAg
ICt9DQogICAgKw0KICAgICsjcHJhZ21hIEdDQyBwb3Bfb3B0aW9ucw0KICAgICsNCiAgICArI2Vu
ZGlmDQogICAgZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ2NjL2FybV9uZW9uLmggYi9pbmNsdWRlL2dj
Yy9hcm1fbmVvbi5oDQogICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAwMDAwMDAw
Li45NmU3NDBmDQogICAgLS0tIC9kZXYvbnVsbA0KICAgICsrKyBiL2luY2x1ZGUvZ2NjL2FybV9u
ZW9uLmgNCiAgICBAQCAtMCwwICsxLDMxNjkzIEBADQogICAgKy8qIEFSTSBORU9OIGludHJpbnNp
Y3MgaW5jbHVkZSBmaWxlLg0KICAgICsNCiAgICArICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTcg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQogICAgKyAgIENvbnRyaWJ1dGVkIGJ5IEFS
TSBMdGQuDQogICAgKw0KICAgICsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuDQogICAgKw0K
ICAgICsgICBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yIG1vZGlmeSBpdA0KICAgICsgICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZA0KICAgICsgICBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91cg0KICAgICsgICBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLg0KICAgICsNCiAgICArICAgR0NDIGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUDQogICAgKyAg
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWQ0KICAgICsgICBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljDQogICAgKyAgIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4NCiAgICArDQogICAgKyAgIFVuZGVyIFNlY3Rpb24gNyBvZiBHUEwgdmVyc2lvbiAzLCB5
b3UgYXJlIGdyYW50ZWQgYWRkaXRpb25hbA0KICAgICsgICBwZXJtaXNzaW9ucyBkZXNjcmliZWQg
aW4gdGhlIEdDQyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uLCB2ZXJzaW9uDQogICAgKyAgIDMu
MSwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQogICAgKw0K
ICAgICsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBhbmQNCiAgICArICAgYSBjb3B5IG9mIHRoZSBHQ0MgUnVudGltZSBM
aWJyYXJ5IEV4Y2VwdGlvbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsNCiAgICArICAgc2VlIHRo
ZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5v
dCwgc2VlDQogICAgKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovDQogICAg
Kw0KICAgICsjaWZuZGVmIF9BQVJDSDY0X05FT05fSF8NCiAgICArI2RlZmluZSBfQUFSQ0g2NF9O
RU9OX0hfDQogICAgKw0KICAgICsjcHJhZ21hIEdDQyBwdXNoX29wdGlvbnMNCiAgICArI3ByYWdt
YSBHQ0MgdGFyZ2V0ICgiK25vdGhpbmcrc2ltZCIpDQogICAgKw0KICAgICsjaW5jbHVkZSA8c3Rk
aW50Lmg+DQogICAgKw0KICAgICsjZGVmaW5lIF9fQUFSQ0g2NF9VSU5UNjRfQyhfX0MpICgodWlu
dDY0X3QpIF9fQykNCiAgICArI2RlZmluZSBfX0FBUkNINjRfSU5UNjRfQyhfX0MpICgoaW50NjRf
dCkgX19DKQ0KICAgICsNCiAgICArdHlwZWRlZiBfX0ludDh4OF90IGludDh4OF90Ow0KICAgICt0
eXBlZGVmIF9fSW50MTZ4NF90IGludDE2eDRfdDsNCiAgICArdHlwZWRlZiBfX0ludDMyeDJfdCBp
bnQzMngyX3Q7DQogICAgK3R5cGVkZWYgX19JbnQ2NHgxX3QgaW50NjR4MV90Ow0KICAgICt0eXBl
ZGVmIF9fRmxvYXQxNng0X3QgZmxvYXQxNng0X3Q7DQogICAgK3R5cGVkZWYgX19GbG9hdDMyeDJf
dCBmbG9hdDMyeDJfdDsNCiAgICArdHlwZWRlZiBfX1BvbHk4eDhfdCBwb2x5OHg4X3Q7DQogICAg
K3R5cGVkZWYgX19Qb2x5MTZ4NF90IHBvbHkxNng0X3Q7DQogICAgK3R5cGVkZWYgX19VaW50OHg4
X3QgdWludDh4OF90Ow0KICAgICt0eXBlZGVmIF9fVWludDE2eDRfdCB1aW50MTZ4NF90Ow0KICAg
ICt0eXBlZGVmIF9fVWludDMyeDJfdCB1aW50MzJ4Ml90Ow0KICAgICt0eXBlZGVmIF9fRmxvYXQ2
NHgxX3QgZmxvYXQ2NHgxX3Q7DQogICAgK3R5cGVkZWYgX19VaW50NjR4MV90IHVpbnQ2NHgxX3Q7
DQogICAgK3R5cGVkZWYgX19JbnQ4eDE2X3QgaW50OHgxNl90Ow0KICAgICt0eXBlZGVmIF9fSW50
MTZ4OF90IGludDE2eDhfdDsNCiAgICArdHlwZWRlZiBfX0ludDMyeDRfdCBpbnQzMng0X3Q7DQog
ICAgK3R5cGVkZWYgX19JbnQ2NHgyX3QgaW50NjR4Ml90Ow0KICAgICt0eXBlZGVmIF9fRmxvYXQx
Nng4X3QgZmxvYXQxNng4X3Q7DQogICAgK3R5cGVkZWYgX19GbG9hdDMyeDRfdCBmbG9hdDMyeDRf
dDsNCiAgICArdHlwZWRlZiBfX0Zsb2F0NjR4Ml90IGZsb2F0NjR4Ml90Ow0KICAgICt0eXBlZGVm
IF9fUG9seTh4MTZfdCBwb2x5OHgxNl90Ow0KICAgICt0eXBlZGVmIF9fUG9seTE2eDhfdCBwb2x5
MTZ4OF90Ow0KICAgICt0eXBlZGVmIF9fUG9seTY0eDJfdCBwb2x5NjR4Ml90Ow0KICAgICt0eXBl
ZGVmIF9fUG9seTY0eDFfdCBwb2x5NjR4MV90Ow0KICAgICt0eXBlZGVmIF9fVWludDh4MTZfdCB1
aW50OHgxNl90Ow0KICAgICt0eXBlZGVmIF9fVWludDE2eDhfdCB1aW50MTZ4OF90Ow0KICAgICt0
eXBlZGVmIF9fVWludDMyeDRfdCB1aW50MzJ4NF90Ow0KICAgICt0eXBlZGVmIF9fVWludDY0eDJf
dCB1aW50NjR4Ml90Ow0KICAgICsNCiAgICArdHlwZWRlZiBfX1BvbHk4X3QgcG9seThfdDsNCiAg
ICArdHlwZWRlZiBfX1BvbHkxNl90IHBvbHkxNl90Ow0KICAgICt0eXBlZGVmIF9fUG9seTY0X3Qg
cG9seTY0X3Q7DQogICAgK3R5cGVkZWYgX19Qb2x5MTI4X3QgcG9seTEyOF90Ow0KICAgICsNCiAg
ICArdHlwZWRlZiBfX2ZwMTYgZmxvYXQxNl90Ow0KICAgICt0eXBlZGVmIGZsb2F0IGZsb2F0MzJf
dDsNCiAgICArdHlwZWRlZiBkb3VibGUgZmxvYXQ2NF90Ow0KICAgICsNCiAgICArdHlwZWRlZiBz
dHJ1Y3QgaW50OHg4eDJfdA0KICAgICt7DQogICAgKyAgaW50OHg4X3QgdmFsWzJdOw0KICAgICt9
IGludDh4OHgyX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCBpbnQ4eDE2eDJfdA0KICAg
ICt7DQogICAgKyAgaW50OHgxNl90IHZhbFsyXTsNCiAgICArfSBpbnQ4eDE2eDJfdDsNCiAgICAr
DQogICAgK3R5cGVkZWYgc3RydWN0IGludDE2eDR4Ml90DQogICAgK3sNCiAgICArICBpbnQxNng0
X3QgdmFsWzJdOw0KICAgICt9IGludDE2eDR4Ml90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1
Y3QgaW50MTZ4OHgyX3QNCiAgICArew0KICAgICsgIGludDE2eDhfdCB2YWxbMl07DQogICAgK30g
aW50MTZ4OHgyX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCBpbnQzMngyeDJfdA0KICAg
ICt7DQogICAgKyAgaW50MzJ4Ml90IHZhbFsyXTsNCiAgICArfSBpbnQzMngyeDJfdDsNCiAgICAr
DQogICAgK3R5cGVkZWYgc3RydWN0IGludDMyeDR4Ml90DQogICAgK3sNCiAgICArICBpbnQzMng0
X3QgdmFsWzJdOw0KICAgICt9IGludDMyeDR4Ml90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1
Y3QgaW50NjR4MXgyX3QNCiAgICArew0KICAgICsgIGludDY0eDFfdCB2YWxbMl07DQogICAgK30g
aW50NjR4MXgyX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCBpbnQ2NHgyeDJfdA0KICAg
ICt7DQogICAgKyAgaW50NjR4Ml90IHZhbFsyXTsNCiAgICArfSBpbnQ2NHgyeDJfdDsNCiAgICAr
DQogICAgK3R5cGVkZWYgc3RydWN0IHVpbnQ4eDh4Ml90DQogICAgK3sNCiAgICArICB1aW50OHg4
X3QgdmFsWzJdOw0KICAgICt9IHVpbnQ4eDh4Ml90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1
Y3QgdWludDh4MTZ4Ml90DQogICAgK3sNCiAgICArICB1aW50OHgxNl90IHZhbFsyXTsNCiAgICAr
fSB1aW50OHgxNngyX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCB1aW50MTZ4NHgyX3QN
CiAgICArew0KICAgICsgIHVpbnQxNng0X3QgdmFsWzJdOw0KICAgICt9IHVpbnQxNng0eDJfdDsN
CiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IHVpbnQxNng4eDJfdA0KICAgICt7DQogICAgKyAg
dWludDE2eDhfdCB2YWxbMl07DQogICAgK30gdWludDE2eDh4Ml90Ow0KICAgICsNCiAgICArdHlw
ZWRlZiBzdHJ1Y3QgdWludDMyeDJ4Ml90DQogICAgK3sNCiAgICArICB1aW50MzJ4Ml90IHZhbFsy
XTsNCiAgICArfSB1aW50MzJ4MngyX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCB1aW50
MzJ4NHgyX3QNCiAgICArew0KICAgICsgIHVpbnQzMng0X3QgdmFsWzJdOw0KICAgICt9IHVpbnQz
Mng0eDJfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IHVpbnQ2NHgxeDJfdA0KICAgICt7
DQogICAgKyAgdWludDY0eDFfdCB2YWxbMl07DQogICAgK30gdWludDY0eDF4Ml90Ow0KICAgICsN
CiAgICArdHlwZWRlZiBzdHJ1Y3QgdWludDY0eDJ4Ml90DQogICAgK3sNCiAgICArICB1aW50NjR4
Ml90IHZhbFsyXTsNCiAgICArfSB1aW50NjR4MngyX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0
cnVjdCBmbG9hdDE2eDR4Ml90DQogICAgK3sNCiAgICArICBmbG9hdDE2eDRfdCB2YWxbMl07DQog
ICAgK30gZmxvYXQxNng0eDJfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IGZsb2F0MTZ4
OHgyX3QNCiAgICArew0KICAgICsgIGZsb2F0MTZ4OF90IHZhbFsyXTsNCiAgICArfSBmbG9hdDE2
eDh4Ml90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgZmxvYXQzMngyeDJfdA0KICAgICt7
DQogICAgKyAgZmxvYXQzMngyX3QgdmFsWzJdOw0KICAgICt9IGZsb2F0MzJ4MngyX3Q7DQogICAg
Kw0KICAgICt0eXBlZGVmIHN0cnVjdCBmbG9hdDMyeDR4Ml90DQogICAgK3sNCiAgICArICBmbG9h
dDMyeDRfdCB2YWxbMl07DQogICAgK30gZmxvYXQzMng0eDJfdDsNCiAgICArDQogICAgK3R5cGVk
ZWYgc3RydWN0IGZsb2F0NjR4MngyX3QNCiAgICArew0KICAgICsgIGZsb2F0NjR4Ml90IHZhbFsy
XTsNCiAgICArfSBmbG9hdDY0eDJ4Ml90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgZmxv
YXQ2NHgxeDJfdA0KICAgICt7DQogICAgKyAgZmxvYXQ2NHgxX3QgdmFsWzJdOw0KICAgICt9IGZs
b2F0NjR4MXgyX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCBwb2x5OHg4eDJfdA0KICAg
ICt7DQogICAgKyAgcG9seTh4OF90IHZhbFsyXTsNCiAgICArfSBwb2x5OHg4eDJfdDsNCiAgICAr
DQogICAgK3R5cGVkZWYgc3RydWN0IHBvbHk4eDE2eDJfdA0KICAgICt7DQogICAgKyAgcG9seTh4
MTZfdCB2YWxbMl07DQogICAgK30gcG9seTh4MTZ4Ml90Ow0KICAgICsNCiAgICArdHlwZWRlZiBz
dHJ1Y3QgcG9seTE2eDR4Ml90DQogICAgK3sNCiAgICArICBwb2x5MTZ4NF90IHZhbFsyXTsNCiAg
ICArfSBwb2x5MTZ4NHgyX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCBwb2x5MTZ4OHgy
X3QNCiAgICArew0KICAgICsgIHBvbHkxNng4X3QgdmFsWzJdOw0KICAgICt9IHBvbHkxNng4eDJf
dDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IHBvbHk2NHgxeDJfdA0KICAgICt7DQogICAg
KyAgcG9seTY0eDFfdCB2YWxbMl07DQogICAgK30gcG9seTY0eDF4Ml90Ow0KICAgICsNCiAgICAr
dHlwZWRlZiBzdHJ1Y3QgcG9seTY0eDF4M190DQogICAgK3sNCiAgICArICBwb2x5NjR4MV90IHZh
bFszXTsNCiAgICArfSBwb2x5NjR4MXgzX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCBw
b2x5NjR4MXg0X3QNCiAgICArew0KICAgICsgIHBvbHk2NHgxX3QgdmFsWzRdOw0KICAgICt9IHBv
bHk2NHgxeDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IHBvbHk2NHgyeDJfdA0KICAg
ICt7DQogICAgKyAgcG9seTY0eDJfdCB2YWxbMl07DQogICAgK30gcG9seTY0eDJ4Ml90Ow0KICAg
ICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgcG9seTY0eDJ4M190DQogICAgK3sNCiAgICArICBwb2x5
NjR4Ml90IHZhbFszXTsNCiAgICArfSBwb2x5NjR4MngzX3Q7DQogICAgKw0KICAgICt0eXBlZGVm
IHN0cnVjdCBwb2x5NjR4Mng0X3QNCiAgICArew0KICAgICsgIHBvbHk2NHgyX3QgdmFsWzRdOw0K
ICAgICt9IHBvbHk2NHgyeDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IGludDh4OHgz
X3QNCiAgICArew0KICAgICsgIGludDh4OF90IHZhbFszXTsNCiAgICArfSBpbnQ4eDh4M190Ow0K
ICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgaW50OHgxNngzX3QNCiAgICArew0KICAgICsgIGlu
dDh4MTZfdCB2YWxbM107DQogICAgK30gaW50OHgxNngzX3Q7DQogICAgKw0KICAgICt0eXBlZGVm
IHN0cnVjdCBpbnQxNng0eDNfdA0KICAgICt7DQogICAgKyAgaW50MTZ4NF90IHZhbFszXTsNCiAg
ICArfSBpbnQxNng0eDNfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IGludDE2eDh4M190
DQogICAgK3sNCiAgICArICBpbnQxNng4X3QgdmFsWzNdOw0KICAgICt9IGludDE2eDh4M190Ow0K
ICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgaW50MzJ4MngzX3QNCiAgICArew0KICAgICsgIGlu
dDMyeDJfdCB2YWxbM107DQogICAgK30gaW50MzJ4MngzX3Q7DQogICAgKw0KICAgICt0eXBlZGVm
IHN0cnVjdCBpbnQzMng0eDNfdA0KICAgICt7DQogICAgKyAgaW50MzJ4NF90IHZhbFszXTsNCiAg
ICArfSBpbnQzMng0eDNfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IGludDY0eDF4M190
DQogICAgK3sNCiAgICArICBpbnQ2NHgxX3QgdmFsWzNdOw0KICAgICt9IGludDY0eDF4M190Ow0K
ICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgaW50NjR4MngzX3QNCiAgICArew0KICAgICsgIGlu
dDY0eDJfdCB2YWxbM107DQogICAgK30gaW50NjR4MngzX3Q7DQogICAgKw0KICAgICt0eXBlZGVm
IHN0cnVjdCB1aW50OHg4eDNfdA0KICAgICt7DQogICAgKyAgdWludDh4OF90IHZhbFszXTsNCiAg
ICArfSB1aW50OHg4eDNfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IHVpbnQ4eDE2eDNf
dA0KICAgICt7DQogICAgKyAgdWludDh4MTZfdCB2YWxbM107DQogICAgK30gdWludDh4MTZ4M190
Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgdWludDE2eDR4M190DQogICAgK3sNCiAgICAr
ICB1aW50MTZ4NF90IHZhbFszXTsNCiAgICArfSB1aW50MTZ4NHgzX3Q7DQogICAgKw0KICAgICt0
eXBlZGVmIHN0cnVjdCB1aW50MTZ4OHgzX3QNCiAgICArew0KICAgICsgIHVpbnQxNng4X3QgdmFs
WzNdOw0KICAgICt9IHVpbnQxNng4eDNfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IHVp
bnQzMngyeDNfdA0KICAgICt7DQogICAgKyAgdWludDMyeDJfdCB2YWxbM107DQogICAgK30gdWlu
dDMyeDJ4M190Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgdWludDMyeDR4M190DQogICAg
K3sNCiAgICArICB1aW50MzJ4NF90IHZhbFszXTsNCiAgICArfSB1aW50MzJ4NHgzX3Q7DQogICAg
Kw0KICAgICt0eXBlZGVmIHN0cnVjdCB1aW50NjR4MXgzX3QNCiAgICArew0KICAgICsgIHVpbnQ2
NHgxX3QgdmFsWzNdOw0KICAgICt9IHVpbnQ2NHgxeDNfdDsNCiAgICArDQogICAgK3R5cGVkZWYg
c3RydWN0IHVpbnQ2NHgyeDNfdA0KICAgICt7DQogICAgKyAgdWludDY0eDJfdCB2YWxbM107DQog
ICAgK30gdWludDY0eDJ4M190Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgZmxvYXQxNng0
eDNfdA0KICAgICt7DQogICAgKyAgZmxvYXQxNng0X3QgdmFsWzNdOw0KICAgICt9IGZsb2F0MTZ4
NHgzX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCBmbG9hdDE2eDh4M190DQogICAgK3sN
CiAgICArICBmbG9hdDE2eDhfdCB2YWxbM107DQogICAgK30gZmxvYXQxNng4eDNfdDsNCiAgICAr
DQogICAgK3R5cGVkZWYgc3RydWN0IGZsb2F0MzJ4MngzX3QNCiAgICArew0KICAgICsgIGZsb2F0
MzJ4Ml90IHZhbFszXTsNCiAgICArfSBmbG9hdDMyeDJ4M190Ow0KICAgICsNCiAgICArdHlwZWRl
ZiBzdHJ1Y3QgZmxvYXQzMng0eDNfdA0KICAgICt7DQogICAgKyAgZmxvYXQzMng0X3QgdmFsWzNd
Ow0KICAgICt9IGZsb2F0MzJ4NHgzX3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCBmbG9h
dDY0eDJ4M190DQogICAgK3sNCiAgICArICBmbG9hdDY0eDJfdCB2YWxbM107DQogICAgK30gZmxv
YXQ2NHgyeDNfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IGZsb2F0NjR4MXgzX3QNCiAg
ICArew0KICAgICsgIGZsb2F0NjR4MV90IHZhbFszXTsNCiAgICArfSBmbG9hdDY0eDF4M190Ow0K
ICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgcG9seTh4OHgzX3QNCiAgICArew0KICAgICsgIHBv
bHk4eDhfdCB2YWxbM107DQogICAgK30gcG9seTh4OHgzX3Q7DQogICAgKw0KICAgICt0eXBlZGVm
IHN0cnVjdCBwb2x5OHgxNngzX3QNCiAgICArew0KICAgICsgIHBvbHk4eDE2X3QgdmFsWzNdOw0K
ICAgICt9IHBvbHk4eDE2eDNfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IHBvbHkxNng0
eDNfdA0KICAgICt7DQogICAgKyAgcG9seTE2eDRfdCB2YWxbM107DQogICAgK30gcG9seTE2eDR4
M190Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgcG9seTE2eDh4M190DQogICAgK3sNCiAg
ICArICBwb2x5MTZ4OF90IHZhbFszXTsNCiAgICArfSBwb2x5MTZ4OHgzX3Q7DQogICAgKw0KICAg
ICt0eXBlZGVmIHN0cnVjdCBpbnQ4eDh4NF90DQogICAgK3sNCiAgICArICBpbnQ4eDhfdCB2YWxb
NF07DQogICAgK30gaW50OHg4eDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IGludDh4
MTZ4NF90DQogICAgK3sNCiAgICArICBpbnQ4eDE2X3QgdmFsWzRdOw0KICAgICt9IGludDh4MTZ4
NF90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgaW50MTZ4NHg0X3QNCiAgICArew0KICAg
ICsgIGludDE2eDRfdCB2YWxbNF07DQogICAgK30gaW50MTZ4NHg0X3Q7DQogICAgKw0KICAgICt0
eXBlZGVmIHN0cnVjdCBpbnQxNng4eDRfdA0KICAgICt7DQogICAgKyAgaW50MTZ4OF90IHZhbFs0
XTsNCiAgICArfSBpbnQxNng4eDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IGludDMy
eDJ4NF90DQogICAgK3sNCiAgICArICBpbnQzMngyX3QgdmFsWzRdOw0KICAgICt9IGludDMyeDJ4
NF90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgaW50MzJ4NHg0X3QNCiAgICArew0KICAg
ICsgIGludDMyeDRfdCB2YWxbNF07DQogICAgK30gaW50MzJ4NHg0X3Q7DQogICAgKw0KICAgICt0
eXBlZGVmIHN0cnVjdCBpbnQ2NHgxeDRfdA0KICAgICt7DQogICAgKyAgaW50NjR4MV90IHZhbFs0
XTsNCiAgICArfSBpbnQ2NHgxeDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IGludDY0
eDJ4NF90DQogICAgK3sNCiAgICArICBpbnQ2NHgyX3QgdmFsWzRdOw0KICAgICt9IGludDY0eDJ4
NF90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgdWludDh4OHg0X3QNCiAgICArew0KICAg
ICsgIHVpbnQ4eDhfdCB2YWxbNF07DQogICAgK30gdWludDh4OHg0X3Q7DQogICAgKw0KICAgICt0
eXBlZGVmIHN0cnVjdCB1aW50OHgxNng0X3QNCiAgICArew0KICAgICsgIHVpbnQ4eDE2X3QgdmFs
WzRdOw0KICAgICt9IHVpbnQ4eDE2eDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IHVp
bnQxNng0eDRfdA0KICAgICt7DQogICAgKyAgdWludDE2eDRfdCB2YWxbNF07DQogICAgK30gdWlu
dDE2eDR4NF90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgdWludDE2eDh4NF90DQogICAg
K3sNCiAgICArICB1aW50MTZ4OF90IHZhbFs0XTsNCiAgICArfSB1aW50MTZ4OHg0X3Q7DQogICAg
Kw0KICAgICt0eXBlZGVmIHN0cnVjdCB1aW50MzJ4Mng0X3QNCiAgICArew0KICAgICsgIHVpbnQz
MngyX3QgdmFsWzRdOw0KICAgICt9IHVpbnQzMngyeDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYg
c3RydWN0IHVpbnQzMng0eDRfdA0KICAgICt7DQogICAgKyAgdWludDMyeDRfdCB2YWxbNF07DQog
ICAgK30gdWludDMyeDR4NF90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgdWludDY0eDF4
NF90DQogICAgK3sNCiAgICArICB1aW50NjR4MV90IHZhbFs0XTsNCiAgICArfSB1aW50NjR4MXg0
X3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCB1aW50NjR4Mng0X3QNCiAgICArew0KICAg
ICsgIHVpbnQ2NHgyX3QgdmFsWzRdOw0KICAgICt9IHVpbnQ2NHgyeDRfdDsNCiAgICArDQogICAg
K3R5cGVkZWYgc3RydWN0IGZsb2F0MTZ4NHg0X3QNCiAgICArew0KICAgICsgIGZsb2F0MTZ4NF90
IHZhbFs0XTsNCiAgICArfSBmbG9hdDE2eDR4NF90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1
Y3QgZmxvYXQxNng4eDRfdA0KICAgICt7DQogICAgKyAgZmxvYXQxNng4X3QgdmFsWzRdOw0KICAg
ICt9IGZsb2F0MTZ4OHg0X3Q7DQogICAgKw0KICAgICt0eXBlZGVmIHN0cnVjdCBmbG9hdDMyeDJ4
NF90DQogICAgK3sNCiAgICArICBmbG9hdDMyeDJfdCB2YWxbNF07DQogICAgK30gZmxvYXQzMngy
eDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IGZsb2F0MzJ4NHg0X3QNCiAgICArew0K
ICAgICsgIGZsb2F0MzJ4NF90IHZhbFs0XTsNCiAgICArfSBmbG9hdDMyeDR4NF90Ow0KICAgICsN
CiAgICArdHlwZWRlZiBzdHJ1Y3QgZmxvYXQ2NHgyeDRfdA0KICAgICt7DQogICAgKyAgZmxvYXQ2
NHgyX3QgdmFsWzRdOw0KICAgICt9IGZsb2F0NjR4Mng0X3Q7DQogICAgKw0KICAgICt0eXBlZGVm
IHN0cnVjdCBmbG9hdDY0eDF4NF90DQogICAgK3sNCiAgICArICBmbG9hdDY0eDFfdCB2YWxbNF07
DQogICAgK30gZmxvYXQ2NHgxeDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0IHBvbHk4
eDh4NF90DQogICAgK3sNCiAgICArICBwb2x5OHg4X3QgdmFsWzRdOw0KICAgICt9IHBvbHk4eDh4
NF90Ow0KICAgICsNCiAgICArdHlwZWRlZiBzdHJ1Y3QgcG9seTh4MTZ4NF90DQogICAgK3sNCiAg
ICArICBwb2x5OHgxNl90IHZhbFs0XTsNCiAgICArfSBwb2x5OHgxNng0X3Q7DQogICAgKw0KICAg
ICt0eXBlZGVmIHN0cnVjdCBwb2x5MTZ4NHg0X3QNCiAgICArew0KICAgICsgIHBvbHkxNng0X3Qg
dmFsWzRdOw0KICAgICt9IHBvbHkxNng0eDRfdDsNCiAgICArDQogICAgK3R5cGVkZWYgc3RydWN0
IHBvbHkxNng4eDRfdA0KICAgICt7DQogICAgKyAgcG9seTE2eDhfdCB2YWxbNF07DQogICAgK30g
cG9seTE2eDh4NF90Ow0KICAgICsNCiAgICArLyogX19hYXJjaDY0X3ZkdXBfbGFuZSBpbnRlcm5h
bCBtYWNyb3MuICAqLw0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55KF9fc2l6
ZSwgX19xLCBfX2EsIF9fYikgXA0KICAgICsgIHZkdXAjI19fcSMjX25fIyNfX3NpemUgKF9fYWFy
Y2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9fYikpDQogICAgKw0KICAgICsjZGVmaW5lIF9fYWFy
Y2g2NF92ZHVwX2xhbmVfZjE2KF9fYSwgX19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xh
bmVfYW55IChmMTYsICwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBfbGFu
ZV9mMzIoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKGYzMiwg
LCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cF9sYW5lX2Y2NChfX2EsIF9f
YikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1cF9sYW5lX2FueSAoZjY0LCAsIF9fYSwgX19iKQ0K
ICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwX2xhbmVfcDgoX19hLCBfX2IpIFwNCiAgICArICAg
X19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHA4LCAsIF9fYSwgX19iKQ0KICAgICsjZGVmaW5lIF9f
YWFyY2g2NF92ZHVwX2xhbmVfcDE2KF9fYSwgX19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVw
X2xhbmVfYW55IChwMTYsICwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBf
bGFuZV9wNjQoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHA2
NCwgLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cF9sYW5lX3M4KF9fYSwg
X19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55IChzOCwgLCBfX2EsIF9fYikN
CiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cF9sYW5lX3MxNihfX2EsIF9fYikgXA0KICAgICsg
ICBfX2FhcmNoNjRfdmR1cF9sYW5lX2FueSAoczE2LCAsIF9fYSwgX19iKQ0KICAgICsjZGVmaW5l
IF9fYWFyY2g2NF92ZHVwX2xhbmVfczMyKF9fYSwgX19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92
ZHVwX2xhbmVfYW55IChzMzIsICwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3Zk
dXBfbGFuZV9zNjQoX19hLCBfX2IpIFwNCiAgICArICBfX2FhcmNoNjRfdmR1cF9sYW5lX2FueSAo
czY0LCAsIF9fYSwgX19iKQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwX2xhbmVfdTgoX19h
LCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHU4LCAsIF9fYSwgX19i
KQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwX2xhbmVfdTE2KF9fYSwgX19iKSBcDQogICAg
KyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55ICh1MTYsICwgX19hLCBfX2IpDQogICAgKyNkZWZp
bmUgX19hYXJjaDY0X3ZkdXBfbGFuZV91MzIoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0
X3ZkdXBfbGFuZV9hbnkgKHUzMiwgLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRf
dmR1cF9sYW5lX3U2NChfX2EsIF9fYikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1cF9sYW5lX2Fu
eSAodTY0LCAsIF9fYSwgX19iKQ0KICAgICsNCiAgICArLyogX19hYXJjaDY0X3ZkdXBfbGFuZXEg
aW50ZXJuYWwgbWFjcm9zLiAgKi8NCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cF9sYW5lcV9m
MTYoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKGYxNiwgLCBf
X2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cF9sYW5lcV9mMzIoX19hLCBfX2Ip
IFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKGYzMiwgLCBfX2EsIF9fYikNCiAg
ICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cF9sYW5lcV9mNjQoX19hLCBfX2IpIFwNCiAgICArICAg
X19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKGY2NCwgLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBf
X2FhcmNoNjRfdmR1cF9sYW5lcV9wOChfX2EsIF9fYikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1
cF9sYW5lX2FueSAocDgsICwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBf
bGFuZXFfcDE2KF9fYSwgX19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55IChw
MTYsICwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBfbGFuZXFfcDY0KF9f
YSwgX19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55IChwNjQsICwgX19hLCBf
X2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBfbGFuZXFfczgoX19hLCBfX2IpIFwNCiAg
ICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHM4LCAsIF9fYSwgX19iKQ0KICAgICsjZGVm
aW5lIF9fYWFyY2g2NF92ZHVwX2xhbmVxX3MxNihfX2EsIF9fYikgXA0KICAgICsgICBfX2FhcmNo
NjRfdmR1cF9sYW5lX2FueSAoczE2LCAsIF9fYSwgX19iKQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2
NF92ZHVwX2xhbmVxX3MzMihfX2EsIF9fYikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1cF9sYW5l
X2FueSAoczMyLCAsIF9fYSwgX19iKQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwX2xhbmVx
X3M2NChfX2EsIF9fYikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1cF9sYW5lX2FueSAoczY0LCAs
IF9fYSwgX19iKQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwX2xhbmVxX3U4KF9fYSwgX19i
KSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55ICh1OCwgLCBfX2EsIF9fYikNCiAg
ICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cF9sYW5lcV91MTYoX19hLCBfX2IpIFwNCiAgICArICAg
X19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHUxNiwgLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBf
X2FhcmNoNjRfdmR1cF9sYW5lcV91MzIoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3Zk
dXBfbGFuZV9hbnkgKHUzMiwgLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1
cF9sYW5lcV91NjQoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkg
KHU2NCwgLCBfX2EsIF9fYikNCiAgICArDQogICAgKy8qIF9fYWFyY2g2NF92ZHVwcV9sYW5lIGlu
dGVybmFsIG1hY3Jvcy4gICovDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBxX2xhbmVfZjE2
KF9fYSwgX19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55IChmMTYsIHEsIF9f
YSwgX19iKQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwcV9sYW5lX2YzMihfX2EsIF9fYikg
XA0KICAgICsgICBfX2FhcmNoNjRfdmR1cF9sYW5lX2FueSAoZjMyLCBxLCBfX2EsIF9fYikNCiAg
ICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cHFfbGFuZV9mNjQoX19hLCBfX2IpIFwNCiAgICArICAg
X19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKGY2NCwgcSwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUg
X19hYXJjaDY0X3ZkdXBxX2xhbmVfcDgoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3Zk
dXBfbGFuZV9hbnkgKHA4LCBxLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1
cHFfbGFuZV9wMTYoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkg
KHAxNiwgcSwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBxX2xhbmVfcDY0
KF9fYSwgX19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55IChwNjQsIHEsIF9f
YSwgX19iKQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwcV9sYW5lX3M4KF9fYSwgX19iKSBc
DQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55IChzOCwgcSwgX19hLCBfX2IpDQogICAg
KyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBxX2xhbmVfczE2KF9fYSwgX19iKSBcDQogICAgKyAgIF9f
YWFyY2g2NF92ZHVwX2xhbmVfYW55IChzMTYsIHEsIF9fYSwgX19iKQ0KICAgICsjZGVmaW5lIF9f
YWFyY2g2NF92ZHVwcV9sYW5lX3MzMihfX2EsIF9fYikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1
cF9sYW5lX2FueSAoczMyLCBxLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1
cHFfbGFuZV9zNjQoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkg
KHM2NCwgcSwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBxX2xhbmVfdTgo
X19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHU4LCBxLCBfX2Es
IF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cHFfbGFuZV91MTYoX19hLCBfX2IpIFwN
CiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHUxNiwgcSwgX19hLCBfX2IpDQogICAg
KyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBxX2xhbmVfdTMyKF9fYSwgX19iKSBcDQogICAgKyAgIF9f
YWFyY2g2NF92ZHVwX2xhbmVfYW55ICh1MzIsIHEsIF9fYSwgX19iKQ0KICAgICsjZGVmaW5lIF9f
YWFyY2g2NF92ZHVwcV9sYW5lX3U2NChfX2EsIF9fYikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1
cF9sYW5lX2FueSAodTY0LCBxLCBfX2EsIF9fYikNCiAgICArDQogICAgKy8qIF9fYWFyY2g2NF92
ZHVwcV9sYW5lcSBpbnRlcm5hbCBtYWNyb3MuICAqLw0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92
ZHVwcV9sYW5lcV9mMTYoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9h
bnkgKGYxNiwgcSwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBxX2xhbmVx
X2YzMihfX2EsIF9fYikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1cF9sYW5lX2FueSAoZjMyLCBx
LCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cHFfbGFuZXFfZjY0KF9fYSwg
X19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55IChmNjQsIHEsIF9fYSwgX19i
KQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV9wOChfX2EsIF9fYikgXA0KICAg
ICsgICBfX2FhcmNoNjRfdmR1cF9sYW5lX2FueSAocDgsIHEsIF9fYSwgX19iKQ0KICAgICsjZGVm
aW5lIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV9wMTYoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJj
aDY0X3ZkdXBfbGFuZV9hbnkgKHAxNiwgcSwgX19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJj
aDY0X3ZkdXBxX2xhbmVxX3A2NChfX2EsIF9fYikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1cF9s
YW5lX2FueSAocDY0LCBxLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cHFf
bGFuZXFfczgoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHM4
LCBxLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1cHFfbGFuZXFfczE2KF9f
YSwgX19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55IChzMTYsIHEsIF9fYSwg
X19iKQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV9zMzIoX19hLCBfX2IpIFwN
CiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHMzMiwgcSwgX19hLCBfX2IpDQogICAg
KyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBxX2xhbmVxX3M2NChfX2EsIF9fYikgXA0KICAgICsgICBf
X2FhcmNoNjRfdmR1cF9sYW5lX2FueSAoczY0LCBxLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBf
X2FhcmNoNjRfdmR1cHFfbGFuZXFfdTgoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3Zk
dXBfbGFuZV9hbnkgKHU4LCBxLCBfX2EsIF9fYikNCiAgICArI2RlZmluZSBfX2FhcmNoNjRfdmR1
cHFfbGFuZXFfdTE2KF9fYSwgX19iKSBcDQogICAgKyAgIF9fYWFyY2g2NF92ZHVwX2xhbmVfYW55
ICh1MTYsIHEsIF9fYSwgX19iKQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV91
MzIoX19hLCBfX2IpIFwNCiAgICArICAgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkgKHUzMiwgcSwg
X19hLCBfX2IpDQogICAgKyNkZWZpbmUgX19hYXJjaDY0X3ZkdXBxX2xhbmVxX3U2NChfX2EsIF9f
YikgXA0KICAgICsgICBfX2FhcmNoNjRfdmR1cF9sYW5lX2FueSAodTY0LCBxLCBfX2EsIF9fYikN
CiAgICArDQogICAgKy8qIEludGVybmFsIG1hY3JvIGZvciBsYW5lIGluZGljZXMuICAqLw0KICAg
ICsNCiAgICArI2RlZmluZSBfX0FBUkNINjRfTlVNX0xBTkVTKF9fdikgKHNpemVvZiAoX192KSAv
IHNpemVvZiAoX192WzBdKSkNCiAgICArI2RlZmluZSBfX0FBUkNINjRfTEFORV9DSEVDSyhfX3Zl
YywgX19pZHgpCVwNCiAgICArCV9fYnVpbHRpbl9hYXJjaDY0X2ltX2xhbmVfYm91bmRzaSAoc2l6
ZW9mKF9fdmVjKSwgc2l6ZW9mKF9fdmVjWzBdKSwgX19pZHgpDQogICAgKw0KICAgICsvKiBGb3Ig
YmlnLWVuZGlhbiwgR0NDJ3MgdmVjdG9yIGluZGljZXMgYXJlIHRoZSBvcHBvc2l0ZSB3YXkgYXJv
dW5kDQogICAgKyAgIHRvIHRoZSBhcmNoaXRlY3R1cmFsIGxhbmUgaW5kaWNlcyB1c2VkIGJ5IE5l
b24gaW50cmluc2ljcy4gICovDQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyNkZWZp
bmUgX19hYXJjaDY0X2xhbmUoX192ZWMsIF9faWR4KSAoX19BQVJDSDY0X05VTV9MQU5FUyAoX192
ZWMpIC0gMSAtIF9faWR4KQ0KICAgICsjZWxzZQ0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF9sYW5l
KF9fdmVjLCBfX2lkeCkgX19pZHgNCiAgICArI2VuZGlmDQogICAgKw0KICAgICsvKiB2Z2V0X2xh
bmUgaW50ZXJuYWwgbWFjcm8uICAqLw0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92Z2V0X2xhbmVf
YW55KF9fdmVjLCBfX2luZGV4KQkJCQlcDQogICAgKyAgX19leHRlbnNpb25fXwkJCQkJCQkJXA0K
ICAgICsgICh7CQkJCQkJCQkJXA0KICAgICsgICAgX19BQVJDSDY0X0xBTkVfQ0hFQ0sgKF9fdmVj
LCBfX2luZGV4KTsJCQkJXA0KICAgICsgICAgX192ZWNbX19hYXJjaDY0X2xhbmUgKF9fdmVjLCBf
X2luZGV4KV07CQkJCVwNCiAgICArICB9KQ0KICAgICsNCiAgICArLyogdnNldF9sYW5lIGFuZCB2
bGQxX2xhbmUgaW50ZXJuYWwgbWFjcm8uICAqLw0KICAgICsjZGVmaW5lIF9fYWFyY2g2NF92c2V0
X2xhbmVfYW55KF9fZWxlbSwgX192ZWMsIF9faW5kZXgpCQkJXA0KICAgICsgIF9fZXh0ZW5zaW9u
X18JCQkJCQkJCVwNCiAgICArICAoewkJCQkJCQkJCVwNCiAgICArICAgIF9fQUFSQ0g2NF9MQU5F
X0NIRUNLIChfX3ZlYywgX19pbmRleCk7CQkJCVwNCiAgICArICAgIF9fdmVjW19fYWFyY2g2NF9s
YW5lIChfX3ZlYywgX19pbmRleCldID0gX19lbGVtOwkJCVwNCiAgICArICAgIF9fdmVjOwkJCQkJ
CQkJXA0KICAgICsgIH0pDQogICAgKw0KICAgICsvKiB2YWRkICAqLw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRf
czggKGludDh4OF90IF9fYSwgaW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YSArIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZF9zMTYgKGludDE2eDRfdCBf
X2EsIGludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICsgX19iOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkX3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKyBfX2I7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmFkZF9mMzIgKGZsb2F0MzJ4Ml90IF9fYSwgZmxvYXQzMngyX3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSArIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2YWRkX2Y2NCAoZmxvYXQ2NHgxX3QgX19hLCBmbG9hdDY0eDFfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hICsgX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRk
X3U4ICh1aW50OHg4X3QgX19hLCB1aW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYSArIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRfdTE2ICh1aW50MTZ4
NF90IF9fYSwgdWludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICsgX19i
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZF91MzIgKHVpbnQzMngyX3QgX19hLCB1
aW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKyBfX2I7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZhZGRfczY0IChpbnQ2NHgxX3QgX19hLCBpbnQ2NHgxX3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSArIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZhZGRfdTY0ICh1aW50NjR4MV90IF9fYSwgdWludDY0eDFfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hICsgX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRk
cV9zOCAoaW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2EgKyBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRxX3MxNiAoaW50MTZ4
OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKyBfX2I7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMy
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRxX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50
MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKyBfX2I7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZhZGRxX3M2NCAoaW50NjR4Ml90IF9fYSwgaW50NjR4Ml90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2EgKyBfX2I7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmFkZHFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2EgKyBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmFkZHFfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0NjR4Ml90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2EgKyBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkcV91
OCAodWludDh4MTZfdCBfX2EsIHVpbnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYSArIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRxX3UxNiAodWludDE2
eDhfdCBfX2EsIHVpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSArIF9f
YjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRxX3UzMiAodWludDMyeDRfdCBfX2Es
IHVpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSArIF9fYjsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRxX3U2NCAodWludDY0eDJfdCBfX2EsIHVpbnQ2NHgy
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSArIF9fYjsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmFkZGxfczggKGludDh4OF90IF9fYSwgaW50OHg4X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NhZGRsdjhxaSAo
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkbF9zMTYgKGludDE2eDRf
dCBfX2EsIGludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRfdCkg
X19idWlsdGluX2FhcmNoNjRfc2FkZGx2NGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZhZGRsX3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9zYWRkbHYyc2kg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRsX3U4ICh1aW50OHg4
X3QgX19hLCB1aW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90
KSBfX2J1aWx0aW5fYWFyY2g2NF91YWRkbHY4cWkgKChpbnQ4eDhfdCkgX19hLA0KICAgICsJCQkJ
CQkgICAoaW50OHg4X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkbF91
MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfdWFkZGx2NGhpICgoaW50MTZ4NF90KSBf
X2EsDQogICAgKwkJCQkJCSAgIChpbnQxNng0X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2YWRkbF91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfdWFkZGx2MnNp
ICgoaW50MzJ4Ml90KSBfX2EsDQogICAgKwkJCQkJCSAgIChpbnQzMngyX3QpIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRsX2hpZ2hfczggKGludDh4MTZfdCBfX2EsIGludDh4
MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDhfdCkgX19idWlsdGluX2Fh
cmNoNjRfc2FkZGwydjE2cWkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmFkZGxfaGlnaF9zMTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfc2FkZGwydjhoaSAoX19h
LCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkbF9oaWdoX3MzMiAoaW50MzJ4
NF90IF9fYSwgaW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4Ml90
KSBfX2J1aWx0aW5fYWFyY2g2NF9zYWRkbDJ2NHNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2YWRkbF9oaWdoX3U4ICh1aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0
X3VhZGRsMnYxNnFpICgoaW50OHgxNl90KSBfX2EsDQogICAgKwkJCQkJCSAgICAgKGludDh4MTZf
dCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRsX2hpZ2hfdTE2ICh1aW50
MTZ4OF90IF9fYSwgdWludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQz
Mng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VhZGRsMnY4aGkgKChpbnQxNng4X3QpIF9fYSwNCiAg
ICArCQkJCQkJICAgIChpbnQxNng4X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2YWRkbF9oaWdoX3UzMiAodWludDMyeDRfdCBfX2EsIHVpbnQzMng0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF91YWRkbDJ2NHNp
ICgoaW50MzJ4NF90KSBfX2EsDQogICAgKwkJCQkJCSAgICAoaW50MzJ4NF90KSBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkd19zOCAoaW50MTZ4OF90IF9fYSwgaW50OHg4X3Qg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0
X3NhZGR3djhxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkd19z
MTYgKGludDMyeDRfdCBfX2EsIGludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
KGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfc2FkZHd2NGhpIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGR3X3MzMiAoaW50NjR4Ml90IF9fYSwgaW50MzJ4Ml90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2
NF9zYWRkd3Yyc2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGR3
X3U4ICh1aW50MTZ4OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfdWFkZHd2OHFpICgoaW50MTZ4OF90KSBf
X2EsDQogICAgKwkJCQkJCSAgIChpbnQ4eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZhZGR3X3UxNiAodWludDMyeDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF91YWRkd3Y0aGkg
KChpbnQzMng0X3QpIF9fYSwNCiAgICArCQkJCQkJICAgKGludDE2eDRfdCkgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGR3X3UzMiAodWludDY0eDJfdCBfX2EsIHVpbnQzMngy
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fYWFy
Y2g2NF91YWRkd3Yyc2kgKChpbnQ2NHgyX3QpIF9fYSwNCiAgICArCQkJCQkJICAgKGludDMyeDJf
dCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZHdfaGlnaF9zOCAoaW50MTZ4
OF90IF9fYSwgaW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90
KSBfX2J1aWx0aW5fYWFyY2g2NF9zYWRkdzJ2MTZxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2YWRkd19oaWdoX3MxNiAoaW50MzJ4NF90IF9fYSwgaW50MTZ4OF90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9z
YWRkdzJ2OGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGR3X2hp
Z2hfczMyIChpbnQ2NHgyX3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NhZGR3MnY0c2kgKF9fYSwgX19iKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGR3X2hpZ2hfdTggKHVpbnQxNng4X3QgX19h
LCB1aW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkgX19i
dWlsdGluX2FhcmNoNjRfdWFkZHcydjE2cWkgKChpbnQxNng4X3QpIF9fYSwNCiAgICArCQkJCQkJ
ICAgICAoaW50OHgxNl90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZHdf
aGlnaF91MTYgKHVpbnQzMng0X3QgX19hLCB1aW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfdWFkZHcydjhoaSAoKGludDMy
eDRfdCkgX19hLA0KICAgICsJCQkJCQkgICAgKGludDE2eDhfdCkgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZhZGR3X2hpZ2hfdTMyICh1aW50NjR4Ml90IF9fYSwgdWludDMyeDRf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJj
aDY0X3VhZGR3MnY0c2kgKChpbnQ2NHgyX3QpIF9fYSwNCiAgICArCQkJCQkJICAgIChpbnQzMng0
X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmhhZGRfczggKGludDh4OF90IF9f
YSwgaW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19idWls
dGluX2FhcmNoNjRfc2hhZGR2OHFpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZoYWRkX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiAoaW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zaGFkZHY0aGkgKF9fYSwg
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmhhZGRfczMyIChpbnQzMngyX3QgX19h
LCBpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMngyX3QpIF9fYnVp
bHRpbl9hYXJjaDY0X3NoYWRkdjJzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2aGFkZF91OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF91aGFkZHY4cWkgKChpbnQ4
eDhfdCkgX19hLA0KICAgICsJCQkJCQkgIChpbnQ4eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZoYWRkX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF91aGFk
ZHY0aGkgKChpbnQxNng0X3QpIF9fYSwNCiAgICArCQkJCQkJICAgKGludDE2eDRfdCkgX19iKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMy
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZoYWRkX3UzMiAodWludDMyeDJfdCBfX2EsIHVp
bnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4Ml90KSBfX2J1aWx0
aW5fYWFyY2g2NF91aGFkZHYyc2kgKChpbnQzMngyX3QpIF9fYSwNCiAgICArCQkJCQkJICAgKGlu
dDMyeDJfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmhhZGRxX3M4IChpbnQ4
eDE2X3QgX19hLCBpbnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDE2
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NoYWRkdjE2cWkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmhhZGRxX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zaGFk
ZHY4aGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmhhZGRxX3MzMiAo
aW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zaGFkZHY0c2kgKF9fYSwgX19iKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZoYWRkcV91OCAodWludDh4MTZfdCBfX2EsIHVpbnQ4eDE2X3Qg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2
NF91aGFkZHYxNnFpICgoaW50OHgxNl90KSBfX2EsDQogICAgKwkJCQkJCSAgICAoaW50OHgxNl90
KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmhhZGRxX3UxNiAodWludDE2eDhf
dCBfX2EsIHVpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90
KSBfX2J1aWx0aW5fYWFyY2g2NF91aGFkZHY4aGkgKChpbnQxNng4X3QpIF9fYSwNCiAgICArCQkJ
CQkJICAgKGludDE2eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZoYWRk
cV91MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfdWhhZGR2NHNpICgoaW50MzJ4NF90
KSBfX2EsDQogICAgKwkJCQkJCSAgIChpbnQzMng0X3QpIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnJoYWRkX3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAoaW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NyaGFkZHY4cWkgKF9f
YSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJoYWRkX3MxNiAoaW50MTZ4NF90
IF9fYSwgaW50MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4NF90KSBf
X2J1aWx0aW5fYWFyY2g2NF9zcmhhZGR2NGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZyaGFkZF9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfc3JoYWRkdjJz
aSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmhhZGRfdTggKHVpbnQ4
eDhfdCBfX2EsIHVpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDhf
dCkgX19idWlsdGluX2FhcmNoNjRfdXJoYWRkdjhxaSAoKGludDh4OF90KSBfX2EsDQogICAgKwkJ
CQkJCSAgIChpbnQ4eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyaGFk
ZF91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiAodWludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfdXJoYWRkdjRoaSAoKGludDE2eDRf
dCkgX19hLA0KICAgICsJCQkJCQkgICAgKGludDE2eDRfdCkgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyaGFkZF91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfdXJo
YWRkdjJzaSAoKGludDMyeDJfdCkgX19hLA0KICAgICsJCQkJCQkgICAgKGludDMyeDJfdCkgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJoYWRkcV9zOCAoaW50OHgxNl90IF9fYSwg
aW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHgxNl90KSBfX2J1aWx0
aW5fYWFyY2g2NF9zcmhhZGR2MTZxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cmhhZGRxX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcmhhZGR2OGhpIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyaGFkZHFfczMyIChpbnQzMng0
X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X3NyaGFkZHY0c2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyaGFkZHFfdTggKHVpbnQ4eDE2X3QgX19hLCB1aW50OHgxNl90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfdXJo
YWRkdjE2cWkgKChpbnQ4eDE2X3QpIF9fYSwNCiAgICArCQkJCQkJICAgICAoaW50OHgxNl90KSBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJoYWRkcV91MTYgKHVpbnQxNng4X3Qg
X19hLCB1aW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkg
X19idWlsdGluX2FhcmNoNjRfdXJoYWRkdjhoaSAoKGludDE2eDhfdCkgX19hLA0KICAgICsJCQkJ
CQkgICAgKGludDE2eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyaGFk
ZHFfdTMyICh1aW50MzJ4NF90IF9fYSwgdWludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VyaGFkZHY0c2kgKChpbnQzMng0
X3QpIF9fYSwNCiAgICArCQkJCQkJICAgIChpbnQzMng0X3QpIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmFkZGhuX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAoaW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FkZGhudjho
aSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkaG5fczMyIChpbnQz
Mng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng0
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FkZGhudjRzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2YWRkaG5fczY0IChpbnQ2NHgyX3QgX19hLCBpbnQ2NHgyX3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FkZGhu
djJkaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkaG5fdTE2ICh1
aW50MTZ4OF90IF9fYSwgdWludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVp
bnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfYWRkaG52OGhpICgoaW50MTZ4OF90KSBfX2EsDQog
ICAgKwkJCQkJCSAgKGludDE2eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZhZGRobl91MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfYWRkaG52NHNpICgoaW50
MzJ4NF90KSBfX2EsDQogICAgKwkJCQkJCSAgIChpbnQzMng0X3QpIF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2YWRkaG5fdTY0ICh1aW50NjR4Ml90IF9fYSwgdWludDY0eDJfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2FkZGhudjJkaSAoKGludDY0eDJfdCkgX19hLA0KICAgICsJCQkJCQkgICAoaW50NjR4Ml90KSBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyYWRkaG5fczE2IChpbnQxNng4X3QgX19h
LCBpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19idWls
dGluX2FhcmNoNjRfcmFkZGhudjhoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cmFkZGhuX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAoaW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9yYWRkaG52NHNpIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyYWRkaG5fczY0IChpbnQ2NHgy
X3QgX19hLCBpbnQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMngyX3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X3JhZGRobnYyZGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnJhZGRobl91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9yYWRk
aG52OGhpICgoaW50MTZ4OF90KSBfX2EsDQogICAgKwkJCQkJCSAgIChpbnQxNng4X3QpIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmFkZGhuX3UzMiAodWludDMyeDRfdCBfX2Es
IHVpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90KSBfX2J1
aWx0aW5fYWFyY2g2NF9yYWRkaG52NHNpICgoaW50MzJ4NF90KSBfX2EsDQogICAgKwkJCQkJCSAg
ICAoaW50MzJ4NF90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJhZGRobl91
NjQgKHVpbnQ2NHgyX3QgX19hLCB1aW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfcmFkZGhudjJkaSAoKGludDY0eDJfdCkg
X19hLA0KICAgICsJCQkJCQkgICAgKGludDY0eDJfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmFkZGhuX2hpZ2hfczE2IChpbnQ4eDhfdCBfX2EsIGludDE2eDhfdCBfX2IsIGlu
dDE2eDhfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4MTZfdCkgX19idWlsdGlu
X2FhcmNoNjRfYWRkaG4ydjhoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZhZGRobl9oaWdoX3MzMiAoaW50MTZ4NF90IF9fYSwgaW50MzJ4NF90IF9fYiwgaW50
MzJ4NF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5f
YWFyY2g2NF9hZGRobjJ2NHNpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmFkZGhuX2hpZ2hfczY0IChpbnQzMngyX3QgX19hLCBpbnQ2NHgyX3QgX19iLCBpbnQ2
NHgyX3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2FkZGhuMnYyZGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmFkZGhuX2hpZ2hfdTE2ICh1aW50OHg4X3QgX19hLCB1aW50MTZ4OF90IF9fYiwgdWlu
dDE2eDhfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2FkZGhuMnY4aGkgKChpbnQ4eDhfdCkgX19hLA0KICAgICsJCQkJCQkgICAgKGlu
dDE2eDhfdCkgX19iLA0KICAgICsJCQkJCQkgICAgKGludDE2eDhfdCkgX19jKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZhZGRobl9oaWdoX3UzMiAodWludDE2eDRfdCBfX2EsIHVpbnQz
Mng0X3QgX19iLCB1aW50MzJ4NF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2
eDhfdCkgX19idWlsdGluX2FhcmNoNjRfYWRkaG4ydjRzaSAoKGludDE2eDRfdCkgX19hLA0KICAg
ICsJCQkJCQkgICAgKGludDMyeDRfdCkgX19iLA0KICAgICsJCQkJCQkgICAgKGludDMyeDRfdCkg
X19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRobl9oaWdoX3U2NCAodWludDMy
eDJfdCBfX2EsIHVpbnQ2NHgyX3QgX19iLCB1aW50NjR4Ml90IF9fYykNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfYWRkaG4ydjJkaSAoKGludDMy
eDJfdCkgX19hLA0KICAgICsJCQkJCQkgICAgKGludDY0eDJfdCkgX19iLA0KICAgICsJCQkJCQkg
ICAgKGludDY0eDJfdCkgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJhZGRobl9o
aWdoX3MxNiAoaW50OHg4X3QgX19hLCBpbnQxNng4X3QgX19iLCBpbnQxNng4X3QgX19jKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3JhZGRobjJ2
OGhpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJhZGRobl9o
aWdoX3MzMiAoaW50MTZ4NF90IF9fYSwgaW50MzJ4NF90IF9fYiwgaW50MzJ4NF90IF9fYykNCiAg
ICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9yYWRkaG4y
djRzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyYWRkaG5f
aGlnaF9zNjQgKGludDMyeDJfdCBfX2EsIGludDY0eDJfdCBfX2IsIGludDY0eDJfdCBfX2MpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfcmFkZGhu
MnYyZGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJhZGRo
bl9oaWdoX3UxNiAodWludDh4OF90IF9fYSwgdWludDE2eDhfdCBfX2IsIHVpbnQxNng4X3QgX19j
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9y
YWRkaG4ydjhoaSAoKGludDh4OF90KSBfX2EsDQogICAgKwkJCQkJCSAgICAgKGludDE2eDhfdCkg
X19iLA0KICAgICsJCQkJCQkgICAgIChpbnQxNng4X3QpIF9fYyk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmFkZGhuX2hpZ2hfdTMyICh1aW50MTZ4NF90IF9fYSwgdWludDMyeDRfdCBf
X2IsIHVpbnQzMng0X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSBf
X2J1aWx0aW5fYWFyY2g2NF9yYWRkaG4ydjRzaSAoKGludDE2eDRfdCkgX19hLA0KICAgICsJCQkJ
CQkgICAgIChpbnQzMng0X3QpIF9fYiwNCiAgICArCQkJCQkJICAgICAoaW50MzJ4NF90KSBfX2Mp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJhZGRobl9oaWdoX3U2NCAodWludDMyeDJf
dCBfX2EsIHVpbnQ2NHgyX3QgX19iLCB1aW50NjR4Ml90IF9fYykNCiAgICArew0KICAgICsgIHJl
dHVybiAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfcmFkZGhuMnYyZGkgKChpbnQzMngy
X3QpIF9fYSwNCiAgICArCQkJCQkJICAgICAoaW50NjR4Ml90KSBfX2IsDQogICAgKwkJCQkJCSAg
ICAgKGludDY0eDJfdCkgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZGl2X2Yz
MiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19hIC8gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkaXZfZjY0IChmbG9h
dDY0eDFfdCBfX2EsIGZsb2F0NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2Eg
LyBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmRpdnFfZjMyIChmbG9hdDMyeDRf
dCBfX2EsIGZsb2F0MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgLyBfX2I7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0
NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmRpdnFfZjY0IChmbG9hdDY0eDJfdCBfX2Es
IGZsb2F0NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgLyBfX2I7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bF9zOCAoaW50OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bXVsX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2EgKiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxfczMy
IChpbnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YSAqIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsX2YzMiAoZmxvYXQzMngy
X3QgX19hLCBmbG9hdDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19i
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxfZjY0IChmbG9hdDY0eDFfdCBfX2Es
IGZsb2F0NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKiBfX2I7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxfdTggKHVpbnQ4eDhfdCBfX2EsIHVpbnQ4eDhfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdm11bF91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4NF90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2EgKiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bXVsX3UzMiAodWludDMyeDJfdCBfX2EsIHVpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYSAqIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bF9wOCAocG9s
eTh4OF90IF9fYSwgcG9seTh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4
OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9wbXVsdjhxaSAoKGludDh4OF90KSBfX2EsDQogICAgKwkJ
CQkJCSAoaW50OHg4X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxxX3M4
IChpbnQ4eDE2X3QgX19hLCBpbnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YSAqIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHFfczE2IChpbnQxNng4X3Qg
X19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYjsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHFfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYjsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bXVscV9mMzIgKGZsb2F0MzJ4NF90IF9fYSwgZmxvYXQzMng0X3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bXVscV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZtdWxxX3U4ICh1aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHFfdTE2
ICh1aW50MTZ4OF90IF9fYSwgdWludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19hICogX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHFfdTMyICh1aW50MzJ4
NF90IF9fYSwgdWludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19i
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5
OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHFfcDggKHBvbHk4eDE2X3QgX19hLCBw
b2x5OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4MTZfdCkgX19idWls
dGluX2FhcmNoNjRfcG11bHYxNnFpICgoaW50OHgxNl90KSBfX2EsDQogICAgKwkJCQkJCSAgIChp
bnQ4eDE2X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFuZF9zOCAoaW50OHg4
X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICYgX19iOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YW5kX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4
NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgJiBfX2I7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZhbmRfczMyIChpbnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYSAmIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmFuZF91OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2EgJiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YW5kX3UxNiAodWlu
dDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAm
IF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhbmRfdTMyICh1aW50MzJ4Ml90IF9f
YSwgdWludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICYgX19iOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2YW5kX3M2NCAoaW50NjR4MV90IF9fYSwgaW50NjR4MV90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgJiBfX2I7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2YW5kX3U2NCAodWludDY0eDFfdCBfX2EsIHVpbnQ2NHgxX3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYSAmIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmFuZHFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19hICYgX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YW5kcV9zMTYgKGlu
dDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICYg
X19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YW5kcV9zMzIgKGludDMyeDRfdCBfX2Es
IGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICYgX19iOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2YW5kcV9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICYgX19iOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmFuZHFfdTggKHVpbnQ4eDE2X3QgX19hLCB1aW50OHgxNl90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2EgJiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
YW5kcV91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2EgJiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YW5kcV91MzIg
KHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2EgJiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YW5kcV91NjQgKHVpbnQ2NHgy
X3QgX19hLCB1aW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgJiBfX2I7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm9ycl9zOCAoaW50OHg4X3QgX19hLCBpbnQ4eDhf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgX19iOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2b3JyX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2EgfCBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zv
cnJfczMyIChpbnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYSB8IF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm9ycl91OCAodWludDh4
OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgfCBfX2I7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2b3JyX3UxNiAodWludDE2eDRfdCBfX2EsIHVp
bnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSB8IF9fYjsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZvcnJfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgX19iOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2b3JyX3M2NCAoaW50NjR4MV90IF9fYSwgaW50NjR4MV90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2EgfCBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2b3Jy
X3U2NCAodWludDY0eDFfdCBfX2EsIHVpbnQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYSB8IF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm9ycnFfczggKGludDh4
MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgX19i
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQx
Nng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2b3JycV9zMTYgKGludDE2eDhfdCBfX2EsIGlu
dDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgX19iOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2b3JycV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgX19iOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2b3JycV9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19hIHwgX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm9ycnFf
dTggKHVpbnQ4eDE2X3QgX19hLCB1aW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2EgfCBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2b3JycV91MTYgKHVpbnQx
Nng4X3QgX19hLCB1aW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgfCBf
X2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2b3JycV91MzIgKHVpbnQzMng0X3QgX19h
LCB1aW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgfCBfX2I7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2b3JycV91NjQgKHVpbnQ2NHgyX3QgX19hLCB1aW50NjR4
Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgfCBfX2I7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmVvcl9zOCAoaW50OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hIF4gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZW9y
X3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2EgXiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zlb3JfczMyIChpbnQzMngy
X3QgX19hLCBpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSBeIF9fYjsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmVvcl91OCAodWludDh4OF90IF9fYSwgdWludDh4
OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgXiBfX2I7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZW9yX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSBeIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Zlb3JfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19hIF4gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZW9yX3M2
NCAoaW50NjR4MV90IF9fYSwgaW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2EgXiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZW9yX3U2NCAodWludDY0eDFf
dCBfX2EsIHVpbnQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSBeIF9fYjsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgx
Nl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmVvcnFfczggKGludDh4MTZfdCBfX2EsIGludDh4
MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIF4gX19iOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZW9ycV9zMTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19hIF4gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2ZW9ycV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hIF4gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZW9ycV9zNjQg
KGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
IF4gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmVvcnFfdTggKHVpbnQ4eDE2X3Qg
X19hLCB1aW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgXiBfX2I7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZW9ycV91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50
MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgXiBfX2I7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2ZW9ycV91MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgXiBfX2I7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2ZW9ycV91NjQgKHVpbnQ2NHgyX3QgX19hLCB1aW50NjR4Ml90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2EgXiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJp
Y19zOCAoaW50OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19hICYgfl9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJpY19zMTYgKGludDE2eDRf
dCBfX2EsIGludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICYgfl9fYjsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJpY19zMzIgKGludDMyeDJfdCBfX2EsIGludDMy
eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICYgfl9fYjsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmJpY191OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2EgJiB+X19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmJpY191MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4NF90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2EgJiB+X19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJpY191
MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2EgJiB+X19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YmljX3M2NCAoaW50NjR4
MV90IF9fYSwgaW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgJiB+X19i
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJpY191NjQgKHVpbnQ2NHgxX3QgX19hLCB1
aW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgJiB+X19iOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2YmljcV9zOCAoaW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgJiB+X19iOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2YmljcV9zMTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hICYgfl9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJp
Y3FfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYSAmIH5fX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZiaWNxX3M2NCAoaW50
NjR4Ml90IF9fYSwgaW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgJiB+
X19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJpY3FfdTggKHVpbnQ4eDE2X3QgX19h
LCB1aW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgJiB+X19iOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJpY3FfdTE2ICh1aW50MTZ4OF90IF9fYSwgdWludDE2
eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICYgfl9fYjsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZiaWNxX3UzMiAodWludDMyeDRfdCBfX2EsIHVpbnQzMng0X3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAmIH5fX2I7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2YmljcV91NjQgKHVpbnQ2NHgyX3QgX19hLCB1aW50NjR4Ml90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2EgJiB+X19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zv
cm5fczggKGludDh4OF90IF9fYSwgaW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYSB8IH5fX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zvcm5fczE2IChpbnQxNng0
X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSB8IH5fX2I7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMy
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zvcm5fczMyIChpbnQzMngyX3QgX19hLCBpbnQz
MngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSB8IH5fX2I7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Zvcm5fdTggKHVpbnQ4eDhfdCBfX2EsIHVpbnQ4eDhfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgfl9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Zvcm5fdTE2ICh1aW50MTZ4NF90IF9fYSwgdWludDE2eDRfdCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19hIHwgfl9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zvcm5f
dTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19hIHwgfl9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm9ybl9zNjQgKGludDY0
eDFfdCBfX2EsIGludDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgfl9f
YjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zvcm5fdTY0ICh1aW50NjR4MV90IF9fYSwg
dWludDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgfl9fYjsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm9ybnFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgfl9fYjsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdm9ybnFfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYSB8IH5fX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zv
cm5xX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2EgfCB+X19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2b3JucV9zNjQgKGlu
dDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwg
fl9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zvcm5xX3U4ICh1aW50OHgxNl90IF9f
YSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIHwgfl9fYjsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zvcm5xX3UxNiAodWludDE2eDhfdCBfX2EsIHVpbnQx
Nng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSB8IH5fX2I7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2b3JucV91MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgfCB+X19iOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdm9ybnFfdTY0ICh1aW50NjR4Ml90IF9fYSwgdWludDY0eDJfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19hIHwgfl9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
c3ViX3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2EgLSBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdWJfczE2IChpbnQxNng0
X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAtIF9fYjsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1Yl9zMzIgKGludDMyeDJfdCBfX2EsIGludDMy
eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIC0gX19iOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZzdWJfZjMyIChmbG9hdDMyeDJfdCBfX2EsIGZsb2F0MzJ4Ml90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgLSBfX2I7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnN1Yl9mNjQgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYSAtIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnN1Yl91OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2EgLSBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3ViX3UxNiAodWlu
dDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAt
IF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdWJfdTMyICh1aW50MzJ4Ml90IF9f
YSwgdWludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIC0gX19iOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2c3ViX3M2NCAoaW50NjR4MV90IF9fYSwgaW50NjR4MV90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgLSBfX2I7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2c3ViX3U2NCAodWludDY0eDFfdCBfX2EsIHVpbnQ2NHgxX3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYSAtIF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnN1YnFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19hIC0gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3VicV9zMTYgKGlu
dDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIC0g
X19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3VicV9zMzIgKGludDMyeDRfdCBfX2Es
IGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIC0gX19iOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2c3VicV9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIC0gX19iOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZzdWJxX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19hIC0gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZzdWJxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9hdDY0eDJfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hIC0gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1
YnFfdTggKHVpbnQ4eDE2X3QgX19hLCB1aW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2EgLSBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3VicV91MTYgKHVp
bnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2Eg
LSBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3VicV91MzIgKHVpbnQzMng0X3Qg
X19hLCB1aW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgLSBfX2I7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3VicV91NjQgKHVpbnQ2NHgyX3QgX19hLCB1aW50
NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgLSBfX2I7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZzdWJsX3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zc3VibHY4
cWkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1YmxfczE2IChpbnQx
Nng0X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMng0
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NzdWJsdjRoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2c3VibF9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfc3N1Ymx2
MnNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3VibF91OCAodWlu
dDh4OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2
eDhfdCkgX19idWlsdGluX2FhcmNoNjRfdXN1Ymx2OHFpICgoaW50OHg4X3QpIF9fYSwNCiAgICAr
CQkJCQkJICAgKGludDh4OF90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1
YmxfdTE2ICh1aW50MTZ4NF90IF9fYSwgdWludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VzdWJsdjRoaSAoKGludDE2eDRf
dCkgX19hLA0KICAgICsJCQkJCQkgICAoaW50MTZ4NF90KSBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnN1YmxfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VzdWJs
djJzaSAoKGludDMyeDJfdCkgX19hLA0KICAgICsJCQkJCQkgICAoaW50MzJ4Ml90KSBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3VibF9oaWdoX3M4IChpbnQ4eDE2X3QgX19hLCBp
bnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X3NzdWJsMnYxNnFpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZzdWJsX2hpZ2hfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NzdWJsMnY4aGkg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1YmxfaGlnaF9zMzIgKGlu
dDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0
eDJfdCkgX19idWlsdGluX2FhcmNoNjRfc3N1YmwydjRzaSAoX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnN1YmxfaGlnaF91OCAodWludDh4MTZfdCBfX2EsIHVpbnQ4eDE2
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fYWFy
Y2g2NF91c3VibDJ2MTZxaSAoKGludDh4MTZfdCkgX19hLA0KICAgICsJCQkJCQkgICAgIChpbnQ4
eDE2X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3VibF9oaWdoX3UxNiAo
dWludDE2eDhfdCBfX2EsIHVpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1
aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF91c3VibDJ2OGhpICgoaW50MTZ4OF90KSBfX2Es
DQogICAgKwkJCQkJCSAgICAoaW50MTZ4OF90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnN1YmxfaGlnaF91MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfdXN1Ymwy
djRzaSAoKGludDMyeDRfdCkgX19hLA0KICAgICsJCQkJCQkgICAgKGludDMyeDRfdCkgX19iKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1YndfczggKGludDE2eDhfdCBfX2EsIGludDh4
OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFy
Y2g2NF9zc3Vid3Y4cWkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1
YndfczE2IChpbnQzMng0X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NzdWJ3djRoaSAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3Vid19zMzIgKGludDY0eDJfdCBfX2EsIGludDMy
eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDJfdCkgX19idWlsdGluX2Fh
cmNoNjRfc3N1Ynd2MnNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
c3Vid191OCAodWludDE2eDhfdCBfX2EsIHVpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VzdWJ3djhxaSAoKGludDE2eDhf
dCkgX19hLA0KICAgICsJCQkJCQkgICAoaW50OHg4X3QpIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2c3Vid191MTYgKHVpbnQzMng0X3QgX19hLCB1aW50MTZ4NF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfdXN1Ynd2
NGhpICgoaW50MzJ4NF90KSBfX2EsDQogICAgKwkJCQkJCSAgIChpbnQxNng0X3QpIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3Vid191MzIgKHVpbnQ2NHgyX3QgX19hLCB1aW50
MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgX19idWlsdGlu
X2FhcmNoNjRfdXN1Ynd2MnNpICgoaW50NjR4Ml90KSBfX2EsDQogICAgKwkJCQkJCSAgIChpbnQz
MngyX3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdWJ3X2hpZ2hfczggKGlu
dDE2eDhfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2
eDhfdCkgX19idWlsdGluX2FhcmNoNjRfc3N1YncydjE2cWkgKF9fYSwgX19iKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnN1YndfaGlnaF9zMTYgKGludDMyeDRfdCBfX2EsIGludDE2eDhf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNo
NjRfc3N1YncydjhoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3Vi
d19oaWdoX3MzMiAoaW50NjR4Ml90IF9fYSwgaW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9zc3VidzJ2NHNpIChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3Vid19oaWdoX3U4ICh1aW50MTZ4OF90
IF9fYSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng4X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X3VzdWJ3MnYxNnFpICgoaW50MTZ4OF90KSBfX2EsDQogICAgKwkJ
CQkJCSAgICAgKGludDh4MTZfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zz
dWJ3X2hpZ2hfdTE2ICh1aW50MzJ4NF90IF9fYSwgdWludDE2eDhfdCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VzdWJ3MnY4aGkgKChp
bnQzMng0X3QpIF9fYSwNCiAgICArCQkJCQkJICAgIChpbnQxNng4X3QpIF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2c3Vid19oaWdoX3UzMiAodWludDY0eDJfdCBfX2EsIHVpbnQz
Mng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSBfX2J1aWx0aW5f
YWFyY2g2NF91c3VidzJ2NHNpICgoaW50NjR4Ml90KSBfX2EsDQogICAgKwkJCQkJCSAgICAoaW50
MzJ4NF90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRkX3M4IChpbnQ4eDhf
dCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHg4X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X3NxYWRkdjhxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cWFkZF9zMTYgKGludDE2eDRfdCBfX2EsIGludDE2eDRfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfc3FhZGR2NGhpIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRkX3MzMiAoaW50MzJ4Ml90
IF9fYSwgaW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4Ml90KSBf
X2J1aWx0aW5fYWFyY2g2NF9zcWFkZHYyc2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFhZGRfczY0IChpbnQ2NHgxX3QgX19hLCBpbnQ2NHgxX3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9zcWFkZGRpIChf
X2FbMF0sIF9fYlswXSl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWFkZF91OCAodWlu
dDh4OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF91cWFkZHY4cWlfdXV1IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmhzdWJfczggKGludDh4OF90IF9fYSwgaW50OHg4X3QgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChpbnQ4eDhfdClfX2J1aWx0aW5fYWFyY2g2NF9zaHN1YnY4cWkgKF9fYSwgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmhzdWJfczE2IChpbnQxNng0X3QgX19hLCBp
bnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X3Noc3VidjRoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2aHN1Yl9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfc2hzdWJ2MnNpIChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zoc3ViX3U4ICh1aW50OHg4X3QgX19hLCB1
aW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X3Voc3VidjhxaSAoKGludDh4OF90KSBfX2EsDQogICAgKwkJCQkJCSAgKGludDh4
OF90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmhzdWJfdTE2ICh1aW50MTZ4
NF90IF9fYSwgdWludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng0
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3VidjRoaSAoKGludDE2eDRfdCkgX19hLA0KICAgICsJ
CQkJCQkgICAoaW50MTZ4NF90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmhz
dWJfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3VidjJzaSAoKGludDMyeDJf
dCkgX19hLA0KICAgICsJCQkJCQkgICAoaW50MzJ4Ml90KSBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2aHN1YnFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKGludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfc2hzdWJ2MTZx
aSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2aHN1YnFfczE2IChpbnQx
Nng4X3QgX19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Noc3VidjhoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2aHN1YnFfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Noc3Vi
djRzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmhzdWJxX3U4ICh1
aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVp
bnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3VidjE2cWkgKChpbnQ4eDE2X3QpIF9fYSwN
CiAgICArCQkJCQkJICAgIChpbnQ4eDE2X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2aHN1YnFfdTE2ICh1aW50MTZ4OF90IF9fYSwgdWludDE2eDhfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3VidjhoaSAo
KGludDE2eDhfdCkgX19hLA0KICAgICsJCQkJCQkgICAoaW50MTZ4OF90KSBfX2IpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmhzdWJxX3UzMiAodWludDMyeDRfdCBfX2EsIHVpbnQzMng0
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFy
Y2g2NF91aHN1YnY0c2kgKChpbnQzMng0X3QpIF9fYSwNCiAgICArCQkJCQkJICAgKGludDMyeDRf
dCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3ViaG5fczE2IChpbnQxNng4X3Qg
X19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19i
dWlsdGluX2FhcmNoNjRfc3ViaG52OGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZzdWJobl9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfc3ViaG52NHNpIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdWJobl9zNjQgKGludDY0eDJf
dCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDJfdCkg
X19idWlsdGluX2FhcmNoNjRfc3ViaG52MmRpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZzdWJobl91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zdWJobnY4
aGkgKChpbnQxNng4X3QpIF9fYSwNCiAgICArCQkJCQkJICAoaW50MTZ4OF90KSBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1YmhuX3UzMiAodWludDMyeDRfdCBfX2EsIHVpbnQz
Mng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90KSBfX2J1aWx0aW5f
YWFyY2g2NF9zdWJobnY0c2kgKChpbnQzMng0X3QpIF9fYSwNCiAgICArCQkJCQkJICAgKGludDMy
eDRfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdWJobl91NjQgKHVpbnQ2
NHgyX3QgX19hLCB1aW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMy
eDJfdCkgX19idWlsdGluX2FhcmNoNjRfc3ViaG52MmRpICgoaW50NjR4Ml90KSBfX2EsDQogICAg
KwkJCQkJCSAgIChpbnQ2NHgyX3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJz
dWJobl9zMTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKGludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9yc3ViaG52OGhpIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc3ViaG5fczMyIChpbnQzMng0X3QgX19hLCBp
bnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X3JzdWJobnY0c2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJzdWJobl9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfcnN1YmhudjJkaSAoX19h
LCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnN1YmhuX3UxNiAodWludDE2eDhf
dCBfX2EsIHVpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X3JzdWJobnY4aGkgKChpbnQxNng4X3QpIF9fYSwNCiAgICArCQkJ
CQkJICAgKGludDE2eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc3Vi
aG5fdTMyICh1aW50MzJ4NF90IF9fYSwgdWludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3JzdWJobnY0c2kgKChpbnQzMng0
X3QpIF9fYSwNCiAgICArCQkJCQkJICAgIChpbnQzMng0X3QpIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cnN1YmhuX3U2NCAodWludDY0eDJfdCBfX2EsIHVpbnQ2NHgyX3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9y
c3ViaG52MmRpICgoaW50NjR4Ml90KSBfX2EsDQogICAgKwkJCQkJCSAgICAoaW50NjR4Ml90KSBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnN1YmhuX2hpZ2hfczE2IChpbnQ4eDhf
dCBfX2EsIGludDE2eDhfdCBfX2IsIGludDE2eDhfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1
cm4gKGludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfcnN1YmhuMnY4aGkgKF9fYSwgX19iLCBf
X2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnN1YmhuX2hpZ2hfczMyIChpbnQxNng0
X3QgX19hLCBpbnQzMng0X3QgX19iLCBpbnQzMng0X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3JzdWJobjJ2NHNpIChfX2EsIF9fYiwg
X19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzdWJobl9oaWdoX3M2NCAoaW50MzJ4
Ml90IF9fYSwgaW50NjR4Ml90IF9fYiwgaW50NjR4Ml90IF9fYykNCiAgICArew0KICAgICsgIHJl
dHVybiAoaW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9yc3ViaG4ydjJkaSAoX19hLCBfX2Is
IF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnN1YmhuX2hpZ2hfdTE2ICh1aW50
OHg4X3QgX19hLCB1aW50MTZ4OF90IF9fYiwgdWludDE2eDhfdCBfX2MpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3JzdWJobjJ2OGhpICgoaW50
OHg4X3QpIF9fYSwNCiAgICArCQkJCQkJICAgICAoaW50MTZ4OF90KSBfX2IsDQogICAgKwkJCQkJ
CSAgICAgKGludDE2eDhfdCkgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc3Vi
aG5faGlnaF91MzIgKHVpbnQxNng0X3QgX19hLCB1aW50MzJ4NF90IF9fYiwgdWludDMyeDRfdCBf
X2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0
X3JzdWJobjJ2NHNpICgoaW50MTZ4NF90KSBfX2EsDQogICAgKwkJCQkJCSAgICAgKGludDMyeDRf
dCkgX19iLA0KICAgICsJCQkJCQkgICAgIChpbnQzMng0X3QpIF9fYyk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cnN1YmhuX2hpZ2hfdTY0ICh1aW50MzJ4Ml90IF9fYSwgdWludDY0eDJf
dCBfX2IsIHVpbnQ2NHgyX3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90
KSBfX2J1aWx0aW5fYWFyY2g2NF9yc3ViaG4ydjJkaSAoKGludDMyeDJfdCkgX19hLA0KICAgICsJ
CQkJCQkgICAgIChpbnQ2NHgyX3QpIF9fYiwNCiAgICArCQkJCQkJICAgICAoaW50NjR4Ml90KSBf
X2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3ViaG5faGlnaF9zMTYgKGludDh4OF90
IF9fYSwgaW50MTZ4OF90IF9fYiwgaW50MTZ4OF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVy
biAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zdWJobjJ2OGhpIChfX2EsIF9fYiwgX19j
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1YmhuX2hpZ2hfczMyIChpbnQxNng0X3Qg
X19hLCBpbnQzMng0X3QgX19iLCBpbnQzMng0X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3N1YmhuMnY0c2kgKF9fYSwgX19iLCBfX2Mp
OzsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1YmhuX2hpZ2hfczY0IChpbnQzMngyX3Qg
X19hLCBpbnQ2NHgyX3QgX19iLCBpbnQ2NHgyX3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3N1YmhuMnYyZGkgKF9fYSwgX19iLCBfX2Mp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1YmhuX2hpZ2hfdTE2ICh1aW50OHg4X3Qg
X19hLCB1aW50MTZ4OF90IF9fYiwgdWludDE2eDhfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3N1YmhuMnY4aGkgKChpbnQ4eDhfdCkg
X19hLA0KICAgICsJCQkJCQkgICAgKGludDE2eDhfdCkgX19iLA0KICAgICsJCQkJCQkgICAgKGlu
dDE2eDhfdCkgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdWJobl9oaWdoX3Uz
MiAodWludDE2eDRfdCBfX2EsIHVpbnQzMng0X3QgX19iLCB1aW50MzJ4NF90IF9fYykNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfc3ViaG4ydjRz
aSAoKGludDE2eDRfdCkgX19hLA0KICAgICsJCQkJCQkgICAgKGludDMyeDRfdCkgX19iLA0KICAg
ICsJCQkJCQkgICAgKGludDMyeDRfdCkgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzdWJobl9oaWdoX3U2NCAodWludDMyeDJfdCBfX2EsIHVpbnQ2NHgyX3QgX19iLCB1aW50NjR4
Ml90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDRfdCkgX19idWlsdGluX2Fh
cmNoNjRfc3ViaG4ydjJkaSAoKGludDMyeDJfdCkgX19hLA0KICAgICsJCQkJCQkgICAgKGludDY0
eDJfdCkgX19iLA0KICAgICsJCQkJCQkgICAgKGludDY0eDJfdCkgX19jKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZxYWRkX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VxYWRkdjRoaV91dXUg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRkX3UzMiAodWludDMy
eDJfdCBfX2EsIHVpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3VxYWRkdjJzaV91dXUgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZxYWRkX3U2NCAodWludDY0eDFfdCBfX2EsIHVpbnQ2NHgxX3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSB7X19idWlsdGluX2FhcmNoNjRfdXFhZGRkaV91
dXUgKF9fYVswXSwgX19iWzBdKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRkcV9z
OCAoaW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAo
aW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcWFkZHYxNnFpIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRkcV9zMTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDhfdCkgX19idWlsdGluX2FhcmNo
NjRfc3FhZGR2OGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRk
cV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfc3FhZGR2NHNpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRkcV9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0
eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDJfdCkgX19idWlsdGluX2Fh
cmNoNjRfc3FhZGR2MmRpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cWFkZHFfdTggKHVpbnQ4eDE2X3QgX19hLCB1aW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cWFkZHYxNnFpX3V1dSAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFhZGRxX3UxNiAodWludDE2eDhfdCBfX2EsIHVpbnQx
Nng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VxYWRk
djhoaV91dXUgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRkcV91
MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF91cWFkZHY0c2lfdXV1IChfX2EsIF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cWFkZHFfdTY0ICh1aW50NjR4Ml90IF9fYSwgdWludDY0eDJfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXFhZGR2MmRpX3V1
dSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc3ViX3M4IChpbnQ4eDhf
dCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHg4X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X3Nxc3VidjhxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cXN1Yl9zMTYgKGludDE2eDRfdCBfX2EsIGludDE2eDRfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfc3FzdWJ2NGhpIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc3ViX3MzMiAoaW50MzJ4Ml90
IF9fYSwgaW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4Ml90KSBf
X2J1aWx0aW5fYWFyY2g2NF9zcXN1YnYyc2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFzdWJfczY0IChpbnQ2NHgxX3QgX19hLCBpbnQ2NHgxX3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9zcXN1YmRpIChf
X2FbMF0sIF9fYlswXSl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXN1Yl91OCAodWlu
dDh4OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF91cXN1YnY4cWlfdXV1IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cXN1Yl91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4NF90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXN1YnY0aGlfdXV1IChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXN1Yl91MzIgKHVpbnQzMngyX3QgX19h
LCB1aW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF91cXN1YnYyc2lfdXV1IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cXN1Yl91NjQgKHVpbnQ2NHgxX3QgX19hLCB1aW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X3Vxc3ViZGlfdXV1IChfX2Fb
MF0sIF9fYlswXSl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXN1YnFfczggKGludDh4
MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4MTZf
dCkgX19idWlsdGluX2FhcmNoNjRfc3FzdWJ2MTZxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cXN1YnFfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc3Vi
djhoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXN1YnFfczMyIChp
bnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQz
Mng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc3VidjRzaSAoX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cXN1YnFfczY0IChpbnQ2NHgyX3QgX19hLCBpbnQ2NHgyX3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nx
c3VidjJkaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzdWJxX3U4
ICh1aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfdXFzdWJ2MTZxaV91dXUgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Zxc3VicV91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXN1YnY4aGlfdXV1
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXN1YnFfdTMyICh1aW50
MzJ4NF90IF9fYSwgdWludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfdXFzdWJ2NHNpX3V1dSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFzdWJxX3U2NCAodWludDY0eDJfdCBfX2EsIHVpbnQ2NHgyX3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc3VidjJkaV91dXUgKF9fYSwg
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cW5lZ19zOCAoaW50OHg4X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfc3FuZWd2
OHFpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cW5lZ19zMTYgKGludDE2eDRf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNo
NjRfc3FuZWd2NGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cW5lZ19zMzIg
KGludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDJfdCkgX19idWls
dGluX2FhcmNoNjRfc3FuZWd2MnNpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cW5lZ19zNjQgKGludDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDFf
dCkge19fYnVpbHRpbl9hYXJjaDY0X3NxbmVnZGkgKF9fYVswXSl9Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cW5lZ3FfczggKGludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gKGludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfc3FuZWd2MTZxaSAoX19hKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnFuZWdxX3MxNiAoaW50MTZ4OF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcW5lZ3Y4aGkgKF9f
YSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxbmVncV9zMzIgKGludDMyeDRfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfc3Fu
ZWd2NHNpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWJzX3M4IChpbnQ4eDhf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2
NF9zcWFic3Y4cWkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWJzX3MxNiAo
aW50MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4NF90KSBfX2J1aWx0
aW5fYWFyY2g2NF9zcWFic3Y0aGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zx
YWJzX3MzMiAoaW50MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4Ml90
KSBfX2J1aWx0aW5fYWFyY2g2NF9zcWFic3Yyc2kgKF9fYSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZxYWJzX3M2NCAoaW50NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
aW50NjR4MV90KSB7X19idWlsdGluX2FhcmNoNjRfc3FhYnNkaSAoX19hWzBdKX07DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZxYWJzcV9zOCAoaW50OHgxNl90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcWFic3YxNnFpIChfX2Ep
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQx
Nng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWFic3FfczE2IChpbnQxNng4X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxYWJz
djhoaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFhYnNxX3MzMiAoaW50MzJ4
NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4NF90KSBfX2J1aWx0aW5fYWFy
Y2g2NF9zcWFic3Y0c2kgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG11bGhf
czE2IChpbnQxNng0X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11bGh2NGhpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG11bGhfczMyIChpbnQzMngyX3QgX19hLCBpbnQz
MngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMngyX3QpIF9fYnVpbHRpbl9h
YXJjaDY0X3NxZG11bGh2MnNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZxZG11bGhxX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcWRtdWxodjhoaSAoX19h
LCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtdWxocV9zMzIgKGludDMyeDRf
dCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRfdCkg
X19idWlsdGluX2FhcmNoNjRfc3FkbXVsaHY0c2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFyZG11bGhfczE2IChpbnQxNng0X3QgX19hLCBpbnQxNng0X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRt
dWxodjRoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbXVsaF9z
MzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
KGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfc3FyZG11bGh2MnNpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcmRtdWxocV9zMTYgKGludDE2eDhfdCBfX2EsIGlu
dDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfc3FyZG11bGh2OGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZxcmRtdWxocV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfc3FyZG11bGh2NHNp
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNyZWF0ZV9zOCAodWludDY0
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19hOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y3JlYXRlX3MxNiAodWludDY0X3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNy
ZWF0ZV9zMzIgKHVpbnQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4Ml90
KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjcmVhdGVfczY0ICh1aW50NjRfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDFfdCkge19fYX07DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmNyZWF0ZV9mMTYgKHVpbnQ2NF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAoZmxvYXQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Y3JlYXRlX2YzMiAodWludDY0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9h
dDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3JlYXRlX3U4ICh1aW50
NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDhfdCkgX19hOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmNyZWF0ZV91MTYgKHVpbnQ2NF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDE2eDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNyZWF0ZV91MzIgKHVpbnQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWlu
dDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNyZWF0ZV91NjQgKHVp
bnQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkge19fYX07DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4
MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNyZWF0ZV9mNjQgKHVpbnQ2NF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmNyZWF0ZV9wOCAodWludDY0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChwb2x5OHg4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgcG9seTE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjcmVhdGVfcDE2
ICh1aW50NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxNng0X3QpIF9fYTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0
eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjcmVhdGVfcDY0ICh1aW50NjRfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAg
ICArLyogdmdldF9sYW5lICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgZmxvYXQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldF9sYW5lX2YxNiAoZmxv
YXQxNng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFy
Y2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZnZXRfbGFuZV9mMzIgKGZsb2F0MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19hLCBfX2IpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2Z2V0X2xhbmVfZjY0IChmbG9hdDY0eDFfdCBfX2EsIGNvbnN0
IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgcG9seThfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRfbGFuZV9wOCAocG9seTh4
OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRf
dmdldF9sYW5lX2FueSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRf
bGFuZV9wMTYgKHBvbHkxNng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmdldF9sYW5lX3A2NCAocG9seTY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldF9sYW5lX3M4IChpbnQ4eDhfdCBfX2EsIGNv
bnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9h
bnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRfbGFuZV9zMTYgKGlu
dDE2eDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJj
aDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zn
ZXRfbGFuZV9zMzIgKGludDMyeDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZnZXRfbGFuZV9zNjQgKGludDY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRfbGFuZV91OCAodWludDh4OF90IF9fYSwg
Y29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmdldF9sYW5l
X2FueSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRfbGFuZV91MTYg
KHVpbnQxNng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmdldF9sYW5lX3UzMiAodWludDMyeDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2Z2V0X2xhbmVfdTY0ICh1aW50NjR4MV90IF9fYSwgY29uc3Qg
aW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAo
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2Z2V0cV9sYW5lICAqLw0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNl90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmdldHFfbGFuZV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgY29uc3QgaW50IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Z2V0cV9sYW5lX2YzMiAoZmxvYXQzMng0
X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92
Z2V0X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRx
X2xhbmVfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seThfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZnZXRxX2xhbmVfcDggKHBvbHk4eDE2X3QgX19hLCBjb25zdCBpbnQgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHkxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldHFfbGFuZV9wMTYgKHBvbHkxNng4X3Qg
X19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0
X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHBvbHk2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldHFfbGFu
ZV9wNjQgKHBvbHk2NHgyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZnZXRxX2xhbmVfczggKGludDh4MTZfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRxX2xhbmVfczE2IChpbnQxNng4X3QgX19hLCBjb25z
dCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Z2V0cV9sYW5lX3MzMiAoaW50
MzJ4NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNo
NjRfdmdldF9sYW5lX2FueSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdl
dHFfbGFuZV9zNjQgKGludDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZnZXRxX2xhbmVfdTggKHVpbnQ4eDE2X3QgX19hLCBjb25zdCBpbnQgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldHFfbGFuZV91MTYgKHVpbnQxNng4X3Qg
X19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0
X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldHFfbGFu
ZV91MzIgKHVpbnQzMng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmdldHFfbGFuZV91NjQgKHVpbnQ2NHgyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgKy8qIHZyZWludGVycHJldCAgKi8NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZyZWludGVycHJldF9wOF9mMTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiAocG9seTh4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWlu
dGVycHJldF9wOF9mNjQgKGZsb2F0NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
cG9seTh4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9w
OF9zOCAoaW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5OHg4X3QpIF9f
YTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9s
eTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3A4X3MxNiAoaW50MTZ4
NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4OF90KSBfX2E7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9wOF9zMzIgKGludDMyeDJfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk4eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmVpbnRlcnByZXRfcDhfczY0IChpbnQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChwb2x5OHg4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJl
aW50ZXJwcmV0X3A4X2YzMiAoZmxvYXQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChwb2x5OHg4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0
X3A4X3U4ICh1aW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5OHg4X3Qp
IF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
cG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3A4X3UxNiAodWlu
dDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk4eDhfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfcDhfdTMyICh1aW50MzJ4Ml90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4OF90KSBfX2E7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldF9wOF91NjQgKHVpbnQ2NHgxX3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChwb2x5OHg4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0X3A4X3AxNiAocG9seTE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHBvbHk4eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRl
cnByZXRfcDhfcDY0IChwb2x5NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9s
eTh4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3A4
X2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5OHgxNl90
KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3A4X3M4IChp
bnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5OHgxNl90KSBfX2E7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3A4X3MxNiAoaW50MTZ4OF90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4MTZfdCkgX19hOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHgxNl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wOF9zMzIgKGludDMyeDRfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk4eDE2X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZyZWludGVycHJldHFfcDhfczY0IChpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIChwb2x5OHgxNl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRxX3A4X2YxNiAoZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIChwb2x5OHgxNl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRxX3A4X2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChwb2x5OHgxNl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnBy
ZXRxX3A4X3U4ICh1aW50OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4
MTZfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBwb2x5OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wOF91
MTYgKHVpbnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5OHgxNl90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3A4X3UzMiAodWlu
dDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk4eDE2X3QpIF9fYTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfcDhfdTY0ICh1aW50NjR4Ml90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4MTZfdCkgX19hOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHgxNl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wOF9wMTYgKHBvbHkxNng4X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5OHgxNl90KSBfX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3A4X3A2NCAocG9seTY0eDJfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHBvbHk4eDE2X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cmVpbnRlcnByZXRxX3A4X3AxMjggKHBvbHkxMjhfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKHBvbHk4eDE2X3QpX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJl
aW50ZXJwcmV0X3AxNl9mMTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biAocG9seTE2eDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBwb2x5MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJw
cmV0X3AxNl9mNjQgKGZsb2F0NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9s
eTE2eDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBwb2x5MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3Ax
Nl9zOCAoaW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5MTZ4NF90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHkxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfcDE2X3MxNiAoaW50
MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTE2eDRfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3AxNl9zMzIgKGludDMyeDJfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxNng0X3QpIF9fYTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9wMTZfczY0IChpbnQ2NHgxX3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChwb2x5MTZ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmVpbnRlcnByZXRfcDE2X2YzMiAoZmxvYXQzMngyX3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIChwb2x5MTZ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRfcDE2X3U4ICh1aW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChwb2x5MTZ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRl
cnByZXRfcDE2X3UxNiAodWludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBv
bHkxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgcG9seTE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9w
MTZfdTMyICh1aW50MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTE2eDRf
dCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBwb2x5MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3AxNl91NjQg
KHVpbnQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5MTZ4NF90KSBfX2E7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfcDE2X3A4IChwb2x5OHg4
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5MTZ4NF90KSBfX2E7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfcDE2X3A2NCAocG9seTY0eDFfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldHFfcDE2X2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChwb2x5MTZ4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmVpbnRlcnByZXRxX3AxNl9zOCAoaW50OHgxNl90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAocG9seTE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnJlaW50ZXJwcmV0cV9wMTZfczE2IChpbnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChwb2x5MTZ4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHBvbHkxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRl
cnByZXRxX3AxNl9zMzIgKGludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBv
bHkxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFf
cDE2X3M2NCAoaW50NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTE2eDhf
dCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBwb2x5MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wMTZfZjE2
IChmbG9hdDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxNng4X3QpIF9f
YTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9s
eTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfcDE2X2YzMiAoZmxv
YXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5MTZ4OF90KSBfX2E7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3AxNl91OCAodWludDh4MTZf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxNng4X3QpIF9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfcDE2X3UxNiAodWludDE2eDhfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldHFfcDE2X3UzMiAodWludDMyeDRfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gKHBvbHkxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZyZWludGVycHJldHFfcDE2X3U2NCAodWludDY0eDJfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKHBvbHkxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZyZWludGVycHJldHFfcDE2X3A4IChwb2x5OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAocG9seTE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBwb2x5MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50
ZXJwcmV0cV9wMTZfcDY0IChwb2x5NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
cG9seTE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBwb2x5MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJl
dHFfcDE2X3AxMjggKHBvbHkxMjhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkx
Nng4X3QpX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBwb2x5NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3A2NF9m
MTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTY0eDFfdCkg
X19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBw
b2x5NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3A2NF9mNjQgKGZs
b2F0NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTY0eDFfdCkgX19hOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4
MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3A2NF9zOCAoaW50OHg4X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5NjR4MV90KSBfX2E7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfcDY0X3MxNiAoaW50MTZ4NF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAocG9seTY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4MV90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnJlaW50ZXJwcmV0X3A2NF9zMzIgKGludDMyeDJfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKHBvbHk2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZyZWludGVycHJldF9wNjRfczY0IChpbnQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChwb2x5NjR4MV90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRl
cnByZXRfcDY0X2YzMiAoZmxvYXQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChw
b2x5NjR4MV90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRf
cDY0X3U4ICh1aW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5NjR4MV90
KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHBvbHk2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfcDY0X3UxNiAo
dWludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk2NHgxX3QpIF9fYTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0
eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9wNjRfdTMyICh1aW50MzJ4
Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTY0eDFfdCkgX19hOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4MV90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3A2NF91NjQgKHVpbnQ2NHgxX3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5NjR4MV90KSBfX2E7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfcDY0X3A4IChwb2x5OHg4X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChwb2x5NjR4MV90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAgKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnJlaW50ZXJwcmV0X3A2NF9wMTYgKHBvbHkxNng0X3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChwb2x5NjR4MV90KV9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zy
ZWludGVycHJldHFfcDY0X2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChwb2x5NjR4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRl
cnByZXRxX3A2NF9zOCAoaW50OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9s
eTY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBwb2x5NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9w
NjRfczE2IChpbnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5NjR4Ml90
KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHBvbHk2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3A2NF9zMzIg
KGludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk2NHgyX3QpIF9fYTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfcDY0X3M2NCAoaW50NjR4
Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTY0eDJfdCkgX19hOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4Ml90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wNjRfZjE2IChmbG9hdDE2eDhfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk2NHgyX3QpIF9fYTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfcDY0X2YzMiAoZmxvYXQzMng0X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5NjR4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3A2NF9wMTI4IChwb2x5MTI4X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChwb2x5NjR4Ml90KV9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZyZWludGVycHJldHFfcDY0X3U4ICh1aW50OHgxNl90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiAocG9seTY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJl
aW50ZXJwcmV0cV9wNjRfdTE2ICh1aW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biAocG9seTY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBwb2x5NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVy
cHJldHFfcDY0X3AxNiAocG9seTE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBv
bHk2NHgyX3QpX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBwb2x5NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9w
NjRfdTMyICh1aW50MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTY0eDJf
dCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBwb2x5NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wNjRfdTY0
ICh1aW50NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTY0eDJfdCkgX19h
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5
NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wNjRfcDggKHBvbHk4
eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5NjR4Ml90KSBfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxMjhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3AxMjhfcDggKHBvbHk4eDE2X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5MTI4X3QpX19hOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTI4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAgKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wMTI4X3AxNiAocG9seTE2eDhfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxMjhfdClfX2E7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxMjhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmVpbnRlcnByZXRxX3AxMjhfZjE2IChmbG9hdDE2eDhfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHBvbHkxMjhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTI4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAg
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0cV9wMTI4X2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChwb2x5MTI4X3QpX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTI4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAgKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJl
aW50ZXJwcmV0cV9wMTI4X3A2NCAocG9seTY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHBvbHkxMjhfdClfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHBvbHkxMjhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnBy
ZXRxX3AxMjhfczY0IChpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5
MTI4X3QpX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBwb2x5MTI4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAgKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wMTI4
X3U2NCAodWludDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxMjhfdClf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHkxMjhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3AxMjhfczggKGlu
dDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxMjhfdClfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxMjhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3AxMjhfczE2IChpbnQxNng4X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5MTI4X3QpX19hOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTI4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAgKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9wMTI4X3MzMiAoaW50MzJ4NF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAocG9seTEyOF90KV9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTEyOF90DQogICAgK19fYXR0cmlidXRl
X18gICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZyZWludGVycHJldHFfcDEyOF91OCAodWludDh4MTZfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKHBvbHkxMjhfdClfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxMjhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cmVpbnRlcnByZXRxX3AxMjhfdTE2ICh1aW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAocG9seTEyOF90KV9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgcG9seTEyOF90DQogICAgK19fYXR0cmlidXRlX18gICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVy
cHJldHFfcDEyOF91MzIgKHVpbnQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChw
b2x5MTI4X3QpX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9m
MTZfZjY0IChmbG9hdDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MTZ4
NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X2YxNl9z
OCAoaW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDE2eDRfdCkgX19h
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9mMTZfczE2IChpbnQx
Nng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDE2eDRfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9mMTZfczMyIChpbnQzMngyX3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDE2eDRfdCkgX19hOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9mMTZfczY0IChpbnQ2NHgxX3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDE2eDRfdCkgX19hOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldF9mMTZfZjMyIChmbG9hdDMyeDJfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gKGZsb2F0MTZ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnJlaW50ZXJwcmV0X2YxNl91OCAodWludDh4OF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAoZmxvYXQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRfZjE2X3UxNiAodWludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKGZsb2F0MTZ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJl
aW50ZXJwcmV0X2YxNl91MzIgKHVpbnQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChmbG9hdDE2eDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVy
cHJldF9mMTZfdTY0ICh1aW50NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxv
YXQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRf
ZjE2X3A4IChwb2x5OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDE2eDRf
dCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9mMTZfcDE2
IChwb2x5MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQxNng0X3QpIF9f
YTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfZjE2X3A2NCAocG9s
eTY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MTZ4NF90KSBfX2E7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mMTZfZjY0IChmbG9hdDY0
eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MTZ4OF90KSBfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mMTZfczggKGludDh4MTZfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MTZ4OF90KSBfX2E7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mMTZfczE2IChpbnQxNng4X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldHFfZjE2X3MzMiAoaW50MzJ4NF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAoZmxvYXQxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmVpbnRlcnByZXRxX2YxNl9zNjQgKGludDY0eDJfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGZsb2F0MTZ4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0cV9mMTZfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGZsb2F0MTZ4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnJlaW50ZXJwcmV0cV9mMTZfdTggKHVpbnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChmbG9hdDE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWlu
dGVycHJldHFfZjE2X3UxNiAodWludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
KGZsb2F0MTZ4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJw
cmV0cV9mMTZfdTMyICh1aW50MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxv
YXQxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRx
X2YxNl91NjQgKHVpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDE2
eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfZjE2
X3A4IChwb2x5OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQxNng4X3Qp
IF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAgKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mMTZfcDEy
OCAocG9seTEyOF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQxNng4X3QpIF9f
YTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX2YxNl9wMTYgKHBv
bHkxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDE2eDhfdCkgX19hOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfZjE2X3A2NCAocG9seTY0
eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MTZ4OF90KSBfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X2YzMl9mMTYgKGZsb2F0MTZ4NF90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQzMngyX3QpIF9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfZjMyX2Y2NCAoZmxvYXQ2NHgxX3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDMyeDJfdCkgX19hOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9mMzJfczggKGludDh4OF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAoZmxvYXQzMngyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmVpbnRlcnByZXRfZjMyX3MxNiAoaW50MTZ4NF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAoZmxvYXQzMngyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRfZjMyX3MzMiAoaW50MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAoZmxvYXQzMngyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRfZjMyX3M2NCAoaW50NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
ZmxvYXQzMngyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnBy
ZXRfZjMyX3U4ICh1aW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDMy
eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9mMzJf
dTE2ICh1aW50MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQzMngyX3Qp
IF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfZjMyX3UzMiAo
dWludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MzJ4Ml90KSBfX2E7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0
MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X2YzMl91NjQgKHVpbnQ2
NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDMyeDJfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9mMzJfcDggKHBvbHk4eDhfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MzJ4Ml90KSBfX2E7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X2YzMl9wMTYgKHBvbHkxNng0X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldF9mMzJfcDY0IChwb2x5NjR4MV90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAoZmxvYXQzMngyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmVpbnRlcnByZXRxX2YzMl9mMTYgKGZsb2F0MTZ4OF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAoZmxvYXQzMng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cmVpbnRlcnByZXRxX2YzMl9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAoZmxvYXQzMng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRxX2YzMl9zOCAoaW50OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAoZmxvYXQzMng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRxX2YzMl9zMTYgKGludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
KGZsb2F0MzJ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJw
cmV0cV9mMzJfczMyIChpbnQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9h
dDMyeDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFf
ZjMyX3M2NCAoaW50NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQzMng0
X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX2YzMl91
OCAodWludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MzJ4NF90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs
b2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mMzJfdTE2ICh1
aW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQzMng0X3QpIF9fYTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQz
Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX2YzMl91MzIgKHVpbnQz
Mng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDMyeDRfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfZjMyX3U2NCAodWludDY0eDJf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MzJ4NF90KSBfX2E7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mMzJfcDggKHBvbHk4eDE2X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDMyeDRfdCkgX19hOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfZjMyX3AxNiAocG9seTE2eDhfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MzJ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mMzJfcDY0IChwb2x5NjR4Ml90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAoZmxvYXQzMng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAgKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnJlaW50ZXJwcmV0cV9mMzJfcDEyOCAocG9seTEyOF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAoZmxvYXQzMng0X3QpX19hOw0KICAgICt9DQogICAgKw0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVpbnRlcnByZXRfZjY0X2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZyZWludGVycHJldF9mNjRfZjMyIChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGZsb2F0NjR4MV90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0X2Y2NF9wOCAocG9seTh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAoZmxvYXQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRfZjY0X3AxNiAocG9seTE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
KGZsb2F0NjR4MV90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJw
cmV0X2Y2NF9wNjQgKHBvbHk2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9h
dDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9m
NjRfczggKGludDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3Qp
IF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfZjY0X3MxNiAo
aW50MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIF9fYTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2
NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfZjY0X3MzMiAoaW50MzJ4
Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIF9fYTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfZjY0X3M2NCAoaW50NjR4MV90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfZjY0X3U4ICh1aW50OHg4X3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZyZWludGVycHJldF9mNjRfdTE2ICh1aW50MTZ4NF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cmVpbnRlcnByZXRfZjY0X3UzMiAodWludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGZsb2F0NjR4MV90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnJlaW50ZXJwcmV0X2Y2NF91NjQgKHVpbnQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChmbG9hdDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWlu
dGVycHJldHFfZjY0X2YxNiAoZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChmbG9hdDY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVy
cHJldHFfZjY0X2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChm
bG9hdDY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJl
dHFfZjY0X3A4IChwb2x5OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2
NHgyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX2Y2
NF9wMTYgKHBvbHkxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDJf
dCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfZjY0X3A2
NCAocG9seTY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0NjR4Ml90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs
b2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mNjRfczggKGlu
dDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0NjR4Ml90KSBfX2E7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mNjRfczE2IChpbnQxNng4
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDJfdCkgX19hOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfZjY0X3MzMiAoaW50MzJ4NF90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2NHgyX3QpIF9fYTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX2Y2NF9zNjQgKGludDY0eDJfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0NjR4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9mNjRfdTggKHVpbnQ4eDE2X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZyZWludGVycHJldHFfZjY0X3UxNiAodWludDE2eDhfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGZsb2F0NjR4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0cV9mNjRfdTMyICh1aW50MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiAoZmxvYXQ2NHgyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cmVpbnRlcnByZXRxX2Y2NF91NjQgKHVpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChmbG9hdDY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRl
cnByZXRfczY0X2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChp
bnQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3M2
NF9mNjQgKGZsb2F0NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90
KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zNjRfczggKGlu
dDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSBfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zNjRfczE2IChpbnQxNng0X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3M2NF9zMzIgKGludDMyeDJfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRfczY0X2YzMiAoZmxvYXQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIChpbnQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50
ZXJwcmV0X3M2NF91OCAodWludDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
NjR4MV90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zNjRf
dTE2ICh1aW50MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zNjRfdTMyICh1aW50
MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSBfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zNjRfdTY0ICh1aW50NjR4MV90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSBfX2E7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldF9zNjRfcDggKHBvbHk4eDhfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRfczY0X3AxNiAocG9seTE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKGludDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRl
cnByZXRfczY0X3A2NCAocG9seTY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGlu
dDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3M2
NF9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4Ml90
KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczY0X3M4IChp
bnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgyX3QpIF9fYTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zNjRfczE2IChpbnQxNng4X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgyX3QpIF9fYTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zNjRfczMyIChpbnQzMng0X3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnJlaW50ZXJwcmV0cV9zNjRfZjE2IChmbG9hdDE2eDhfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGludDY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cmVpbnRlcnByZXRxX3M2NF9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAoaW50NjR4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVy
cHJldHFfczY0X3U4ICh1aW50OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
NjR4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczY0
X3UxNiAodWludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDJfdCkg
X19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3M2NF91MzIgKHVp
bnQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgyX3QpIF9fYTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zNjRfdTY0ICh1aW50NjR4Ml90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4Ml90KSBfX2E7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczY0X3A4IChwb2x5OHgxNl90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAoaW50NjR4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZyZWludGVycHJldHFfczY0X3AxNiAocG9seTE2eDhfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGludDY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cmVpbnRlcnByZXRxX3M2NF9wNjQgKHBvbHk2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQ2NHgyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVy
cHJldHFfczY0X3AxMjggKHBvbHkxMjhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGlu
dDY0eDJfdClfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdTY0
X2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90
KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdTY0X2Y2NCAo
ZmxvYXQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSBfX2E7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2
NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdTY0X3M4IChpbnQ4eDhf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIF9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91NjRfczE2IChpbnQxNng0X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSBfX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVpbnRlcnByZXRfdTY0X3MzMiAoaW50MzJ4Ml90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0X3U2NF9zNjQgKGludDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWlu
dGVycHJldF91NjRfZjMyIChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
KHVpbnQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJl
dF91NjRfdTggKHVpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgx
X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91NjRfdTE2
ICh1aW50MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkgX19h
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3U2NF91MzIgKHVpbnQz
MngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSBfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdTY0X3A4IChwb2x5OHg4X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSBfX2E7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdTY0X3AxNiAocG9seTE2eDRfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZyZWludGVycHJldF91NjRfcDY0IChwb2x5NjR4MV90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDY0eDFfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnJlaW50ZXJwcmV0cV91NjRfZjY0IChmbG9hdDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQ2NHgyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWlu
dGVycHJldHFfdTY0X3M4IChpbnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1
aW50NjR4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRx
X3U2NF9zMTYgKGludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgy
X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdTY0X3Mz
MiAoaW50MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgX19h
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV91NjRfczY0IChpbnQ2
NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSBfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3U2NF9mMTYgKGZsb2F0MTZ4OF90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgX19hOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV91NjRfZjMyIChmbG9hdDMyeDRfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIF9fYTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdTY0X3U4ICh1aW50OHgxNl90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnJlaW50ZXJwcmV0cV91NjRfdTE2ICh1aW50MTZ4OF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnJlaW50ZXJwcmV0cV91NjRfdTMyICh1aW50MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAodWludDY0eDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50
ZXJwcmV0cV91NjRfcDggKHBvbHk4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1
aW50NjR4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRx
X3U2NF9wMTYgKHBvbHkxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4
Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3U2NF9w
NjQgKHBvbHk2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAgKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV91NjRfcDEyOCAo
cG9seTEyOF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDJfdClfX2E7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3M4X2YxNiAoZmxvYXQxNng0X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19hOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldF9zOF9mNjQgKGZsb2F0NjR4MV90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAoaW50OHg4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRfczhfczE2IChpbnQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQ4eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJl
dF9zOF9zMzIgKGludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4OF90
KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3M4X3M2NCAoaW50
NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHg4X3QpIF9fYTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfczhfZjMyIChmbG9hdDMyeDJfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4OF90KSBfX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnJlaW50ZXJwcmV0X3M4X3U4ICh1aW50OHg4X3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChpbnQ4eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWlu
dGVycHJldF9zOF91MTYgKHVpbnQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChp
bnQ4eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zOF91
MzIgKHVpbnQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19h
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zOF91NjQgKHVpbnQ2NHgx
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19hOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zOF9wOCAocG9seTh4OF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAoaW50OHg4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRfczhfcDE2IChwb2x5MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAoaW50OHg4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnBy
ZXRfczhfcDY0IChwb2x5NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHg4
X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zOF9mNjQg
KGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHgxNl90KSBfX2E7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4
MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczhfczE2IChpbnQxNng4
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDE2X3QpIF9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zOF9zMzIgKGludDMyeDRfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKGludDh4MTZfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmVpbnRlcnByZXRxX3M4X3M2NCAoaW50NjR4Ml90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAoaW50OHgxNl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zy
ZWludGVycHJldHFfczhfZjE2IChmbG9hdDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gKGludDh4MTZfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnBy
ZXRxX3M4X2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4
eDE2X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zOF91
OCAodWludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4MTZfdCkgX19h
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4
eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3M4X3UxNiAodWludDE2
eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4MTZfdCkgX19hOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3M4X3UzMiAodWludDMyeDRfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4MTZfdCkgX19hOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3M4X3U2NCAodWludDY0eDJfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDh4MTZfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRxX3M4X3A4IChwb2x5OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAoaW50OHgxNl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVy
cHJldHFfczhfcDE2IChwb2x5MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
OHgxNl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczhf
cDY0IChwb2x5NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHgxNl90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3M4X3AxMjggKHBv
bHkxMjhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4MTZfdClfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zMTZfZjE2IChmbG9hdDE2eDRfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDRfdCkgX19hOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfczE2X2Y2NCAoZmxvYXQ2NHgxX3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnJlaW50ZXJwcmV0X3MxNl9zOCAoaW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIChpbnQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50
ZXJwcmV0X3MxNl9zMzIgKGludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGlu
dDE2eDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfczE2
X3M2NCAoaW50NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4NF90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zMTZfZjMyIChmbG9h
dDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDRfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfczE2X3U4ICh1aW50OHg4X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3MxNl91MTYgKHVpbnQxNng0X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0X3MxNl91MzIgKHVpbnQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIChpbnQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50
ZXJwcmV0X3MxNl91NjQgKHVpbnQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChp
bnQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3Mx
Nl9wOCAocG9seTh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4NF90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zMTZfcDE2IChwb2x5
MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4NF90KSBfX2E7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zMTZfcDY0IChwb2x5NjR4MV90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4NF90KSBfX2E7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczE2X2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnJlaW50ZXJwcmV0cV9zMTZfczggKGludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGludDE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRxX3MxNl9zMzIgKGludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
KGludDE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRx
X3MxNl9zNjQgKGludDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDhf
dCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3MxNl9mMTYg
KGZsb2F0MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2E7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczE2X2YzMiAoZmxvYXQz
Mng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIF9fYTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zMTZfdTggKHVpbnQ4eDE2X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zMTZfdTE2ICh1aW50MTZ4OF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZyZWludGVycHJldHFfczE2X3UzMiAodWludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGludDE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRxX3MxNl91NjQgKHVpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChpbnQxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0
cV9zMTZfcDggKHBvbHk4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4
X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zMTZfcDE2
IChwb2x5MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2E7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczE2X3A2NCAocG9seTY0
eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDhfdCkgX19hOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAgKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zMTZfcDEyOCAocG9seTEyOF90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KV9fYTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3MzMl9mMTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAoaW50MzJ4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZyZWludGVycHJldF9zMzJfZjY0IChmbG9hdDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGludDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRfczMyX3M4IChpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGlu
dDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfczMy
X3MxNiAoaW50MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4Ml90KSBf
X2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF9zMzJfczY0IChpbnQ2
NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMngyX3QpIF9fYTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3MzMl9mMzIgKGZsb2F0MzJ4Ml90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4Ml90KSBfX2E7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldF9zMzJfdTggKHVpbnQ4eDhfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRfczMyX3UxNiAodWludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKGludDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRl
cnByZXRfczMyX3UzMiAodWludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGlu
dDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfczMy
X3U2NCAodWludDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDJfdCkg
X19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfczMyX3A4IChwb2x5
OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMngyX3QpIF9fYTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3MzMl9wMTYgKHBvbHkxNng0X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMngyX3QpIF9fYTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3MzMl9wNjQgKHBvbHk2NHgxX3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQzMngyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0cV9zMzJfZjY0IChmbG9hdDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGludDMyeDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRxX3MzMl9zOCAoaW50OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
aW50MzJ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFf
czMyX3MxNiAoaW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4NF90
KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczMyX3M2NCAo
aW50NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4NF90KSBfX2E7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfczMyX2YxNiAoZmxvYXQxNng4
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3QpIF9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zMzJfZjMyIChmbG9hdDMyeDRfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRfdCkgX19hOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3MzMl91OCAodWludDh4MTZfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDMyeDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRxX3MzMl91MTYgKHVpbnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIChpbnQzMng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50
ZXJwcmV0cV9zMzJfdTMyICh1aW50MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
aW50MzJ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFf
czMyX3U2NCAodWludDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRf
dCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3MzMl9wOCAo
cG9seTh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRfdCkgX19hOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3MzMl9wMTYgKHBvbHkxNng4
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3QpIF9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV9zMzJfcDY0IChwb2x5NjR4Ml90IF9fYSkN
CiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3MzMl9wMTI4IChwb2x5MTI4X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3QpX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRfdThfZjE2IChmbG9hdDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQ4eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRl
cnByZXRfdThfZjY0IChmbG9hdDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVp
bnQ4eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdThf
czggKGludDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSBfX2E7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91OF9zMTYgKGludDE2eDRf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDhfdCkgX19hOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdThfczMyIChpbnQzMngyX3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnJlaW50ZXJwcmV0X3U4X3M2NCAoaW50NjR4MV90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDh4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWlu
dGVycHJldF91OF9mMzIgKGZsb2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
dWludDh4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91
OF91MTYgKHVpbnQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3Qp
IF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3U4X3UzMiAodWlu
dDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDhfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdThfdTY0ICh1aW50NjR4MV90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSBfX2E7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZWludGVycHJldF91OF9wOCAocG9seTh4OF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDh4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZyZWludGVycHJldF91OF9wMTYgKHBvbHkxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuICh1aW50OHg4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJw
cmV0X3U4X3A2NCAocG9seTY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4
eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV91OF9m
NjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkg
X19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV91OF9zOCAoaW50
OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV91OF9zMTYgKGludDE2eDhfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpIF9fYTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdThfczMyIChpbnQzMng0X3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuICh1aW50OHgxNl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmVpbnRlcnByZXRxX3U4X3M2NCAoaW50NjR4Ml90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDh4MTZfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnJlaW50ZXJwcmV0cV91OF9mMTYgKGZsb2F0MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAodWludDh4MTZfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50
ZXJwcmV0cV91OF9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
dWludDh4MTZfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0
cV91OF91MTYgKHVpbnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHgx
Nl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3U4X3Uz
MiAodWludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpIF9f
YTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdThfdTY0ICh1aW50
NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV91OF9wOCAocG9seTh4MTZfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpIF9fYTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdThfcDE2IChwb2x5MTZ4OF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnJlaW50ZXJwcmV0cV91OF9wNjQgKHBvbHk2NHgyX3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuICh1aW50OHgxNl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAg
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0cV91OF9wMTI4IChwb2x5MTI4X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuICh1aW50OHgxNl90KV9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWlu
dGVycHJldF91MTZfZjE2IChmbG9hdDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
KHVpbnQxNng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJl
dF91MTZfZjY0IChmbG9hdDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQx
Nng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91MTZf
czggKGludDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkgX19h
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3UxNl9zMTYgKGludDE2
eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng0X3QpIF9fYTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91MTZfczMyIChpbnQzMngyX3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90KSBfX2E7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdTE2X3M2NCAoaW50NjR4MV90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnJlaW50ZXJwcmV0X3UxNl9mMzIgKGZsb2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDE2eDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnJlaW50ZXJwcmV0X3UxNl91OCAodWludDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDE2eDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJw
cmV0X3UxNl91MzIgKHVpbnQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50
MTZ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdTE2
X3U2NCAodWludDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng0X3Qp
IF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91MTZfcDggKHBv
bHk4eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng0X3QpIF9fYTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91MTZfcDE2IChwb2x5MTZ4NF90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkgX19hOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3UxNl9wNjQgKHBvbHk2NHgxX3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3UxNl9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnJlaW50ZXJwcmV0cV91MTZfczggKGludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKHVpbnQxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zy
ZWludGVycHJldHFfdTE2X3MxNiAoaW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDE2eDhfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJw
cmV0cV91MTZfczMyIChpbnQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50
MTZ4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3Ux
Nl9zNjQgKGludDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng4X3Qp
IF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdTE2X2YxNiAo
ZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSBfX2E7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx
Nng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3UxNl9mMzIgKGZsb2F0
MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV91MTZfdTggKHVpbnQ4eDE2X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSBfX2E7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3UxNl91MzIgKHVpbnQzMng0X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSBfX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3UxNl91NjQgKHVpbnQ2NHgyX3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cmVpbnRlcnByZXRxX3UxNl9wOCAocG9seTh4MTZfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKHVpbnQxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zy
ZWludGVycHJldHFfdTE2X3AxNiAocG9seTE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHVpbnQxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVy
cHJldHFfdTE2X3A2NCAocG9seTY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVp
bnQxNng4X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRx
X3UxNl9wMTI4IChwb2x5MTI4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4
OF90KV9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91MzJfZjE2
IChmbG9hdDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIF9f
YTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91MzJfZjY0IChmbG9h
dDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIF9fYTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91MzJfczggKGludDh4OF90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkgX19hOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3UzMl9zMTYgKGludDE2eDRfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZyZWludGVycHJldF91MzJfczMyIChpbnQzMngyX3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuICh1aW50MzJ4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cmVpbnRlcnByZXRfdTMyX3M2NCAoaW50NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJw
cmV0X3UzMl9mMzIgKGZsb2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWlu
dDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3Uz
Ml91OCAodWludDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkg
X19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0X3UzMl91MTYgKHVp
bnQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4Ml90KSBfX2E7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRfdTMyX3U2NCAodWludDY0eDFf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIF9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldF91MzJfcDggKHBvbHk4eDhfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZyZWludGVycHJldF91MzJfcDE2IChwb2x5MTZ4NF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDMyeDJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJlaW50ZXJwcmV0X3UzMl9wNjQgKHBvbHk2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuICh1aW50MzJ4Ml90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRxX3UzMl9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDMyeDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJw
cmV0cV91MzJfczggKGludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQz
Mng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdTMy
X3MxNiAoaW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDRfdCkg
X19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlaW50ZXJwcmV0cV91MzJfczMyIChp
bnQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSBfX2E7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3UzMl9zNjQgKGludDY0eDJf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3QpIF9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdTMyX2YxNiAoZmxvYXQxNng4X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSBfX2E7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3UzMl9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDMyeDRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnJlaW50ZXJwcmV0cV91MzJfdTggKHVpbnQ4eDE2X3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cmVpbnRlcnByZXRxX3UzMl91MTYgKHVpbnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuICh1aW50MzJ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVp
bnRlcnByZXRxX3UzMl91NjQgKHVpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
ICh1aW50MzJ4NF90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnBy
ZXRxX3UzMl9wOCAocG9seTh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQz
Mng0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdTMy
X3AxNiAocG9seTE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3Qp
IF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWludGVycHJldHFfdTMyX3A2NCAo
cG9seTY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3QpIF9fYTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMy
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVpbnRlcnByZXRxX3UzMl9wMTI4IChwb2x5
MTI4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KV9fYTsNCiAgICAr
fQ0KICAgICsNCiAgICArLyogdnNldF9sYW5lICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2V0
X2xhbmVfZjE2IChmbG9hdDE2X3QgX19lbGVtLCBmbG9hdDE2eDRfdCBfX3ZlYywgY29uc3QgaW50
IF9faW5kZXgpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkg
KF9fZWxlbSwgX192ZWMsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zz
ZXRfbGFuZV9mMzIgKGZsb2F0MzJfdCBfX2VsZW0sIGZsb2F0MzJ4Ml90IF9fdmVjLCBjb25zdCBp
bnQgX19pbmRleCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2Fu
eSAoX19lbGVtLCBfX3ZlYywgX19pbmRleCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnNldF9sYW5lX2Y2NCAoZmxvYXQ2NF90IF9fZWxlbSwgZmxvYXQ2NHgxX3QgX192ZWMsIGNvbnN0
IGludCBfX2luZGV4KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVf
YW55IChfX2VsZW0sIF9fdmVjLCBfX2luZGV4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnNldF9sYW5lX3A4IChwb2x5OF90IF9fZWxlbSwgcG9seTh4OF90IF9fdmVjLCBjb25zdCBpbnQg
X19pbmRleCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAo
X19lbGVtLCBfX3ZlYywgX19pbmRleCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2V0
X2xhbmVfcDE2IChwb2x5MTZfdCBfX2VsZW0sIHBvbHkxNng0X3QgX192ZWMsIGNvbnN0IGludCBf
X2luZGV4KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChf
X2VsZW0sIF9fdmVjLCBfX2luZGV4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzZXRf
bGFuZV9wNjQgKHBvbHk2NF90IF9fZWxlbSwgcG9seTY0eDFfdCBfX3ZlYywgY29uc3QgaW50IF9f
aW5kZXgpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9f
ZWxlbSwgX192ZWMsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzZXRfbGFu
ZV9zOCAoaW50OF90IF9fZWxlbSwgaW50OHg4X3QgX192ZWMsIGNvbnN0IGludCBfX2luZGV4KQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2VsZW0sIF9f
dmVjLCBfX2luZGV4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNldF9sYW5lX3MxNiAo
aW50MTZfdCBfX2VsZW0sIGludDE2eDRfdCBfX3ZlYywgY29uc3QgaW50IF9faW5kZXgpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fZWxlbSwgX192ZWMs
IF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2V0X2xhbmVfczMyIChpbnQz
Ml90IF9fZWxlbSwgaW50MzJ4Ml90IF9fdmVjLCBjb25zdCBpbnQgX19pbmRleCkNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19lbGVtLCBfX3ZlYywgX19p
bmRleCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzZXRfbGFuZV9zNjQgKGludDY0X3Qg
X19lbGVtLCBpbnQ2NHgxX3QgX192ZWMsIGNvbnN0IGludCBfX2luZGV4KQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2VsZW0sIF9fdmVjLCBfX2luZGV4
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNldF9sYW5lX3U4ICh1aW50OF90IF9fZWxl
bSwgdWludDh4OF90IF9fdmVjLCBjb25zdCBpbnQgX19pbmRleCkNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19lbGVtLCBfX3ZlYywgX19pbmRleCk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2V0X2xhbmVfdTE2ICh1aW50MTZfdCBfX2VsZW0s
IHVpbnQxNng0X3QgX192ZWMsIGNvbnN0IGludCBfX2luZGV4KQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2VsZW0sIF9fdmVjLCBfX2luZGV4KTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzZXRfbGFuZV91MzIgKHVpbnQzMl90IF9fZWxlbSwg
dWludDMyeDJfdCBfX3ZlYywgY29uc3QgaW50IF9faW5kZXgpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fZWxlbSwgX192ZWMsIF9faW5kZXgpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNldF9sYW5lX3U2NCAodWludDY0X3QgX19lbGVtLCB1
aW50NjR4MV90IF9fdmVjLCBjb25zdCBpbnQgX19pbmRleCkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19lbGVtLCBfX3ZlYywgX19pbmRleCk7DQogICAg
K30NCiAgICArDQogICAgKy8qIHZzZXRxX2xhbmUgICovDQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zz
ZXRxX2xhbmVfZjE2IChmbG9hdDE2X3QgX19lbGVtLCBmbG9hdDE2eDhfdCBfX3ZlYywgY29uc3Qg
aW50IF9faW5kZXgpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9h
bnkgKF9fZWxlbSwgX192ZWMsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzZXRxX2xhbmVfZjMyIChmbG9hdDMyX3QgX19lbGVtLCBmbG9hdDMyeDRfdCBfX3ZlYywgY29u
c3QgaW50IF9faW5kZXgpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFu
ZV9hbnkgKF9fZWxlbSwgX192ZWMsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZzZXRxX2xhbmVfZjY0IChmbG9hdDY0X3QgX19lbGVtLCBmbG9hdDY0eDJfdCBfX3ZlYywg
Y29uc3QgaW50IF9faW5kZXgpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRf
bGFuZV9hbnkgKF9fZWxlbSwgX192ZWMsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHgxNl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnNldHFfbGFuZV9wOCAocG9seThfdCBfX2VsZW0sIHBvbHk4eDE2X3QgX192ZWMsIGNv
bnN0IGludCBfX2luZGV4KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xh
bmVfYW55IChfX2VsZW0sIF9fdmVjLCBfX2luZGV4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZzZXRxX2xhbmVfcDE2IChwb2x5MTZfdCBfX2VsZW0sIHBvbHkxNng4X3QgX192ZWMsIGNv
bnN0IGludCBfX2luZGV4KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xh
bmVfYW55IChfX2VsZW0sIF9fdmVjLCBfX2luZGV4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZzZXRxX2xhbmVfcDY0IChwb2x5NjRfdCBfX2VsZW0sIHBvbHk2NHgyX3QgX192ZWMsIGNv
bnN0IGludCBfX2luZGV4KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xh
bmVfYW55IChfX2VsZW0sIF9fdmVjLCBfX2luZGV4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnNldHFfbGFuZV9zOCAoaW50OF90IF9fZWxlbSwgaW50OHgxNl90IF9fdmVjLCBjb25zdCBp
bnQgX19pbmRleCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2Fu
eSAoX19lbGVtLCBfX3ZlYywgX19pbmRleCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zz
ZXRxX2xhbmVfczE2IChpbnQxNl90IF9fZWxlbSwgaW50MTZ4OF90IF9fdmVjLCBjb25zdCBpbnQg
X19pbmRleCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAo
X19lbGVtLCBfX3ZlYywgX19pbmRleCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzZXRx
X2xhbmVfczMyIChpbnQzMl90IF9fZWxlbSwgaW50MzJ4NF90IF9fdmVjLCBjb25zdCBpbnQgX19p
bmRleCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19l
bGVtLCBfX3ZlYywgX19pbmRleCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzZXRxX2xh
bmVfczY0IChpbnQ2NF90IF9fZWxlbSwgaW50NjR4Ml90IF9fdmVjLCBjb25zdCBpbnQgX19pbmRl
eCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19lbGVt
LCBfX3ZlYywgX19pbmRleCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2V0cV9sYW5l
X3U4ICh1aW50OF90IF9fZWxlbSwgdWludDh4MTZfdCBfX3ZlYywgY29uc3QgaW50IF9faW5kZXgp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fZWxlbSwg
X192ZWMsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNldHFfbGFuZV91
MTYgKHVpbnQxNl90IF9fZWxlbSwgdWludDE2eDhfdCBfX3ZlYywgY29uc3QgaW50IF9faW5kZXgp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fZWxlbSwg
X192ZWMsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNldHFfbGFuZV91
MzIgKHVpbnQzMl90IF9fZWxlbSwgdWludDMyeDRfdCBfX3ZlYywgY29uc3QgaW50IF9faW5kZXgp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fZWxlbSwg
X192ZWMsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNldHFfbGFuZV91
NjQgKHVpbnQ2NF90IF9fZWxlbSwgdWludDY0eDJfdCBfX3ZlYywgY29uc3QgaW50IF9faW5kZXgp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fZWxlbSwg
X192ZWMsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICsjZGVmaW5lIF9fR0VUX0xPVyhf
X1RZUEUpIFwNCiAgICArICB1aW50NjR4Ml90IHRtcCA9IHZyZWludGVycHJldHFfdTY0XyMjX19U
WVBFIChfX2EpOyAgXA0KICAgICsgIHVpbnQ2NHgxX3QgbG8gPSB2Y3JlYXRlX3U2NCAodmdldHFf
bGFuZV91NjQgKHRtcCwgMCkpOyAgXA0KICAgICsgIHJldHVybiB2cmVpbnRlcnByZXRfIyNfX1RZ
UEUjI191NjQgKGxvKTsNCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldF9sb3dfZjE2IChmbG9hdDE2
eDhfdCBfX2EpDQogICAgK3sNCiAgICArICBfX0dFVF9MT1cgKGYxNik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmdldF9sb3dfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAg
ICArICBfX0dFVF9MT1cgKGYzMik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldF9s
b3dfZjY0IChmbG9hdDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0NjR4
MV90KSB7dmdldHFfbGFuZV9mNjQgKF9fYSwgMCl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Z2V0X2xvd19wOCAocG9seTh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICBfX0dFVF9MT1cg
KHA4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
cG9seTE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRfbG93X3AxNiAocG9seTE2eDhf
dCBfX2EpDQogICAgK3sNCiAgICArICBfX0dFVF9MT1cgKHAxNik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Z2V0X2xvd19wNjQgKHBvbHk2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAg
X19HRVRfTE9XIChwNjQpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRfbG93X3M4IChp
bnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgX19HRVRfTE9XIChzOCk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZnZXRfbG93X3MxNiAoaW50MTZ4OF90IF9fYSkNCiAgICArew0KICAg
ICsgIF9fR0VUX0xPVyAoczE2KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldF9sb3df
czMyIChpbnQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgX19HRVRfTE9XIChzMzIpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Z2V0X2xvd19zNjQgKGludDY0eDJfdCBfX2EpDQogICAg
K3sNCiAgICArICBfX0dFVF9MT1cgKHM2NCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zn
ZXRfbG93X3U4ICh1aW50OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIF9fR0VUX0xPVyAodTgp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldF9sb3dfdTE2ICh1aW50MTZ4OF90IF9f
YSkNCiAgICArew0KICAgICsgIF9fR0VUX0xPVyAodTE2KTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZnZXRfbG93X3UzMiAodWludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICBfX0dF
VF9MT1cgKHUzMik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Z2V0X2xvd191NjQgKHVp
bnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZjcmVhdGVfdTY0ICh2Z2V0cV9s
YW5lX3U2NCAoX19hLCAwKSk7DQogICAgK30NCiAgICArDQogICAgKyN1bmRlZiBfX0dFVF9MT1cN
CiAgICArDQogICAgKyNkZWZpbmUgX19HRVRfSElHSChfX1RZUEUpCQkJCQlcDQogICAgKyAgdWlu
dDY0eDJfdCB0bXAgPSB2cmVpbnRlcnByZXRxX3U2NF8jI19fVFlQRSAoX19hKTsJCVwNCiAgICAr
ICB1aW50NjR4MV90IGhpID0gdmNyZWF0ZV91NjQgKHZnZXRxX2xhbmVfdTY0ICh0bXAsIDEpKTsJ
XA0KICAgICsgIHJldHVybiB2cmVpbnRlcnByZXRfIyNfX1RZUEUjI191NjQgKGhpKTsNCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmdldF9oaWdoX2YxNiAoZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQog
ICAgKyAgX19HRVRfSElHSCAoZjE2KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Z2V0
X2hpZ2hfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICBfX0dFVF9ISUdIIChm
MzIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRfaGlnaF9mNjQgKGZsb2F0NjR4
Ml90IF9fYSkNCiAgICArew0KICAgICsgIF9fR0VUX0hJR0ggKGY2NCk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZnZXRfaGlnaF9wOCAocG9seTh4MTZfdCBfX2EpDQogICAgK3sNCiAgICAr
ICBfX0dFVF9ISUdIIChwOCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Z2V0X2hpZ2hf
cDE2IChwb2x5MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIF9fR0VUX0hJR0ggKHAxNik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgx
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Z2V0X2hpZ2hfcDY0IChwb2x5NjR4Ml90IF9fYSkN
CiAgICArew0KICAgICsgIF9fR0VUX0hJR0ggKHA2NCk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmdldF9oaWdoX3M4IChpbnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgX19HRVRfSElH
SCAoczgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Z2V0X2hpZ2hfczE2IChpbnQxNng4
X3QgX19hKQ0KICAgICt7DQogICAgKyAgX19HRVRfSElHSCAoczE2KTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmdldF9oaWdoX3MzMiAoaW50MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsg
IF9fR0VUX0hJR0ggKHMzMik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRfaGlnaF9z
NjQgKGludDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICBfX0dFVF9ISUdIIChzNjQpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Z2V0X2hpZ2hfdTggKHVpbnQ4eDE2X3QgX19hKQ0KICAg
ICt7DQogICAgKyAgX19HRVRfSElHSCAodTgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmdldF9oaWdoX3UxNiAodWludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICBfX0dFVF9ISUdI
ICh1MTYpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmdldF9oaWdoX3UzMiAodWludDMy
eDRfdCBfX2EpDQogICAgK3sNCiAgICArICBfX0dFVF9ISUdIICh1MzIpOw0KICAgICt9DQogICAg
Kw0KICAgICsjdW5kZWYgX19HRVRfSElHSA0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZnZXRfaGlnaF91
NjQgKHVpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZjcmVhdGVfdTY0ICh2
Z2V0cV9sYW5lX3U2NCAoX19hLCAxKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb21i
aW5lX3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9jb21iaW5ldjhxaSAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29tYmluZV9zMTYgKGludDE2eDRfdCBfX2EsIGlu
dDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfY29tYmluZXY0aGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNvbWJpbmVfczMyIChpbnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2NvbWJpbmV2MnNpIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb21iaW5lX3M2NCAoaW50NjR4
MV90IF9fYSwgaW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9jb21iaW5lZGkgKF9fYVswXSwgX19iWzBdKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2Y29tYmluZV9mMTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NvbWJpbmV2NGhmIChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvbWJpbmVfZjMyIChmbG9hdDMy
eDJfdCBfX2EsIGZsb2F0MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQz
Mng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2NvbWJpbmV2MnNmIChfX2EsIF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2Y29tYmluZV91OCAodWludDh4OF90IF9fYSwgdWludDh4OF90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkgX19idWlsdGluX2FhcmNo
NjRfY29tYmluZXY4cWkgKChpbnQ4eDhfdCkgX19hLA0KICAgICsJCQkJCQkgICAgIChpbnQ4eDhf
dCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb21iaW5lX3UxNiAodWludDE2
eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4
OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9jb21iaW5ldjRoaSAoKGludDE2eDRfdCkgX19hLA0KICAg
ICsJCQkJCQkgICAgIChpbnQxNng0X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Y29tYmluZV91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfY29tYmluZXYyc2kg
KChpbnQzMngyX3QpIF9fYSwNCiAgICArCQkJCQkJICAgICAoaW50MzJ4Ml90KSBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvbWJpbmVfdTY0ICh1aW50NjR4MV90IF9fYSwgdWlu
dDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2NvbWJpbmVkaSAoX19hWzBdLCBfX2JbMF0pOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3Zjb21iaW5lX2Y2NCAoZmxvYXQ2NHgxX3QgX19hLCBmbG9hdDY0eDFfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY29tYmluZWRmIChfX2Fb
MF0sIF9fYlswXSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29tYmluZV9wOCAocG9s
eTh4OF90IF9fYSwgcG9seTh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4
MTZfdCkgX19idWlsdGluX2FhcmNoNjRfY29tYmluZXY4cWkgKChpbnQ4eDhfdCkgX19hLA0KICAg
ICsJCQkJCQkgICAgIChpbnQ4eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Zjb21iaW5lX3AxNiAocG9seTE2eDRfdCBfX2EsIHBvbHkxNng0X3QgX19iKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9jb21iaW5ldjRoaSAo
KGludDE2eDRfdCkgX19hLA0KICAgICsJCQkJCQkgICAgIChpbnQxNng0X3QpIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29tYmluZV9wNjQgKHBvbHk2NHgxX3QgX19hLCBwb2x5
NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTY0eDJfdCkgX19idWlsdGlu
X2FhcmNoNjRfY29tYmluZWRpX3BwcCAoX19hWzBdLCBfX2JbMF0pOw0KICAgICt9DQogICAgKw0K
ICAgICsvKiBTdGFydCBvZiB0ZW1wb3JhcnkgaW5saW5lIGFzbSBpbXBsZW1lbnRhdGlvbnMuICAq
Lw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2YWJhX3M4IChpbnQ4eDhfdCBhLCBpbnQ4eDhfdCBiLCBpbnQ4
eDhfdCBjKQ0KICAgICt7DQogICAgKyAgaW50OHg4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18g
KCJzYWJhICUwLjhiLCUyLjhiLCUzLjhiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQp
DQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAg
ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmFiYV9zMTYgKGludDE2eDRfdCBhLCBpbnQxNng0X3QgYiwgaW50
MTZ4NF90IGMpDQogICAgK3sNCiAgICArICBpbnQxNng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNt
X18gKCJzYWJhICUwLjRoLCUyLjRoLCUzLjRoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1
bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAg
ICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmFiYV9zMzIgKGludDMyeDJfdCBhLCBpbnQzMngyX3QgYiwg
aW50MzJ4Ml90IGMpDQogICAgK3sNCiAgICArICBpbnQzMngyX3QgcmVzdWx0Ow0KICAgICsgIF9f
YXNtX18gKCJzYWJhICUwLjJzLCUyLjJzLCUzLjJzIg0KICAgICsgICAgICAgICAgIDogIj13Iihy
ZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAg
ICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFiYV91OCAodWludDh4OF90IGEsIHVpbnQ4eDhfdCBi
LCB1aW50OHg4X3QgYykNCiAgICArew0KICAgICsgIHVpbnQ4eDhfdCByZXN1bHQ7DQogICAgKyAg
X19hc21fXyAoInVhYmEgJTAuOGIsJTIuOGIsJTMuOGIiDQogICAgKyAgICAgICAgICAgOiAiPXci
KHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICAr
ICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFiYV91MTYgKHVpbnQxNng0X3QgYSwgdWludDE2
eDRfdCBiLCB1aW50MTZ4NF90IGMpDQogICAgK3sNCiAgICArICB1aW50MTZ4NF90IHJlc3VsdDsN
CiAgICArICBfX2FzbV9fICgidWFiYSAlMC40aCwlMi40aCwlMy40aCINCiAgICArICAgICAgICAg
ICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3Iihj
KQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiBy
ZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJhX3UzMiAodWludDMyeDJfdCBh
LCB1aW50MzJ4Ml90IGIsIHVpbnQzMngyX3QgYykNCiAgICArew0KICAgICsgIHVpbnQzMngyX3Qg
cmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1YWJhICUwLjJzLCUyLjJzLCUzLjJzIg0KICAgICsg
ICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3Iihi
KSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAg
cmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFiYWxfaGlnaF9zOCAo
aW50MTZ4OF90IGEsIGludDh4MTZfdCBiLCBpbnQ4eDE2X3QgYykNCiAgICArew0KICAgICsgIGlu
dDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNhYmFsMiAlMC44aCwlMi4xNmIsJTMu
MTZiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAi
MCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAq
Lyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFi
YWxfaGlnaF9zMTYgKGludDMyeDRfdCBhLCBpbnQxNng4X3QgYiwgaW50MTZ4OF90IGMpDQogICAg
K3sNCiAgICArICBpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWJhbDIgJTAu
NHMsJTIuOGgsJTMuOGgiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAg
ICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5v
IGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2YWJhbF9oaWdoX3MzMiAoaW50NjR4Ml90IGEsIGludDMyeDRfdCBiLCBpbnQzMng0
X3QgYykNCiAgICArew0KICAgICsgIGludDY0eDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAo
InNhYmFsMiAlMC4yZCwlMi40cywlMy40cyINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0
KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2YWJhbF9oaWdoX3U4ICh1aW50MTZ4OF90IGEsIHVpbnQ4eDE2
X3QgYiwgdWludDh4MTZfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDE2eDhfdCByZXN1bHQ7DQog
ICAgKyAgX19hc21fXyAoInVhYmFsMiAlMC44aCwlMi4xNmIsJTMuMTZiIg0KICAgICsgICAgICAg
ICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInci
KGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJu
IHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmFsX2hpZ2hfdTE2ICh1aW50
MzJ4NF90IGEsIHVpbnQxNng4X3QgYiwgdWludDE2eDhfdCBjKQ0KICAgICt7DQogICAgKyAgdWlu
dDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVhYmFsMiAlMC40cywlMi44aCwlMy44
aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAi
KGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8p
Ow0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJh
bF9oaWdoX3UzMiAodWludDY0eDJfdCBhLCB1aW50MzJ4NF90IGIsIHVpbnQzMng0X3QgYykNCiAg
ICArew0KICAgICsgIHVpbnQ2NHgyX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1YWJhbDIg
JTAuMmQsJTIuNHMsJTMuNHMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICAr
ICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8q
IE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2YWJhbF9zOCAoaW50MTZ4OF90IGEsIGludDh4OF90IGIsIGludDh4OF90IGMp
DQogICAgK3sNCiAgICArICBpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWJh
bCAlMC44aCwlMi44YiwlMy44YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAg
ICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDog
LyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZhYmFsX3MxNiAoaW50MzJ4NF90IGEsIGludDE2eDRfdCBiLCBpbnQxNng0
X3QgYykNCiAgICArew0KICAgICsgIGludDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAo
InNhYmFsICUwLjRzLCUyLjRoLCUzLjRoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQp
DQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAg
ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmFiYWxfczMyIChpbnQ2NHgyX3QgYSwgaW50MzJ4Ml90IGIsIGlu
dDMyeDJfdCBjKQ0KICAgICt7DQogICAgKyAgaW50NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2Fz
bV9fICgic2FiYWwgJTAuMmQsJTIuMnMsJTMuMnMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJl
c3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAg
ICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFiYWxfdTggKHVpbnQxNng4X3QgYSwgdWludDh4OF90
IGIsIHVpbnQ4eDhfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDE2eDhfdCByZXN1bHQ7DQogICAg
KyAgX19hc21fXyAoInVhYmFsICUwLjhoLCUyLjhiLCUzLjhiIg0KICAgICsgICAgICAgICAgIDog
Ij13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQog
ICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3Vs
dDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmFsX3UxNiAodWludDMyeDRfdCBhLCB1
aW50MTZ4NF90IGIsIHVpbnQxNng0X3QgYykNCiAgICArew0KICAgICsgIHVpbnQzMng0X3QgcmVz
dWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1YWJhbCAlMC40cywlMi40aCwlMy40aCINCiAgICArICAg
ICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiks
ICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJl
dHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJhbF91MzIgKHVpbnQ2
NHgyX3QgYSwgdWludDMyeDJfdCBiLCB1aW50MzJ4Ml90IGMpDQogICAgK3sNCiAgICArICB1aW50
NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidWFiYWwgJTAuMmQsJTIuMnMsJTMuMnMi
DQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihh
KSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsN
CiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJhcV9z
OCAoaW50OHgxNl90IGEsIGludDh4MTZfdCBiLCBpbnQ4eDE2X3QgYykNCiAgICArew0KICAgICsg
IGludDh4MTZfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNhYmEgJTAuMTZiLCUyLjE2Yiwl
My4xNmIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6
ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJz
ICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
YWJhcV9zMTYgKGludDE2eDhfdCBhLCBpbnQxNng4X3QgYiwgaW50MTZ4OF90IGMpDQogICAgK3sN
CiAgICArICBpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWJhICUwLjhoLCUy
LjhoLCUzLjhoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAg
ICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9i
YmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmFiYXFfczMyIChpbnQzMng0X3QgYSwgaW50MzJ4NF90IGIsIGludDMyeDRfdCBjKQ0KICAg
ICt7DQogICAgKyAgaW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic2FiYSAlMC40
cywlMi40cywlMy40cyINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAg
ICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8g
Y2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2YWJhcV91OCAodWludDh4MTZfdCBhLCB1aW50OHgxNl90IGIsIHVpbnQ4eDE2X3Qg
YykNCiAgICArew0KICAgICsgIHVpbnQ4eDE2X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1
YWJhICUwLjE2YiwlMi4xNmIsJTMuMTZiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQp
DQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAg
ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZhYmFxX3UxNiAodWludDE2eDhfdCBhLCB1aW50MTZ4OF90IGIs
IHVpbnQxNng4X3QgYykNCiAgICArew0KICAgICsgIHVpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsg
IF9fYXNtX18gKCJ1YWJhICUwLjhoLCUyLjhoLCUzLjhoIg0KICAgICsgICAgICAgICAgIDogIj13
IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAg
KyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMy
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmFxX3UzMiAodWludDMyeDRfdCBhLCB1aW50
MzJ4NF90IGIsIHVpbnQzMng0X3QgYykNCiAgICArew0KICAgICsgIHVpbnQzMng0X3QgcmVzdWx0
Ow0KICAgICsgIF9fYXNtX18gKCJ1YWJhICUwLjRzLCUyLjRzLCUzLjRzIg0KICAgICsgICAgICAg
ICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInci
KGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJu
IHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJkX3M4IChpbnQ4eDhfdCBhLCBp
bnQ4eDhfdCBiKQ0KICAgICt7DQogICAgKyAgaW50OHg4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNt
X18gKCJzYWJkICUwLjhiLCAlMS44YiwgJTIuOGIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJl
c3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAg
OiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmFiZF9zMTYgKGludDE2eDRfdCBhLCBpbnQxNng0X3QgYikNCiAgICAr
ew0KICAgICsgIGludDE2eDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNhYmQgJTAuNGgs
ICUxLjRoLCAlMi40aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAg
ICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJz
ICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
YWJkX3MzMiAoaW50MzJ4Ml90IGEsIGludDMyeDJfdCBiKQ0KICAgICt7DQogICAgKyAgaW50MzJ4
Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic2FiZCAlMC4ycywgJTEuMnMsICUyLjJzIg0K
ICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSks
ICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJl
dHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRfdTggKHVpbnQ4eDhf
dCBhLCB1aW50OHg4X3QgYikNCiAgICArew0KICAgICsgIHVpbnQ4eDhfdCByZXN1bHQ7DQogICAg
KyAgX19hc21fXyAoInVhYmQgJTAuOGIsICUxLjhiLCAlMi44YiINCiAgICArICAgICAgICAgICA6
ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAg
ICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFiZF91MTYgKHVpbnQxNng0X3QgYSwgdWludDE2eDRf
dCBiKQ0KICAgICt7DQogICAgKyAgdWludDE2eDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAo
InVhYmQgJTAuNGgsICUxLjRoLCAlMi40aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0
KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8q
IE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmFiZF91MzIgKHVpbnQzMngyX3QgYSwgdWludDMyeDJfdCBiKQ0KICAgICt7
DQogICAgKyAgdWludDMyeDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVhYmQgJTAuMnMs
ICUxLjJzLCAlMi4ycyINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAg
ICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJz
ICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
YWJkbF9oaWdoX3M4IChpbnQ4eDE2X3QgYSwgaW50OHgxNl90IGIpDQogICAgK3sNCiAgICArICBp
bnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWJkbDIgJTAuOGgsJTEuMTZiLCUy
LjE2YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDog
InciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAg
ICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJkbF9oaWdo
X3MxNiAoaW50MTZ4OF90IGEsIGludDE2eDhfdCBiKQ0KICAgICt7DQogICAgKyAgaW50MzJ4NF90
IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic2FiZGwyICUwLjRzLCUxLjhoLCUyLjhoIg0KICAg
ICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3
IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVy
biByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRsX2hpZ2hfczMyIChpbnQz
Mng0X3QgYSwgaW50MzJ4NF90IGIpDQogICAgK3sNCiAgICArICBpbnQ2NHgyX3QgcmVzdWx0Ow0K
ICAgICsgIF9fYXNtX18gKCJzYWJkbDIgJTAuMmQsJTEuNHMsJTIuNHMiDQogICAgKyAgICAgICAg
ICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAg
KyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRsX2hpZ2hfdTggKHVpbnQ4eDE2X3QgYSwg
dWludDh4MTZfdCBiKQ0KICAgICt7DQogICAgKyAgdWludDE2eDhfdCByZXN1bHQ7DQogICAgKyAg
X19hc21fXyAoInVhYmRsMiAlMC44aCwlMS4xNmIsJTIuMTZiIg0KICAgICsgICAgICAgICAgIDog
Ij13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAgICsgICAg
ICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJkbF9oaWdoX3UxNiAodWludDE2eDhfdCBhLCB1aW50
MTZ4OF90IGIpDQogICAgK3sNCiAgICArICB1aW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2Fz
bV9fICgidWFiZGwyICUwLjRzLCUxLjhoLCUyLjhoIg0KICAgICsgICAgICAgICAgIDogIj13Iihy
ZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAg
IDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2YWJkbF9oaWdoX3UzMiAodWludDMyeDRfdCBhLCB1aW50MzJ4NF90
IGIpDQogICAgK3sNCiAgICArICB1aW50NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgi
dWFiZGwyICUwLjJkLCUxLjRzLCUyLjRzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQp
DQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyog
Tm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZhYmRsX3M4IChpbnQ4eDhfdCBhLCBpbnQ4eDhfdCBiKQ0KICAgICt7DQogICAg
KyAgaW50MTZ4OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic2FiZGwgJTAuOGgsICUxLjhi
LCAlMi44YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAg
IDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsN
CiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJkbF9z
MTYgKGludDE2eDRfdCBhLCBpbnQxNng0X3QgYikNCiAgICArew0KICAgICsgIGludDMyeDRfdCBy
ZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNhYmRsICUwLjRzLCAlMS40aCwgJTIuNGgiDQogICAg
KyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInci
KGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJu
IHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFiZGxfczMyIChpbnQzMngyX3Qg
YSwgaW50MzJ4Ml90IGIpDQogICAgK3sNCiAgICArICBpbnQ2NHgyX3QgcmVzdWx0Ow0KICAgICsg
IF9fYXNtX18gKCJzYWJkbCAlMC4yZCwgJTEuMnMsICUyLjJzIg0KICAgICsgICAgICAgICAgIDog
Ij13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAgICsgICAg
ICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJkbF91OCAodWludDh4OF90IGEsIHVpbnQ4eDhfdCBi
KQ0KICAgICt7DQogICAgKyAgdWludDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVh
YmRsICUwLjhoLCAlMS44YiwgJTIuOGIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkN
CiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBO
byBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZhYmRsX3UxNiAodWludDE2eDRfdCBhLCB1aW50MTZ4NF90IGIpDQogICAgK3sN
CiAgICArICB1aW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidWFiZGwgJTAuNHMs
ICUxLjRoLCAlMi40aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAg
ICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJz
ICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmFiZGxfdTMyICh1aW50MzJ4Ml90IGEsIHVpbnQzMngyX3QgYikNCiAgICArew0KICAgICsgIHVp
bnQ2NHgyX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1YWJkbCAlMC4yZCwgJTEuMnMsICUy
LjJzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAi
dyIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAg
ICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRxX3M4IChp
bnQ4eDE2X3QgYSwgaW50OHgxNl90IGIpDQogICAgK3sNCiAgICArICBpbnQ4eDE2X3QgcmVzdWx0
Ow0KICAgICsgIF9fYXNtX18gKCJzYWJkICUwLjE2YiwgJTEuMTZiLCAlMi4xNmIiDQogICAgKyAg
ICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIp
DQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJl
c3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFiZHFfczE2IChpbnQxNng4X3QgYSwg
aW50MTZ4OF90IGIpDQogICAgK3sNCiAgICArICBpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9f
YXNtX18gKCJzYWJkICUwLjhoLCAlMS44aCwgJTIuOGgiDQogICAgKyAgICAgICAgICAgOiAiPXci
KHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAg
ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmFiZHFfczMyIChpbnQzMng0X3QgYSwgaW50MzJ4NF90IGIpDQog
ICAgK3sNCiAgICArICBpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWJkICUw
LjRzLCAlMS40cywgJTIuNHMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICAr
ICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9i
YmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZhYmRxX3U4ICh1aW50OHgxNl90IGEsIHVpbnQ4eDE2X3QgYikNCiAgICArew0KICAgICsg
IHVpbnQ4eDE2X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1YWJkICUwLjE2YiwgJTEuMTZi
LCAlMi4xNmIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAg
ICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7
DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRx
X3UxNiAodWludDE2eDhfdCBhLCB1aW50MTZ4OF90IGIpDQogICAgK3sNCiAgICArICB1aW50MTZ4
OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidWFiZCAlMC44aCwgJTEuOGgsICUyLjhoIg0K
ICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSks
ICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJl
dHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJkcV91MzIgKHVpbnQz
Mng0X3QgYSwgdWludDMyeDRfdCBiKQ0KICAgICt7DQogICAgKyAgdWludDMyeDRfdCByZXN1bHQ7
DQogICAgKyAgX19hc21fXyAoInVhYmQgJTAuNHMsICUxLjRzLCAlMi40cyINCiAgICArICAgICAg
ICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAg
ICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQx
Nl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZGx2X3M4IChpbnQ4eDhfdCBhKQ0KICAgICt7
DQogICAgKyAgaW50MTZfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNhZGRsdiAlaDAsJTEu
OGIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3
IihhKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVy
biByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkbHZfczE2IChpbnQxNng0X3Qg
YSkNCiAgICArew0KICAgICsgIGludDMyX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWRk
bHYgJXMwLCUxLjRoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAg
ICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAg
ICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRsdl91OCAo
dWludDh4OF90IGEpDQogICAgK3sNCiAgICArICB1aW50MTZfdCByZXN1bHQ7DQogICAgKyAgX19h
c21fXyAoInVhZGRsdiAlaDAsJTEuOGIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkN
CiAgICArICAgICAgICAgICA6ICJ3IihhKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJl
cnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmFkZGx2X3UxNiAodWludDE2eDRfdCBhKQ0KICAgICt7DQogICAgKyAgdWludDMyX3QgcmVzdWx0
Ow0KICAgICsgIF9fYXNtX18gKCJ1YWRkbHYgJXMwLCUxLjRoIg0KICAgICsgICAgICAgICAgIDog
Ij13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6
IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNl90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmFkZGx2cV9zOCAoaW50OHgxNl90IGEpDQogICAgK3sNCiAgICArICBpbnQx
Nl90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic2FkZGx2ICVoMCwlMS4xNmIiDQogICAgKyAg
ICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKQ0KICAgICsg
ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkbHZxX3MxNiAoaW50MTZ4OF90IGEpDQogICAgK3sN
CiAgICArICBpbnQzMl90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic2FkZGx2ICVzMCwlMS44
aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInci
KGEpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJu
IHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRsdnFfczMyIChpbnQzMng0X3Qg
YSkNCiAgICArew0KICAgICsgIGludDY0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWRk
bHYgJWQwLCUxLjRzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAg
ICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAg
ICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRsdnFfdTgg
KHVpbnQ4eDE2X3QgYSkNCiAgICArew0KICAgICsgIHVpbnQxNl90IHJlc3VsdDsNCiAgICArICBf
X2FzbV9fICgidWFkZGx2ICVoMCwlMS4xNmIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3Vs
dCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xv
YmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmFkZGx2cV91MTYgKHVpbnQxNng4X3QgYSkNCiAgICArew0KICAgICsgIHVpbnQzMl90IHJl
c3VsdDsNCiAgICArICBfX2FzbV9fICgidWFkZGx2ICVzMCwlMS44aCINCiAgICArICAgICAgICAg
ICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpDQogICAgKyAgICAgICAg
ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2YWRkbHZxX3UzMiAodWludDMyeDRfdCBhKQ0KICAgICt7DQogICAg
KyAgdWludDY0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1YWRkbHYgJWQwLCUxLjRzIg0K
ICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSkN
CiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVz
dWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnR4X2YzMl9mNjQgKGZsb2F0NjR4
Ml90IGEpDQogICAgK3sNCiAgICArICBmbG9hdDMyeDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21f
XyAoImZjdnR4biAlMC4ycywlMS4yZCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0K
ICAgICsgICAgICAgICAgIDogInciKGEpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVy
cyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Y3Z0eF9oaWdoX2YzMl9mNjQgKGZsb2F0MzJ4Ml90IGEsIGZsb2F0NjR4Ml90IGIpDQogICAg
K3sNCiAgICArICBmbG9hdDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoImZjdnR4bjIg
JTAuNHMsJTEuMmQiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAg
ICAgICA6ICJ3IiAoYiksICIwIihhKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg
Ki8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zj
dnR4ZF9mMzJfZjY0IChmbG9hdDY0X3QgYSkNCiAgICArew0KICAgICsgIGZsb2F0MzJfdCByZXN1
bHQ7DQogICAgKyAgX19hc21fXyAoImZjdnR4biAlczAsJWQxIg0KICAgICsgICAgICAgICAgIDog
Ij13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6
IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZtbGFfbl9mMzIgKGZsb2F0MzJ4Ml90IGEsIGZsb2F0MzJ4Ml90IGIs
IGZsb2F0MzJfdCBjKQ0KICAgICt7DQogICAgKyAgZmxvYXQzMngyX3QgcmVzdWx0Ow0KICAgICsg
IGZsb2F0MzJ4Ml90IHQxOw0KICAgICsgIF9fYXNtX18gKCJmbXVsICUxLjJzLCAlMy4ycywgJTQu
c1swXTsgZmFkZCAlMC4ycywgJTAuMnMsICUxLjJzIg0KICAgICsgICAgICAgICAgIDogIj13Iihy
ZXN1bHQpLCAiPXciKHQxKQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3Iihj
KQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiBy
ZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFfbl9zMTYgKGludDE2eDRfdCBh
LCBpbnQxNng0X3QgYiwgaW50MTZfdCBjKQ0KICAgICt7DQogICAgKyAgaW50MTZ4NF90IHJlc3Vs
dDsNCiAgICArICBfX2FzbV9fICgibWxhICUwLjRoLCUyLjRoLCUzLmhbMF0iDQogICAgKyAgICAg
ICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAi
eCIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1
cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxhX25fczMyIChpbnQzMngy
X3QgYSwgaW50MzJ4Ml90IGIsIGludDMyX3QgYykNCiAgICArew0KICAgICsgIGludDMyeDJfdCBy
ZXN1bHQ7DQogICAgKyAgX19hc21fXyAoIm1sYSAlMC4ycywlMi4ycywlMy5zWzBdIg0KICAgICsg
ICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3Iihi
KSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAg
cmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFfbl91MTYgKHVp
bnQxNng0X3QgYSwgdWludDE2eDRfdCBiLCB1aW50MTZfdCBjKQ0KICAgICt7DQogICAgKyAgdWlu
dDE2eDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoIm1sYSAlMC40aCwlMi40aCwlMy5oWzBd
Ig0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIo
YSksICJ3IihiKSwgIngiKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7
DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFf
bl91MzIgKHVpbnQzMngyX3QgYSwgdWludDMyeDJfdCBiLCB1aW50MzJfdCBjKQ0KICAgICt7DQog
ICAgKyAgdWludDMyeDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoIm1sYSAlMC4ycywlMi4y
cywlMy5zWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAg
ICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9i
YmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2bWxhX3M4IChpbnQ4eDhfdCBhLCBpbnQ4eDhfdCBiLCBpbnQ4eDhfdCBjKQ0KICAgICt7DQog
ICAgKyAgaW50OHg4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJtbGEgJTAuOGIsICUyLjhi
LCAlMy44YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAg
IDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJl
cnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZtbGFfczE2IChpbnQxNng0X3QgYSwgaW50MTZ4NF90IGIsIGludDE2eDRfdCBjKQ0KICAgICt7
DQogICAgKyAgaW50MTZ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgibWxhICUwLjRoLCAl
Mi40aCwgJTMuNGgiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAg
ICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNs
b2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bWxhX3MzMiAoaW50MzJ4Ml90IGEsIGludDMyeDJfdCBiLCBpbnQzMngyX3QgYykNCiAg
ICArew0KICAgICsgIGludDMyeDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoIm1sYSAlMC4y
cywgJTIuMnMsICUzLjJzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAg
ICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBO
byBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdm1sYV91OCAodWludDh4OF90IGEsIHVpbnQ4eDhfdCBiLCB1aW50OHg4X3QgYykN
CiAgICArew0KICAgICsgIHVpbnQ4eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoIm1sYSAl
MC44YiwgJTIuOGIsICUzLjhiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAg
KyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAv
KiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZtbGFfdTE2ICh1aW50MTZ4NF90IGEsIHVpbnQxNng0X3QgYiwgdWludDE2
eDRfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDE2eDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21f
XyAoIm1sYSAlMC40aCwgJTIuNGgsICUzLjRoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1
bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAg
ICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFfdTMyICh1aW50MzJ4Ml90IGEsIHVpbnQzMngyX3Qg
YiwgdWludDMyeDJfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDMyeDJfdCByZXN1bHQ7DQogICAg
KyAgX19hc21fXyAoIm1sYSAlMC4ycywgJTIuMnMsICUzLjJzIg0KICAgICsgICAgICAgICAgIDog
Ij13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQog
ICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3Vs
dDsNCiAgICArfQ0KICAgICsNCiAgICArI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVfczE2KGEsIGIs
IGMsIGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5z
aW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDE2eDRfdCBjXyA9
IChjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgICAgaW50MTZ4OF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMng0X3QgYV8gPSAoYSk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGlu
dDMyeDRfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNtbGFsMiAlMC40cywgJTIuOGgsICUzLmhb
JTRdIiAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICI9
dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgICAgICAgICAgIDogIjAiKGFfKSwgInciKGJfKSwgIngiKGNfKSwgImkiKGQpICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVy
cyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBy
ZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2bWxhbF9oaWdoX2xh
bmVfczMyKGEsIGIsIGMsIGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGlu
dDMyeDJfdCBjXyA9IChjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4NF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQ2NHgyX3QgYV8g
PSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgIGludDY0eDJfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNtbGFsMiAlMC4yZCwg
JTIuNHMsICUzLnNbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAg
ICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIjAiKGFfKSwgInciKGJfKSwgInciKGNf
KSwgImkiKGQpICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAv
KiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2
bWxhbF9oaWdoX2xhbmVfdTE2KGEsIGIsIGMsIGQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgIHVpbnQxNng0X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDE2eDhfdCBiXyA9IChiKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1
aW50MzJ4NF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInVt
bGFsMiAlMC40cywgJTIuOGgsICUzLmhbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIjAiKGFfKSwgInci
KGJfKSwgIngiKGNfKSwgImkiKGQpICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
ICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAg
ICArI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVfdTMyKGEsIGIsIGMsIGQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMngyX3QgY18gPSAoYyk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDMyeDRfdCBi
XyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICB1aW50NjR4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQ2NHgyX3QgcmVzdWx0OyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
X19hc21fXyAoInVtbGFsMiAlMC4yZCwgJTIuNHMsICUzLnNbJTRdIiAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDog
IjAiKGFfKSwgInciKGJfKSwgInciKGNfKSwgImkiKGQpICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9
KQ0KICAgICsNCiAgICArI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MxNihhLCBiLCBjLCBkKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDE2eDhfdCBjXyA9IChjKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
aW50MTZ4OF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMng0X3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDRfdCBy
ZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgX19hc21fXyAoInNtbGFsMiAlMC40cywgJTIuOGgsICUzLmhbJTRdIiAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
ICAgICAgICAgIDogIjAiKGFfKSwgInciKGJfKSwgIngiKGNfKSwgImkiKGQpICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MzMihh
LCBiLCBjLCBkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0
ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDRfdCBj
XyA9IChjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgaW50MzJ4NF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQ2NHgyX3QgYV8gPSAoYSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IGludDY0eDJfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNtbGFsMiAlMC4yZCwgJTIuNHMsICUz
LnNbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6
ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgICAgICAgICAgIDogIjAiKGFfKSwgInciKGJfKSwgInciKGNfKSwgImkiKGQp
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9i
YmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2bWxhbF9oaWdo
X2xhbmVxX3UxNihhLCBiLCBjLCBkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IHVpbnQxNng4X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgdWludDE2eDhfdCBiXyA9IChiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90
IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIHVpbnQzMng0X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInVtbGFsMiAlMC40
cywgJTIuOGgsICUzLmhbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIjAiKGFfKSwgInciKGJfKSwgIngi
KGNfKSwgImkiKGQpICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmlu
ZSB2bWxhbF9oaWdoX2xhbmVxX3UzMihhLCBiLCBjLCBkKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIHVpbnQzMng0X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDMyeDRfdCBiXyA9IChiKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICB1aW50NjR4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQ2NHgyX3QgcmVzdWx0OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAo
InVtbGFsMiAlMC4yZCwgJTIuNHMsICUzLnNbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIjAiKGFfKSwg
InciKGJfKSwgInciKGNfKSwgImkiKGQpICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdm1sYWxfaGlnaF9uX3MxNiAoaW50MzJ4NF90IGEsIGludDE2eDhfdCBiLCBp
bnQxNl90IGMpDQogICAgK3sNCiAgICArICBpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNt
X18gKCJzbWxhbDIgJTAuNHMsJTIuOGgsJTMuaFswXSINCiAgICArICAgICAgICAgICA6ICI9dyIo
cmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ4IihjKQ0KICAgICsg
ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFsX2hpZ2hfbl9zMzIgKGludDY0eDJfdCBhLCBp
bnQzMng0X3QgYiwgaW50MzJfdCBjKQ0KICAgICt7DQogICAgKyAgaW50NjR4Ml90IHJlc3VsdDsN
CiAgICArICBfX2FzbV9fICgic21sYWwyICUwLjJkLCUyLjRzLCUzLnNbMF0iDQogICAgKyAgICAg
ICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAi
dyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1
cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYWxfaGlnaF9uX3UxNiAo
dWludDMyeDRfdCBhLCB1aW50MTZ4OF90IGIsIHVpbnQxNl90IGMpDQogICAgK3sNCiAgICArICB1
aW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidW1sYWwyICUwLjRzLCUyLjhoLCUz
LmhbMF0iDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6
ICIwIihhKSwgInciKGIpLCAieCIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJz
ICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1sYWxfaGlnaF9uX3UzMiAodWludDY0eDJfdCBhLCB1aW50MzJ4NF90IGIsIHVpbnQzMl90IGMp
DQogICAgK3sNCiAgICArICB1aW50NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidW1s
YWwyICUwLjJkLCUyLjRzLCUzLnNbMF0iDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkN
CiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAg
ICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2bWxhbF9oaWdoX3M4IChpbnQxNng4X3QgYSwgaW50OHgxNl90IGIs
IGludDh4MTZfdCBjKQ0KICAgICt7DQogICAgKyAgaW50MTZ4OF90IHJlc3VsdDsNCiAgICArICBf
X2FzbV9fICgic21sYWwyICUwLjhoLCUyLjE2YiwlMy4xNmIiDQogICAgKyAgICAgICAgICAgOiAi
PXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAg
ICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQz
Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxhbF9oaWdoX3MxNiAoaW50MzJ4NF90IGEs
IGludDE2eDhfdCBiLCBpbnQxNng4X3QgYykNCiAgICArew0KICAgICsgIGludDMyeDRfdCByZXN1
bHQ7DQogICAgKyAgX19hc21fXyAoInNtbGFsMiAlMC40cywlMi44aCwlMy44aCINCiAgICArICAg
ICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiks
ICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJl
dHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFsX2hpZ2hfczMyIChp
bnQ2NHgyX3QgYSwgaW50MzJ4NF90IGIsIGludDMyeDRfdCBjKQ0KICAgICt7DQogICAgKyAgaW50
NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic21sYWwyICUwLjJkLCUyLjRzLCUzLjRz
Ig0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIo
YSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7
DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFs
X2hpZ2hfdTggKHVpbnQxNng4X3QgYSwgdWludDh4MTZfdCBiLCB1aW50OHgxNl90IGMpDQogICAg
K3sNCiAgICArICB1aW50MTZ4OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidW1sYWwyICUw
LjhoLCUyLjE2YiwlMy4xNmIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICAr
ICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8q
IE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdm1sYWxfaGlnaF91MTYgKHVpbnQzMng0X3QgYSwgdWludDE2eDhfdCBiLCB1
aW50MTZ4OF90IGMpDQogICAgK3sNCiAgICArICB1aW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBf
X2FzbV9fICgidW1sYWwyICUwLjRzLCUyLjhoLCUzLjhoIg0KICAgICsgICAgICAgICAgIDogIj13
IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAg
KyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFsX2hpZ2hfdTMyICh1aW50NjR4Ml90IGEs
IHVpbnQzMng0X3QgYiwgdWludDMyeDRfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDY0eDJfdCBy
ZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVtbGFsMiAlMC4yZCwlMi40cywlMy40cyINCiAgICAr
ICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIo
YiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsg
IHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgKyNkZWZpbmUgdm1sYWxfbGFuZV9z
MTYoYSwgYiwgYywgZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBp
bnQxNng0X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIGludDE2eDRfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4NF90IGFf
ID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICBpbnQzMng0X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzbWxhbCAlMC40cywl
Mi40aCwlMy5oWyU0XSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
ICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ4Iihj
XyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDog
LyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUg
dm1sYWxfbGFuZV9zMzIoYSwgYiwgYywgZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICBpbnQzMngyX3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDJfdCBiXyA9IChiKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
aW50NjR4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICBpbnQ2NHgyX3QgcmVzdWx0OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJz
bWxhbCAlMC4yZCwlMi4ycywlMy5zWyU0XSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3
IihiXyksICJ3IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQog
ICAgKyNkZWZpbmUgdm1sYWxfbGFuZV91MTYoYSwgYiwgYywgZCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4NF90IGNfID0gKGMpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQxNng0X3Qg
Yl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgdWludDMyeDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IHJlc3VsdDsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IF9fYXNtX18gKCJ1bWxhbCAlMC40cywlMi40aCwlMy5oWyU0XSIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6
ICIwIihhXyksICJ3IihiXyksICJ4IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
fSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sYWxfbGFuZV91MzIoYSwgYiwgYywgZCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4Ml90IGNfID0gKGMpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IHVpbnQzMngyX3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgdWludDY0eDJfdCBhXyA9IChhKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50NjR4Ml90
IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIF9fYXNtX18gKCJ1bWxhbCAlMC4yZCwgJTIuMnMsICUzLnNbJTRdIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3Vs
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ3IihjXyksICJpIihkKSAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sYWxfbGFuZXFfczE2KGEsIGIs
IGMsIGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4
dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQxNng4X3Qg
Y18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIGludDE2eDRfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4NF90IGFfID0gKGEpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICBpbnQzMng0X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzbWxhbCAlMC40cywgJTIuNGgsICUz
LmhbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ4IihjXyksICJpIihk
KSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xv
YmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sYWxfbGFu
ZXFfczMyKGEsIGIsIGMsIGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICBpbnQzMng0X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDJfdCBiXyA9IChiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50NjR4Ml90
IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICBpbnQ2NHgyX3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzbWxhbCAlMC4y
ZCwgJTIuMnMsICUzLnNbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ3
IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAg
IDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZp
bmUgdm1sYWxfbGFuZXFfdTE2KGEsIGIsIGMsIGQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICB1aW50MTZ4OF90IGNfID0gKGMpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQxNng0X3QgYl8gPSAoYik7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgdWludDMyeDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IHJlc3VsdDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18g
KCJ1bWxhbCAlMC40cywgJTIuNGgsICUzLmhbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyks
ICJ3IihiXyksICJ4IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICAr
DQogICAgKyNkZWZpbmUgdm1sYWxfbGFuZXFfdTMyKGEsIGIsIGMsIGQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
KHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IGNfID0gKGMpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMngy
X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgdWludDY0eDJfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50NjR4Ml90IHJlc3VsdDsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgIF9fYXNtX18gKCJ1bWxhbCAlMC4yZCwgJTIuMnMsICUzLnNbJTRdIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAg
ICA6ICIwIihhXyksICJ3IihiXyksICJ3IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgfSkNCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFsX25fczE2IChpbnQzMng0X3QgYSwgaW50MTZ4
NF90IGIsIGludDE2X3QgYykNCiAgICArew0KICAgICsgIGludDMyeDRfdCByZXN1bHQ7DQogICAg
KyAgX19hc21fXyAoInNtbGFsICUwLjRzLCUyLjRoLCUzLmhbMF0iDQogICAgKyAgICAgICAgICAg
OiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAieCIoYykN
CiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVz
dWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxhbF9uX3MzMiAoaW50NjR4Ml90IGEs
IGludDMyeDJfdCBiLCBpbnQzMl90IGMpDQogICAgK3sNCiAgICArICBpbnQ2NHgyX3QgcmVzdWx0
Ow0KICAgICsgIF9fYXNtX18gKCJzbWxhbCAlMC4yZCwlMi4ycywlMy5zWzBdIg0KICAgICsgICAg
ICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwg
InciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0
dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFsX25fdTE2ICh1aW50
MzJ4NF90IGEsIHVpbnQxNng0X3QgYiwgdWludDE2X3QgYykNCiAgICArew0KICAgICsgIHVpbnQz
Mng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1bWxhbCAlMC40cywlMi40aCwlMy5oWzBd
Ig0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIo
YSksICJ3IihiKSwgIngiKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7
DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFs
X25fdTMyICh1aW50NjR4Ml90IGEsIHVpbnQzMngyX3QgYiwgdWludDMyX3QgYykNCiAgICArew0K
ICAgICsgIHVpbnQ2NHgyX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1bWxhbCAlMC4yZCwl
Mi4ycywlMy5zWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAg
ICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBj
bG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdm1sYWxfczggKGludDE2eDhfdCBhLCBpbnQ4eDhfdCBiLCBpbnQ4eDhfdCBjKQ0KICAg
ICt7DQogICAgKyAgaW50MTZ4OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic21sYWwgJTAu
OGgsJTIuOGIsJTMuOGIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAg
ICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5v
IGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bWxhbF9zMTYgKGludDMyeDRfdCBhLCBpbnQxNng0X3QgYiwgaW50MTZ4NF90IGMp
DQogICAgK3sNCiAgICArICBpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzbWxh
bCAlMC40cywlMi40aCwlMy40aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAg
ICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDog
LyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZtbGFsX3MzMiAoaW50NjR4Ml90IGEsIGludDMyeDJfdCBiLCBpbnQzMngy
X3QgYykNCiAgICArew0KICAgICsgIGludDY0eDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAo
InNtbGFsICUwLjJkLCUyLjJzLCUzLjJzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQp
DQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAg
ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZtbGFsX3U4ICh1aW50MTZ4OF90IGEsIHVpbnQ4eDhfdCBiLCB1
aW50OHg4X3QgYykNCiAgICArew0KICAgICsgIHVpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9f
YXNtX18gKCJ1bWxhbCAlMC44aCwlMi44YiwlMy44YiINCiAgICArICAgICAgICAgICA6ICI9dyIo
cmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsg
ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxhbF91MTYgKHVpbnQzMng0X3QgYSwgdWludDE2
eDRfdCBiLCB1aW50MTZ4NF90IGMpDQogICAgK3sNCiAgICArICB1aW50MzJ4NF90IHJlc3VsdDsN
CiAgICArICBfX2FzbV9fICgidW1sYWwgJTAuNHMsJTIuNGgsJTMuNGgiDQogICAgKyAgICAgICAg
ICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIo
YykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4g
cmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYWxfdTMyICh1aW50NjR4Ml90
IGEsIHVpbnQzMngyX3QgYiwgdWludDMyeDJfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDY0eDJf
dCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVtbGFsICUwLjJkLCUyLjJzLCUzLjJzIg0KICAg
ICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3
IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAg
KyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxhcV9uX2Yz
MiAoZmxvYXQzMng0X3QgYSwgZmxvYXQzMng0X3QgYiwgZmxvYXQzMl90IGMpDQogICAgK3sNCiAg
ICArICBmbG9hdDMyeDRfdCByZXN1bHQ7DQogICAgKyAgZmxvYXQzMng0X3QgdDE7DQogICAgKyAg
X19hc21fXyAoImZtdWwgJTEuNHMsICUzLjRzLCAlNC5zWzBdOyBmYWRkICUwLjRzLCAlMC40cywg
JTEuNHMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCksICI9dyIodDEpDQogICAgKyAg
ICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBO
byBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdm1sYXFfbl9zMTYgKGludDE2eDhfdCBhLCBpbnQxNng4X3QgYiwgaW50MTZfdCBj
KQ0KICAgICt7DQogICAgKyAgaW50MTZ4OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgibWxh
ICUwLjhoLCUyLjhoLCUzLmhbMF0iDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAg
ICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAieCIoYykNCiAgICArICAgICAgICAgICA6
IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bWxhcV9uX3MzMiAoaW50MzJ4NF90IGEsIGludDMyeDRfdCBiLCBpbnQz
Ml90IGMpDQogICAgK3sNCiAgICArICBpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18g
KCJtbGEgJTAuNHMsJTIuNHMsJTMuc1swXSINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0
KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bWxhcV9uX3UxNiAodWludDE2eDhfdCBhLCB1aW50MTZ4OF90
IGIsIHVpbnQxNl90IGMpDQogICAgK3sNCiAgICArICB1aW50MTZ4OF90IHJlc3VsdDsNCiAgICAr
ICBfX2FzbV9fICgibWxhICUwLjhoLCUyLjhoLCUzLmhbMF0iDQogICAgKyAgICAgICAgICAgOiAi
PXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAieCIoYykNCiAg
ICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYXFfbl91MzIgKHVpbnQzMng0X3QgYSwg
dWludDMyeDRfdCBiLCB1aW50MzJfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDMyeDRfdCByZXN1
bHQ7DQogICAgKyAgX19hc21fXyAoIm1sYSAlMC40cywlMi40cywlMy5zWzBdIg0KICAgICsgICAg
ICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwg
InciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0
dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYXFfczggKGludDh4MTZf
dCBhLCBpbnQ4eDE2X3QgYiwgaW50OHgxNl90IGMpDQogICAgK3sNCiAgICArICBpbnQ4eDE2X3Qg
cmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJtbGEgJTAuMTZiLCAlMi4xNmIsICUzLjE2YiINCiAg
ICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAi
dyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAg
ICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFxX3MxNiAo
aW50MTZ4OF90IGEsIGludDE2eDhfdCBiLCBpbnQxNng4X3QgYykNCiAgICArew0KICAgICsgIGlu
dDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoIm1sYSAlMC44aCwgJTIuOGgsICUzLjho
Ig0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIo
YSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7
DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYXFf
czMyIChpbnQzMng0X3QgYSwgaW50MzJ4NF90IGIsIGludDMyeDRfdCBjKQ0KICAgICt7DQogICAg
KyAgaW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgibWxhICUwLjRzLCAlMi40cywg
JTMuNHMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6
ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJz
ICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1sYXFfdTggKHVpbnQ4eDE2X3QgYSwgdWludDh4MTZfdCBiLCB1aW50OHgxNl90IGMpDQogICAg
K3sNCiAgICArICB1aW50OHgxNl90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgibWxhICUwLjE2
YiwgJTIuMTZiLCAlMy4xNmIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICAr
ICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8q
IE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdm1sYXFfdTE2ICh1aW50MTZ4OF90IGEsIHVpbnQxNng4X3QgYiwgdWludDE2
eDhfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21f
XyAoIm1sYSAlMC44aCwgJTIuOGgsICUzLjhoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1
bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAg
ICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFxX3UzMiAodWludDMyeDRfdCBhLCB1aW50MzJ4NF90
IGIsIHVpbnQzMng0X3QgYykNCiAgICArew0KICAgICsgIHVpbnQzMng0X3QgcmVzdWx0Ow0KICAg
ICsgIF9fYXNtX18gKCJtbGEgJTAuNHMsICUyLjRzLCAlMy40cyINCiAgICArICAgICAgICAgICA6
ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0K
ICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1
bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs
b2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc19uX2YzMiAoZmxvYXQzMngyX3Qg
YSwgZmxvYXQzMngyX3QgYiwgZmxvYXQzMl90IGMpDQogICAgK3sNCiAgICArICBmbG9hdDMyeDJf
dCByZXN1bHQ7DQogICAgKyAgZmxvYXQzMngyX3QgdDE7DQogICAgKyAgX19hc21fXyAoImZtdWwg
JTEuMnMsICUzLjJzLCAlNC5zWzBdOyBmc3ViICUwLjJzLCAlMC4ycywgJTEuMnMiDQogICAgKyAg
ICAgICAgICAgOiAiPXciKHJlc3VsdCksICI9dyIodDEpDQogICAgKyAgICAgICAgICAgOiAiMCIo
YSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7
DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc19u
X3MxNiAoaW50MTZ4NF90IGEsIGludDE2eDRfdCBiLCBpbnQxNl90IGMpDQogICAgK3sNCiAgICAr
ICBpbnQxNng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJtbHMgJTAuNGgsICUyLjRoLCAl
My5oWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAg
OiAiMCIoYSksICJ3IihiKSwgIngiKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVy
cyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1sc19uX3MzMiAoaW50MzJ4Ml90IGEsIGludDMyeDJfdCBiLCBpbnQzMl90IGMpDQogICAgK3sN
CiAgICArICBpbnQzMngyX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJtbHMgJTAuMnMsICUy
LjJzLCAlMy5zWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAg
ICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBj
bG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZtbHNfbl91MTYgKHVpbnQxNng0X3QgYSwgdWludDE2eDRfdCBiLCB1aW50MTZfdCBj
KQ0KICAgICt7DQogICAgKyAgdWludDE2eDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoIm1s
cyAlMC40aCwgJTIuNGgsICUzLmhbMF0iDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkN
CiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAieCIoYykNCiAgICArICAgICAgICAg
ICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm1sc19uX3UzMiAodWludDMyeDJfdCBhLCB1aW50MzJ4Ml90IGIs
IHVpbnQzMl90IGMpDQogICAgK3sNCiAgICArICB1aW50MzJ4Ml90IHJlc3VsdDsNCiAgICArICBf
X2FzbV9fICgibWxzICUwLjJzLCAlMi4ycywgJTMuc1swXSINCiAgICArICAgICAgICAgICA6ICI9
dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAg
ICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc19zOCAoaW50OHg4X3QgYSwgaW50OHg4X3Qg
YiwgaW50OHg4X3QgYykNCiAgICArew0KICAgICsgIGludDh4OF90IHJlc3VsdDsNCiAgICArICBf
X2FzbV9fICgibWxzICUwLjhiLCUyLjhiLCUzLjhiIg0KICAgICsgICAgICAgICAgIDogIj13Iihy
ZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAg
ICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc19zMTYgKGludDE2eDRfdCBhLCBpbnQxNng0X3Qg
YiwgaW50MTZ4NF90IGMpDQogICAgK3sNCiAgICArICBpbnQxNng0X3QgcmVzdWx0Ow0KICAgICsg
IF9fYXNtX18gKCJtbHMgJTAuNGgsJTIuNGgsJTMuNGgiDQogICAgKyAgICAgICAgICAgOiAiPXci
KHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICAr
ICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzX3MzMiAoaW50MzJ4Ml90IGEsIGludDMyeDJf
dCBiLCBpbnQzMngyX3QgYykNCiAgICArew0KICAgICsgIGludDMyeDJfdCByZXN1bHQ7DQogICAg
KyAgX19hc21fXyAoIm1scyAlMC4ycywlMi4ycywlMy4ycyINCiAgICArICAgICAgICAgICA6ICI9
dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAg
ICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNfdTggKHVpbnQ4eDhfdCBhLCB1aW50OHg4
X3QgYiwgdWludDh4OF90IGMpDQogICAgK3sNCiAgICArICB1aW50OHg4X3QgcmVzdWx0Ow0KICAg
ICsgIF9fYXNtX18gKCJtbHMgJTAuOGIsJTIuOGIsJTMuOGIiDQogICAgKyAgICAgICAgICAgOiAi
PXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAg
ICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc191MTYgKHVpbnQxNng0X3QgYSwgdWlu
dDE2eDRfdCBiLCB1aW50MTZ4NF90IGMpDQogICAgK3sNCiAgICArICB1aW50MTZ4NF90IHJlc3Vs
dDsNCiAgICArICBfX2FzbV9fICgibWxzICUwLjRoLCUyLjRoLCUzLjRoIg0KICAgICsgICAgICAg
ICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInci
KGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJu
IHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNfdTMyICh1aW50MzJ4Ml90
IGEsIHVpbnQzMngyX3QgYiwgdWludDMyeDJfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDMyeDJf
dCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoIm1scyAlMC4ycywlMi4ycywlMy4ycyINCiAgICAr
ICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIo
YiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsg
IHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgKyNkZWZpbmUgdm1sc2xfaGlnaF9s
YW5lX3MxNihhLCBiLCBjLCBkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBp
bnQxNng0X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIGludDE2eDhfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4NF90IGFf
ID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICBpbnQzMng0X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzbWxzbDIgJTAuNHMs
ICUyLjhoLCAlMy5oWyU0XSIgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
ICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ4Iihj
XyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDog
LyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUg
dm1sc2xfaGlnaF9sYW5lX3MzMihhLCBiLCBjLCBkKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICBpbnQzMngyX3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDRfdCBiXyA9IChiKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
aW50NjR4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICBpbnQ2NHgyX3QgcmVzdWx0OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJz
bWxzbDIgJTAuMmQsICUyLjRzLCAlMy5zWyU0XSIgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3
IihiXyksICJ3IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQog
ICAgKyNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lX3UxNihhLCBiLCBjLCBkKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4NF90IGNfID0gKGMpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQxNng4X3Qg
Yl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgdWludDMyeDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IHJlc3VsdDsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IF9fYXNtX18gKCJ1bWxzbDIgJTAuNHMsICUyLjhoLCAlMy5oWyU0XSIgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6
ICIwIihhXyksICJ3IihiXyksICJ4IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
fSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lX3UzMihhLCBiLCBjLCBkKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4Ml90IGNfID0gKGMpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IHVpbnQzMng0X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgdWludDY0eDJfdCBhXyA9IChhKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50NjR4Ml90
IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIF9fYXNtX18gKCJ1bWxzbDIgJTAuMmQsICUyLjRzLCAlMy5zWyU0XSIgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3Vs
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ3IihjXyksICJpIihkKSAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lcV9zMTYo
YSwgYiwgYywgZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4
dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQxNng4X3Qg
Y18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIGludDE2eDhfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4NF90IGFfID0gKGEpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICBpbnQzMng0X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzbWxzbDIgJTAuNHMsICUyLjhoLCAl
My5oWyU0XSIgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ4IihjXyksICJpIihk
KSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xv
YmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sc2xfaGln
aF9sYW5lcV9zMzIoYSwgYiwgYywgZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICBpbnQzMng0X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDRfdCBiXyA9IChiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50NjR4Ml90
IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICBpbnQ2NHgyX3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzbWxzbDIgJTAu
MmQsICUyLjRzLCAlMy5zWyU0XSIgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ3
IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAg
IDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZp
bmUgdm1sc2xfaGlnaF9sYW5lcV91MTYoYSwgYiwgYywgZCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICB1aW50MTZ4OF90IGNfID0gKGMpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQxNng4X3QgYl8gPSAoYik7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgdWludDMyeDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IHJlc3VsdDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18g
KCJ1bWxzbDIgJTAuNHMsICUyLjhoLCAlMy5oWyU0XSIgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyks
ICJ3IihiXyksICJ4IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICAr
DQogICAgKyNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lcV91MzIoYSwgYiwgYywgZCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
KHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IGNfID0gKGMpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0
X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgdWludDY0eDJfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50NjR4Ml90IHJlc3VsdDsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgIF9fYXNtX18gKCJ1bWxzbDIgJTAuMmQsICUyLjRzLCAlMy5zWyU0XSIgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAg
ICA6ICIwIihhXyksICJ3IihiXyksICJ3IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgfSkNCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNsX2hpZ2hfbl9zMTYgKGludDMyeDRfdCBhLCBp
bnQxNng4X3QgYiwgaW50MTZfdCBjKQ0KICAgICt7DQogICAgKyAgaW50MzJ4NF90IHJlc3VsdDsN
CiAgICArICBfX2FzbV9fICgic21sc2wyICUwLjRzLCAlMi44aCwgJTMuaFswXSINCiAgICArICAg
ICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiks
ICJ4IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJl
dHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNsX2hpZ2hfbl9zMzIg
KGludDY0eDJfdCBhLCBpbnQzMng0X3QgYiwgaW50MzJfdCBjKQ0KICAgICt7DQogICAgKyAgaW50
NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic21sc2wyICUwLjJkLCAlMi40cywgJTMu
c1swXSINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDog
IjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg
Ki8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bWxzbF9oaWdoX25fdTE2ICh1aW50MzJ4NF90IGEsIHVpbnQxNng4X3QgYiwgdWludDE2X3QgYykN
CiAgICArew0KICAgICsgIHVpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1bWxz
bDIgJTAuNHMsICUyLjhoLCAlMy5oWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQp
DQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgIngiKGMpDQogICAgKyAgICAgICAg
ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZtbHNsX2hpZ2hfbl91MzIgKHVpbnQ2NHgyX3QgYSwgdWludDMy
eDRfdCBiLCB1aW50MzJfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDY0eDJfdCByZXN1bHQ7DQog
ICAgKyAgX19hc21fXyAoInVtbHNsMiAlMC4yZCwgJTIuNHMsICUzLnNbMF0iDQogICAgKyAgICAg
ICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAi
dyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1
cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzbF9oaWdoX3M4IChpbnQx
Nng4X3QgYSwgaW50OHgxNl90IGIsIGludDh4MTZfdCBjKQ0KICAgICt7DQogICAgKyAgaW50MTZ4
OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic21sc2wyICUwLjhoLCUyLjE2YiwlMy4xNmIi
DQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihh
KSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsN
CiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzbF9o
aWdoX3MxNiAoaW50MzJ4NF90IGEsIGludDE2eDhfdCBiLCBpbnQxNng4X3QgYykNCiAgICArew0K
ICAgICsgIGludDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNtbHNsMiAlMC40cywl
Mi44aCwlMy44aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAg
ICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xv
YmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZtbHNsX2hpZ2hfczMyIChpbnQ2NHgyX3QgYSwgaW50MzJ4NF90IGIsIGludDMyeDRfdCBj
KQ0KICAgICt7DQogICAgKyAgaW50NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic21s
c2wyICUwLjJkLCUyLjRzLCUzLjRzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQog
ICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAg
OiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZtbHNsX2hpZ2hfdTggKHVpbnQxNng4X3QgYSwgdWludDh4MTZfdCBi
LCB1aW50OHgxNl90IGMpDQogICAgK3sNCiAgICArICB1aW50MTZ4OF90IHJlc3VsdDsNCiAgICAr
ICBfX2FzbV9fICgidW1sc2wyICUwLjhoLCUyLjE2YiwlMy4xNmIiDQogICAgKyAgICAgICAgICAg
OiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykN
CiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVz
dWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc2xfaGlnaF91MTYgKHVpbnQzMng0
X3QgYSwgdWludDE2eDhfdCBiLCB1aW50MTZ4OF90IGMpDQogICAgK3sNCiAgICArICB1aW50MzJ4
NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidW1sc2wyICUwLjRzLCUyLjhoLCUzLjhoIg0K
ICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSks
ICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQog
ICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNsX2hp
Z2hfdTMyICh1aW50NjR4Ml90IGEsIHVpbnQzMng0X3QgYiwgdWludDMyeDRfdCBjKQ0KICAgICt7
DQogICAgKyAgdWludDY0eDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVtbHNsMiAlMC4y
ZCwlMi40cywlMy40cyINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAg
ICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8g
Y2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAg
KyNkZWZpbmUgdm1sc2xfbGFuZV9zMTYoYSwgYiwgYywgZCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgICBpbnQxNng0X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDE2eDRfdCBiXyA9
IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgICAgaW50MzJ4NF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMng0X3QgcmVzdWx0OyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9f
YXNtX18gKCJzbWxzbCAlMC40cywgJTIuNGgsICUzLmhbJTRdIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIw
IihhXyksICJ3IihiXyksICJ4IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkN
CiAgICArDQogICAgKyNkZWZpbmUgdm1sc2xfbGFuZV9zMzIoYSwgYiwgYywgZCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMngyX3QgY18gPSAoYyk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGlu
dDMyeDJfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgICAgaW50NjR4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQ2NHgyX3QgcmVz
dWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgIF9fYXNtX18gKCJzbWxzbCAlMC4yZCwgJTIuMnMsICUzLnNbJTRdIiAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAg
ICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ3IihjXyksICJpIihkKSAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sc2xfbGFuZV91MTYoYSwgYiwgYywg
ZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVu
c2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4NF90IGNf
ID0gKGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgIHVpbnQxNng0X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDMyeDRfdCBhXyA9IChhKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1
aW50MzJ4NF90IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJ1bWxzbCAlMC40cywgJTIuNGgsICUzLmhb
JTRdIiAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAi
PXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ4IihjXyksICJpIihkKSAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJl
cnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
cmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sc2xfbGFuZV91
MzIoYSwgYiwgYywgZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1
aW50MzJ4Ml90IGNfID0gKGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMngyX3QgYl8gPSAoYik7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDY0eDJfdCBh
XyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICB1aW50NjR4Ml90IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJ1bWxzbCAlMC4yZCwg
JTIuMnMsICUzLnNbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
ICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ3Iihj
XyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDog
LyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUg
dm1sc2xfbGFuZXFfczE2KGEsIGIsIGMsIGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICBpbnQxNng4X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDE2eDRfdCBiXyA9IChiKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
aW50MzJ4NF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMng0X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJz
bWxzbCAlMC40cywgJTIuNGgsICUzLmhbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3
IihiXyksICJ4IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQog
ICAgKyNkZWZpbmUgdm1sc2xfbGFuZXFfczMyKGEsIGIsIGMsIGQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMng0X3QgY18gPSAoYyk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDJfdCBi
XyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgaW50NjR4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQ2NHgyX3QgcmVzdWx0OyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IF9fYXNtX18gKCJzbWxzbCAlMC4yZCwgJTIuMnMsICUzLnNbJTRdIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6
ICIwIihhXyksICJ3IihiXyksICJ3IihjXyksICJpIihkKSAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
fSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sc2xfbGFuZXFfdTE2KGEsIGIsIGMsIGQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4OF90IGNfID0gKGMpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IHVpbnQxNng0X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgdWludDMyeDRfdCBhXyA9IChhKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90
IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIF9fYXNtX18gKCJ1bWxzbCAlMC40cywgJTIuNGgsICUzLmhbJTRdIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3Vs
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ4IihjXyksICJpIihkKSAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdm1sc2xfbGFuZXFfdTMyKGEsIGIs
IGMsIGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4
dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90
IGNfID0gKGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIHVpbnQzMngyX3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDY0eDJfdCBhXyA9IChhKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICB1aW50NjR4Ml90IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJ1bWxzbCAlMC4yZCwgJTIuMnMsICUz
LnNbJTRdIiAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJ3IihjXyksICJpIihk
KSAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xv
YmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNsX25fczE2
IChpbnQzMng0X3QgYSwgaW50MTZ4NF90IGIsIGludDE2X3QgYykNCiAgICArew0KICAgICsgIGlu
dDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNtbHNsICUwLjRzLCAlMi40aCwgJTMu
aFswXSINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDog
IjAiKGEpLCAidyIoYiksICJ4IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg
Ki8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
bHNsX25fczMyIChpbnQ2NHgyX3QgYSwgaW50MzJ4Ml90IGIsIGludDMyX3QgYykNCiAgICArew0K
ICAgICsgIGludDY0eDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNtbHNsICUwLjJkLCAl
Mi4ycywgJTMuc1swXSINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAg
ICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8g
Y2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bWxzbF9uX3UxNiAodWludDMyeDRfdCBhLCB1aW50MTZ4NF90IGIsIHVpbnQxNl90
IGMpDQogICAgK3sNCiAgICArICB1aW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgi
dW1sc2wgJTAuNHMsICUyLjRoLCAlMy5oWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1
bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgIngiKGMpDQogICAgKyAgICAg
ICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNsX25fdTMyICh1aW50NjR4Ml90IGEsIHVpbnQzMngy
X3QgYiwgdWludDMyX3QgYykNCiAgICArew0KICAgICsgIHVpbnQ2NHgyX3QgcmVzdWx0Ow0KICAg
ICsgIF9fYXNtX18gKCJ1bWxzbCAlMC4yZCwgJTIuMnMsICUzLnNbMF0iDQogICAgKyAgICAgICAg
ICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIo
YykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4g
cmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzbF9zOCAoaW50MTZ4OF90IGEs
IGludDh4OF90IGIsIGludDh4OF90IGMpDQogICAgK3sNCiAgICArICBpbnQxNng4X3QgcmVzdWx0
Ow0KICAgICsgIF9fYXNtX18gKCJzbWxzbCAlMC44aCwgJTIuOGIsICUzLjhiIg0KICAgICsgICAg
ICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwg
InciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0
dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc2xfczE2IChpbnQzMng0
X3QgYSwgaW50MTZ4NF90IGIsIGludDE2eDRfdCBjKQ0KICAgICt7DQogICAgKyAgaW50MzJ4NF90
IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic21sc2wgJTAuNHMsICUyLjRoLCAlMy40aCINCiAg
ICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAi
dyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAg
ICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNsX3MzMiAo
aW50NjR4Ml90IGEsIGludDMyeDJfdCBiLCBpbnQzMngyX3QgYykNCiAgICArew0KICAgICsgIGlu
dDY0eDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNtbHNsICUwLjJkLCAlMi4ycywgJTMu
MnMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIw
IihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICov
KTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1s
c2xfdTggKHVpbnQxNng4X3QgYSwgdWludDh4OF90IGIsIHVpbnQ4eDhfdCBjKQ0KICAgICt7DQog
ICAgKyAgdWludDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVtbHNsICUwLjhoLCAl
Mi44YiwgJTMuOGIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAg
ICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNs
b2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdm1sc2xfdTE2ICh1aW50MzJ4NF90IGEsIHVpbnQxNng0X3QgYiwgdWludDE2eDRfdCBj
KQ0KICAgICt7DQogICAgKyAgdWludDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVt
bHNsICUwLjRzLCAlMi40aCwgJTMuNGgiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkN
CiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAg
ICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm1sc2xfdTMyICh1aW50NjR4Ml90IGEsIHVpbnQzMngyX3QgYiwg
dWludDMyeDJfdCBjKQ0KICAgICt7DQogICAgKyAgdWludDY0eDJfdCByZXN1bHQ7DQogICAgKyAg
X19hc21fXyAoInVtbHNsICUwLjJkLCAlMi4ycywgJTMuMnMiDQogICAgKyAgICAgICAgICAgOiAi
PXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAg
ICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNxX25fZjMyIChmbG9hdDMyeDRfdCBh
LCBmbG9hdDMyeDRfdCBiLCBmbG9hdDMyX3QgYykNCiAgICArew0KICAgICsgIGZsb2F0MzJ4NF90
IHJlc3VsdDsNCiAgICArICBmbG9hdDMyeDRfdCB0MTsNCiAgICArICBfX2FzbV9fICgiZm11bCAl
MS40cywgJTMuNHMsICU0LnNbMF07IGZzdWIgJTAuNHMsICUwLjRzLCAlMS40cyINCiAgICArICAg
ICAgICAgICA6ICI9dyIocmVzdWx0KSwgIj13Iih0MSkNCiAgICArICAgICAgICAgICA6ICIwIihh
KSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsN
CiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzcV9u
X3MxNiAoaW50MTZ4OF90IGEsIGludDE2eDhfdCBiLCBpbnQxNl90IGMpDQogICAgK3sNCiAgICAr
ICBpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJtbHMgJTAuOGgsICUyLjhoLCAl
My5oWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAg
OiAiMCIoYSksICJ3IihiKSwgIngiKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVy
cyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1sc3Ffbl9zMzIgKGludDMyeDRfdCBhLCBpbnQzMng0X3QgYiwgaW50MzJfdCBjKQ0KICAgICt7
DQogICAgKyAgaW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgibWxzICUwLjRzLCAl
Mi40cywgJTMuc1swXSINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAg
ICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8g
Y2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bWxzcV9uX3UxNiAodWludDE2eDhfdCBhLCB1aW50MTZ4OF90IGIsIHVpbnQxNl90
IGMpDQogICAgK3sNCiAgICArICB1aW50MTZ4OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgi
bWxzICUwLjhoLCAlMi44aCwgJTMuaFswXSINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0
KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ4IihjKQ0KICAgICsgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bWxzcV9uX3UzMiAodWludDMyeDRfdCBhLCB1aW50MzJ4NF90
IGIsIHVpbnQzMl90IGMpDQogICAgK3sNCiAgICArICB1aW50MzJ4NF90IHJlc3VsdDsNCiAgICAr
ICBfX2FzbV9fICgibWxzICUwLjRzLCAlMi40cywgJTMuc1swXSINCiAgICArICAgICAgICAgICA6
ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYiksICJ3IihjKQ0K
ICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1
bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNxX3M4IChpbnQ4eDE2X3QgYSwgaW50
OHgxNl90IGIsIGludDh4MTZfdCBjKQ0KICAgICt7DQogICAgKyAgaW50OHgxNl90IHJlc3VsdDsN
CiAgICArICBfX2FzbV9fICgibWxzICUwLjE2YiwlMi4xNmIsJTMuMTZiIg0KICAgICsgICAgICAg
ICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwgInci
KGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJu
IHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc3FfczE2IChpbnQxNng4X3Qg
YSwgaW50MTZ4OF90IGIsIGludDE2eDhfdCBjKQ0KICAgICt7DQogICAgKyAgaW50MTZ4OF90IHJl
c3VsdDsNCiAgICArICBfX2FzbV9fICgibWxzICUwLjhoLCUyLjhoLCUzLjhoIg0KICAgICsgICAg
ICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKSwg
InciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0
dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc3FfczMyIChpbnQzMng0
X3QgYSwgaW50MzJ4NF90IGIsIGludDMyeDRfdCBjKQ0KICAgICt7DQogICAgKyAgaW50MzJ4NF90
IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgibWxzICUwLjRzLCUyLjRzLCUzLjRzIg0KICAgICsg
ICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3Iihi
KSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAg
cmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNxX3U4ICh1aW50
OHgxNl90IGEsIHVpbnQ4eDE2X3QgYiwgdWludDh4MTZfdCBjKQ0KICAgICt7DQogICAgKyAgdWlu
dDh4MTZfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoIm1scyAlMC4xNmIsJTIuMTZiLCUzLjE2
YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogIjAi
KGEpLCAidyIoYiksICJ3IihjKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8p
Ow0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxz
cV91MTYgKHVpbnQxNng4X3QgYSwgdWludDE2eDhfdCBiLCB1aW50MTZ4OF90IGMpDQogICAgK3sN
CiAgICArICB1aW50MTZ4OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgibWxzICUwLjhoLCUy
LjhoLCUzLjhoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAg
ICAgOiAiMCIoYSksICJ3IihiKSwgInciKGMpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9i
YmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZtbHNxX3UzMiAodWludDMyeDRfdCBhLCB1aW50MzJ4NF90IGIsIHVpbnQzMng0X3QgYykN
CiAgICArew0KICAgICsgIHVpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJtbHMg
JTAuNHMsJTIuNHMsJTMuNHMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICAr
ICAgICAgICAgICA6ICIwIihhKSwgInciKGIpLCAidyIoYykNCiAgICArICAgICAgICAgICA6IC8q
IE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bW92bF9oaWdoX3M4IChpbnQ4eDE2X3QgYSkNCiAgICArew0KICAgICsgIGlu
dDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNzaGxsMiAlMC44aCwlMS4xNmIsIzAi
DQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3Iihh
KQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiBy
ZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3ZsX2hpZ2hfczE2IChpbnQxNng4
X3QgYSkNCiAgICArew0KICAgICsgIGludDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAo
InNzaGxsMiAlMC40cywlMS44aCwjMCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0K
ICAgICsgICAgICAgICAgIDogInciKGEpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVy
cyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1vdmxfaGlnaF9zMzIgKGludDMyeDRfdCBhKQ0KICAgICt7DQogICAgKyAgaW50NjR4Ml90IHJl
c3VsdDsNCiAgICArICBfX2FzbV9fICgic3NobGwyICUwLjJkLCUxLjRzLCMwIg0KICAgICsgICAg
ICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICArICAg
ICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1vdmxfaGlnaF91OCAodWludDh4MTZfdCBhKQ0KICAg
ICt7DQogICAgKyAgdWludDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVzaGxsMiAl
MC44aCwlMS4xNmIsIzAiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAg
ICAgICAgICA6ICJ3IihhKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0K
ICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bW92bF9o
aWdoX3UxNiAodWludDE2eDhfdCBhKQ0KICAgICt7DQogICAgKyAgdWludDMyeDRfdCByZXN1bHQ7
DQogICAgKyAgX19hc21fXyAoInVzaGxsMiAlMC40cywlMS44aCwjMCINCiAgICArICAgICAgICAg
ICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpDQogICAgKyAgICAgICAg
ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Ztb3ZsX2hpZ2hfdTMyICh1aW50MzJ4NF90IGEpDQogICAgK3sN
CiAgICArICB1aW50NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidXNobGwyICUwLjJk
LCUxLjRzLCMwIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAg
ICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICAr
ICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bW92bF9zOCAoaW50
OHg4X3QgYSkNCiAgICArew0KICAgICsgIGludDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21f
XyAoInNzaGxsICUwLjhoLCUxLjhiLCMwIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQp
DQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2Ji
ZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2bW92bF9zMTYgKGludDE2eDRfdCBhKQ0KICAgICt7DQogICAgKyAgaW50MzJ4NF90IHJlc3Vs
dDsNCiAgICArICBfX2FzbV9fICgic3NobGwgJTAuNHMsJTEuNGgsIzAiDQogICAgKyAgICAgICAg
ICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKQ0KICAgICsgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Ztb3ZsX3MzMiAoaW50MzJ4Ml90IGEpDQogICAgK3sNCiAgICAr
ICBpbnQ2NHgyX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzc2hsbCAlMC4yZCwlMS4ycywj
MCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInci
KGEpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJu
IHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3ZsX3U4ICh1aW50OHg4X3Qg
YSkNCiAgICArew0KICAgICsgIHVpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1
c2hsbCAlMC44aCwlMS44YiwjMCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAg
ICsgICAgICAgICAgIDogInciKGEpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAq
Lyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
b3ZsX3UxNiAodWludDE2eDRfdCBhKQ0KICAgICt7DQogICAgKyAgdWludDMyeDRfdCByZXN1bHQ7
DQogICAgKyAgX19hc21fXyAoInVzaGxsICUwLjRzLCUxLjRoLCMwIg0KICAgICsgICAgICAgICAg
IDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAg
ICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm1vdmxfdTMyICh1aW50MzJ4Ml90IGEpDQogICAgK3sNCiAgICAr
ICB1aW50NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidXNobGwgJTAuMmQsJTEuMnMs
IzAiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3
IihhKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVy
biByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3ZuX2hpZ2hfczE2IChpbnQ4
eDhfdCBhLCBpbnQxNng4X3QgYikNCiAgICArew0KICAgICsgIGludDh4MTZfdCByZXN1bHQgPSB2
Y29tYmluZV9zOCAoYSwgdmNyZWF0ZV9zOCAoX19BQVJDSDY0X1VJTlQ2NF9DICgweDApKSk7DQog
ICAgKyAgX19hc21fXyAoInh0bjIgJTAuMTZiLCUxLjhoIg0KICAgICsgICAgICAgICAgIDogIit3
IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYikNCiAgICArICAgICAgICAgICA6IC8q
IE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bW92bl9oaWdoX3MzMiAoaW50MTZ4NF90IGEsIGludDMyeDRfdCBiKQ0KICAg
ICt7DQogICAgKyAgaW50MTZ4OF90IHJlc3VsdCA9IHZjb21iaW5lX3MxNiAoYSwgdmNyZWF0ZV9z
MTYgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOw0KICAgICsgIF9fYXNtX18gKCJ4dG4yICUw
LjhoLCUxLjRzIg0KICAgICsgICAgICAgICAgIDogIit3IihyZXN1bHQpDQogICAgKyAgICAgICAg
ICAgOiAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICAr
ICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bW92bl9oaWdoX3M2
NCAoaW50MzJ4Ml90IGEsIGludDY0eDJfdCBiKQ0KICAgICt7DQogICAgKyAgaW50MzJ4NF90IHJl
c3VsdCA9IHZjb21iaW5lX3MzMiAoYSwgdmNyZWF0ZV9zMzIgKF9fQUFSQ0g2NF9VSU5UNjRfQyAo
MHgwKSkpOw0KICAgICsgIF9fYXNtX18gKCJ4dG4yICUwLjRzLCUxLjJkIg0KICAgICsgICAgICAg
ICAgIDogIit3IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYikNCiAgICArICAgICAg
ICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm1vdm5faGlnaF91MTYgKHVpbnQ4eDhfdCBhLCB1aW50MTZ4
OF90IGIpDQogICAgK3sNCiAgICArICB1aW50OHgxNl90IHJlc3VsdCA9IHZjb21iaW5lX3U4IChh
LCB2Y3JlYXRlX3U4IChfX0FBUkNINjRfVUlOVDY0X0MgKDB4MCkpKTsNCiAgICArICBfX2FzbV9f
ICgieHRuMiAlMC4xNmIsJTEuOGgiDQogICAgKyAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkNCiAg
ICArICAgICAgICAgICA6ICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg
Ki8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bW92bl9oaWdoX3UzMiAodWludDE2eDRfdCBhLCB1aW50MzJ4NF90IGIpDQogICAgK3sNCiAgICAr
ICB1aW50MTZ4OF90IHJlc3VsdCA9IHZjb21iaW5lX3UxNiAoYSwgdmNyZWF0ZV91MTYgKF9fQUFS
Q0g2NF9VSU5UNjRfQyAoMHgwKSkpOw0KICAgICsgIF9fYXNtX18gKCJ4dG4yICUwLjhoLCUxLjRz
Ig0KICAgICsgICAgICAgICAgIDogIit3IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIo
YikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4g
cmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1vdm5faGlnaF91NjQgKHVpbnQz
MngyX3QgYSwgdWludDY0eDJfdCBiKQ0KICAgICt7DQogICAgKyAgdWludDMyeDRfdCByZXN1bHQg
PSB2Y29tYmluZV91MzIgKGEsIHZjcmVhdGVfdTMyIChfX0FBUkNINjRfVUlOVDY0X0MgKDB4MCkp
KTsNCiAgICArICBfX2FzbV9fICgieHRuMiAlMC40cywlMS4yZCINCiAgICArICAgICAgICAgICA6
ICIrdyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGIpDQogICAgKyAgICAgICAgICAg
OiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bW92bl9zMTYgKGludDE2eDhfdCBhKQ0KICAgICt7DQogICAgKyAgaW50
OHg4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ4dG4gJTAuOGIsJTEuOGgiDQogICAgKyAg
ICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKQ0KICAgICsg
ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3ZuX3MzMiAoaW50MzJ4NF90IGEpDQogICAgK3sN
CiAgICArICBpbnQxNng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ4dG4gJTAuNGgsJTEu
NHMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3
IihhKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVy
biByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3ZuX3M2NCAoaW50NjR4Ml90
IGEpDQogICAgK3sNCiAgICArICBpbnQzMngyX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ4
dG4gJTAuMnMsJTEuMmQiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAg
ICAgICAgICA6ICJ3IihhKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0K
ICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3ZuX3Ux
NiAodWludDE2eDhfdCBhKQ0KICAgICt7DQogICAgKyAgdWludDh4OF90IHJlc3VsdDsNCiAgICAr
ICBfX2FzbV9fICgieHRuICUwLjhiLCUxLjhoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1
bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNs
b2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdm1vdm5fdTMyICh1aW50MzJ4NF90IGEpDQogICAgK3sNCiAgICArICB1aW50MTZ4NF90
IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgieHRuICUwLjRoLCUxLjRzIg0KICAgICsgICAgICAg
ICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICArICAgICAg
ICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm1vdm5fdTY0ICh1aW50NjR4Ml90IGEpDQogICAgK3sNCiAg
ICArICB1aW50MzJ4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgieHRuICUwLjJzLCUxLjJk
Ig0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIo
YSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4g
cmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICsjZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZV9zMTYo
YSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19l
eHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MTZ4NF90
IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICBpbnQxNng4X3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDRfdCByZXN1bHQ7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgX19hc21fXyAoInNtdWxsMiAlMC40cywgJTEuOGgsICUyLmhbJTNdIiAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAg
IDogInciKGFfKSwgIngiKGJfKSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVfczMyKGEsIGIsIGMpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDJfdCBiXyA9IChiKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgaW50MzJ4NF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQ2NHgyX3QgcmVzdWx0OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18g
KCJzbXVsbDIgJTAuMmQsICUxLjRzLCAlMi5zWyUzXSIgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihhXyks
ICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICAr
DQogICAgKyNkZWZpbmUgdm11bGxfaGlnaF9sYW5lX3UxNihhLCBiLCBjKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
KHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4NF90IGJfID0gKGIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQxNng4
X3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgdWludDMyeDRfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBfX2FzbV9fICgidW11bGwyICUw
LjRzLCAlMS44aCwgJTIuaFslM10iICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgICAgICAgICAgIDogIj13IihyZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAidyIoYV8pLCAieCIoYl8pLCAi
aSIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAg
ICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVm
aW5lIHZtdWxsX2hpZ2hfbGFuZV91MzIoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgdWludDMyeDJfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IGFfID0gKGEp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgIHVpbnQ2NHgyX3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInVtdWxsMiAlMC4yZCwgJTEuNHMs
ICUyLnNbJTNdIiAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAg
ICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGFfKSwgInciKGJfKSwgImkiKGMpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBj
bG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2bXVsbF9o
aWdoX2xhbmVxX3MxNihhLCBiLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgIGludDE2eDhfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MTZ4OF90IGFfID0gKGEpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMng0
X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzbXVsbDIgJTAuNHMsICUxLjhoLCAlMi5oWyUzXSIg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJl
c3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICAgICAgICAgICA6ICJ3IihhXyksICJ4IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8p
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdm11bGxfaGlnaF9sYW5lcV9z
MzIoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBf
X2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMng0
X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgIGludDMyeDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50NjR4Ml90IHJlc3VsdDsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICBfX2FzbV9fICgic211bGwyICUwLjJkLCAlMS40cywgJTIuc1slM10iICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIj13IihyZXN1bHQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAg
ICAgOiAidyIoYV8pLCAidyIoYl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZXFfdTE2KGEsIGIsIGMp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25f
XyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDE2eDhfdCBiXyA9IChi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICB1aW50MTZ4OF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0X3QgcmVzdWx0OyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21f
XyAoInVtdWxsMiAlMC40cywgJTEuOGgsICUyLmhbJTNdIiAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGFf
KSwgIngiKGJfKSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAg
ICsNCiAgICArI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVxX3UzMihhLCBiLCBjKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0X3QgYl8gPSAoYik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDMy
eDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICB1aW50NjR4Ml90IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJ1bXVsbDIg
JTAuMmQsICUxLjRzLCAlMi5zWyUzXSIgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihhXyksICJ3IihiXyks
ICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZtdWxsX2hpZ2hfbl9zMTYgKGludDE2eDhfdCBhLCBpbnQxNl90IGIpDQogICAgK3sNCiAg
ICArICBpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzbXVsbDIgJTAuNHMsJTEu
OGgsJTIuaFswXSINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAg
ICAgIDogInciKGEpLCAieCIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICov
KTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVs
bF9oaWdoX25fczMyIChpbnQzMng0X3QgYSwgaW50MzJfdCBiKQ0KICAgICt7DQogICAgKyAgaW50
NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic211bGwyICUwLjJkLCUxLjRzLCUyLnNb
MF0iDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3
IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAg
KyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxsX2hpZ2hf
bl91MTYgKHVpbnQxNng4X3QgYSwgdWludDE2X3QgYikNCiAgICArew0KICAgICsgIHVpbnQzMng0
X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1bXVsbDIgJTAuNHMsJTEuOGgsJTIuaFswXSIN
CiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEp
LCAieCIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICBy
ZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bGxfaGlnaF9uX3Uz
MiAodWludDMyeDRfdCBhLCB1aW50MzJfdCBiKQ0KICAgICt7DQogICAgKyAgdWludDY0eDJfdCBy
ZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVtdWxsMiAlMC4yZCwlMS40cywlMi5zWzBdIg0KICAg
ICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3
IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVy
biByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHBvbHkxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsbF9oaWdoX3A4IChwb2x5
OHgxNl90IGEsIHBvbHk4eDE2X3QgYikNCiAgICArew0KICAgICsgIHBvbHkxNng4X3QgcmVzdWx0
Ow0KICAgICsgIF9fYXNtX18gKCJwbXVsbDIgJTAuOGgsJTEuMTZiLCUyLjE2YiINCiAgICArICAg
ICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikN
CiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVz
dWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsbF9oaWdoX3M4IChpbnQ4eDE2X3Qg
YSwgaW50OHgxNl90IGIpDQogICAgK3sNCiAgICArICBpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsg
IF9fYXNtX18gKCJzbXVsbDIgJTAuOGgsJTEuMTZiLCUyLjE2YiINCiAgICArICAgICAgICAgICA6
ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAg
ICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsbF9oaWdoX3MxNiAoaW50MTZ4OF90IGEsIGludDE2
eDhfdCBiKQ0KICAgICt7DQogICAgKyAgaW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9f
ICgic211bGwyICUwLjRzLCUxLjhoLCUyLjhoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1
bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDog
LyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZtdWxsX2hpZ2hfczMyIChpbnQzMng0X3QgYSwgaW50MzJ4NF90IGIpDQog
ICAgK3sNCiAgICArICBpbnQ2NHgyX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzbXVsbDIg
JTAuMmQsJTEuNHMsJTIuNHMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICAr
ICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9i
YmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZtdWxsX2hpZ2hfdTggKHVpbnQ4eDE2X3QgYSwgdWludDh4MTZfdCBiKQ0KICAgICt7DQog
ICAgKyAgdWludDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVtdWxsMiAlMC44aCwl
MS4xNmIsJTIuMTZiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAg
ICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg
Ki8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bXVsbF9oaWdoX3UxNiAodWludDE2eDhfdCBhLCB1aW50MTZ4OF90IGIpDQogICAgK3sNCiAgICAr
ICB1aW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidW11bGwyICUwLjRzLCUxLjho
LCUyLjhoIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAg
OiAidyIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0K
ICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsbF9o
aWdoX3UzMiAodWludDMyeDRfdCBhLCB1aW50MzJ4NF90IGIpDQogICAgK3sNCiAgICArICB1aW50
NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidW11bGwyICUwLjJkLCUxLjRzLCUyLjRz
Ig0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIo
YSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsg
IHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgKyNkZWZpbmUgdm11bGxfbGFuZV9z
MTYoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBp
bnQxNng0X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIGludDE2eDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4NF90IHJl
c3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICBfX2FzbV9fICgic211bGwgJTAuNHMsJTEuNGgsJTIuaFslM10iICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIj13IihyZXN1bHQp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
ICAgICAgICAgOiAidyIoYV8pLCAieCIoYl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZtdWxsX2xhbmVfczMyKGEsIGIsIGMp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRl
bnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4Ml90IGJf
ID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICBpbnQzMngyX3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDY0eDJfdCByZXN1bHQ7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
X19hc21fXyAoInNtdWxsICUwLjJkLCUxLjJzLCUyLnNbJTNdIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDog
InciKGFfKSwgInciKGJfKSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9
KQ0KICAgICsNCiAgICArI2RlZmluZSB2bXVsbF9sYW5lX3UxNihhLCBiLCBjKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQxNng0X3QgYl8gPSAoYik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
dWludDE2eDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IHJlc3VsdDsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJ1
bXVsbCAlMC40cywlMS40aCwlMi5oWyUzXSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihhXyksICJ4
IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQog
ICAgKyNkZWZpbmUgdm11bGxfbGFuZV91MzIoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4Ml90IGJfID0gKGIpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMngyX3Qg
YV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgdWludDY0eDJfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBfX2FzbV9fICgidW11bGwgJTAuMmQs
ICUxLjJzLCAlMi5zWyUzXSIgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
ICAgICAgICAgIDogIj13IihyZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAidyIoYV8pLCAidyIoYl8pLCAiaSIo
YykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6
IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5l
IHZtdWxsX2xhbmVxX3MxNihhLCBiLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgaW50MTZ4OF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQxNng0X3QgYV8gPSAoYSk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IGludDMyeDRfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNtdWxsICUwLjRzLCAlMS40aCwgJTIu
aFslM10iICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6
ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgICAgICAgICAgIDogInciKGFfKSwgIngiKGJfKSwgImkiKGMpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9i
YmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2bXVsbF9sYW5l
cV9zMzIoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IGludDMyeDRfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQ2NHgyX3Qg
cmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIF9fYXNtX18gKCJzbXVsbCAlMC4yZCwgJTEuMnMsICUyLnNbJTNdIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3Vs
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICAgICAgICAgICA6ICJ3IihhXyksICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdm11bGxfbGFuZXFfdTE2KGEsIGIs
IGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4
dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4OF90
IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIHVpbnQxNng0X3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDMyeDRfdCByZXN1bHQ7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICBfX2FzbV9fICgidW11bGwgJTAuNHMsICUxLjRoLCAlMi5oWyUzXSIgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIj13IihyZXN1bHQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAidyIoYV8pLCAieCIoYl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
IH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZtdWxsX2xhbmVxX3UzMihhLCBiLCBjKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDMyeDRfdCBiXyA9IChiKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICB1aW50MzJ4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQ2NHgyX3QgcmVzdWx0OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAo
InVtdWxsICUwLjJkLCAlMS4ycywgJTIuc1slM10iICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGFfKSwg
InciKGJfKSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdm11bGxfbl9zMTYgKGludDE2eDRfdCBhLCBpbnQxNl90IGIpDQogICAgK3sN
CiAgICArICBpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzbXVsbCAlMC40cywl
MS40aCwlMi5oWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAg
ICAgICAgOiAidyIoYSksICJ4IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg
Ki8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
dWxsX25fczMyIChpbnQzMngyX3QgYSwgaW50MzJfdCBiKQ0KICAgICt7DQogICAgKyAgaW50NjR4
Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic211bGwgJTAuMmQsJTEuMnMsJTIuc1swXSIN
CiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEp
LCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICBy
ZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bGxfbl91MTYgKHVp
bnQxNng0X3QgYSwgdWludDE2X3QgYikNCiAgICArew0KICAgICsgIHVpbnQzMng0X3QgcmVzdWx0
Ow0KICAgICsgIF9fYXNtX18gKCJ1bXVsbCAlMC40cywlMS40aCwlMi5oWzBdIg0KICAgICsgICAg
ICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ4IihiKQ0K
ICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1
bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsbF9uX3UzMiAodWludDMyeDJfdCBh
LCB1aW50MzJfdCBiKQ0KICAgICt7DQogICAgKyAgdWludDY0eDJfdCByZXN1bHQ7DQogICAgKyAg
X19hc21fXyAoInVtdWxsICUwLjJkLCUxLjJzLCUyLnNbMF0iDQogICAgKyAgICAgICAgICAgOiAi
PXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAg
ICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxsX3A4IChwb2x5OHg4X3QgYSwgcG9seTh4OF90IGIp
DQogICAgK3sNCiAgICArICBwb2x5MTZ4OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgicG11
bGwgJTAuOGgsICUxLjhiLCAlMi44YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0K
ICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5v
IGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bXVsbF9zOCAoaW50OHg4X3QgYSwgaW50OHg4X3QgYikNCiAgICArew0KICAgICsg
IGludDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNtdWxsICUwLjhoLCAlMS44Yiwg
JTIuOGIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6
ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQog
ICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bGxfczE2
IChpbnQxNng0X3QgYSwgaW50MTZ4NF90IGIpDQogICAgK3sNCiAgICArICBpbnQzMng0X3QgcmVz
dWx0Ow0KICAgICsgIF9fYXNtX18gKCJzbXVsbCAlMC40cywgJTEuNGgsICUyLjRoIg0KICAgICsg
ICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3Iihi
KQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiBy
ZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxsX3MzMiAoaW50MzJ4Ml90IGEs
IGludDMyeDJfdCBiKQ0KICAgICt7DQogICAgKyAgaW50NjR4Ml90IHJlc3VsdDsNCiAgICArICBf
X2FzbV9fICgic211bGwgJTAuMmQsICUxLjJzLCAlMi4ycyINCiAgICArICAgICAgICAgICA6ICI9
dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAg
ICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bGxfdTggKHVpbnQ4eDhfdCBhLCB1aW50OHg4X3QgYikN
CiAgICArew0KICAgICsgIHVpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1bXVs
bCAlMC44aCwgJTEuOGIsICUyLjhiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQog
ICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8g
Y2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bXVsbF91MTYgKHVpbnQxNng0X3QgYSwgdWludDE2eDRfdCBiKQ0KICAgICt7DQog
ICAgKyAgdWludDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVtdWxsICUwLjRzLCAl
MS40aCwgJTIuNGgiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAg
ICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAq
Lyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
dWxsX3UzMiAodWludDMyeDJfdCBhLCB1aW50MzJ4Ml90IGIpDQogICAgK3sNCiAgICArICB1aW50
NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidW11bGwgJTAuMmQsICUxLjJzLCAlMi4y
cyINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInci
KGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICAr
ICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cGFkYWxfczggKGlu
dDE2eDRfdCBhLCBpbnQ4eDhfdCBiKQ0KICAgICt7DQogICAgKyAgaW50MTZ4NF90IHJlc3VsdDsN
CiAgICArICBfX2FzbV9fICgic2FkYWxwICUwLjRoLCUyLjhiIg0KICAgICsgICAgICAgICAgIDog
Ij13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKQ0KICAgICsgICAg
ICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRhbF9zMTYgKGludDMyeDJfdCBhLCBpbnQxNng0X3Qg
YikNCiAgICArew0KICAgICsgIGludDMyeDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNh
ZGFscCAlMC4ycywlMi40aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsg
ICAgICAgICAgIDogIjAiKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2Ji
ZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cGFkYWxfczMyIChpbnQ2NHgxX3QgYSwgaW50MzJ4Ml90IGIpDQogICAgK3sNCiAgICArICBp
bnQ2NHgxX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWRhbHAgJTAuMWQsJTIuMnMiDQog
ICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwg
InciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0
dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRhbF91OCAodWludDE2
eDRfdCBhLCB1aW50OHg4X3QgYikNCiAgICArew0KICAgICsgIHVpbnQxNng0X3QgcmVzdWx0Ow0K
ICAgICsgIF9fYXNtX18gKCJ1YWRhbHAgJTAuNGgsJTIuOGIiDQogICAgKyAgICAgICAgICAgOiAi
PXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpDQogICAgKyAgICAg
ICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRhbF91MTYgKHVpbnQzMngyX3QgYSwgdWludDE2eDRf
dCBiKQ0KICAgICt7DQogICAgKyAgdWludDMyeDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAo
InVhZGFscCAlMC4ycywlMi40aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAg
ICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNs
b2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnBhZGFsX3UzMiAodWludDY0eDFfdCBhLCB1aW50MzJ4Ml90IGIpDQogICAgK3sNCiAg
ICArICB1aW50NjR4MV90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidWFkYWxwICUwLjFkLCUy
LjJzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAi
MCIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAg
ICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRhbHFfczgg
KGludDE2eDhfdCBhLCBpbnQ4eDE2X3QgYikNCiAgICArew0KICAgICsgIGludDE2eDhfdCByZXN1
bHQ7DQogICAgKyAgX19hc21fXyAoInNhZGFscCAlMC44aCwlMi4xNmIiDQogICAgKyAgICAgICAg
ICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICIwIihhKSwgInciKGIpDQogICAg
KyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBhZGFscV9zMTYgKGludDMyeDRfdCBhLCBpbnQx
Nng4X3QgYikNCiAgICArew0KICAgICsgIGludDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21f
XyAoInNhZGFscCAlMC40cywlMi44aCINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0K
ICAgICsgICAgICAgICAgIDogIjAiKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5v
IGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cGFkYWxxX3MzMiAoaW50NjR4Ml90IGEsIGludDMyeDRfdCBiKQ0KICAgICt7DQog
ICAgKyAgaW50NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic2FkYWxwICUwLjJkLCUy
LjRzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAi
MCIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAg
ICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cGFkYWxxX3U4
ICh1aW50MTZ4OF90IGEsIHVpbnQ4eDE2X3QgYikNCiAgICArew0KICAgICsgIHVpbnQxNng4X3Qg
cmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1YWRhbHAgJTAuOGgsJTIuMTZiIg0KICAgICsgICAg
ICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKQ0K
ICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1
bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cGFkYWxxX3UxNiAodWludDMyeDRfdCBh
LCB1aW50MTZ4OF90IGIpDQogICAgK3sNCiAgICArICB1aW50MzJ4NF90IHJlc3VsdDsNCiAgICAr
ICBfX2FzbV9fICgidWFkYWxwICUwLjRzLCUyLjhoIg0KICAgICsgICAgICAgICAgIDogIj13Iihy
ZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAiMCIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAg
IDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cGFkYWxxX3UzMiAodWludDY0eDJfdCBhLCB1aW50MzJ4NF90IGIp
DQogICAgK3sNCiAgICArICB1aW50NjR4Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidWFk
YWxwICUwLjJkLCUyLjRzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAg
ICAgICAgICAgOiAiMCIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJl
cnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZwYWRkbF9zOCAoaW50OHg4X3QgYSkNCiAgICArew0KICAgICsgIGludDE2eDRfdCByZXN1bHQ7
DQogICAgKyAgX19hc21fXyAoInNhZGRscCAlMC40aCwlMS44YiINCiAgICArICAgICAgICAgICA6
ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpDQogICAgKyAgICAgICAgICAg
OiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnBhZGRsX3MxNiAoaW50MTZ4NF90IGEpDQogICAgK3sNCiAgICArICBp
bnQzMngyX3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWRkbHAgJTAuMnMsJTEuNGgiDQog
ICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKQ0K
ICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1
bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkbF9zMzIgKGludDMyeDJfdCBhKQ0K
ICAgICt7DQogICAgKyAgaW50NjR4MV90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic2FkZGxw
ICUwLjFkLCUxLjJzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAg
ICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAg
ICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBhZGRsX3U4
ICh1aW50OHg4X3QgYSkNCiAgICArew0KICAgICsgIHVpbnQxNng0X3QgcmVzdWx0Ow0KICAgICsg
IF9fYXNtX18gKCJ1YWRkbHAgJTAuNGgsJTEuOGIiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJl
c3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKQ0KICAgICsgICAgICAgICAgIDogLyogTm8g
Y2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cGFkZGxfdTE2ICh1aW50MTZ4NF90IGEpDQogICAgK3sNCiAgICArICB1aW50MzJ4
Ml90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidWFkZGxwICUwLjJzLCUxLjRoIg0KICAgICsg
ICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICAr
ICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4
MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBhZGRsX3UzMiAodWludDMyeDJfdCBhKQ0KICAg
ICt7DQogICAgKyAgdWludDY0eDFfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVhZGRscCAl
MC4xZCwlMS4ycyINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAg
ICAgIDogInciKGEpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAg
KyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBhZGRscV9zOCAo
aW50OHgxNl90IGEpDQogICAgK3sNCiAgICArICBpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9f
YXNtX18gKCJzYWRkbHAgJTAuOGgsJTEuMTZiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1
bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNs
b2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cGFkZGxxX3MxNiAoaW50MTZ4OF90IGEpDQogICAgK3sNCiAgICArICBpbnQzMng0X3Qg
cmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzYWRkbHAgJTAuNHMsJTEuOGgiDQogICAgKyAgICAg
ICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKQ0KICAgICsgICAg
ICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkbHFfczMyIChpbnQzMng0X3QgYSkNCiAgICArew0K
ICAgICsgIGludDY0eDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNhZGRscCAlMC4yZCwl
MS40cyINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDog
InciKGEpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0
dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkbHFfdTggKHVpbnQ4
eDE2X3QgYSkNCiAgICArew0KICAgICsgIHVpbnQxNng4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNt
X18gKCJ1YWRkbHAgJTAuOGgsJTEuMTZiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQp
DQogICAgKyAgICAgICAgICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2Ji
ZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnBhZGRscV91MTYgKHVpbnQxNng4X3QgYSkNCiAgICArew0KICAgICsgIHVpbnQzMng0X3Qg
cmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1YWRkbHAgJTAuNHMsJTEuOGgiDQogICAgKyAgICAg
ICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKQ0KICAgICsgICAg
ICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cGFkZGxxX3UzMiAodWludDMyeDRfdCBhKQ0KICAgICt7
DQogICAgKyAgdWludDY0eDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVhZGRscCAlMC4y
ZCwlMS40cyINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAg
IDogInciKGEpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAg
cmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBhZGRxX3M4IChpbnQ4
eDE2X3QgYSwgaW50OHgxNl90IGIpDQogICAgK3sNCiAgICArICBpbnQ4eDE2X3QgcmVzdWx0Ow0K
ICAgICsgIF9fYXNtX18gKCJhZGRwICUwLjE2YiwlMS4xNmIsJTIuMTZiIg0KICAgICsgICAgICAg
ICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAg
ICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkcV9zMTYgKGludDE2eDhfdCBhLCBpbnQx
Nng4X3QgYikNCiAgICArew0KICAgICsgIGludDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19hc21f
XyAoImFkZHAgJTAuOGgsJTEuOGgsJTIuOGgiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3Vs
dCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAv
KiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnBhZGRxX3MzMiAoaW50MzJ4NF90IGEsIGludDMyeDRfdCBiKQ0KICAgICt7
DQogICAgKyAgaW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgiYWRkcCAlMC40cywl
MS40cywlMi40cyINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAg
ICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICov
KTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cGFk
ZHFfczY0IChpbnQ2NHgyX3QgYSwgaW50NjR4Ml90IGIpDQogICAgK3sNCiAgICArICBpbnQ2NHgy
X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJhZGRwICUwLjJkLCUxLjJkLCUyLjJkIg0KICAg
ICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3
IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVy
biByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cGFkZHFfdTggKHVpbnQ4eDE2
X3QgYSwgdWludDh4MTZfdCBiKQ0KICAgICt7DQogICAgKyAgdWludDh4MTZfdCByZXN1bHQ7DQog
ICAgKyAgX19hc21fXyAoImFkZHAgJTAuMTZiLCUxLjE2YiwlMi4xNmIiDQogICAgKyAgICAgICAg
ICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAg
KyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkcV91MTYgKHVpbnQxNng4X3QgYSwgdWlu
dDE2eDhfdCBiKQ0KICAgICt7DQogICAgKyAgdWludDE2eDhfdCByZXN1bHQ7DQogICAgKyAgX19h
c21fXyAoImFkZHAgJTAuOGgsJTEuOGgsJTIuOGgiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJl
c3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAg
OiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZwYWRkcV91MzIgKHVpbnQzMng0X3QgYSwgdWludDMyeDRfdCBiKQ0K
ICAgICt7DQogICAgKyAgdWludDMyeDRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoImFkZHAg
JTAuNHMsJTEuNHMsJTIuNHMiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICAr
ICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9i
YmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZwYWRkcV91NjQgKHVpbnQ2NHgyX3QgYSwgdWludDY0eDJfdCBiKQ0KICAgICt7DQogICAg
KyAgdWludDY0eDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoImFkZHAgJTAuMmQsJTEuMmQs
JTIuMmQiDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6
ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQog
ICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbXVsaF9u
X3MxNiAoaW50MTZ4NF90IGEsIGludDE2X3QgYikNCiAgICArew0KICAgICsgIGludDE2eDRfdCBy
ZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNxZG11bGggJTAuNGgsJTEuNGgsJTIuaFswXSINCiAg
ICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAi
eCIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1
cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtdWxoX25fczMyIChpbnQz
MngyX3QgYSwgaW50MzJfdCBiKQ0KICAgICt7DQogICAgKyAgaW50MzJ4Ml90IHJlc3VsdDsNCiAg
ICArICBfX2FzbV9fICgic3FkbXVsaCAlMC4ycywlMS4ycywlMi5zWzBdIg0KICAgICsgICAgICAg
ICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAg
ICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG11bGhxX25fczE2IChpbnQxNng4X3QgYSwg
aW50MTZfdCBiKQ0KICAgICt7DQogICAgKyAgaW50MTZ4OF90IHJlc3VsdDsNCiAgICArICBfX2Fz
bV9fICgic3FkbXVsaCAlMC44aCwlMS44aCwlMi5oWzBdIg0KICAgICsgICAgICAgICAgIDogIj13
IihyZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ4IihiKQ0KICAgICsgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZxZG11bGhxX25fczMyIChpbnQzMng0X3QgYSwgaW50MzJfdCBi
KQ0KICAgICt7DQogICAgKyAgaW50MzJ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic3Fk
bXVsaCAlMC40cywlMS40cywlMi5zWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQp
DQogICAgKyAgICAgICAgICAgOiAidyIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyog
Tm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZxbW92bl9oaWdoX3MxNiAoaW50OHg4X3QgYSwgaW50MTZ4OF90IGIpDQogICAg
K3sNCiAgICArICBpbnQ4eDE2X3QgcmVzdWx0ID0gdmNvbWJpbmVfczggKGEsIHZjcmVhdGVfczgg
KF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOw0KICAgICsgIF9fYXNtX18gKCJzcXh0bjIgJTAu
MTZiLCAlMS44aCINCiAgICArICAgICAgICAgICA6ICIrdyIocmVzdWx0KQ0KICAgICsgICAgICAg
ICAgIDogInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAg
KyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFtb3ZuX2hpZ2hf
czMyIChpbnQxNng0X3QgYSwgaW50MzJ4NF90IGIpDQogICAgK3sNCiAgICArICBpbnQxNng4X3Qg
cmVzdWx0ID0gdmNvbWJpbmVfczE2IChhLCB2Y3JlYXRlX3MxNiAoX19BQVJDSDY0X1VJTlQ2NF9D
ICgweDApKSk7DQogICAgKyAgX19hc21fXyAoInNxeHRuMiAlMC44aCwgJTEuNHMiDQogICAgKyAg
ICAgICAgICAgOiAiK3ciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihiKQ0KICAgICsg
ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxbW92bl9oaWdoX3M2NCAoaW50MzJ4Ml90IGEsIGlu
dDY0eDJfdCBiKQ0KICAgICt7DQogICAgKyAgaW50MzJ4NF90IHJlc3VsdCA9IHZjb21iaW5lX3Mz
MiAoYSwgdmNyZWF0ZV9zMzIgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOw0KICAgICsgIF9f
YXNtX18gKCJzcXh0bjIgJTAuNHMsICUxLjJkIg0KICAgICsgICAgICAgICAgIDogIit3IihyZXN1
bHQpDQogICAgKyAgICAgICAgICAgOiAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNs
b2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFtb3ZuX2hpZ2hfdTE2ICh1aW50OHg4X3QgYSwgdWludDE2eDhfdCBiKQ0KICAgICt7
DQogICAgKyAgdWludDh4MTZfdCByZXN1bHQgPSB2Y29tYmluZV91OCAoYSwgdmNyZWF0ZV91OCAo
X19BQVJDSDY0X1VJTlQ2NF9DICgweDApKSk7DQogICAgKyAgX19hc21fXyAoInVxeHRuMiAlMC4x
NmIsICUxLjhoIg0KICAgICsgICAgICAgICAgIDogIit3IihyZXN1bHQpDQogICAgKyAgICAgICAg
ICAgOiAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICAr
ICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFtb3ZuX2hpZ2hf
dTMyICh1aW50MTZ4NF90IGEsIHVpbnQzMng0X3QgYikNCiAgICArew0KICAgICsgIHVpbnQxNng4
X3QgcmVzdWx0ID0gdmNvbWJpbmVfdTE2IChhLCB2Y3JlYXRlX3UxNiAoX19BQVJDSDY0X1VJTlQ2
NF9DICgweDApKSk7DQogICAgKyAgX19hc21fXyAoInVxeHRuMiAlMC44aCwgJTEuNHMiDQogICAg
KyAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihiKQ0KICAg
ICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQz
Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cW1vdm5faGlnaF91NjQgKHVpbnQzMngyX3Qg
YSwgdWludDY0eDJfdCBiKQ0KICAgICt7DQogICAgKyAgdWludDMyeDRfdCByZXN1bHQgPSB2Y29t
YmluZV91MzIgKGEsIHZjcmVhdGVfdTMyIChfX0FBUkNINjRfVUlOVDY0X0MgKDB4MCkpKTsNCiAg
ICArICBfX2FzbV9fICgidXF4dG4yICUwLjRzLCAlMS4yZCINCiAgICArICAgICAgICAgICA6ICIr
dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGIpDQogICAgKyAgICAgICAgICAgOiAv
KiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZxbW92dW5faGlnaF9zMTYgKHVpbnQ4eDhfdCBhLCBpbnQxNng4X3QgYikN
CiAgICArew0KICAgICsgIHVpbnQ4eDE2X3QgcmVzdWx0ID0gdmNvbWJpbmVfdTggKGEsIHZjcmVh
dGVfdTggKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOw0KICAgICsgIF9fYXNtX18gKCJzcXh0
dW4yICUwLjE2YiwgJTEuOGgiDQogICAgKyAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkNCiAgICAr
ICAgICAgICAgICA6ICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8p
Ow0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cW1v
dnVuX2hpZ2hfczMyICh1aW50MTZ4NF90IGEsIGludDMyeDRfdCBiKQ0KICAgICt7DQogICAgKyAg
dWludDE2eDhfdCByZXN1bHQgPSB2Y29tYmluZV91MTYgKGEsIHZjcmVhdGVfdTE2IChfX0FBUkNI
NjRfVUlOVDY0X0MgKDB4MCkpKTsNCiAgICArICBfX2FzbV9fICgic3F4dHVuMiAlMC44aCwgJTEu
NHMiDQogICAgKyAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3
IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVy
biByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cW1vdnVuX2hpZ2hfczY0ICh1
aW50MzJ4Ml90IGEsIGludDY0eDJfdCBiKQ0KICAgICt7DQogICAgKyAgdWludDMyeDRfdCByZXN1
bHQgPSB2Y29tYmluZV91MzIgKGEsIHZjcmVhdGVfdTMyIChfX0FBUkNINjRfVUlOVDY0X0MgKDB4
MCkpKTsNCiAgICArICBfX2FzbV9fICgic3F4dHVuMiAlMC40cywgJTEuMmQiDQogICAgKyAgICAg
ICAgICAgOiAiK3ciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihiKQ0KICAgICsgICAg
ICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZxcmRtdWxoX25fczE2IChpbnQxNng0X3QgYSwgaW50MTZf
dCBiKQ0KICAgICt7DQogICAgKyAgaW50MTZ4NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgi
c3FyZG11bGggJTAuNGgsJTEuNGgsJTIuaFswXSINCiAgICArICAgICAgICAgICA6ICI9dyIocmVz
dWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAieCIoYikNCiAgICArICAgICAgICAgICA6
IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cXJkbXVsaF9uX3MzMiAoaW50MzJ4Ml90IGEsIGludDMyX3QgYikNCiAg
ICArew0KICAgICsgIGludDMyeDJfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNxcmRtdWxo
ICUwLjJzLCUxLjJzLCUyLnNbMF0iDQogICAgKyAgICAgICAgICAgOiAiPXciKHJlc3VsdCkNCiAg
ICArICAgICAgICAgICA6ICJ3IihhKSwgInciKGIpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBj
bG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFyZG11bGhxX25fczE2IChpbnQxNng4X3QgYSwgaW50MTZfdCBiKQ0KICAgICt7DQog
ICAgKyAgaW50MTZ4OF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgic3FyZG11bGggJTAuOGgs
JTEuOGgsJTIuaFswXSINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAg
ICAgICAgIDogInciKGEpLCAieCIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJz
ICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cXJkbXVsaHFfbl9zMzIgKGludDMyeDRfdCBhLCBpbnQzMl90IGIpDQogICAgK3sNCiAgICArICBp
bnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJzcXJkbXVsaCAlMC40cywlMS40cywl
Mi5zWzBdIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAg
OiAidyIoYSksICJ3IihiKQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0K
ICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgKyNkZWZpbmUgdnFyc2hy
bl9oaWdoX25fczE2KGEsIGIsIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICBpbnQxNng4X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDh4OF90IGFfID0gKGEpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50OHgx
Nl90IHJlc3VsdCA9IHZjb21iaW5lX3M4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYV8sIHZjcmVhdGVfczggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoX19BQVJDSDY0X1VJTlQ2NF9DICgweDApKSk7ICAgICAgICAgXA0KICAgICsg
ICAgICAgX19hc21fXyAoInNxcnNocm4yICUwLjE2YiwgJTEuOGgsICMlMiIgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIrdyIocmVzdWx0KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAg
ICAgIDogInciKGJfKSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zMzIoYSwgYiwgYykg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9u
X18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDRfdCBiXyA9IChi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgaW50MTZ4NF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQxNng4X3QgcmVzdWx0ID0gdmNvbWJpbmVf
czE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhXywgdmNyZWF0ZV9zMTYgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX0FBUkNINjRf
VUlOVDY0X0MgKDB4MCkpKTsgICAgICAgICBcDQogICAgKyAgICAgICBfX2FzbV9fICgic3Fyc2hy
bjIgJTAuOGgsICUxLjRzLCAjJTIiICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgICAgICAgICAgIDogIit3IihyZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAidyIoYl8pLCAiaSIoYykg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAg
ICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsj
ZGVmaW5lIHZxcnNocm5faGlnaF9uX3M2NChhLCBiLCBjKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgaW50NjR4Ml90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMngyX3QgYV8gPSAo
YSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgIGludDMyeDRfdCByZXN1bHQgPSB2Y29tYmluZV9zMzIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFfLCB2
Y3JlYXRlX3MzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOyAgICAg
ICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzcXJzaHJuMiAlMC40cywgJTEuMmQsICMlMiIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiK3ci
KHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICAgICAgICAgICA6ICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg
Ki8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVz
dWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnFyc2hybl9oaWdoX25f
dTE2KGEsIGIsIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50
MTZ4OF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgIHVpbnQ4eDhfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDh4MTZfdCByZXN1
bHQgPSB2Y29tYmluZV91OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFfLCB2Y3JlYXRlX3U4ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOyAgICAgICAgXA0KICAgICsgICAgICAgX19h
c21fXyAoInVxcnNocm4yICUwLjE2YiwgJTEuOGgsICMlMiIgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIrdyIocmVzdWx0KSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogInci
KGJfKSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0K
ICAgICsNCiAgICArI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl91MzIoYSwgYiwgYykgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0X3QgYl8gPSAoYik7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWlu
dDE2eDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4OF90IHJlc3VsdCA9IHZjb21iaW5lX3UxNiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYV8sIHZjcmVhdGVfdTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19BQVJDSDY0X1VJTlQ2NF9D
ICgweDApKSk7ICAgICAgICBcDQogICAgKyAgICAgICBfX2FzbV9fICgidXFyc2hybjIgJTAuOGgs
ICUxLjRzLCAjJTIiICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAg
ICAgICAgIDogIit3IihyZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAidyIoYl8pLCAiaSIoYykgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8q
IE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZx
cnNocm5faGlnaF9uX3U2NChhLCBiLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgICAgdWludDY0eDJfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4Ml90IGFfID0gKGEpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVp
bnQzMng0X3QgcmVzdWx0ID0gdmNvbWJpbmVfdTMyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhXywgdmNyZWF0ZV91
MzIgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChfX0FBUkNINjRfVUlOVDY0X0MgKDB4MCkpKTsgICAgICAgIFwNCiAg
ICArICAgICAgIF9fYXNtX18gKCJ1cXJzaHJuMiAlMC40cywgJTEuMmQsICMlMiIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAg
ICAgICAgICA6ICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnFyc2hydW5faGlnaF9uX3MxNihhLCBi
LCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVu
c2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQxNng4X3QgYl8g
PSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgIHVpbnQ4eDhfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDh4MTZfdCByZXN1bHQgPSB2Y29t
YmluZV91OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGFfLCB2Y3JlYXRlX3U4ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fQUFS
Q0g2NF9VSU5UNjRfQyAoMHgwKSkpOyAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNx
cnNocnVuMiAlMC4xNmIsICUxLjhoLCAjJTIiICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICAgICAgICAgICA6ICIrdyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGJfKSwgImki
KGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
ICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAg
ICArI2RlZmluZSB2cXJzaHJ1bl9oaWdoX25fczMyKGEsIGIsIGMpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDRfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDE2eDRfdCBh
XyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICB1aW50MTZ4OF90IHJlc3VsdCA9IHZjb21iaW5lX3UxNiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
YV8sIHZjcmVhdGVfdTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19BQVJDSDY0X1VJTlQ2NF9DICgweDApKSk7
ICAgICAgICBcDQogICAgKyAgICAgICBfX2FzbV9fICgic3Fyc2hydW4yICUwLjhoLCAlMS40cywg
IyUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDog
Iit3IihyZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgOiAidyIoYl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2Ji
ZXJzICovKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZxcnNocnVuX2hp
Z2hfbl9zNjQoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
aW50NjR4Ml90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0X3Qg
cmVzdWx0ID0gdmNvbWJpbmVfdTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhXywgdmNyZWF0ZV91MzIgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChfX0FBUkNINjRfVUlOVDY0X0MgKDB4MCkpKTsgICAgICAgIFwNCiAgICArICAgICAg
IF9fYXNtX18gKCJzcXJzaHJ1bjIgJTAuNHMsICUxLjJkLCAjJTIiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6
ICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
fSkNCiAgICArDQogICAgKyNkZWZpbmUgdnFzaHJuX2hpZ2hfbl9zMTYoYSwgYiwgYykgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQxNng4X3QgYl8gPSAoYik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IGludDh4OF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgaW50OHgxNl90IHJlc3VsdCA9IHZjb21iaW5lX3M4ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYV8sIHZjcmVhdGVfczggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19BQVJDSDY0X1VJTlQ2
NF9DICgweDApKSk7ICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNxc2hybjIgJTAu
MTZiLCAlMS44aCwgIyUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICAgICAgICAgICA6ICIrdyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGJfKSwgImkiKGMpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmlu
ZSB2cXNocm5faGlnaF9uX3MzMihhLCBiLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIGludDMyeDRfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MTZ4NF90IGFfID0gKGEpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICBpbnQxNng4X3QgcmVzdWx0ID0gdmNvbWJpbmVfczE2ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhXywgdmNyZWF0
ZV9zMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChfX0FBUkNINjRfVUlOVDY0X0MgKDB4MCkpKTsgICAgICAgICBc
DQogICAgKyAgICAgICBfX2FzbV9fICgic3FzaHJuMiAlMC44aCwgJTEuNHMsICMlMiIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIit3IihyZXN1
bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgOiAidyIoYl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZxc2hybl9oaWdoX25fczY0KGEs
IGIsIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19l
eHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50NjR4Ml90
IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICBpbnQzMngyX3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDRfdCByZXN1bHQgPSB2
Y29tYmluZV9zMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGFfLCB2Y3JlYXRlX3MzMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9f
QUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOyAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18g
KCJzcXNocm4yICUwLjRzLCAlMS4yZCwgIyUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihiXyks
ICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICAr
DQogICAgKyNkZWZpbmUgdnFzaHJuX2hpZ2hfbl91MTYoYSwgYiwgYykgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
KHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4OF90IGJfID0gKGIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQ4eDhf
dCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgdWludDh4MTZfdCByZXN1bHQgPSB2Y29tYmluZV91OCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGFfLCB2Y3JlYXRlX3U4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgw
KSkpOyAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInVxc2hybjIgJTAuMTZiLCAlMS44
aCwgIyUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAg
ICA6ICIrdyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGJfKSwgImkiKGMpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBj
bG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2cXNocm5f
aGlnaF9uX3UzMihhLCBiLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgIHVpbnQzMng0X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDE2eDRfdCBhXyA9IChhKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4
OF90IHJlc3VsdCA9IHZjb21iaW5lX3UxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYV8sIHZjcmVhdGVfdTE2ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoX19BQVJDSDY0X1VJTlQ2NF9DICgweDApKSk7ICAgICAgICBcDQogICAgKyAg
ICAgICBfX2FzbV9fICgidXFzaHJuMiAlMC44aCwgJTEuNHMsICMlMiIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIit3IihyZXN1bHQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAg
ICAgOiAidyIoYl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZxc2hybl9oaWdoX25fdTY0KGEsIGIsIGMpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25f
XyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDY0eDJfdCBiXyA9IChi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICB1aW50MzJ4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0X3QgcmVzdWx0ID0gdmNvbWJpbmVf
dTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhXywgdmNyZWF0ZV91MzIgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX0FBUkNINjRf
VUlOVDY0X0MgKDB4MCkpKTsgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJ1cXNocm4y
ICUwLjRzLCAlMS4yZCwgIyUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihiXyksICJpIihjKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNk
ZWZpbmUgdnFzaHJ1bl9oaWdoX25fczE2KGEsIGIsIGMpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICBpbnQxNng4X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQ4eDhfdCBhXyA9IChh
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgdWludDh4MTZfdCByZXN1bHQgPSB2Y29tYmluZV91OCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFfLCB2
Y3JlYXRlX3U4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOyAgICAg
ICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNxc2hydW4yICUwLjE2YiwgJTEuOGgsICMlMiIg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIrdyIo
cmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgICAgICAgICAgIDogInciKGJfKSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAq
Lyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1
bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2cXNocnVuX2hpZ2hfbl9z
MzIoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
IF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMy
eDRfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgdWludDE2eDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4OF90IHJlc3Vs
dCA9IHZjb21iaW5lX3UxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYV8sIHZjcmVhdGVfdTE2ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoX19BQVJDSDY0X1VJTlQ2NF9DICgweDApKSk7ICAgICAgICBcDQogICAgKyAgICAgICBfX2Fz
bV9fICgic3FzaHJ1bjIgJTAuOGgsICUxLjRzLCAjJTIiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIit3IihyZXN1bHQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAidyIo
Yl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgIH0pDQog
ICAgKw0KICAgICsjZGVmaW5lIHZxc2hydW5faGlnaF9uX3M2NChhLCBiLCBjKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50NjR4Ml90IGJfID0gKGIpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50
MzJ4Ml90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0X3QgcmVzdWx0ID0gdmNvbWJpbmVfdTMyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChhXywgdmNyZWF0ZV91MzIgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX0FBUkNINjRfVUlOVDY0X0Mg
KDB4MCkpKTsgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzcXNocnVuMiAlMC40cywg
JTEuMmQsICMlMiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAg
ICAgICAgOiAiK3ciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihiXyksICJpIihjKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyog
Tm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnJz
aHJuX2hpZ2hfbl9zMTYoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICBpbnQxNng4X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDh4OF90IGFfID0gKGEpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50
OHgxNl90IHJlc3VsdCA9IHZjb21iaW5lX3M4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYV8sIHZjcmVhdGVfczgg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoX19BQVJDSDY0X1VJTlQ2NF9DICgweDApKSk7ICAgICAgICAgXA0KICAg
ICsgICAgICAgX19hc21fXyAoInJzaHJuMiAlMC4xNmIsJTEuOGgsIyUyIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIrdyIocmVzdWx0KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAg
ICAgICAgIDogInciKGJfKSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2cnNocm5faGlnaF9uX3MzMihhLCBiLCBj
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5z
aW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDMyeDRfdCBiXyA9
IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgICAgaW50MTZ4NF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQxNng4X3QgcmVzdWx0ID0gdmNvbWJp
bmVfczE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChhXywgdmNyZWF0ZV9zMTYgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX0FBUkNI
NjRfVUlOVDY0X0MgKDB4MCkpKTsgICAgICAgICBcDQogICAgKyAgICAgICBfX2FzbV9fICgicnNo
cm4yICUwLjhoLCUxLjRzLCMlMiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgICAgICAgICAgIDogIit3IihyZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAidyIoYl8pLCAiaSIo
YykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAg
ICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAg
ICsjZGVmaW5lIHZyc2hybl9oaWdoX25fczY0KGEsIGIsIGMpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgICAgaW50NjR4Ml90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMngyX3QgYV8g
PSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICAgICAgIGludDMyeDRfdCByZXN1bHQgPSB2Y29tYmluZV9zMzIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFf
LCB2Y3JlYXRlX3MzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOyAg
ICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJyc2hybjIgJTAuNHMsJTEuMmQsIyUyIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAi
K3ciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICAgICAgICAgICA6ICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJl
cnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
cmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnJzaHJuX2hpZ2hf
bl91MTYoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAg
ICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1
aW50MTZ4OF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCiAgICArICAgICAgIHVpbnQ4eDhfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDh4MTZfdCBy
ZXN1bHQgPSB2Y29tYmluZV91OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYV8sIHZjcmVhdGVfdTggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoX19BQVJDSDY0X1VJTlQ2NF9DICgweDApKSk7ICAgICAgICAgXA0KICAgICsgICAgICAg
X19hc21fXyAoInJzaHJuMiAlMC4xNmIsJTEuOGgsIyUyIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIrdyIocmVzdWx0KSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDog
InciKGJfKSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9
KQ0KICAgICsNCiAgICArI2RlZmluZSB2cnNocm5faGlnaF9uX3UzMihhLCBiLCBjKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0X3QgYl8gPSAoYik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
dWludDE2eDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICB1aW50MTZ4OF90IHJlc3VsdCA9IHZjb21iaW5lX3UxNiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChhXywgdmNyZWF0ZV91MTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX0FBUkNINjRfVUlOVDY0
X0MgKDB4MCkpKTsgICAgICAgICBcDQogICAgKyAgICAgICBfX2FzbV9fICgicnNocm4yICUwLjho
LCUxLjRzLCMlMiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
ICAgICAgICAgIDogIit3IihyZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAidyIoYl8pLCAiaSIoYykgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6
IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5l
IHZyc2hybl9oaWdoX25fdTY0KGEsIGIsIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgdWludDY0eDJfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4Ml90IGFfID0gKGEpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IHVpbnQzMng0X3QgcmVzdWx0ID0gdmNvbWJpbmVfdTMyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFfLCB2Y3JlYXRl
X3UzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOyAgICAgICAgIFwN
CiAgICArICAgICAgIF9fYXNtX18gKCJyc2hybjIgJTAuNHMsJTEuMmQsIyUyIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiK3ciKHJlc3Vs
dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICAgICAgICAgICA6ICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnJzaHJuX25fczE2KGEsIGIpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4
dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQxNng4X3Qg
YV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIGludDh4OF90IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInJzaHJuICUwLjhi
LCUxLjhoLCUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGFfKSwgImkiKGIpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmlu
ZSB2cnNocm5fbl9zMzIoYSwgYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIGludDMyeDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MTZ4NF90IHJlc3VsdDsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICBfX2FzbV9fICgicnNocm4gJTAuNGgsJTEuNHMsJTIiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIj13IihyZXN1bHQpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAidyIoYV8pLCAiaSIoYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
IH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZyc2hybl9uX3M2NChhLCBiKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50NjR4Ml90IGFfID0gKGEpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICBpbnQzMngyX3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJyc2hybiAlMC4ycywlMS4yZCwlMiIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihhXyksICJpIihiKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xv
YmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnJzaHJuX25f
dTE2KGEsIGIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICB1aW50MTZ4OF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQ4eDhfdCByZXN1bHQ7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAo
InJzaHJuICUwLjhiLCUxLjhoLCUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGFfKSwg
ImkiKGIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsN
CiAgICArI2RlZmluZSB2cnNocm5fbl91MzIoYSwgYikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAo
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQzMng0X3QgYV8gPSAoYSk7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDE2eDRf
dCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICBfX2FzbV9fICgicnNocm4gJTAuNGgsJTEuNHMsJTIiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIj13IihyZXN1
bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgOiAidyIoYV8pLCAiaSIoYikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZyc2hybl9uX3U2NChhLCBiKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19l
eHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDY0eDJf
dCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICB1aW50MzJ4Ml90IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJyc2hybiAlMC4y
cywlMS4yZCwlMiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihhXyksICJpIihiKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAg
IDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cnNxcnRlX3UzMiAodWludDMyeDJfdCBhKQ0KICAgICt7DQogICAgKyAgdWludDMyeDJfdCBy
ZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInVyc3FydGUgJTAuMnMsJTEuMnMiDQogICAgKyAgICAg
ICAgICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3IihhKQ0KICAgICsgICAg
ICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNxcnRlcV91MzIgKHVpbnQzMng0X3QgYSkNCiAgICAr
ew0KICAgICsgIHVpbnQzMng0X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ1cnNxcnRlICUw
LjRzLCUxLjRzIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAg
ICAgOiAidyIoYSkNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICAr
ICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICsjZGVmaW5lIHZzaHJuX2hpZ2hf
bl9zMTYoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog
ICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAg
aW50MTZ4OF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQogICAgKyAgICAgICBpbnQ4eDhfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDh4MTZfdCBy
ZXN1bHQgPSB2Y29tYmluZV9zOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFfLCB2Y3JlYXRlX3M4ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOyAgICAgICAgIFwNCiAgICArICAgICAg
IF9fYXNtX18gKCJzaHJuMiAlMC4xNmIsJTEuOGgsIyUyIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6
ICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
fSkNCiAgICArDQogICAgKyNkZWZpbmUgdnNocm5faGlnaF9uX3MzMihhLCBiLCBjKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
ICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBpbnQzMng0X3QgYl8gPSAoYik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAg
IGludDE2eDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgICAgICAgaW50MTZ4OF90IHJlc3VsdCA9IHZjb21iaW5lX3MxNiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYV8sIHZjcmVhdGVfczE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19BQVJDSDY0X1VJTlQ2
NF9DICgweDApKSk7ICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNocm4yICUwLjho
LCUxLjRzLCMlMiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICAgICAgICAgICA6ICIrdyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGJfKSwgImkiKGMpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
OiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmlu
ZSB2c2hybl9oaWdoX25fczY0KGEsIGIsIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
CiAgICArICAgICAgIGludDY0eDJfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4Ml90IGFfID0gKGEpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAg
ICBpbnQzMng0X3QgcmVzdWx0ID0gdmNvbWJpbmVfczMyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhXywgdmNyZWF0
ZV9zMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChfX0FBUkNINjRfVUlOVDY0X0MgKDB4MCkpKTsgICAgICAgICBc
DQogICAgKyAgICAgICBfX2FzbV9fICgic2hybjIgJTAuNHMsJTEuMmQsIyUyIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIit3IihyZXN1
bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgOiAidyIoYl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZzaHJuX2hpZ2hfbl91MTYoYSwg
YiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19l
eHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDE2eDhf
dCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQogICAgKyAgICAgICB1aW50OHg4X3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQ4eDE2X3QgcmVzdWx0ID0g
dmNvbWJpbmVfdTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGFfLCB2Y3JlYXRlX3U4ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9f
QUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOyAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18g
KCJzaHJuMiAlMC4xNmIsJTEuOGgsIyUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgICAgICAgICAgOiAiK3ciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihiXyks
ICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICAr
DQogICAgKyNkZWZpbmUgdnNocm5faGlnaF9uX3UzMihhLCBiLCBjKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAg
KHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IGJfID0gKGIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQxNng0
X3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgICAgICAgdWludDE2eDhfdCByZXN1bHQgPSB2Y29tYmluZV91MTYgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYV8sIHZjcmVhdGVfdTE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19BQVJDSDY0X1VJTlQ2NF9DICgweDAp
KSk7ICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNocm4yICUwLjhoLCUxLjRzLCMl
MiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAg
ICA6ICIrdyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGJfKSwgImkiKGMpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBj
bG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2c2hybl9o
aWdoX25fdTY0KGEsIGIsIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAg
ICAgIHVpbnQ2NHgyX3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDMyeDJfdCBhXyA9IChhKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICB1aW50MzJ4
NF90IHJlc3VsdCA9IHZjb21iaW5lX3UzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhXywgdmNyZWF0ZV91MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChfX0FBUkNINjRfVUlOVDY0X0MgKDB4MCkpKTsgICAgICAgICBcDQogICAgKyAg
ICAgICBfX2FzbV9fICgic2hybjIgJTAuNHMsJTEuMmQsIyUyIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIit3IihyZXN1bHQpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAg
ICAgOiAidyIoYl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZzaHJuX25fczE2KGEsIGIpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25f
XyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MTZ4OF90IGFfID0gKGEp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICBpbnQ4eDhfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzaHJuICUwLjhiLCUxLjhoLCUy
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAg
ICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihhXyksICJpIihiKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8g
Y2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnNocm5f
bl9zMzIoYSwgYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAgICBpbnQzMng0X3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDE2eDRfdCByZXN1bHQ7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21f
XyAoInNocm4gJTAuNGgsJTEuNHMsJTIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogInciKGFf
KSwgImkiKGIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAg
ICsNCiAgICArI2RlZmluZSB2c2hybl9uX3M2NChhLCBiKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
ICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICAgIGludDY0eDJfdCBhXyA9IChhKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgaW50MzJ4
Ml90IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICBfX2FzbV9fICgic2hybiAlMC4ycywlMS4yZCwlMiIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIj13Iihy
ZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgICAgICAgICAgOiAidyIoYV8pLCAiaSIoYikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICov
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3Vs
dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZzaHJuX25fdTE2KGEsIGIp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAg
X19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgdWludDE2
eDhfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICB1aW50OHg4X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzaHJuICUw
LjhiLCUxLjhoLCUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICJ3IihhXyksICJpIihiKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNk
ZWZpbmUgdnNocm5fbl91MzIoYSwgYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAgICB1aW50MzJ4NF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQxNng0X3QgcmVzdWx0
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgX19hc21fXyAoInNocm4gJTAuNGgsJTEuNHMsJTIiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAg
ICAgIDogInciKGFfKSwgImkiKGIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2c2hybl9uX3U2NChhLCBiKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9u
X18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHVpbnQ2NHgyX3QgYV8gPSAo
YSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgdWludDMyeDJfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBfX2FzbV9fICgic2hybiAlMC4ycywlMS4yZCwl
MiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAg
ICAgIDogIj13IihyZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAidyIoYV8pLCAiaSIoYikgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5v
IGNsb2JiZXJzICovKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZzbGlf
bl9wOChhLCBiLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
ICAgICAgcG9seTh4OF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBwb2x5OHg4X3QgYV8gPSAoYSk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHBvbHk4
eDhfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNsaSAlMC44YiwlMi44YiwlMyIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICI9dyIo
cmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgICAgICAgICAgIDogIjAiKGFfKSwgInciKGJfKSwgImkiKGMpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAq
Lyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICByZXN1
bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2c2xpX25fcDE2KGEsIGIs
IGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsg
IF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHBvbHkx
Nng0X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgcG9seTE2eDRfdCBhXyA9IChhKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBwb2x5MTZ4NF90IHJlc3Vs
dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgIF9fYXNtX18gKCJzbGkgJTAuNGgsJTIuNGgsJTMiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXciKHJlc3VsdCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAg
ICAgICA6ICIwIihhXyksICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVzdWx0OyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnNsaXFfbl9wOChhLCBiLCBjKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICBfX2V4dGVuc2lv
bl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBwb2x5OHgxNl90IGJfID0g
KGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgIHBvbHk4eDE2X3QgYV8gPSAoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcG9seTh4MTZfdCByZXN1bHQ7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBfX2Fz
bV9fICgic2xpICUwLjE2YiwlMi4xNmIsJTMiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIj13IihyZXN1bHQpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiMCIo
YV8pLCAidyIoYl8pLCAiaSIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJlc3VsdDsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgIH0pDQog
ICAgKw0KICAgICsjZGVmaW5lIHZzbGlxX25fcDE2KGEsIGIsIGMpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcG9seTE2eDhfdCBiXyA9IChiKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBwb2x5
MTZ4OF90IGFfID0gKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgIHBvbHkxNng4X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNsaSAl
MC44aCwlMi44aCwlMyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICAgICAgICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIjAiKGFfKSwgInciKGJf
KSwgImkiKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAg
ICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICAr
I2RlZmluZSB2c3JpX25fcDgoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgIHBvbHk4eDhfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcG9seTh4OF90IGFfID0g
KGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICBwb2x5OHg4X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzcmkgJTAuOGIsJTIuOGIs
JTMiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAg
ICAgICAgOiAiPXciKHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJpIihjKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyog
Tm8gY2xvYmJlcnMgKi8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgICAgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnNy
aV9uX3AxNihhLCBiLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICBfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgKHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICBwb2x5MTZ4NF90IGJfID0gKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHBvbHkxNng0X3QgYV8gPSAoYSk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcG9s
eTE2eDRfdCByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgICBfX2FzbV9fICgic3JpICUwLjRoLCUyLjRoLCUzIiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIj13
IihyZXN1bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAg
ICsgICAgICAgICAgICAgICAgOiAiMCIoYV8pLCAidyIoYl8pLCAiaSIoYykgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJz
ICovKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgIHJl
c3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsjZGVmaW5lIHZzcmlfbl9wNjQoYSwg
YiwgYykJCQkJCQlcDQogICAgKyAgX19leHRlbnNpb25fXwkJCQkJCQkJXA0KICAgICsgICAgKHsJ
CQkJCQkJCQlcDQogICAgKyAgICAgICBwb2x5NjR4MV90IGJfID0gKGIpOwkJCQkJCVwNCiAgICAr
ICAgICAgIHBvbHk2NHgxX3QgYV8gPSAoYSk7CQkJCQkJXA0KICAgICsgICAgICAgcG9seTY0eDFf
dCByZXN1bHQ7CQkJCQkJXA0KICAgICsgICAgICAgX19hc21fXyAoInNyaSAlZDAsJWQyLCUzIgkJ
CQkJXA0KICAgICsJCTogIj13IihyZXN1bHQpCQkJCQkJXA0KICAgICsJCTogIjAiKGFfKSwgInci
KGJfKSwgImkiKGMpCQkJCVwNCiAgICArCQk6IC8qIE5vIGNsb2JiZXJzLiAgKi8pOwkJCQkJXA0K
ICAgICsgICAgICAgcmVzdWx0OwkJCQkJCQkJXA0KICAgICsgICAgIH0pDQogICAgKw0KICAgICsj
ZGVmaW5lIHZzcmlxX25fcDgoYSwgYiwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgKyAgX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICArICAgICh7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgICAgICAgcG9seTh4MTZfdCBiXyA9IChiKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBwb2x5OHgxNl90IGFfID0g
KGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgIHBvbHk4eDE2X3QgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgX19hc21fXyAoInNyaSAlMC4xNmIsJTIuMTZi
LCUzIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICAgICAg
ICAgICA6ICI9dyIocmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogIjAiKGFfKSwgInciKGJfKSwgImkiKGMpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAvKiBO
byBjbG9iYmVycyAqLyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICB9KQ0KICAgICsNCiAgICArI2RlZmluZSB2c3Jp
cV9uX3AxNihhLCBiLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KICAgICsgIF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAoeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAr
ICAgICAgIHBvbHkxNng4X3QgYl8gPSAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcG9seTE2eDhfdCBhXyA9IChhKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgKyAgICAgICBwb2x5
MTZ4OF90IHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCiAgICArICAgICAgIF9fYXNtX18gKCJzcmkgJTAuOGgsJTIuOGgsJTMiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgICAgICAgICAgOiAiPXci
KHJlc3VsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAg
KyAgICAgICAgICAgICAgICA6ICIwIihhXyksICJ3IihiXyksICJpIihjKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCiAgICArICAgICAgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg
Ki8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICsgICAgICAgcmVz
dWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQogICAgKyAgICAgfSkNCiAgICArDQogICAgKyNkZWZpbmUgdnNyaXFfbl9wNjQoYSwg
YiwgYykJCQkJCQlcDQogICAgKyAgX19leHRlbnNpb25fXwkJCQkJCQkJXA0KICAgICsgICAgKHsJ
CQkJCQkJCQlcDQogICAgKyAgICAgICBwb2x5NjR4Ml90IGJfID0gKGIpOwkJCQkJCVwNCiAgICAr
ICAgICAgIHBvbHk2NHgyX3QgYV8gPSAoYSk7CQkJCQkJXA0KICAgICsgICAgICAgcG9seTY0eDJf
dCByZXN1bHQ7CQkJCQkJXA0KICAgICsgICAgICAgX19hc21fXyAoInNyaSAlMC4yZCwlMi4yZCwl
MyIJCQkJCVwNCiAgICArCQk6ICI9dyIocmVzdWx0KQkJCQkJCVwNCiAgICArCQk6ICIwIihhXyks
ICJ3IihiXyksICJpIihjKQkJCQlcDQogICAgKwkJOiAvKiBObyBjbG9iYmVycy4gICovKTsJCQkJ
CVwNCiAgICArICAgICAgIHJlc3VsdDsJCQkJCQkJCVwNCiAgICArICAgICB9KQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnRzdF9wOCAocG9seTh4OF90IGEsIHBvbHk4eDhfdCBiKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuICh1aW50OHg4X3QpICgoKCh1aW50OHg4X3QpIGEpICYgKCh1aW50OHg4X3QpIGIp
KQ0KICAgICsJCSAgICAgICAhPSAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0c3Rf
cDE2IChwb2x5MTZ4NF90IGEsIHBvbHkxNng0X3QgYikNCiAgICArew0KICAgICsgIHJldHVybiAo
dWludDE2eDRfdCkgKCgoKHVpbnQxNng0X3QpIGEpICYgKCh1aW50MTZ4NF90KSBiKSkNCiAgICAr
CQkgICAgICAgIT0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHN0X3A2NCAocG9s
eTY0eDFfdCBhLCBwb2x5NjR4MV90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgx
X3QpICgoYSAmIGIpICE9IF9fQUFSQ0g2NF9JTlQ2NF9DICgwKSk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2dHN0cV9wOCAocG9seTh4MTZfdCBhLCBwb2x5OHgxNl90IGIpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpICgoKCh1aW50OHgxNl90KSBhKSAmICgodWludDh4
MTZfdCkgYikpDQogICAgKwkJICAgICAgICE9IDApOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnRzdHFfcDE2IChwb2x5MTZ4OF90IGEsIHBvbHkxNng4X3QgYikNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDE2eDhfdCkgKCgoKHVpbnQxNng4X3QpIGEpICYgKCh1aW50MTZ4OF90KSBi
KSkNCiAgICArCQkgICAgICAgIT0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHN0
cV9wNjQgKHBvbHk2NHgyX3QgYSwgcG9seTY0eDJfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
ICh1aW50NjR4Ml90KSAoKCgodWludDY0eDJfdCkgYSkgJiAoKHVpbnQ2NHgyX3QpIGIpKQ0KICAg
ICsJCSAgICAgICAhPSBfX0FBUkNINjRfSU5UNjRfQyAoMCkpOw0KICAgICt9DQogICAgKw0KICAg
ICsvKiBFbmQgb2YgdGVtcG9yYXJ5IGlubGluZSBhc20gaW1wbGVtZW50YXRpb25zLiAgKi8NCiAg
ICArDQogICAgKy8qIFN0YXJ0IG9mIHRlbXBvcmFyeSBpbmxpbmUgYXNtIGZvciB2bGRuLCB2c3Ru
IGFuZCBmcmllbmRzLiAgKi8NCiAgICArDQogICAgKy8qIENyZWF0ZSBzdHJ1Y3QgZWxlbWVudCB0
eXBlcyBmb3IgZHVwbGljYXRpbmcgbG9hZHMuDQogICAgKw0KICAgICsgICBDcmVhdGUgMiBlbGVt
ZW50IHN0cnVjdHVyZXMgb2Y6DQogICAgKw0KICAgICsgICArLS0tLS0tKy0tLS0rLS0tLSstLS0t
Ky0tLS0rDQogICAgKyAgIHwgICAgICB8IDggIHwgMTYgfCAzMiB8IDY0IHwNCiAgICArICAgKy0t
LS0tLSstLS0tKy0tLS0rLS0tLSstLS0tKw0KICAgICsgICB8aW50ICAgfCBZICB8IFkgIHwgTiAg
fCBOICB8DQogICAgKyAgICstLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLSsNCiAgICArICAgfHVp
bnQgIHwgWSAgfCBZICB8IE4gIHwgTiAgfA0KICAgICsgICArLS0tLS0tKy0tLS0rLS0tLSstLS0t
Ky0tLS0rDQogICAgKyAgIHxmbG9hdCB8IC0gIHwgWSAgfCBOICB8IE4gIHwNCiAgICArICAgKy0t
LS0tLSstLS0tKy0tLS0rLS0tLSstLS0tKw0KICAgICsgICB8cG9seSAgfCBZICB8IFkgIHwgLSAg
fCAtICB8DQogICAgKyAgICstLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0tLSsNCiAgICArDQogICAg
KyAgIENyZWF0ZSAzIGVsZW1lbnQgc3RydWN0dXJlcyBvZjoNCiAgICArDQogICAgKyAgICstLS0t
LS0rLS0tLSstLS0tKy0tLS0rLS0tLSsNCiAgICArICAgfCAgICAgIHwgOCAgfCAxNiB8IDMyIHwg
NjQgfA0KICAgICsgICArLS0tLS0tKy0tLS0rLS0tLSstLS0tKy0tLS0rDQogICAgKyAgIHxpbnQg
ICB8IFkgIHwgWSAgfCBZICB8IFkgIHwNCiAgICArICAgKy0tLS0tLSstLS0tKy0tLS0rLS0tLSst
LS0tKw0KICAgICsgICB8dWludCAgfCBZICB8IFkgIHwgWSAgfCBZICB8DQogICAgKyAgICstLS0t
LS0rLS0tLSstLS0tKy0tLS0rLS0tLSsNCiAgICArICAgfGZsb2F0IHwgLSAgfCBZICB8IFkgIHwg
WSAgfA0KICAgICsgICArLS0tLS0tKy0tLS0rLS0tLSstLS0tKy0tLS0rDQogICAgKyAgIHxwb2x5
ICB8IFkgIHwgWSAgfCAtICB8IC0gIHwNCiAgICArICAgKy0tLS0tLSstLS0tKy0tLS0rLS0tLSst
LS0tKw0KICAgICsNCiAgICArICAgQ3JlYXRlIDQgZWxlbWVudCBzdHJ1Y3R1cmVzIG9mOg0KICAg
ICsNCiAgICArICAgKy0tLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tKw0KICAgICsgICB8ICAgICAg
fCA4ICB8IDE2IHwgMzIgfCA2NCB8DQogICAgKyAgICstLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0t
LSsNCiAgICArICAgfGludCAgIHwgWSAgfCBOICB8IE4gIHwgWSAgfA0KICAgICsgICArLS0tLS0t
Ky0tLS0rLS0tLSstLS0tKy0tLS0rDQogICAgKyAgIHx1aW50ICB8IFkgIHwgTiAgfCBOICB8IFkg
IHwNCiAgICArICAgKy0tLS0tLSstLS0tKy0tLS0rLS0tLSstLS0tKw0KICAgICsgICB8ZmxvYXQg
fCAtICB8IE4gIHwgTiAgfCBZICB8DQogICAgKyAgICstLS0tLS0rLS0tLSstLS0tKy0tLS0rLS0t
LSsNCiAgICArICAgfHBvbHkgIHwgWSAgfCBOICB8IC0gIHwgLSAgfA0KICAgICsgICArLS0tLS0t
Ky0tLS0rLS0tLSstLS0tKy0tLS0rDQogICAgKw0KICAgICsgIFRoaXMgaXMgcmVxdWlyZWQgZm9y
IGNhc3RpbmcgbWVtb3J5IHJlZmVyZW5jZS4gICovDQogICAgKyNkZWZpbmUgX19TVFJVQ1ROKHQs
IHN6LCBuZWxlbSkJCQlcDQogICAgKyAgdHlwZWRlZiBzdHJ1Y3QgdCAjIyBzeiAjIyB4ICMjIG5l
bGVtICMjIF90IHsJXA0KICAgICsgICAgdCAjIyBzeiAjIyBfdCB2YWxbbmVsZW1dOwkJCVwNCiAg
ICArICB9ICB0ICMjIHN6ICMjIHggIyMgbmVsZW0gIyMgX3Q7DQogICAgKw0KICAgICsvKiAyLWVs
ZW1lbnQgc3RydWN0cy4gICovDQogICAgK19fU1RSVUNUTiAoaW50LCA4LCAyKQ0KICAgICtfX1NU
UlVDVE4gKGludCwgMTYsIDIpDQogICAgK19fU1RSVUNUTiAodWludCwgOCwgMikNCiAgICArX19T
VFJVQ1ROICh1aW50LCAxNiwgMikNCiAgICArX19TVFJVQ1ROIChmbG9hdCwgMTYsIDIpDQogICAg
K19fU1RSVUNUTiAocG9seSwgOCwgMikNCiAgICArX19TVFJVQ1ROIChwb2x5LCAxNiwgMikNCiAg
ICArLyogMy1lbGVtZW50IHN0cnVjdHMuICAqLw0KICAgICtfX1NUUlVDVE4gKGludCwgOCwgMykN
CiAgICArX19TVFJVQ1ROIChpbnQsIDE2LCAzKQ0KICAgICtfX1NUUlVDVE4gKGludCwgMzIsIDMp
DQogICAgK19fU1RSVUNUTiAoaW50LCA2NCwgMykNCiAgICArX19TVFJVQ1ROICh1aW50LCA4LCAz
KQ0KICAgICtfX1NUUlVDVE4gKHVpbnQsIDE2LCAzKQ0KICAgICtfX1NUUlVDVE4gKHVpbnQsIDMy
LCAzKQ0KICAgICtfX1NUUlVDVE4gKHVpbnQsIDY0LCAzKQ0KICAgICtfX1NUUlVDVE4gKGZsb2F0
LCAxNiwgMykNCiAgICArX19TVFJVQ1ROIChmbG9hdCwgMzIsIDMpDQogICAgK19fU1RSVUNUTiAo
ZmxvYXQsIDY0LCAzKQ0KICAgICtfX1NUUlVDVE4gKHBvbHksIDgsIDMpDQogICAgK19fU1RSVUNU
TiAocG9seSwgMTYsIDMpDQogICAgKy8qIDQtZWxlbWVudCBzdHJ1Y3RzLiAgKi8NCiAgICArX19T
VFJVQ1ROIChpbnQsIDgsIDQpDQogICAgK19fU1RSVUNUTiAoaW50LCA2NCwgNCkNCiAgICArX19T
VFJVQ1ROICh1aW50LCA4LCA0KQ0KICAgICtfX1NUUlVDVE4gKHVpbnQsIDY0LCA0KQ0KICAgICtf
X1NUUlVDVE4gKHBvbHksIDgsIDQpDQogICAgK19fU1RSVUNUTiAoZmxvYXQsIDY0LCA0KQ0KICAg
ICsjdW5kZWYgX19TVFJVQ1RODQogICAgKw0KICAgICsNCiAgICArI2RlZmluZSBfX1NUMl9MQU5F
X0ZVTkMoaW50eXBlLCBsYXJnZXR5cGUsIHB0cnR5cGUsIG1vZGUsCQkgICAgIFwNCiAgICArCQkJ
cW1vZGUsIHB0cl9tb2RlLCBmdW5jc3VmZml4LCBzaWduZWR0eXBlKQkgICAgIFwNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZAkJCQkJICAgICBcDQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkgXA0KICAgICt2c3QyX2xhbmVfICMjIGZ1bmNzdWZmaXggKHB0cnR5cGUgKl9fcHRyLAkJCQkg
ICAgIFwNCiAgICArCQkJICBpbnR5cGUgX19iLCBjb25zdCBpbnQgX19jKQkJCSAgICAgXA0KICAg
ICt7CQkJCQkJCQkJICAgICBcDQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287
CQkJCQkgICAgIFwNCiAgICArICBsYXJnZXR5cGUgX190ZW1wOwkJCQkJCQkgICAgIFwNCiAgICAr
ICBfX3RlbXAudmFsWzBdCQkJCQkJCQkgICAgIFwNCiAgICArICAgID0gdmNvbWJpbmVfIyNmdW5j
c3VmZml4IChfX2IudmFsWzBdLAkJCQkgICAgIFwNCiAgICArCQkJICAgICB2Y3JlYXRlXyMjZnVu
Y3N1ZmZpeCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOyBcDQogICAgKyAgX190ZW1wLnZhbFsx
XQkJCQkJCQkJICAgICBcDQogICAgKyAgICA9IHZjb21iaW5lXyMjZnVuY3N1ZmZpeCAoX19iLnZh
bFsxXSwJCQkJICAgICBcDQogICAgKwkJCSAgICAgdmNyZWF0ZV8jI2Z1bmNzdWZmaXggKF9fQUFS
Q0g2NF9VSU5UNjRfQyAoMCkpKTsgXA0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3Nl
dF9xcmVnb2kjI3Ftb2RlIChfX28sCQkJICAgICBcDQogICAgKwkJCQkJICAgICAoc2lnbmVkdHlw
ZSkgX190ZW1wLnZhbFswXSwgMCk7IFwNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9z
ZXRfcXJlZ29pIyNxbW9kZSAoX19vLAkJCSAgICAgXA0KICAgICsJCQkJCSAgICAgKHNpZ25lZHR5
cGUpIF9fdGVtcC52YWxbMV0sIDEpOyBcDQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QyX2xh
bmUjI21vZGUgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kXyAjIyBwdHJfbW9kZSAqKSAgXA0KICAg
ICsJCQkJICAgICBfX3B0ciwgX19vLCBfX2MpOwkJCSAgICAgXA0KICAgICt9DQogICAgKw0KICAg
ICtfX1NUMl9MQU5FX0ZVTkMgKGZsb2F0MTZ4NHgyX3QsIGZsb2F0MTZ4OHgyX3QsIGZsb2F0MTZf
dCwgdjRoZiwgdjhoZiwgaGYsIGYxNiwNCiAgICArCQkgZmxvYXQxNng4X3QpDQogICAgK19fU1Qy
X0xBTkVfRlVOQyAoZmxvYXQzMngyeDJfdCwgZmxvYXQzMng0eDJfdCwgZmxvYXQzMl90LCB2MnNm
LCB2NHNmLCBzZiwgZjMyLA0KICAgICsJCSBmbG9hdDMyeDRfdCkNCiAgICArX19TVDJfTEFORV9G
VU5DIChmbG9hdDY0eDF4Ml90LCBmbG9hdDY0eDJ4Ml90LCBmbG9hdDY0X3QsIGRmLCB2MmRmLCBk
ZiwgZjY0LA0KICAgICsJCSBmbG9hdDY0eDJfdCkNCiAgICArX19TVDJfTEFORV9GVU5DIChwb2x5
OHg4eDJfdCwgcG9seTh4MTZ4Ml90LCBwb2x5OF90LCB2OHFpLCB2MTZxaSwgcWksIHA4LA0KICAg
ICsJCSBpbnQ4eDE2X3QpDQogICAgK19fU1QyX0xBTkVfRlVOQyAocG9seTE2eDR4Ml90LCBwb2x5
MTZ4OHgyX3QsIHBvbHkxNl90LCB2NGhpLCB2OGhpLCBoaSwgcDE2LA0KICAgICsJCSBpbnQxNng4
X3QpDQogICAgK19fU1QyX0xBTkVfRlVOQyAocG9seTY0eDF4Ml90LCBwb2x5NjR4MngyX3QsIHBv
bHk2NF90LCBkaSwgdjJkaV9zc3BzLCBkaSwgcDY0LA0KICAgICsJCSBwb2x5NjR4Ml90KQ0KICAg
ICtfX1NUMl9MQU5FX0ZVTkMgKGludDh4OHgyX3QsIGludDh4MTZ4Ml90LCBpbnQ4X3QsIHY4cWks
IHYxNnFpLCBxaSwgczgsDQogICAgKwkJIGludDh4MTZfdCkNCiAgICArX19TVDJfTEFORV9GVU5D
IChpbnQxNng0eDJfdCwgaW50MTZ4OHgyX3QsIGludDE2X3QsIHY0aGksIHY4aGksIGhpLCBzMTYs
DQogICAgKwkJIGludDE2eDhfdCkNCiAgICArX19TVDJfTEFORV9GVU5DIChpbnQzMngyeDJfdCwg
aW50MzJ4NHgyX3QsIGludDMyX3QsIHYyc2ksIHY0c2ksIHNpLCBzMzIsDQogICAgKwkJIGludDMy
eDRfdCkNCiAgICArX19TVDJfTEFORV9GVU5DIChpbnQ2NHgxeDJfdCwgaW50NjR4MngyX3QsIGlu
dDY0X3QsIGRpLCB2MmRpLCBkaSwgczY0LA0KICAgICsJCSBpbnQ2NHgyX3QpDQogICAgK19fU1Qy
X0xBTkVfRlVOQyAodWludDh4OHgyX3QsIHVpbnQ4eDE2eDJfdCwgdWludDhfdCwgdjhxaSwgdjE2
cWksIHFpLCB1OCwNCiAgICArCQkgaW50OHgxNl90KQ0KICAgICtfX1NUMl9MQU5FX0ZVTkMgKHVp
bnQxNng0eDJfdCwgdWludDE2eDh4Ml90LCB1aW50MTZfdCwgdjRoaSwgdjhoaSwgaGksIHUxNiwN
CiAgICArCQkgaW50MTZ4OF90KQ0KICAgICtfX1NUMl9MQU5FX0ZVTkMgKHVpbnQzMngyeDJfdCwg
dWludDMyeDR4Ml90LCB1aW50MzJfdCwgdjJzaSwgdjRzaSwgc2ksIHUzMiwNCiAgICArCQkgaW50
MzJ4NF90KQ0KICAgICtfX1NUMl9MQU5FX0ZVTkMgKHVpbnQ2NHgxeDJfdCwgdWludDY0eDJ4Ml90
LCB1aW50NjRfdCwgZGksIHYyZGksIGRpLCB1NjQsDQogICAgKwkJIGludDY0eDJfdCkNCiAgICAr
DQogICAgKyN1bmRlZiBfX1NUMl9MQU5FX0ZVTkMNCiAgICArI2RlZmluZSBfX1NUMl9MQU5FX0ZV
TkMoaW50eXBlLCBwdHJ0eXBlLCBtb2RlLCBwdHJfbW9kZSwgZnVuY3N1ZmZpeCkJICAgIFwNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZAkJCQkJICAgIFwNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKSBcDQogICAgK3ZzdDJxX2xhbmVfICMjIGZ1bmNzdWZmaXggKHB0cnR5cGUgKl9fcHRy
LAkJCQkgICAgXA0KICAgICsJCQkgICBpbnR5cGUgX19iLCBjb25zdCBpbnQgX19jKQkJCSAgICBc
DQogICAgK3sJCQkJCQkJCQkgICAgXA0KICAgICsgIHVuaW9uIHsgaW50eXBlIF9faTsJCQkJCQkJ
ICAgIFwNCiAgICArCSAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287IH0gX190ZW1wID0g
eyBfX2IgfTsJCSAgICBcDQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QyX2xhbmUjI21vZGUg
KChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kXyAjIyBwdHJfbW9kZSAqKSBcDQogICAgKwkJCQkgICAg
X19wdHIsIF9fdGVtcC5fX28sIF9fYyk7CQkgICAgXA0KICAgICt9DQogICAgKw0KICAgICtfX1NU
Ml9MQU5FX0ZVTkMgKGZsb2F0MTZ4OHgyX3QsIGZsb2F0MTZfdCwgdjhoZiwgaGYsIGYxNikNCiAg
ICArX19TVDJfTEFORV9GVU5DIChmbG9hdDMyeDR4Ml90LCBmbG9hdDMyX3QsIHY0c2YsIHNmLCBm
MzIpDQogICAgK19fU1QyX0xBTkVfRlVOQyAoZmxvYXQ2NHgyeDJfdCwgZmxvYXQ2NF90LCB2MmRm
LCBkZiwgZjY0KQ0KICAgICtfX1NUMl9MQU5FX0ZVTkMgKHBvbHk4eDE2eDJfdCwgcG9seThfdCwg
djE2cWksIHFpLCBwOCkNCiAgICArX19TVDJfTEFORV9GVU5DIChwb2x5MTZ4OHgyX3QsIHBvbHkx
Nl90LCB2OGhpLCBoaSwgcDE2KQ0KICAgICtfX1NUMl9MQU5FX0ZVTkMgKHBvbHk2NHgyeDJfdCwg
cG9seTY0X3QsIHYyZGksIGRpLCBwNjQpDQogICAgK19fU1QyX0xBTkVfRlVOQyAoaW50OHgxNngy
X3QsIGludDhfdCwgdjE2cWksIHFpLCBzOCkNCiAgICArX19TVDJfTEFORV9GVU5DIChpbnQxNng4
eDJfdCwgaW50MTZfdCwgdjhoaSwgaGksIHMxNikNCiAgICArX19TVDJfTEFORV9GVU5DIChpbnQz
Mng0eDJfdCwgaW50MzJfdCwgdjRzaSwgc2ksIHMzMikNCiAgICArX19TVDJfTEFORV9GVU5DIChp
bnQ2NHgyeDJfdCwgaW50NjRfdCwgdjJkaSwgZGksIHM2NCkNCiAgICArX19TVDJfTEFORV9GVU5D
ICh1aW50OHgxNngyX3QsIHVpbnQ4X3QsIHYxNnFpLCBxaSwgdTgpDQogICAgK19fU1QyX0xBTkVf
RlVOQyAodWludDE2eDh4Ml90LCB1aW50MTZfdCwgdjhoaSwgaGksIHUxNikNCiAgICArX19TVDJf
TEFORV9GVU5DICh1aW50MzJ4NHgyX3QsIHVpbnQzMl90LCB2NHNpLCBzaSwgdTMyKQ0KICAgICtf
X1NUMl9MQU5FX0ZVTkMgKHVpbnQ2NHgyeDJfdCwgdWludDY0X3QsIHYyZGksIGRpLCB1NjQpDQog
ICAgKw0KICAgICsjZGVmaW5lIF9fU1QzX0xBTkVfRlVOQyhpbnR5cGUsIGxhcmdldHlwZSwgcHRy
dHlwZSwgbW9kZSwJCSAgICAgXA0KICAgICsJCQlxbW9kZSwgcHRyX21vZGUsIGZ1bmNzdWZmaXgs
IHNpZ25lZHR5cGUpCSAgICAgXA0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2
b2lkCQkJCQkgICAgIFwNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKSBcDQogICAgK3ZzdDNfbGFuZV8gIyMgZnVu
Y3N1ZmZpeCAocHRydHlwZSAqX19wdHIsCQkJCSAgICAgXA0KICAgICsJCQkgIGludHlwZSBfX2Is
IGNvbnN0IGludCBfX2MpCQkJICAgICBcDQogICAgK3sJCQkJCQkJCQkgICAgIFwNCiAgICArICBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsJCQkJCSAgICAgXA0KICAgICsgIGxhcmdldHlw
ZSBfX3RlbXA7CQkJCQkJCSAgICAgXA0KICAgICsgIF9fdGVtcC52YWxbMF0JCQkJCQkJCSAgICAg
XA0KICAgICsgICAgPSB2Y29tYmluZV8jI2Z1bmNzdWZmaXggKF9fYi52YWxbMF0sCQkJCSAgICAg
XA0KICAgICsJCQkgICAgIHZjcmVhdGVfIyNmdW5jc3VmZml4IChfX0FBUkNINjRfVUlOVDY0X0Mg
KDApKSk7IFwNCiAgICArICBfX3RlbXAudmFsWzFdCQkJCQkJCQkgICAgIFwNCiAgICArICAgID0g
dmNvbWJpbmVfIyNmdW5jc3VmZml4IChfX2IudmFsWzFdLAkJCQkgICAgIFwNCiAgICArCQkJICAg
ICB2Y3JlYXRlXyMjZnVuY3N1ZmZpeCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOyBcDQogICAg
KyAgX190ZW1wLnZhbFsyXQkJCQkJCQkJICAgICBcDQogICAgKyAgICA9IHZjb21iaW5lXyMjZnVu
Y3N1ZmZpeCAoX19iLnZhbFsyXSwJCQkJICAgICBcDQogICAgKwkJCSAgICAgdmNyZWF0ZV8jI2Z1
bmNzdWZmaXggKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsgXA0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X3NldF9xcmVnY2kjI3Ftb2RlIChfX28sCQkJICAgICBcDQogICAgKwkJCQkJ
ICAgICAoc2lnbmVkdHlwZSkgX190ZW1wLnZhbFswXSwgMCk7IFwNCiAgICArICBfX28gPSBfX2J1
aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpIyNxbW9kZSAoX19vLAkJCSAgICAgXA0KICAgICsJCQkJ
CSAgICAgKHNpZ25lZHR5cGUpIF9fdGVtcC52YWxbMV0sIDEpOyBcDQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaSMjcW1vZGUgKF9fbywJCQkgICAgIFwNCiAgICArCQkJ
CQkgICAgIChzaWduZWR0eXBlKSBfX3RlbXAudmFsWzJdLCAyKTsgXA0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3N0M19sYW5lIyNtb2RlICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF8gIyMgcHRy
X21vZGUgKikgIFwNCiAgICArCQkJCSAgICAgX19wdHIsIF9fbywgX19jKTsJCQkgICAgIFwNCiAg
ICArfQ0KICAgICsNCiAgICArX19TVDNfTEFORV9GVU5DIChmbG9hdDE2eDR4M190LCBmbG9hdDE2
eDh4M190LCBmbG9hdDE2X3QsIHY0aGYsIHY4aGYsIGhmLCBmMTYsDQogICAgKwkJIGZsb2F0MTZ4
OF90KQ0KICAgICtfX1NUM19MQU5FX0ZVTkMgKGZsb2F0MzJ4MngzX3QsIGZsb2F0MzJ4NHgzX3Qs
IGZsb2F0MzJfdCwgdjJzZiwgdjRzZiwgc2YsIGYzMiwNCiAgICArCQkgZmxvYXQzMng0X3QpDQog
ICAgK19fU1QzX0xBTkVfRlVOQyAoZmxvYXQ2NHgxeDNfdCwgZmxvYXQ2NHgyeDNfdCwgZmxvYXQ2
NF90LCBkZiwgdjJkZiwgZGYsIGY2NCwNCiAgICArCQkgZmxvYXQ2NHgyX3QpDQogICAgK19fU1Qz
X0xBTkVfRlVOQyAocG9seTh4OHgzX3QsIHBvbHk4eDE2eDNfdCwgcG9seThfdCwgdjhxaSwgdjE2
cWksIHFpLCBwOCwNCiAgICArCQkgaW50OHgxNl90KQ0KICAgICtfX1NUM19MQU5FX0ZVTkMgKHBv
bHkxNng0eDNfdCwgcG9seTE2eDh4M190LCBwb2x5MTZfdCwgdjRoaSwgdjhoaSwgaGksIHAxNiwN
CiAgICArCQkgaW50MTZ4OF90KQ0KICAgICtfX1NUM19MQU5FX0ZVTkMgKHBvbHk2NHgxeDNfdCwg
cG9seTY0eDJ4M190LCBwb2x5NjRfdCwgZGksIHYyZGlfc3NwcywgZGksIHA2NCwNCiAgICArCQkg
cG9seTY0eDJfdCkNCiAgICArX19TVDNfTEFORV9GVU5DIChpbnQ4eDh4M190LCBpbnQ4eDE2eDNf
dCwgaW50OF90LCB2OHFpLCB2MTZxaSwgcWksIHM4LA0KICAgICsJCSBpbnQ4eDE2X3QpDQogICAg
K19fU1QzX0xBTkVfRlVOQyAoaW50MTZ4NHgzX3QsIGludDE2eDh4M190LCBpbnQxNl90LCB2NGhp
LCB2OGhpLCBoaSwgczE2LA0KICAgICsJCSBpbnQxNng4X3QpDQogICAgK19fU1QzX0xBTkVfRlVO
QyAoaW50MzJ4MngzX3QsIGludDMyeDR4M190LCBpbnQzMl90LCB2MnNpLCB2NHNpLCBzaSwgczMy
LA0KICAgICsJCSBpbnQzMng0X3QpDQogICAgK19fU1QzX0xBTkVfRlVOQyAoaW50NjR4MXgzX3Qs
IGludDY0eDJ4M190LCBpbnQ2NF90LCBkaSwgdjJkaSwgZGksIHM2NCwNCiAgICArCQkgaW50NjR4
Ml90KQ0KICAgICtfX1NUM19MQU5FX0ZVTkMgKHVpbnQ4eDh4M190LCB1aW50OHgxNngzX3QsIHVp
bnQ4X3QsIHY4cWksIHYxNnFpLCBxaSwgdTgsDQogICAgKwkJIGludDh4MTZfdCkNCiAgICArX19T
VDNfTEFORV9GVU5DICh1aW50MTZ4NHgzX3QsIHVpbnQxNng4eDNfdCwgdWludDE2X3QsIHY0aGks
IHY4aGksIGhpLCB1MTYsDQogICAgKwkJIGludDE2eDhfdCkNCiAgICArX19TVDNfTEFORV9GVU5D
ICh1aW50MzJ4MngzX3QsIHVpbnQzMng0eDNfdCwgdWludDMyX3QsIHYyc2ksIHY0c2ksIHNpLCB1
MzIsDQogICAgKwkJIGludDMyeDRfdCkNCiAgICArX19TVDNfTEFORV9GVU5DICh1aW50NjR4MXgz
X3QsIHVpbnQ2NHgyeDNfdCwgdWludDY0X3QsIGRpLCB2MmRpLCBkaSwgdTY0LA0KICAgICsJCSBp
bnQ2NHgyX3QpDQogICAgKw0KICAgICsjdW5kZWYgX19TVDNfTEFORV9GVU5DDQogICAgKyNkZWZp
bmUgX19TVDNfTEFORV9GVU5DKGludHlwZSwgcHRydHlwZSwgbW9kZSwgcHRyX21vZGUsIGZ1bmNz
dWZmaXgpCSAgICBcDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQJCQkJ
CSAgICBcDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkgXA0KICAgICt2c3QzcV9sYW5lXyAjIyBmdW5jc3VmZml4
IChwdHJ0eXBlICpfX3B0ciwJCQkJICAgIFwNCiAgICArCQkJICAgaW50eXBlIF9fYiwgY29uc3Qg
aW50IF9fYykJCQkgICAgXA0KICAgICt7CQkJCQkJCQkJICAgIFwNCiAgICArICB1bmlvbiB7IGlu
dHlwZSBfX2k7CQkJCQkJCSAgICBcDQogICAgKwkgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kg
X19vOyB9IF9fdGVtcCA9IHsgX19iIH07CQkgICAgXA0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3N0M19sYW5lIyNtb2RlICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF8gIyMgcHRyX21vZGUgKikg
XA0KICAgICsJCQkJICAgIF9fcHRyLCBfX3RlbXAuX19vLCBfX2MpOwkJICAgIFwNCiAgICArfQ0K
ICAgICsNCiAgICArX19TVDNfTEFORV9GVU5DIChmbG9hdDE2eDh4M190LCBmbG9hdDE2X3QsIHY4
aGYsIGhmLCBmMTYpDQogICAgK19fU1QzX0xBTkVfRlVOQyAoZmxvYXQzMng0eDNfdCwgZmxvYXQz
Ml90LCB2NHNmLCBzZiwgZjMyKQ0KICAgICtfX1NUM19MQU5FX0ZVTkMgKGZsb2F0NjR4MngzX3Qs
IGZsb2F0NjRfdCwgdjJkZiwgZGYsIGY2NCkNCiAgICArX19TVDNfTEFORV9GVU5DIChwb2x5OHgx
NngzX3QsIHBvbHk4X3QsIHYxNnFpLCBxaSwgcDgpDQogICAgK19fU1QzX0xBTkVfRlVOQyAocG9s
eTE2eDh4M190LCBwb2x5MTZfdCwgdjhoaSwgaGksIHAxNikNCiAgICArX19TVDNfTEFORV9GVU5D
IChwb2x5NjR4MngzX3QsIHBvbHk2NF90LCB2MmRpLCBkaSwgcDY0KQ0KICAgICtfX1NUM19MQU5F
X0ZVTkMgKGludDh4MTZ4M190LCBpbnQ4X3QsIHYxNnFpLCBxaSwgczgpDQogICAgK19fU1QzX0xB
TkVfRlVOQyAoaW50MTZ4OHgzX3QsIGludDE2X3QsIHY4aGksIGhpLCBzMTYpDQogICAgK19fU1Qz
X0xBTkVfRlVOQyAoaW50MzJ4NHgzX3QsIGludDMyX3QsIHY0c2ksIHNpLCBzMzIpDQogICAgK19f
U1QzX0xBTkVfRlVOQyAoaW50NjR4MngzX3QsIGludDY0X3QsIHYyZGksIGRpLCBzNjQpDQogICAg
K19fU1QzX0xBTkVfRlVOQyAodWludDh4MTZ4M190LCB1aW50OF90LCB2MTZxaSwgcWksIHU4KQ0K
ICAgICtfX1NUM19MQU5FX0ZVTkMgKHVpbnQxNng4eDNfdCwgdWludDE2X3QsIHY4aGksIGhpLCB1
MTYpDQogICAgK19fU1QzX0xBTkVfRlVOQyAodWludDMyeDR4M190LCB1aW50MzJfdCwgdjRzaSwg
c2ksIHUzMikNCiAgICArX19TVDNfTEFORV9GVU5DICh1aW50NjR4MngzX3QsIHVpbnQ2NF90LCB2
MmRpLCBkaSwgdTY0KQ0KICAgICsNCiAgICArI2RlZmluZSBfX1NUNF9MQU5FX0ZVTkMoaW50eXBl
LCBsYXJnZXR5cGUsIHB0cnR5cGUsIG1vZGUsCQkgICAgIFwNCiAgICArCQkJcW1vZGUsIHB0cl9t
b2RlLCBmdW5jc3VmZml4LCBzaWduZWR0eXBlKQkgICAgIFwNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdm9pZAkJCQkJICAgICBcDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkgXA0KICAgICt2
c3Q0X2xhbmVfICMjIGZ1bmNzdWZmaXggKHB0cnR5cGUgKl9fcHRyLAkJCQkgICAgIFwNCiAgICAr
CQkJICBpbnR5cGUgX19iLCBjb25zdCBpbnQgX19jKQkJCSAgICAgXA0KICAgICt7CQkJCQkJCQkJ
ICAgICBcDQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287CQkJCQkgICAgIFwN
CiAgICArICBsYXJnZXR5cGUgX190ZW1wOwkJCQkJCQkgICAgIFwNCiAgICArICBfX3RlbXAudmFs
WzBdCQkJCQkJCQkgICAgIFwNCiAgICArICAgID0gdmNvbWJpbmVfIyNmdW5jc3VmZml4IChfX2Iu
dmFsWzBdLAkJCQkgICAgIFwNCiAgICArCQkJICAgICB2Y3JlYXRlXyMjZnVuY3N1ZmZpeCAoX19B
QVJDSDY0X1VJTlQ2NF9DICgwKSkpOyBcDQogICAgKyAgX190ZW1wLnZhbFsxXQkJCQkJCQkJICAg
ICBcDQogICAgKyAgICA9IHZjb21iaW5lXyMjZnVuY3N1ZmZpeCAoX19iLnZhbFsxXSwJCQkJICAg
ICBcDQogICAgKwkJCSAgICAgdmNyZWF0ZV8jI2Z1bmNzdWZmaXggKF9fQUFSQ0g2NF9VSU5UNjRf
QyAoMCkpKTsgXA0KICAgICsgIF9fdGVtcC52YWxbMl0JCQkJCQkJCSAgICAgXA0KICAgICsgICAg
PSB2Y29tYmluZV8jI2Z1bmNzdWZmaXggKF9fYi52YWxbMl0sCQkJCSAgICAgXA0KICAgICsJCQkg
ICAgIHZjcmVhdGVfIyNmdW5jc3VmZml4IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7IFwNCiAg
ICArICBfX3RlbXAudmFsWzNdCQkJCQkJCQkgICAgIFwNCiAgICArICAgID0gdmNvbWJpbmVfIyNm
dW5jc3VmZml4IChfX2IudmFsWzNdLAkJCQkgICAgIFwNCiAgICArCQkJICAgICB2Y3JlYXRlXyMj
ZnVuY3N1ZmZpeCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOyBcDQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aSMjcW1vZGUgKF9fbywJCQkgICAgIFwNCiAgICArCQkJ
CQkgICAgIChzaWduZWR0eXBlKSBfX3RlbXAudmFsWzBdLCAwKTsgXA0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGkjI3Ftb2RlIChfX28sCQkJICAgICBcDQogICAgKwkJ
CQkJICAgICAoc2lnbmVkdHlwZSkgX190ZW1wLnZhbFsxXSwgMSk7IFwNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpIyNxbW9kZSAoX19vLAkJCSAgICAgXA0KICAgICsJ
CQkJCSAgICAgKHNpZ25lZHR5cGUpIF9fdGVtcC52YWxbMl0sIDIpOyBcDQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aSMjcW1vZGUgKF9fbywJCQkgICAgIFwNCiAgICAr
CQkJCQkgICAgIChzaWduZWR0eXBlKSBfX3RlbXAudmFsWzNdLCAzKTsgXA0KICAgICsgIF9fYnVp
bHRpbl9hYXJjaDY0X3N0NF9sYW5lIyNtb2RlICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF8gIyMg
cHRyX21vZGUgKikgIFwNCiAgICArCQkJCSAgICAgX19wdHIsIF9fbywgX19jKTsJCQkgICAgIFwN
CiAgICArfQ0KICAgICsNCiAgICArX19TVDRfTEFORV9GVU5DIChmbG9hdDE2eDR4NF90LCBmbG9h
dDE2eDh4NF90LCBmbG9hdDE2X3QsIHY0aGYsIHY4aGYsIGhmLCBmMTYsDQogICAgKwkJIGZsb2F0
MTZ4OF90KQ0KICAgICtfX1NUNF9MQU5FX0ZVTkMgKGZsb2F0MzJ4Mng0X3QsIGZsb2F0MzJ4NHg0
X3QsIGZsb2F0MzJfdCwgdjJzZiwgdjRzZiwgc2YsIGYzMiwNCiAgICArCQkgZmxvYXQzMng0X3Qp
DQogICAgK19fU1Q0X0xBTkVfRlVOQyAoZmxvYXQ2NHgxeDRfdCwgZmxvYXQ2NHgyeDRfdCwgZmxv
YXQ2NF90LCBkZiwgdjJkZiwgZGYsIGY2NCwNCiAgICArCQkgZmxvYXQ2NHgyX3QpDQogICAgK19f
U1Q0X0xBTkVfRlVOQyAocG9seTh4OHg0X3QsIHBvbHk4eDE2eDRfdCwgcG9seThfdCwgdjhxaSwg
djE2cWksIHFpLCBwOCwNCiAgICArCQkgaW50OHgxNl90KQ0KICAgICtfX1NUNF9MQU5FX0ZVTkMg
KHBvbHkxNng0eDRfdCwgcG9seTE2eDh4NF90LCBwb2x5MTZfdCwgdjRoaSwgdjhoaSwgaGksIHAx
NiwNCiAgICArCQkgaW50MTZ4OF90KQ0KICAgICtfX1NUNF9MQU5FX0ZVTkMgKHBvbHk2NHgxeDRf
dCwgcG9seTY0eDJ4NF90LCBwb2x5NjRfdCwgZGksIHYyZGlfc3NwcywgZGksIHA2NCwNCiAgICAr
CQkgcG9seTY0eDJfdCkNCiAgICArX19TVDRfTEFORV9GVU5DIChpbnQ4eDh4NF90LCBpbnQ4eDE2
eDRfdCwgaW50OF90LCB2OHFpLCB2MTZxaSwgcWksIHM4LA0KICAgICsJCSBpbnQ4eDE2X3QpDQog
ICAgK19fU1Q0X0xBTkVfRlVOQyAoaW50MTZ4NHg0X3QsIGludDE2eDh4NF90LCBpbnQxNl90LCB2
NGhpLCB2OGhpLCBoaSwgczE2LA0KICAgICsJCSBpbnQxNng4X3QpDQogICAgK19fU1Q0X0xBTkVf
RlVOQyAoaW50MzJ4Mng0X3QsIGludDMyeDR4NF90LCBpbnQzMl90LCB2MnNpLCB2NHNpLCBzaSwg
czMyLA0KICAgICsJCSBpbnQzMng0X3QpDQogICAgK19fU1Q0X0xBTkVfRlVOQyAoaW50NjR4MXg0
X3QsIGludDY0eDJ4NF90LCBpbnQ2NF90LCBkaSwgdjJkaSwgZGksIHM2NCwNCiAgICArCQkgaW50
NjR4Ml90KQ0KICAgICtfX1NUNF9MQU5FX0ZVTkMgKHVpbnQ4eDh4NF90LCB1aW50OHgxNng0X3Qs
IHVpbnQ4X3QsIHY4cWksIHYxNnFpLCBxaSwgdTgsDQogICAgKwkJIGludDh4MTZfdCkNCiAgICAr
X19TVDRfTEFORV9GVU5DICh1aW50MTZ4NHg0X3QsIHVpbnQxNng4eDRfdCwgdWludDE2X3QsIHY0
aGksIHY4aGksIGhpLCB1MTYsDQogICAgKwkJIGludDE2eDhfdCkNCiAgICArX19TVDRfTEFORV9G
VU5DICh1aW50MzJ4Mng0X3QsIHVpbnQzMng0eDRfdCwgdWludDMyX3QsIHYyc2ksIHY0c2ksIHNp
LCB1MzIsDQogICAgKwkJIGludDMyeDRfdCkNCiAgICArX19TVDRfTEFORV9GVU5DICh1aW50NjR4
MXg0X3QsIHVpbnQ2NHgyeDRfdCwgdWludDY0X3QsIGRpLCB2MmRpLCBkaSwgdTY0LA0KICAgICsJ
CSBpbnQ2NHgyX3QpDQogICAgKw0KICAgICsjdW5kZWYgX19TVDRfTEFORV9GVU5DDQogICAgKyNk
ZWZpbmUgX19TVDRfTEFORV9GVU5DKGludHlwZSwgcHRydHlwZSwgbW9kZSwgcHRyX21vZGUsIGZ1
bmNzdWZmaXgpCSAgICBcDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQJ
CQkJCSAgICBcDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkgXA0KICAgICt2c3Q0cV9sYW5lXyAjIyBmdW5jc3Vm
Zml4IChwdHJ0eXBlICpfX3B0ciwJCQkJICAgIFwNCiAgICArCQkJICAgaW50eXBlIF9fYiwgY29u
c3QgaW50IF9fYykJCQkgICAgXA0KICAgICt7CQkJCQkJCQkJICAgIFwNCiAgICArICB1bmlvbiB7
IGludHlwZSBfX2k7CQkJCQkJCSAgICBcDQogICAgKwkgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
eGkgX19vOyB9IF9fdGVtcCA9IHsgX19iIH07CQkgICAgXA0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3N0NF9sYW5lIyNtb2RlICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF8gIyMgcHRyX21vZGUg
KikgXA0KICAgICsJCQkJICAgIF9fcHRyLCBfX3RlbXAuX19vLCBfX2MpOwkJICAgIFwNCiAgICAr
fQ0KICAgICsNCiAgICArX19TVDRfTEFORV9GVU5DIChmbG9hdDE2eDh4NF90LCBmbG9hdDE2X3Qs
IHY4aGYsIGhmLCBmMTYpDQogICAgK19fU1Q0X0xBTkVfRlVOQyAoZmxvYXQzMng0eDRfdCwgZmxv
YXQzMl90LCB2NHNmLCBzZiwgZjMyKQ0KICAgICtfX1NUNF9MQU5FX0ZVTkMgKGZsb2F0NjR4Mng0
X3QsIGZsb2F0NjRfdCwgdjJkZiwgZGYsIGY2NCkNCiAgICArX19TVDRfTEFORV9GVU5DIChwb2x5
OHgxNng0X3QsIHBvbHk4X3QsIHYxNnFpLCBxaSwgcDgpDQogICAgK19fU1Q0X0xBTkVfRlVOQyAo
cG9seTE2eDh4NF90LCBwb2x5MTZfdCwgdjhoaSwgaGksIHAxNikNCiAgICArX19TVDRfTEFORV9G
VU5DIChwb2x5NjR4Mng0X3QsIHBvbHk2NF90LCB2MmRpLCBkaSwgcDY0KQ0KICAgICtfX1NUNF9M
QU5FX0ZVTkMgKGludDh4MTZ4NF90LCBpbnQ4X3QsIHYxNnFpLCBxaSwgczgpDQogICAgK19fU1Q0
X0xBTkVfRlVOQyAoaW50MTZ4OHg0X3QsIGludDE2X3QsIHY4aGksIGhpLCBzMTYpDQogICAgK19f
U1Q0X0xBTkVfRlVOQyAoaW50MzJ4NHg0X3QsIGludDMyX3QsIHY0c2ksIHNpLCBzMzIpDQogICAg
K19fU1Q0X0xBTkVfRlVOQyAoaW50NjR4Mng0X3QsIGludDY0X3QsIHYyZGksIGRpLCBzNjQpDQog
ICAgK19fU1Q0X0xBTkVfRlVOQyAodWludDh4MTZ4NF90LCB1aW50OF90LCB2MTZxaSwgcWksIHU4
KQ0KICAgICtfX1NUNF9MQU5FX0ZVTkMgKHVpbnQxNng4eDRfdCwgdWludDE2X3QsIHY4aGksIGhp
LCB1MTYpDQogICAgK19fU1Q0X0xBTkVfRlVOQyAodWludDMyeDR4NF90LCB1aW50MzJfdCwgdjRz
aSwgc2ksIHUzMikNCiAgICArX19TVDRfTEFORV9GVU5DICh1aW50NjR4Mng0X3QsIHVpbnQ2NF90
LCB2MmRpLCBkaSwgdTY0KQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRsdl9zMzIgKGludDMyeDJfdCBh
KQ0KICAgICt7DQogICAgKyAgaW50NjRfdCByZXN1bHQ7DQogICAgKyAgX19hc21fXyAoInNhZGRs
cCAlMC4xZCwgJTEuMnMiIDogIj13IihyZXN1bHQpIDogInciKGEpIDogKTsNCiAgICArICByZXR1
cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRsdl91MzIgKHVpbnQzMngy
X3QgYSkNCiAgICArew0KICAgICsgIHVpbnQ2NF90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgi
dWFkZGxwICUwLjFkLCAlMS4ycyIgOiAiPXciKHJlc3VsdCkgOiAidyIoYSkgOiApOw0KICAgICsg
IHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG11bGhfbGFuZXFf
czE2IChpbnQxNng0X3QgX19hLCBpbnQxNng4X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11bGhfbGFuZXF2NGhpIChfX2Es
IF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbXVsaF9sYW5lcV9zMzIg
KGludDMyeDJfdCBfX2EsIGludDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbXVsaF9sYW5lcXYyc2kgKF9fYSwgX19i
LCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtdWxocV9sYW5lcV9zMTYgKGlu
dDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbXVsaF9sYW5lcXY4aGkgKF9fYSwgX19iLCBf
X2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtdWxocV9sYW5lcV9zMzIgKGludDMy
eDRfdCBfX2EsIGludDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbXVsaF9sYW5lcXY0c2kgKF9fYSwgX19iLCBfX2Mp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbXVsaF9sYW5lcV9zMTYgKGludDE2eDRf
dCBfX2EsIGludDE2eDhfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1
cm4gIF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRtdWxoX2xhbmVxdjRoaSAoX19hLCBfX2IsIF9fYyk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMy
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcmRtdWxoX2xhbmVxX3MzMiAoaW50MzJ4Ml90
IF9fYSwgaW50MzJ4NF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbXVsaF9sYW5lcXYyc2kgKF9fYSwgX19iLCBfX2MpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbXVsaHFfbGFuZXFfczE2IChpbnQxNng4X3Qg
X19hLCBpbnQxNng4X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRtdWxoX2xhbmVxdjhoaSAoX19hLCBfX2IsIF9fYyk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcmRtdWxocV9sYW5lcV9zMzIgKGludDMyeDRfdCBf
X2EsIGludDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfc3FyZG11bGhfbGFuZXF2NHNpIChfX2EsIF9fYiwgX19jKTsNCiAg
ICArfQ0KICAgICsNCiAgICArLyogVGFibGUgaW50cmluc2ljcy4gICovDQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cXRibDFfcDggKHBvbHk4eDE2X3QgYSwgdWludDh4OF90IGIpDQogICAgK3sNCiAgICAr
ICBwb2x5OHg4X3QgcmVzdWx0Ow0KICAgICsgIF9fYXNtX18gKCJ0YmwgJTAuOGIsIHslMS4xNmJ9
LCAlMi44YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAg
IDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsN
CiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJsMV9z
OCAoaW50OHgxNl90IGEsIHVpbnQ4eDhfdCBiKQ0KICAgICt7DQogICAgKyAgaW50OHg4X3QgcmVz
dWx0Ow0KICAgICsgIF9fYXNtX18gKCJ0YmwgJTAuOGIsIHslMS4xNmJ9LCAlMi44YiINCiAgICAr
ICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIo
YikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4g
cmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXRibDFfdTggKHVpbnQ4eDE2X3Qg
YSwgdWludDh4OF90IGIpDQogICAgK3sNCiAgICArICB1aW50OHg4X3QgcmVzdWx0Ow0KICAgICsg
IF9fYXNtX18gKCJ0YmwgJTAuOGIsIHslMS4xNmJ9LCAlMi44YiINCiAgICArICAgICAgICAgICA6
ICI9dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAg
ICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHgxNl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YmwxcV9wOCAocG9seTh4MTZfdCBhLCB1aW50OHgx
Nl90IGIpDQogICAgK3sNCiAgICArICBwb2x5OHgxNl90IHJlc3VsdDsNCiAgICArICBfX2FzbV9f
ICgidGJsICUwLjE2YiwgeyUxLjE2Yn0sICUyLjE2YiINCiAgICArICAgICAgICAgICA6ICI9dyIo
cmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAg
ICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cXRibDFxX3M4IChpbnQ4eDE2X3QgYSwgdWludDh4MTZfdCBiKQ0K
ICAgICt7DQogICAgKyAgaW50OHgxNl90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidGJsICUw
LjE2YiwgeyUxLjE2Yn0sICUyLjE2YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0K
ICAgICsgICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5v
IGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnF0YmwxcV91OCAodWludDh4MTZfdCBhLCB1aW50OHgxNl90IGIpDQogICAgK3sN
CiAgICArICB1aW50OHgxNl90IHJlc3VsdDsNCiAgICArICBfX2FzbV9fICgidGJsICUwLjE2Yiwg
eyUxLjE2Yn0sICUyLjE2YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVzdWx0KQ0KICAgICsg
ICAgICAgICAgIDogInciKGEpLCAidyIoYikNCiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2Ji
ZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZxdGJ4MV9zOCAoaW50OHg4X3QgciwgaW50OHgxNl90IHRhYiwgdWludDh4OF90IGlkeCkNCiAg
ICArew0KICAgICsgIGludDh4OF90IHJlc3VsdCA9IHI7DQogICAgKyAgX19hc21fXyAoInRieCAl
MC44Yix7JTEuMTZifSwlMi44YiINCiAgICArICAgICAgICAgICA6ICIrdyIocmVzdWx0KQ0KICAg
ICsgICAgICAgICAgIDogInciKHRhYiksICJ3IihpZHgpDQogICAgKyAgICAgICAgICAgOiAvKiBO
byBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnF0YngxX3U4ICh1aW50OHg4X3QgciwgdWludDh4MTZfdCB0YWIsIHVpbnQ4eDhf
dCBpZHgpDQogICAgK3sNCiAgICArICB1aW50OHg4X3QgcmVzdWx0ID0gcjsNCiAgICArICBfX2Fz
bV9fICgidGJ4ICUwLjhiLHslMS4xNmJ9LCUyLjhiIg0KICAgICsgICAgICAgICAgIDogIit3Iihy
ZXN1bHQpDQogICAgKyAgICAgICAgICAgOiAidyIodGFiKSwgInciKGlkeCkNCiAgICArICAgICAg
ICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cXRieDFfcDggKHBvbHk4eDhfdCByLCBwb2x5OHgxNl90IHRh
YiwgdWludDh4OF90IGlkeCkNCiAgICArew0KICAgICsgIHBvbHk4eDhfdCByZXN1bHQgPSByOw0K
ICAgICsgIF9fYXNtX18gKCJ0YnggJTAuOGIseyUxLjE2Yn0sJTIuOGIiDQogICAgKyAgICAgICAg
ICAgOiAiK3ciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3Iih0YWIpLCAidyIoaWR4KQ0K
ICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1
bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJ4MXFfczggKGludDh4MTZfdCByLCBp
bnQ4eDE2X3QgdGFiLCB1aW50OHgxNl90IGlkeCkNCiAgICArew0KICAgICsgIGludDh4MTZfdCBy
ZXN1bHQgPSByOw0KICAgICsgIF9fYXNtX18gKCJ0YnggJTAuMTZiLHslMS4xNmJ9LCUyLjE2YiIN
CiAgICArICAgICAgICAgICA6ICIrdyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKHRh
YiksICJ3IihpZHgpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAg
KyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJ4MXFfdTgg
KHVpbnQ4eDE2X3QgciwgdWludDh4MTZfdCB0YWIsIHVpbnQ4eDE2X3QgaWR4KQ0KICAgICt7DQog
ICAgKyAgdWludDh4MTZfdCByZXN1bHQgPSByOw0KICAgICsgIF9fYXNtX18gKCJ0YnggJTAuMTZi
LHslMS4xNmJ9LCUyLjE2YiINCiAgICArICAgICAgICAgICA6ICIrdyIocmVzdWx0KQ0KICAgICsg
ICAgICAgICAgIDogInciKHRhYiksICJ3IihpZHgpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBj
bG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZxdGJ4MXFfcDggKHBvbHk4eDE2X3QgciwgcG9seTh4MTZfdCB0YWIsIHVpbnQ4eDE2
X3QgaWR4KQ0KICAgICt7DQogICAgKyAgcG9seTh4MTZfdCByZXN1bHQgPSByOw0KICAgICsgIF9f
YXNtX18gKCJ0YnggJTAuMTZiLHslMS4xNmJ9LCUyLjE2YiINCiAgICArICAgICAgICAgICA6ICIr
dyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKHRhYiksICJ3IihpZHgpDQogICAgKyAg
ICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAg
ICArfQ0KICAgICsNCiAgICArLyogVjcgbGVnYWN5IHRhYmxlIGludHJpbnNpY3MuICAqLw0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2dGJsMV9zOCAoaW50OHg4X3QgdGFiLCBpbnQ4eDhfdCBpZHgpDQogICAg
K3sNCiAgICArICBpbnQ4eDhfdCByZXN1bHQ7DQogICAgKyAgaW50OHgxNl90IHRlbXAgPSB2Y29t
YmluZV9zOCAodGFiLCB2Y3JlYXRlX3M4IChfX0FBUkNINjRfVUlOVDY0X0MgKDB4MCkpKTsNCiAg
ICArICBfX2FzbV9fICgidGJsICUwLjhiLCB7JTEuMTZifSwgJTIuOGIiDQogICAgKyAgICAgICAg
ICAgOiAiPXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3Iih0ZW1wKSwgInciKGlkeCkN
CiAgICArICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVz
dWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dGJsMV91OCAodWludDh4OF90IHRhYiwg
dWludDh4OF90IGlkeCkNCiAgICArew0KICAgICsgIHVpbnQ4eDhfdCByZXN1bHQ7DQogICAgKyAg
dWludDh4MTZfdCB0ZW1wID0gdmNvbWJpbmVfdTggKHRhYiwgdmNyZWF0ZV91OCAoX19BQVJDSDY0
X1VJTlQ2NF9DICgweDApKSk7DQogICAgKyAgX19hc21fXyAoInRibCAlMC44YiwgeyUxLjE2Yn0s
ICUyLjhiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1bHQpDQogICAgKyAgICAgICAgICAg
OiAidyIodGVtcCksICJ3IihpZHgpDQogICAgKyAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAq
Lyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRi
bDFfcDggKHBvbHk4eDhfdCB0YWIsIHVpbnQ4eDhfdCBpZHgpDQogICAgK3sNCiAgICArICBwb2x5
OHg4X3QgcmVzdWx0Ow0KICAgICsgIHBvbHk4eDE2X3QgdGVtcCA9IHZjb21iaW5lX3A4ICh0YWIs
IHZjcmVhdGVfcDggKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOw0KICAgICsgIF9fYXNtX18g
KCJ0YmwgJTAuOGIsIHslMS4xNmJ9LCAlMi44YiINCiAgICArICAgICAgICAgICA6ICI9dyIocmVz
dWx0KQ0KICAgICsgICAgICAgICAgIDogInciKHRlbXApLCAidyIoaWR4KQ0KICAgICsgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnRibDJfczggKGludDh4OHgyX3QgdGFiLCBpbnQ4eDhfdCBpZHgp
DQogICAgK3sNCiAgICArICBpbnQ4eDhfdCByZXN1bHQ7DQogICAgKyAgaW50OHgxNl90IHRlbXAg
PSB2Y29tYmluZV9zOCAodGFiLnZhbFswXSwgdGFiLnZhbFsxXSk7DQogICAgKyAgX19hc21fXyAo
InRibCAlMC44YiwgeyUxLjE2Yn0sICUyLjhiIg0KICAgICsgICAgICAgICAgIDogIj13IihyZXN1
bHQpDQogICAgKyAgICAgICAgICAgOiAidyIodGVtcCksICJ3IihpZHgpDQogICAgKyAgICAgICAg
ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnRibDJfdTggKHVpbnQ4eDh4Ml90IHRhYiwgdWludDh4OF90IGlk
eCkNCiAgICArew0KICAgICsgIHVpbnQ4eDhfdCByZXN1bHQ7DQogICAgKyAgdWludDh4MTZfdCB0
ZW1wID0gdmNvbWJpbmVfdTggKHRhYi52YWxbMF0sIHRhYi52YWxbMV0pOw0KICAgICsgIF9fYXNt
X18gKCJ0YmwgJTAuOGIsIHslMS4xNmJ9LCAlMi44YiINCiAgICArICAgICAgICAgICA6ICI9dyIo
cmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKHRlbXApLCAidyIoaWR4KQ0KICAgICsgICAg
ICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3Z0YmwyX3A4IChwb2x5OHg4eDJfdCB0YWIsIHVpbnQ4eDhf
dCBpZHgpDQogICAgK3sNCiAgICArICBwb2x5OHg4X3QgcmVzdWx0Ow0KICAgICsgIHBvbHk4eDE2
X3QgdGVtcCA9IHZjb21iaW5lX3A4ICh0YWIudmFsWzBdLCB0YWIudmFsWzFdKTsNCiAgICArICBf
X2FzbV9fICgidGJsICUwLjhiLCB7JTEuMTZifSwgJTIuOGIiDQogICAgKyAgICAgICAgICAgOiAi
PXciKHJlc3VsdCkNCiAgICArICAgICAgICAgICA6ICJ3Iih0ZW1wKSwgInciKGlkeCkNCiAgICAr
ICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0YmwzX3M4IChpbnQ4eDh4M190IHRhYiwgaW50OHg4
X3QgaWR4KQ0KICAgICt7DQogICAgKyAgaW50OHg4X3QgcmVzdWx0Ow0KICAgICsgIGludDh4MTZ4
Ml90IHRlbXA7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAg
dGVtcC52YWxbMF0gPSB2Y29tYmluZV9zOCAodGFiLnZhbFswXSwgdGFiLnZhbFsxXSk7DQogICAg
KyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV9zOCAodGFiLnZhbFsyXSwgdmNyZWF0ZV9zOCAoX19B
QVJDSDY0X1VJTlQ2NF9DICgweDApKSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWdvaXYxNnFpIChfX28sDQogICAgKwkJCQkJICAgKGludDh4MTZfdCkgdGVtcC52YWxb
MF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAo
X19vLA0KICAgICsJCQkJCSAgIChpbnQ4eDE2X3QpIHRlbXAudmFsWzFdLCAxKTsNCiAgICArICBy
ZXN1bHQgPSBfX2J1aWx0aW5fYWFyY2g2NF90YmwzdjhxaSAoX19vLCBpZHgpOw0KICAgICsgIHJl
dHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0YmwzX3U4ICh1aW50OHg4
eDNfdCB0YWIsIHVpbnQ4eDhfdCBpZHgpDQogICAgK3sNCiAgICArICB1aW50OHg4X3QgcmVzdWx0
Ow0KICAgICsgIHVpbnQ4eDE2eDJfdCB0ZW1wOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3Np
bWRfb2kgX19vOw0KICAgICsgIHRlbXAudmFsWzBdID0gdmNvbWJpbmVfdTggKHRhYi52YWxbMF0s
IHRhYi52YWxbMV0pOw0KICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfdTggKHRhYi52YWxb
Ml0sIHZjcmVhdGVfdTggKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMHgwKSkpOw0KICAgICsgIF9fbyA9
IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLA0KICAgICsJCQkJCSAgIChp
bnQ4eDE2X3QpIHRlbXAudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywNCiAgICArCQkJCQkgICAoaW50OHgxNl90KSB0ZW1wLnZh
bFsxXSwgMSk7DQogICAgKyAgcmVzdWx0ID0gKHVpbnQ4eDhfdClfX2J1aWx0aW5fYWFyY2g2NF90
YmwzdjhxaSAoX19vLCAoaW50OHg4X3QpaWR4KTsNCiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2dGJsM19wOCAocG9seTh4OHgzX3QgdGFiLCB1aW50OHg4
X3QgaWR4KQ0KICAgICt7DQogICAgKyAgcG9seTh4OF90IHJlc3VsdDsNCiAgICArICBwb2x5OHgx
NngyX3QgdGVtcDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICAr
ICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3A4ICh0YWIudmFsWzBdLCB0YWIudmFsWzFdKTsNCiAg
ICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX3A4ICh0YWIudmFsWzJdLCB2Y3JlYXRlX3A4IChf
X0FBUkNINjRfVUlOVDY0X0MgKDB4MCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywNCiAgICArCQkJCQkgICAoaW50OHgxNl90KSB0ZW1wLnZh
bFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFp
IChfX28sDQogICAgKwkJCQkJICAgKGludDh4MTZfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsg
IHJlc3VsdCA9IChwb2x5OHg4X3QpX19idWlsdGluX2FhcmNoNjRfdGJsM3Y4cWkgKF9fbywgKGlu
dDh4OF90KWlkeCk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2dGJsNF9zOCAoaW50OHg4eDRfdCB0YWIsIGludDh4OF90IGlkeCkNCiAgICArew0KICAg
ICsgIGludDh4OF90IHJlc3VsdDsNCiAgICArICBpbnQ4eDE2eDJfdCB0ZW1wOw0KICAgICsgIF9f
YnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIHRlbXAudmFsWzBdID0gdmNvbWJp
bmVfczggKHRhYi52YWxbMF0sIHRhYi52YWxbMV0pOw0KICAgICsgIHRlbXAudmFsWzFdID0gdmNv
bWJpbmVfczggKHRhYi52YWxbMl0sIHRhYi52YWxbM10pOw0KICAgICsgIF9fbyA9IF9fYnVpbHRp
bl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLA0KICAgICsJCQkJCSAgIChpbnQ4eDE2X3Qp
IHRlbXAudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJl
Z29pdjE2cWkgKF9fbywNCiAgICArCQkJCQkgICAoaW50OHgxNl90KSB0ZW1wLnZhbFsxXSwgMSk7
DQogICAgKyAgcmVzdWx0ID0gX19idWlsdGluX2FhcmNoNjRfdGJsM3Y4cWkgKF9fbywgaWR4KTsN
CiAgICArICByZXR1cm4gcmVzdWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dGJsNF91
OCAodWludDh4OHg0X3QgdGFiLCB1aW50OHg4X3QgaWR4KQ0KICAgICt7DQogICAgKyAgdWludDh4
OF90IHJlc3VsdDsNCiAgICArICB1aW50OHgxNngyX3QgdGVtcDsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3U4ICh0
YWIudmFsWzBdLCB0YWIudmFsWzFdKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX3U4
ICh0YWIudmFsWzJdLCB0YWIudmFsWzNdKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywNCiAgICArCQkJCQkgICAoaW50OHgxNl90KSB0ZW1wLnZh
bFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFp
IChfX28sDQogICAgKwkJCQkJICAgKGludDh4MTZfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsg
IHJlc3VsdCA9ICh1aW50OHg4X3QpX19idWlsdGluX2FhcmNoNjRfdGJsM3Y4cWkgKF9fbywgKGlu
dDh4OF90KWlkeCk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnRibDRfcDggKHBvbHk4eDh4NF90IHRhYiwgdWludDh4OF90IGlkeCkNCiAgICArew0K
ICAgICsgIHBvbHk4eDhfdCByZXN1bHQ7DQogICAgKyAgcG9seTh4MTZ4Ml90IHRlbXA7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgdGVtcC52YWxbMF0gPSB2
Y29tYmluZV9wOCAodGFiLnZhbFswXSwgdGFiLnZhbFsxXSk7DQogICAgKyAgdGVtcC52YWxbMV0g
PSB2Y29tYmluZV9wOCAodGFiLnZhbFsyXSwgdGFiLnZhbFszXSk7DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFpIChfX28sDQogICAgKwkJCQkJICAgKGludDh4
MTZfdCkgdGVtcC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3Nl
dF9xcmVnb2l2MTZxaSAoX19vLA0KICAgICsJCQkJCSAgIChpbnQ4eDE2X3QpIHRlbXAudmFsWzFd
LCAxKTsNCiAgICArICByZXN1bHQgPSAocG9seTh4OF90KV9fYnVpbHRpbl9hYXJjaDY0X3RibDN2
OHFpIChfX28sIChpbnQ4eDhfdClpZHgpOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnRieDJfczggKGludDh4OF90IHIsIGludDh4OHgyX3QgdGFiLCBp
bnQ4eDhfdCBpZHgpDQogICAgK3sNCiAgICArICBpbnQ4eDhfdCByZXN1bHQgPSByOw0KICAgICsg
IGludDh4MTZfdCB0ZW1wID0gdmNvbWJpbmVfczggKHRhYi52YWxbMF0sIHRhYi52YWxbMV0pOw0K
ICAgICsgIF9fYXNtX18gKCJ0YnggJTAuOGIsIHslMS4xNmJ9LCAlMi44YiINCiAgICArICAgICAg
ICAgICA6ICIrdyIocmVzdWx0KQ0KICAgICsgICAgICAgICAgIDogInciKHRlbXApLCAidyIoaWR4
KQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiBy
ZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0YngyX3U4ICh1aW50OHg4X3Qgciwg
dWludDh4OHgyX3QgdGFiLCB1aW50OHg4X3QgaWR4KQ0KICAgICt7DQogICAgKyAgdWludDh4OF90
IHJlc3VsdCA9IHI7DQogICAgKyAgdWludDh4MTZfdCB0ZW1wID0gdmNvbWJpbmVfdTggKHRhYi52
YWxbMF0sIHRhYi52YWxbMV0pOw0KICAgICsgIF9fYXNtX18gKCJ0YnggJTAuOGIsIHslMS4xNmJ9
LCAlMi44YiINCiAgICArICAgICAgICAgICA6ICIrdyIocmVzdWx0KQ0KICAgICsgICAgICAgICAg
IDogInciKHRlbXApLCAidyIoaWR4KQ0KICAgICsgICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg
Ki8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0
YngyX3A4IChwb2x5OHg4X3QgciwgcG9seTh4OHgyX3QgdGFiLCB1aW50OHg4X3QgaWR4KQ0KICAg
ICt7DQogICAgKyAgcG9seTh4OF90IHJlc3VsdCA9IHI7DQogICAgKyAgcG9seTh4MTZfdCB0ZW1w
ID0gdmNvbWJpbmVfcDggKHRhYi52YWxbMF0sIHRhYi52YWxbMV0pOw0KICAgICsgIF9fYXNtX18g
KCJ0YnggJTAuOGIsIHslMS4xNmJ9LCAlMi44YiINCiAgICArICAgICAgICAgICA6ICIrdyIocmVz
dWx0KQ0KICAgICsgICAgICAgICAgIDogInciKHRlbXApLCAidyIoaWR4KQ0KICAgICsgICAgICAg
ICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOw0KICAgICsgIHJldHVybiByZXN1bHQ7DQogICAgK30N
CiAgICArDQogICAgKy8qIEVuZCBvZiB0ZW1wb3JhcnkgaW5saW5lIGFzbS4gICovDQogICAgKw0K
ICAgICsvKiBTdGFydCBvZiBvcHRpbWFsIGltcGxlbWVudGF0aW9ucyBpbiBhcHByb3ZlZCBvcmRl
ci4gICovDQogICAgKw0KICAgICsvKiB2YWJkLiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRz
X2YzMiAoZmxvYXQzMl90IF9fYSwgZmxvYXQzMl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9mYWJkc2YgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmFiZGRfZjY0IChmbG9hdDY0X3QgX19hLCBmbG9hdDY0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZhYmRkZiAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRfZjMyIChmbG9hdDMyeDJfdCBfX2EsIGZsb2F0
MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mYWJk
djJzZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRfZjY0IChm
bG9hdDY0eDFfdCBfX2EsIGZsb2F0NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAo
ZmxvYXQ2NHgxX3QpIHt2YWJkZF9mNjQgKHZnZXRfbGFuZV9mNjQgKF9fYSwgMCksDQogICAgKwkJ
CQkgICB2Z2V0X2xhbmVfZjY0IChfX2IsIDApKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmFiZHFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mYWJkdjRzZiAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9h
dDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZmFi
ZHYyZGYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmFicyAgKi8NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmFic19mMzIgKGZsb2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9hYnN2MnNmIChfX2EpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZhYnNfZjY0IChmbG9hdDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKGZsb2F0NjR4MV90KSB7X19idWlsdGluX2ZhYnMgKF9fYVswXSl9Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZhYnNfczggKGludDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fYWFyY2g2NF9hYnN2OHFpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2YWJzX3MxNiAoaW50MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9hYnN2NGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2YWJzX3MzMiAoaW50MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9hYnN2MnNpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJz
X3M2NCAoaW50NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSB7
X19idWlsdGluX2FhcmNoNjRfYWJzZGkgKF9fYVswXSl9Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZhYnNxX2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X2Fic3Y0c2YgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmFic3FfZjY0IChmbG9hdDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfYWJzdjJkZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmFic3FfczggKGludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfYWJzdjE2cWkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zh
YnNxX3MxNiAoaW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9hYnN2OGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWJzcV9z
MzIgKGludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfYWJzdjRzaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFic3FfczY0IChp
bnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Fi
c3YyZGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZhZGQgKi8NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2YWRkZF9zNjQgKGludDY0X3QgX19hLCBpbnQ2NF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2EgKyBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZGRfdTY0ICh1
aW50NjRfdCBfX2EsIHVpbnQ2NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKyBf
X2I7DQogICAgK30NCiAgICArDQogICAgKy8qIHZhZGR2ICovDQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRk
dl9zOCAoaW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X3JlZHVjX3BsdXNfc2NhbF92OHFpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmFkZHZfczE2IChpbnQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3JlZHVjX3BsdXNfc2NhbF92NGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmFkZHZfczMyIChpbnQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X3JlZHVjX3BsdXNfc2NhbF92MnNpIChfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmFkZHZfdTggKHVpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHVpbnQ4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3BsdXNfc2NhbF92OHFpICgoaW50
OHg4X3QpIF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZHZfdTE2ICh1aW50MTZ4
NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2X3QpIF9fYnVpbHRpbl9hYXJj
aDY0X3JlZHVjX3BsdXNfc2NhbF92NGhpICgoaW50MTZ4NF90KSBfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZhZGR2X3UzMiAodWludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKGludDMyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3BsdXNfc2NhbF92MnNpICgo
aW50MzJ4Ml90KSBfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQ4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkdnFfczggKGludDh4
MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNf
cGx1c19zY2FsX3YxNnFpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZHZxX3Mx
NiAoaW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9yZWR1Y19wbHVzX3NjYWxfdjhoaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zh
ZGR2cV9zMzIgKGludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3Y0c2kgKF9fYSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2YWRkdnFfczY0IChpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X3JlZHVjX3BsdXNfc2NhbF92MmRpIChfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmFkZHZxX3U4ICh1aW50OHgxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAodWludDhfdCkgX19idWlsdGluX2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3YxNnFpICgo
aW50OHgxNl90KSBfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGR2cV91MTYgKHVp
bnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZfdCkgX19idWlsdGlu
X2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3Y4aGkgKChpbnQxNng4X3QpIF9fYSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmFkZHZxX3UzMiAodWludDMyeDRfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKHVpbnQzMl90KSBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19wbHVzX3NjYWxf
djRzaSAoKGludDMyeDRfdCkgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkdnFf
dTY0ICh1aW50NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X3JlZHVjX3BsdXNfc2NhbF92MmRpICgoaW50NjR4Ml90KSBfX2EpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkdl9mMzIgKGZsb2F0MzJ4Ml90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19wbHVzX3NjYWxfdjJz
ZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZHZxX2YzMiAoZmxvYXQzMng0
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3Bs
dXNfc2NhbF92NHNmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWRkdnFfZjY0
IChmbG9hdDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfcmVkdWNfcGx1c19zY2FsX3YyZGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZi
c2wgICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zic2xfZjE2ICh1aW50MTZ4NF90IF9fYSwgZmxv
YXQxNng0X3QgX19iLCBmbG9hdDE2eDRfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9ic2x2NGhmX3N1c3MgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3Zic2xfZjMyICh1aW50MzJ4Ml90IF9fYSwgZmxvYXQzMngy
X3QgX19iLCBmbG9hdDMyeDJfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfc2ltZF9ic2x2MnNmX3N1c3MgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Zic2xfZjY0ICh1aW50NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19i
LCBmbG9hdDY0eDFfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0NjR4MV90KQ0K
ICAgICsgICAgeyBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2JzbGRmX3N1c3MgKF9fYVswXSwgX19i
WzBdLCBfX2NbMF0pIH07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zic2xfcDggKHVpbnQ4
eDhfdCBfX2EsIHBvbHk4eDhfdCBfX2IsIHBvbHk4eDhfdCBfX2MpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc2ltZF9ic2x2OHFpX3B1cHAgKF9fYSwgX19iLCBfX2Mp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJzbF9wMTYgKHVpbnQxNng0X3QgX19hLCBw
b2x5MTZ4NF90IF9fYiwgcG9seTE2eDRfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9ic2x2NGhpX3B1cHAgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2YnNsX3A2NCAodWludDY0eDFfdCBfX2EsIHBvbHk2NHgxX3QgX19iLCBw
b2x5NjR4MV90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTY0eDFfdCkNCiAgICAr
ICAgICAge19fYnVpbHRpbl9hYXJjaDY0X3NpbWRfYnNsZGlfcHVwcCAoX19hWzBdLCBfX2JbMF0s
IF9fY1swXSl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zic2xfczggKHVpbnQ4eDhfdCBf
X2EsIGludDh4OF90IF9fYiwgaW50OHg4X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X3NpbWRfYnNsdjhxaV9zdXNzIChfX2EsIF9fYiwgX19jKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmJzbF9zMTYgKHVpbnQxNng0X3QgX19hLCBpbnQxNng0X3Qg
X19iLCBpbnQxNng0X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfYnNsdjRoaV9zdXNzIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmJzbF9zMzIgKHVpbnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iLCBpbnQzMngy
X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfYnNs
djJzaV9zdXNzIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJz
bF9zNjQgKHVpbnQ2NHgxX3QgX19hLCBpbnQ2NHgxX3QgX19iLCBpbnQ2NHgxX3QgX19jKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgxX3QpDQogICAgKyAgICAgIHtfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX2JzbGRpX3N1c3MgKF9fYVswXSwgX19iWzBdLCBfX2NbMF0pfTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmJzbF91OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9fYiwg
dWludDh4OF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX2JzbHY4cWlfdXV1dSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2YnNsX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iLCB1aW50MTZ4NF90
IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2JzbHY0
aGlfdXV1dSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YnNs
X3UzMiAodWludDMyeDJfdCBfX2EsIHVpbnQzMngyX3QgX19iLCB1aW50MzJ4Ml90IF9fYykNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2JzbHYyc2lfdXV1dSAo
X19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YnNsX3U2NCAodWlu
dDY0eDFfdCBfX2EsIHVpbnQ2NHgxX3QgX19iLCB1aW50NjR4MV90IF9fYykNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDY0eDFfdCkNCiAgICArICAgICAge19fYnVpbHRpbl9hYXJjaDY0X3Np
bWRfYnNsZGlfdXV1dSAoX19hWzBdLCBfX2JbMF0sIF9fY1swXSl9Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3Zic2xxX2YxNiAodWludDE2eDhfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYiwg
ZmxvYXQxNng4X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfYnNsdjhoZl9zdXNzIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2YnNscV9mMzIgKHVpbnQzMng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IsIGZsb2F0
MzJ4NF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zaW1k
X2JzbHY0c2Zfc3VzcyAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmJzbHFfZjY0ICh1aW50NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iLCBmbG9hdDY0eDJf
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc2ltZF9ic2x2
MmRmX3N1c3MgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJz
bHFfcDggKHVpbnQ4eDE2X3QgX19hLCBwb2x5OHgxNl90IF9fYiwgcG9seTh4MTZfdCBfX2MpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc2ltZF9ic2x2MTZxaV9wdXBw
IChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zic2xxX3AxNiAo
dWludDE2eDhfdCBfX2EsIHBvbHkxNng4X3QgX19iLCBwb2x5MTZ4OF90IF9fYykNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2JzbHY4aGlfcHVwcCAoX19hLCBf
X2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zic2xxX3M4ICh1aW50OHgxNl90
IF9fYSwgaW50OHgxNl90IF9fYiwgaW50OHgxNl90IF9fYykNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2JzbHYxNnFpX3N1c3MgKF9fYSwgX19iLCBfX2MpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YnNscV9zMTYgKHVpbnQxNng4X3QgX19hLCBpbnQx
Nng4X3QgX19iLCBpbnQxNng4X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfYnNsdjhoaV9zdXNzIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Zic2xxX3A2NCAodWludDY0eDJfdCBfX2EsIHBvbHk2NHgyX3QgX19i
LCBwb2x5NjR4Ml90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX2JzbHYyZGlfcHVwcCAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3Zic2xxX3MzMiAodWludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IsIGludDMyeDRf
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc2ltZF9ic2x2
NHNpX3N1c3MgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YnNs
cV9zNjQgKHVpbnQ2NHgyX3QgX19hLCBpbnQ2NHgyX3QgX19iLCBpbnQ2NHgyX3QgX19jKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfYnNsdjJkaV9zdXNzIChf
X2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zic2xxX3U4ICh1aW50
OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2IsIHVpbnQ4eDE2X3QgX19jKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfYnNsdjE2cWlfdXV1dSAoX19hLCBfX2Is
IF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YnNscV91MTYgKHVpbnQxNng4X3Qg
X19hLCB1aW50MTZ4OF90IF9fYiwgdWludDE2eDhfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfc2ltZF9ic2x2OGhpX3V1dXUgKF9fYSwgX19iLCBfX2MpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmJzbHFfdTMyICh1aW50MzJ4NF90IF9fYSwgdWlu
dDMyeDRfdCBfX2IsIHVpbnQzMng0X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfYnNsdjRzaV91dXV1IChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Zic2xxX3U2NCAodWludDY0eDJfdCBfX2EsIHVpbnQ2NHgyX3Qg
X19iLCB1aW50NjR4Ml90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX2JzbHYyZGlfdXV1dSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQog
ICAgKy8qIEFSTXY4LjEtQSBpbnN0cmluc2ljcy4gICovDQogICAgKyNwcmFnbWEgR0NDIHB1c2hf
b3B0aW9ucw0KICAgICsjcHJhZ21hIEdDQyB0YXJnZXQgKCIrbm90aGluZytyZG1hIikNCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZxcmRtbGFoX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYiwg
aW50MTZ4NF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9z
cXJkbWxhaHY0aGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cXJkbWxhaF9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGludDMyeDJfdCBfX2Mp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FyZG1sYWh2MnNpIChf
X2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyZG1sYWhxX3MxNiAo
aW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYiwgaW50MTZ4OF90IF9fYykNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbWxhaHY4aGkgKF9fYSwgX19iLCBfX2Mp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQz
Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbWxhaHFfczMyIChpbnQzMng0X3QgX19h
LCBpbnQzMng0X3QgX19iLCBpbnQzMng0X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X3NxcmRtbGFodjRzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZxcmRtbHNoX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9f
YiwgaW50MTZ4NF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9zcXJkbWxzaHY0aGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cXJkbWxzaF9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGludDMyeDJfdCBf
X2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FyZG1sc2h2MnNp
IChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyZG1sc2hxX3Mx
NiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYiwgaW50MTZ4OF90IF9fYykNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbWxzaHY4aGkgKF9fYSwgX19iLCBf
X2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbWxzaHFfczMyIChpbnQzMng0X3Qg
X19hLCBpbnQzMng0X3QgX19iLCBpbnQzMng0X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRtbHNodjRzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZxcmRtbGFoX2xhbmVxX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50
MTZ4NF90IF9fYiwgaW50MTZ4OF90IF9fYywgY29uc3QgaW50IF9fZCkNCiAgICArew0KICAgICsg
IHJldHVybiAgX19idWlsdGluX2FhcmNoNjRfc3FyZG1sYWhfbGFuZXF2NGhpIChfX2EsIF9fYiwg
X19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbWxhaF9sYW5lcV9zMzIg
KGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGludDMyeDRfdCBfX2MsIGNvbnN0IGludCBf
X2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FyZG1sYWhfbGFu
ZXF2MnNpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cXJkbWxhaHFfbGFuZXFfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iLCBpbnQxNng4
X3QgX19jLCBjb25zdCBpbnQgX19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X3NxcmRtbGFoX2xhbmVxdjhoaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnFyZG1sYWhxX2xhbmVxX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50
MzJ4NF90IF9fYiwgaW50MzJ4NF90IF9fYywgY29uc3QgaW50IF9fZCkNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbWxhaF9sYW5lcXY0c2kgKF9fYSwgX19iLCBf
X2MsIF9fZCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcmRtbHNoX2xhbmVxX3MxNiAo
aW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYiwgaW50MTZ4OF90IF9fYywgY29uc3QgaW50IF9f
ZCkNCiAgICArew0KICAgICsgIHJldHVybiAgX19idWlsdGluX2FhcmNoNjRfc3FyZG1sc2hfbGFu
ZXF2NGhpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cXJkbWxzaF9sYW5lcV9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGludDMyeDRf
dCBfX2MsIGNvbnN0IGludCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc3FyZG1sc2hfbGFuZXF2MnNpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cXJkbWxzaHFfbGFuZXFfczE2IChpbnQxNng4X3QgX19hLCBpbnQx
Nng4X3QgX19iLCBpbnQxNng4X3QgX19jLCBjb25zdCBpbnQgX19kKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRtbHNoX2xhbmVxdjhoaSAoX19hLCBfX2IsIF9f
YywgX19kKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyZG1sc2hxX2xhbmVxX3MzMiAo
aW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9fYiwgaW50MzJ4NF90IF9fYywgY29uc3QgaW50IF9f
ZCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbWxzaF9sYW5l
cXY0c2kgKF9fYSwgX19iLCBfX2MsIF9fZCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zx
cmRtbGFoX2xhbmVfczE2IChpbnQxNng0X3QgX19hLCBpbnQxNng0X3QgX19iLCBpbnQxNng0X3Qg
X19jLCBjb25zdCBpbnQgX19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICBfX2J1aWx0aW5fYWFy
Y2g2NF9zcXJkbWxhaF9sYW5ldjRoaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnFyZG1sYWhfbGFuZV9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJf
dCBfX2IsIGludDMyeDJfdCBfX2MsIGNvbnN0IGludCBfX2QpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfc3FyZG1sYWhfbGFuZXYyc2kgKF9fYSwgX19iLCBfX2MsIF9f
ZCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcmRtbGFocV9sYW5lX3MxNiAoaW50MTZ4
OF90IF9fYSwgaW50MTZ4OF90IF9fYiwgaW50MTZ4NF90IF9fYywgY29uc3QgaW50IF9fZCkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbWxhaF9sYW5ldjhoaSAo
X19hLCBfX2IsIF9fYywgX19kKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyZG1sYWhx
X2xhbmVfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iLCBpbnQzMngyX3QgX19jLCBj
b25zdCBpbnQgX19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nx
cmRtbGFoX2xhbmV2NHNpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFyZG1sYWhoX3MxNiAoaW50MTZfdCBfX2EsIGludDE2X3QgX19iLCBpbnQxNl90IF9f
YykNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZfdCkgX19idWlsdGluX2FhcmNoNjRfc3Fy
ZG1sYWhoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbWxh
aGhfbGFuZV9zMTYgKGludDE2X3QgX19hLCBpbnQxNl90IF9fYiwgaW50MTZ4NF90IF9fYywgY29u
c3QgaW50IF9fZCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJk
bWxhaF9sYW5laGkgKF9fYSwgX19iLCBfX2MsIF9fZCk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cXJkbWxhaGhfbGFuZXFfczE2IChpbnQxNl90IF9fYSwgaW50MTZfdCBfX2IsIGludDE2eDhf
dCBfX2MsIGNvbnN0IGludCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc3FyZG1sYWhfbGFuZXFoaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZxcmRtbGFoc19zMzIgKGludDMyX3QgX19hLCBpbnQzMl90IF9fYiwgaW50
MzJfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyX3QpIF9fYnVpbHRpbl9hYXJj
aDY0X3NxcmRtbGFoc2kgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnFyZG1sYWhzX2xhbmVfczMyIChpbnQzMl90IF9fYSwgaW50MzJfdCBfX2IsIGludDMyeDJfdCBf
X2MsIGNvbnN0IGludCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfc3FyZG1sYWhfbGFuZXNpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFyZG1sYWhzX2xhbmVxX3MzMiAoaW50MzJfdCBfX2EsIGludDMyX3QgX19iLCBp
bnQzMng0X3QgX19jLCBjb25zdCBpbnQgX19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3NxcmRtbGFoX2xhbmVxc2kgKF9fYSwgX19iLCBfX2MsIF9fZCk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZxcmRtbHNoX2xhbmVfczE2IChpbnQxNng0X3QgX19hLCBp
bnQxNng0X3QgX19iLCBpbnQxNng0X3QgX19jLCBjb25zdCBpbnQgX19kKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuICBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbWxzaF9sYW5ldjRoaSAoX19hLCBfX2Is
IF9fYywgX19kKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyZG1sc2hfbGFuZV9zMzIg
KGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGludDMyeDJfdCBfX2MsIGNvbnN0IGludCBf
X2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FyZG1sc2hfbGFu
ZXYyc2kgKF9fYSwgX19iLCBfX2MsIF9fZCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zx
cmRtbHNocV9sYW5lX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYiwgaW50MTZ4NF90
IF9fYywgY29uc3QgaW50IF9fZCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9zcXJkbWxzaF9sYW5ldjhoaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnFyZG1sc2hxX2xhbmVfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0
X3QgX19iLCBpbnQzMngyX3QgX19jLCBjb25zdCBpbnQgX19kKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRtbHNoX2xhbmV2NHNpIChfX2EsIF9fYiwgX19jLCBf
X2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyZG1sc2hoX3MxNiAoaW50MTZfdCBfX2Es
IGludDE2X3QgX19iLCBpbnQxNl90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZf
dCkgX19idWlsdGluX2FhcmNoNjRfc3FyZG1sc2hoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cXJkbWxzaGhfbGFuZV9zMTYgKGludDE2X3QgX19hLCBpbnQxNl90
IF9fYiwgaW50MTZ4NF90IF9fYywgY29uc3QgaW50IF9fZCkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbWxzaF9sYW5laGkgKF9fYSwgX19iLCBfX2MsIF9fZCk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbWxzaGhfbGFuZXFfczE2IChpbnQxNl90IF9f
YSwgaW50MTZfdCBfX2IsIGludDE2eDhfdCBfX2MsIGNvbnN0IGludCBfX2QpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FyZG1sc2hfbGFuZXFoaSAoX19hLCBfX2Is
IF9fYywgX19kKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcmRtbHNoc19zMzIgKGludDMy
X3QgX19hLCBpbnQzMl90IF9fYiwgaW50MzJfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4g
KGludDMyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRtbHNoc2kgKF9fYSwgX19iLCBfX2MpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyZG1sc2hzX2xhbmVfczMyIChpbnQzMl90IF9fYSwg
aW50MzJfdCBfX2IsIGludDMyeDJfdCBfX2MsIGNvbnN0IGludCBfX2QpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FyZG1sc2hfbGFuZXNpIChfX2EsIF9fYiwgX19j
LCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyZG1sc2hzX2xhbmVxX3MzMiAoaW50
MzJfdCBfX2EsIGludDMyX3QgX19iLCBpbnQzMng0X3QgX19jLCBjb25zdCBpbnQgX19kKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRtbHNoX2xhbmVxc2kgKF9f
YSwgX19iLCBfX2MsIF9fZCk7DQogICAgK30NCiAgICArI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMN
CiAgICArDQogICAgKyNwcmFnbWEgR0NDIHB1c2hfb3B0aW9ucw0KICAgICsjcHJhZ21hIEdDQyB0
YXJnZXQgKCIrbm90aGluZytjcnlwdG8iKQ0KICAgICsvKiB2YWVzICAqLw0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZhZXNlcV91OCAodWludDh4MTZfdCBkYXRhLCB1aW50OHgxNl90IGtleSkNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jcnlwdG9fYWVzZXYxNnFpX3V1dSAo
ZGF0YSwga2V5KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZXNkcV91OCAodWludDh4
MTZfdCBkYXRhLCB1aW50OHgxNl90IGtleSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9jcnlwdG9fYWVzZHYxNnFpX3V1dSAoZGF0YSwga2V5KTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZhZXNtY3FfdTggKHVpbnQ4eDE2X3QgZGF0YSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jcnlwdG9fYWVzbWN2MTZxaV91dSAoZGF0YSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4
eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2YWVzaW1jcV91OCAodWludDh4MTZfdCBkYXRh
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NyeXB0b19hZXNpbWN2
MTZxaV91dSAoZGF0YSk7DQogICAgK30NCiAgICArI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMNCiAg
ICArDQogICAgKy8qIHZjYWdlICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjYWdlX2Y2NCAoZmxv
YXQ2NHgxX3QgX19hLCBmbG9hdDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gdmFi
c19mNjQgKF9fYSkgPj0gdmFic19mNjQgKF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmNhZ2VzX2YzMiAoZmxvYXQzMl90IF9fYSwgZmxvYXQzMl90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fZmFic2YgKF9fYSkgPj0gX19idWlsdGluX2ZhYnNmIChfX2IpID8g
LTEgOiAwOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNhZ2VfZjMyIChmbG9hdDMyeDJf
dCBfX2EsIGZsb2F0MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiB2YWJzX2YzMiAo
X19hKSA+PSB2YWJzX2YzMiAoX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjYWdl
cV9mMzIgKGZsb2F0MzJ4NF90IF9fYSwgZmxvYXQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIHZhYnNxX2YzMiAoX19hKSA+PSB2YWJzcV9mMzIgKF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmNhZ2VkX2Y2NCAoZmxvYXQ2NF90IF9fYSwgZmxvYXQ2NF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fZmFicyAoX19hKSA+PSBfX2J1aWx0aW5fZmFi
cyAoX19iKSA/IC0xIDogMDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjYWdlcV9mNjQg
KGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IHZhYnNxX2Y2NCAoX19hKSA+PSB2YWJzcV9mNjQgKF9fYik7DQogICAgK30NCiAgICArDQogICAg
Ky8qIHZjYWd0ICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2FndHNfZjMyIChmbG9hdDMyX3QgX19h
LCBmbG9hdDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9mYWJzZiAo
X19hKSA+IF9fYnVpbHRpbl9mYWJzZiAoX19iKSA/IC0xIDogMDsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZjYWd0X2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gdmFic19mMzIgKF9fYSkgPiB2YWJzX2YzMiAoX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjYWd0X2Y2NCAoZmxvYXQ2NHgxX3QgX19hLCBmbG9h
dDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gdmFic19mNjQgKF9fYSkgPiB2YWJz
X2Y2NCAoX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjYWd0cV9mMzIgKGZsb2F0
MzJ4NF90IF9fYSwgZmxvYXQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZhYnNx
X2YzMiAoX19hKSA+IHZhYnNxX2YzMiAoX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y2FndGRfZjY0IChmbG9hdDY0X3QgX19hLCBmbG9hdDY0X3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9mYWJzIChfX2EpID4gX19idWlsdGluX2ZhYnMgKF9fYikgPyAtMSA6
IDA7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2FndHFfZjY0IChmbG9hdDY0eDJfdCBf
X2EsIGZsb2F0NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiB2YWJzcV9mNjQgKF9f
YSkgPiB2YWJzcV9mNjQgKF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZjYWxlICAqLw0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZjYWxlX2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gdmFic19mMzIgKF9fYSkgPD0gdmFic19mMzIg
KF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2FsZV9mNjQgKGZsb2F0NjR4MV90
IF9fYSwgZmxvYXQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZhYnNfZjY0IChf
X2EpIDw9IHZhYnNfZjY0IChfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjYWxlZF9m
NjQgKGZsb2F0NjRfdCBfX2EsIGZsb2F0NjRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2ZhYnMgKF9fYSkgPD0gX19idWlsdGluX2ZhYnMgKF9fYikgPyAtMSA6IDA7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNhbGVzX2YzMiAoZmxvYXQzMl90IF9fYSwgZmxvYXQz
Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fZmFic2YgKF9fYSkgPD0g
X19idWlsdGluX2ZhYnNmIChfX2IpID8gLTEgOiAwOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNhbGVxX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gdmFic3FfZjMyIChfX2EpIDw9IHZhYnNxX2YzMiAoX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjYWxlcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2
NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZhYnNxX2Y2NCAoX19hKSA8PSB2YWJz
cV9mNjQgKF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZjYWx0ICAqLw0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZjYWx0X2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gdmFic19mMzIgKF9fYSkgPCB2YWJzX2YzMiAoX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjYWx0X2Y2NCAoZmxvYXQ2NHgxX3QgX19hLCBmbG9h
dDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gdmFic19mNjQgKF9fYSkgPCB2YWJz
X2Y2NCAoX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2FsdGRfZjY0IChmbG9hdDY0
X3QgX19hLCBmbG9hdDY0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9m
YWJzIChfX2EpIDwgX19idWlsdGluX2ZhYnMgKF9fYikgPyAtMSA6IDA7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2Y2FsdHFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiB2YWJzcV9mMzIgKF9fYSkgPCB2YWJzcV9mMzIgKF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2FsdHFfZjY0IChmbG9hdDY0eDJfdCBf
X2EsIGZsb2F0NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiB2YWJzcV9mNjQgKF9f
YSkgPCB2YWJzcV9mNjQgKF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNhbHRzX2Yz
MiAoZmxvYXQzMl90IF9fYSwgZmxvYXQzMl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fZmFic2YgKF9fYSkgPCBfX2J1aWx0aW5fZmFic2YgKF9fYikgPyAtMSA6IDA7DQog
ICAgK30NCiAgICArDQogICAgKy8qIHZjZXEgLSB2ZWN0b3IuICAqLw0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZjZXFfZjMyIChmbG9hdDMyeDJfdCBfX2EsIGZsb2F0MzJ4Ml90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDMyeDJfdCkgKF9fYSA9PSBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmNlcV9mNjQgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSAoX19hID09IF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZjZXFfcDggKHBvbHk4eDhfdCBfX2EsIHBvbHk4eDhfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDhfdCkgKF9fYSA9PSBfX2IpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcV9wNjQgKHBvbHk2NHgxX3QgX19hLCBwb2x5NjR4MV90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkgKF9fYSA9PSBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2VxX3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSAoX19hID09IF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2VxX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4
NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkgKF9fYSA9PSBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcV9zMzIgKGludDMyeDJfdCBfX2EsIGlu
dDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIChfX2EgPT0g
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXFfczY0IChpbnQ2NHgxX3QgX19h
LCBpbnQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSAoX19h
ID09IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXFfdTggKHVpbnQ4eDhfdCBf
X2EsIHVpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA9PSBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcV91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50
MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoX19hID09IF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2Y2VxX3UzMiAodWludDMyeDJfdCBfX2EsIHVpbnQzMngyX3Qg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgPT0gX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZjZXFfdTY0ICh1aW50NjR4MV90IF9fYSwgdWludDY0eDFfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA9PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmNlcXFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDMyeDRfdCkgKF9fYSA9PSBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmNlcXFfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0NjR4Ml90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgKF9fYSA9PSBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcXFfcDggKHBvbHk4eDE2X3QgX19hLCBwb2x5OHgx
Nl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkgKF9fYSA9PSBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcXFfczggKGludDh4MTZfdCBfX2EsIGlu
dDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpIChfX2EgPT0g
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXFxX3MxNiAoaW50MTZ4OF90IF9f
YSwgaW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkgKF9f
YSA9PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcXFfczMyIChpbnQzMng0
X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90
KSAoX19hID09IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2VxcV9zNjQgKGlu
dDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2
NHgyX3QpIChfX2EgPT0gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXFxX3U4
ICh1aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
KF9fYSA9PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcXFfdTE2ICh1aW50
MTZ4OF90IF9fYSwgdWludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA9
PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcXFfdTMyICh1aW50MzJ4NF90
IF9fYSwgdWludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA9PSBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcXFfdTY0ICh1aW50NjR4Ml90IF9fYSwg
dWludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA9PSBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICsvKiB2Y2VxIC0gc2NhbGFyLiAgKi8NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmNlcXNfZjMyIChmbG9hdDMyX3QgX19hLCBmbG9hdDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYSA9PSBfX2IgPyAtMSA6IDA7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNl
cWRfczY0IChpbnQ2NF90IF9fYSwgaW50NjRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19hID09IF9fYiA/IC0xbGwgOiAwbGw7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcWRf
dTY0ICh1aW50NjRfdCBfX2EsIHVpbnQ2NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2EgPT0gX19iID8gLTFsbCA6IDBsbDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2VxZF9m
NjQgKGZsb2F0NjRfdCBfX2EsIGZsb2F0NjRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19hID09IF9fYiA/IC0xbGwgOiAwbGw7DQogICAgK30NCiAgICArDQogICAgKy8qIHZjZXF6IC0g
dmVjdG9yLiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2Vxel9mMzIgKGZsb2F0MzJ4Ml90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkgKF9fYSA9PSAwLjBmKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXF6X2Y2NCAoZmxvYXQ2NHgxX3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSAoX19hID09IChmbG9hdDY0eDFfdCkgezAu
MH0pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2Vxel9wOCAocG9seTh4OF90IF9fYSkN
CiAgICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSAoX19hID09IDApOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y2Vxel9zOCAoaW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuICh1aW50OHg4X3QpIChfX2EgPT0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Y2Vxel9zMTYgKGludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQx
Nng0X3QpIChfX2EgPT0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2Vxel9zMzIg
KGludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIChfX2Eg
PT0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2Vxel9zNjQgKGludDY0eDFfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIChfX2EgPT0gX19BQVJDSDY0
X0lOVDY0X0MgKDApKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcXpfdTggKHVpbnQ4
eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA9PSAwKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZjZXF6X3UxNiAodWludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKF9fYSA9PSAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXF6X3Uz
MiAodWludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA9PSAwKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXF6X3U2NCAodWludDY0eDFfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gKF9fYSA9PSBfX0FBUkNINjRfVUlOVDY0X0MgKDApKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXF6cV9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDMyeDRfdCkgKF9fYSA9PSAwLjBmKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZjZXF6cV9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDY0eDJfdCkgKF9fYSA9PSAwLjBmKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZjZXF6cV9wOCAocG9seTh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHVpbnQ4eDE2X3QpIChfX2EgPT0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y2VxenFfczggKGludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2
X3QpIChfX2EgPT0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2VxenFfczE2IChp
bnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSAoX19hID09
IDApOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNlcXpxX3MzMiAoaW50MzJ4NF90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDRfdCkgKF9fYSA9PSAwKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXF6cV9zNjQgKGludDY0eDJfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIChfX2EgPT0gX19BQVJDSDY0X0lOVDY0X0MgKDAp
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXF6cV91OCAodWludDh4MTZfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA9PSAwKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZjZXF6cV91MTYgKHVpbnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChfX2EgPT0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2VxenFfdTMyICh1aW50
MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoX19hID09IDApOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmNlcXpxX3U2NCAodWludDY0eDJfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKF9fYSA9PSBfX0FBUkNINjRfVUlOVDY0X0MgKDApKTsNCiAgICArfQ0KICAg
ICsNCiAgICArLyogdmNlcXogLSBzY2FsYXIuICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2VxenNf
ZjMyIChmbG9hdDMyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSA9PSAwLjBmID8g
LTEgOiAwOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXF6ZF9zNjQgKGludDY0X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSA9PSAwID8gLTFsbCA6IDBsbDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y2VxemRfdTY0ICh1aW50NjRfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hID09IDAgPyAtMWxsIDogMGxsOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZjZXF6ZF9mNjQgKGZsb2F0NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hID09
IDAuMCA/IC0xbGwgOiAwbGw7DQogICAgK30NCiAgICArDQogICAgKy8qIHZjZ2UgLSB2ZWN0b3Iu
ICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2VfZjMyIChmbG9hdDMyeDJfdCBfX2EsIGZsb2F0
MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkgKF9fYSA+PSBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNnZV9mNjQgKGZsb2F0NjR4MV90IF9f
YSwgZmxvYXQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSAo
X19hID49IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2VfczggKGludDh4OF90
IF9fYSwgaW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3QpIChf
X2EgPj0gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2VfczE2IChpbnQxNng0
X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90
KSAoX19hID49IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlX3MzMiAoaW50
MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMy
eDJfdCkgKF9fYSA+PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNnZV9zNjQg
KGludDY0eDFfdCBfX2EsIGludDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVp
bnQ2NHgxX3QpIChfX2EgPj0gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNnZV91
OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAo
X19hID49IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlX3UxNiAodWludDE2
eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgPj0g
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2VfdTMyICh1aW50MzJ4Ml90IF9f
YSwgdWludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA+PSBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4
MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNnZV91NjQgKHVpbnQ2NHgxX3QgX19hLCB1aW50
NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoX19hID49IF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2Y2dlcV9mMzIgKGZsb2F0MzJ4NF90IF9fYSwgZmxvYXQzMng0
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSAoX19hID49IF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2
NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwg
ZmxvYXQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSAoX19h
ID49IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlcV9zOCAoaW50OHgxNl90
IF9fYSwgaW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkg
KF9fYSA+PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNnZXFfczE2IChpbnQx
Nng4X3QgX19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4
OF90KSAoX19hID49IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlcV9zMzIg
KGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVp
bnQzMng0X3QpIChfX2EgPj0gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2Vx
X3M2NCAoaW50NjR4Ml90IF9fYSwgaW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDY0eDJfdCkgKF9fYSA+PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmNnZXFfdTggKHVpbnQ4eDE2X3QgX19hLCB1aW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAoX19hID49IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlcV91
MTYgKHVpbnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAoX19hID49IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlcV91MzIgKHVp
bnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoX19h
ID49IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlcV91NjQgKHVpbnQ2NHgy
X3QgX19hLCB1aW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoX19hID49IF9f
Yik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZjZ2UgLSBzY2FsYXIuICAqLw0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2Y2dlc19mMzIgKGZsb2F0MzJfdCBfX2EsIGZsb2F0MzJfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hID49IF9fYiA/IC0xIDogMDsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y2dlZF9zNjQgKGludDY0X3QgX19hLCBpbnQ2NF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2EgPj0gX19iID8gLTFsbCA6IDBsbDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Y2dlZF91NjQgKHVpbnQ2NF90IF9fYSwgdWludDY0X3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYSA+PSBfX2IgPyAtMWxsIDogMGxsOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZjZ2VkX2Y2NCAoZmxvYXQ2NF90IF9fYSwgZmxvYXQ2NF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2EgPj0gX19iID8gLTFsbCA6IDBsbDsNCiAgICArfQ0KICAgICsNCiAgICArLyog
dmNnZXogLSB2ZWN0b3IuICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2V6X2YzMiAoZmxvYXQz
MngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4Ml90KSAoX19hID49IDAu
MGYpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNnZXpfZjY0IChmbG9hdDY0eDFfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIChfX2FbMF0gPj0gKGZsb2F0
NjR4MV90KSB7MC4wfSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2V6X3M4IChpbnQ4
eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDhfdCkgKF9fYSA+PSAwKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2V6X3MxNiAoaW50MTZ4NF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkgKF9fYSA+PSAwKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZjZ2V6X3MzMiAoaW50MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDMyeDJfdCkgKF9fYSA+PSAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZjZ2V6X3M2NCAoaW50NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWlu
dDY0eDFfdCkgKF9fYSA+PSBfX0FBUkNINjRfSU5UNjRfQyAoMCkpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmNnZXpxX2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuICh1aW50MzJ4NF90KSAoX19hID49IDAuMGYpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmNnZXpxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
ICh1aW50NjR4Ml90KSAoX19hID49IDAuMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y2dlenFfczggKGludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2
X3QpIChfX2EgPj0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlenFfczE2IChp
bnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSAoX19hID49
IDApOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNnZXpxX3MzMiAoaW50MzJ4NF90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDRfdCkgKF9fYSA+PSAwKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2V6cV9zNjQgKGludDY0eDJfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIChfX2EgPj0gX19BQVJDSDY0X0lOVDY0X0MgKDAp
KTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmNnZXogLSBzY2FsYXIuICAqLw0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2Y2dlenNfZjMyIChmbG9hdDMyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYSA+PSAwLjBmID8gLTEgOiAwOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ2V6ZF9z
NjQgKGludDY0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSA+PSAwID8gLTFsbCA6
IDBsbDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlemRfZjY0IChmbG9hdDY0X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSA+PSAwLjAgPyAtMWxsIDogMGxsOw0KICAgICt9
DQogICAgKw0KICAgICsvKiB2Y2d0IC0gdmVjdG9yLiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y2d0X2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKHVpbnQzMngyX3QpIChfX2EgPiBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmNndF9mNjQgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSAoX19hID4gX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmNndF9zOCAoaW50OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHVpbnQ4eDhfdCkgKF9fYSA+IF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Y2d0X3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkgKF9fYSA+IF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2Y2d0X3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkgKF9fYSA+IF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y2d0X3M2NCAoaW50NjR4MV90IF9fYSwgaW50NjR4MV90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkgKF9fYSA+IF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZjZ3RfdTggKHVpbnQ4eDhfdCBfX2EsIHVpbnQ4eDhfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA+IF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2Y2d0X3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChfX2EgPiBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmNndF91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAoX19hID4gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ3RfdTY0
ICh1aW50NjR4MV90IF9fYSwgdWludDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
KF9fYSA+IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2d0cV9mMzIgKGZsb2F0
MzJ4NF90IF9fYSwgZmxvYXQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50
MzJ4NF90KSAoX19hID4gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZ3RxX2Y2
NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9hdDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHVpbnQ2NHgyX3QpIChfX2EgPiBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmNndHFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQ4eDE2X3QpIChfX2EgPiBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNndHFfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuICh1aW50MTZ4OF90KSAoX19hID4gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZjZ3RxX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDMyeDRfdCkgKF9fYSA+IF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Y2d0cV9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIChfX2EgPiBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmNndHFfdTggKHVpbnQ4eDE2X3QgX19hLCB1aW50OHgxNl90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAoX19hID4gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZjZ3RxX3UxNiAodWludDE2eDhfdCBfX2EsIHVpbnQxNng4X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChfX2EgPiBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmNndHFfdTMyICh1aW50MzJ4NF90IF9fYSwgdWludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKF9fYSA+IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2d0cV91
NjQgKHVpbnQ2NHgyX3QgX19hLCB1aW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAoX19hID4gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmNndCAtIHNjYWxhci4gICov
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZjZ3RzX2YzMiAoZmxvYXQzMl90IF9fYSwgZmxvYXQzMl90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgPiBfX2IgPyAtMSA6IDA7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmNndGRfczY0IChpbnQ2NF90IF9fYSwgaW50NjRfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19hID4gX19iID8gLTFsbCA6IDBsbDsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Y2d0ZF91NjQgKHVpbnQ2NF90IF9fYSwgdWludDY0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYSA+IF9fYiA/IC0xbGwgOiAwbGw7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmNndGRfZjY0IChmbG9hdDY0X3QgX19hLCBmbG9hdDY0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYSA+IF9fYiA/IC0xbGwgOiAwbGw7DQogICAgK30NCiAgICArDQog
ICAgKy8qIHZjZ3R6IC0gdmVjdG9yLiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2d0el9mMzIg
KGZsb2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkgKF9f
YSA+IDAuMGYpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNndHpfZjY0IChmbG9hdDY0
eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIChfX2EgPiAoZmxv
YXQ2NHgxX3QpIHswLjB9KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNndHpfczggKGlu
dDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSAoX19hID4gMCk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2d0el9zMTYgKGludDE2eDRfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng0X3QpIChfX2EgPiAwKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZjZ3R6X3MzMiAoaW50MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDMyeDJfdCkgKF9fYSA+IDApOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNndHpfczY0IChpbnQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50
NjR4MV90KSAoX19hID4gX19BQVJDSDY0X0lOVDY0X0MgKDApKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZjZ3R6cV9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAodWludDMyeDRfdCkgKF9fYSA+IDAuMGYpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNndHpxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgICByZXR1cm4g
KHVpbnQ2NHgyX3QpIChfX2EgPiAwLjApOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNn
dHpxX3M4IChpbnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHgxNl90
KSAoX19hID4gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2d0enFfczE2IChpbnQx
Nng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSAoX19hID4gMCk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQz
Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2d0enFfczMyIChpbnQzMng0X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSAoX19hID4gMCk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y2d0enFfczY0IChpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuICh1aW50NjR4Ml90KSAoX19hID4gX19BQVJDSDY0X0lOVDY0X0MgKDApKTsNCiAg
ICArfQ0KICAgICsNCiAgICArLyogdmNndHogLSBzY2FsYXIuICAqLw0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Y2d0enNfZjMyIChmbG9hdDMyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSA+
IDAuMGYgPyAtMSA6IDA7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNndHpkX3M2NCAoaW50
NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hID4gMCA/IC0xbGwgOiAwbGw7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNndHpkX2Y2NCAoZmxvYXQ2NF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2EgPiAwLjAgPyAtMWxsIDogMGxsOw0KICAgICt9DQogICAgKw0K
ICAgICsvKiB2Y2xlIC0gdmVjdG9yLiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2xlX2YzMiAo
ZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
KHVpbnQzMngyX3QpIChfX2EgPD0gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zj
bGVfZjY0IChmbG9hdDY0eDFfdCBfX2EsIGZsb2F0NjR4MV90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDY0eDFfdCkgKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y2xlX3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDh4OF90KSAoX19hIDw9IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y2xlX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDE2eDRfdCkgKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmNsZV9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIChfX2EgPD0gX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZjbGVfczY0IChpbnQ2NHgxX3QgX19hLCBpbnQ2NHgxX3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSAoX19hIDw9IF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZjbGVfdTggKHVpbnQ4eDhfdCBfX2EsIHVpbnQ4eDhfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmNsZV91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4NF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAoX19hIDw9IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y2xlX3UzMiAodWludDMyeDJfdCBfX2EsIHVpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIChfX2EgPD0gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbGVfdTY0
ICh1aW50NjR4MV90IF9fYSwgdWludDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
KF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsZXFfZjMyIChmbG9h
dDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWlu
dDMyeDRfdCkgKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsZXFf
ZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiAodWludDY0eDJfdCkgKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNsZXFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKHVpbnQ4eDE2X3QpIChfX2EgPD0gX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZjbGVxX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDE2eDhfdCkgKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmNsZXFfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSAoX19hIDw9IF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y2xlcV9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIChfX2EgPD0gX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjbGVxX3U4ICh1aW50OHgxNl90IF9fYSwgdWludDh4MTZf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmNsZXFfdTE2ICh1aW50MTZ4OF90IF9fYSwgdWludDE2eDhfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmNsZXFfdTMyICh1aW50MzJ4NF90IF9fYSwgdWludDMyeDRfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNsZXFfdTY0ICh1aW50NjR4Ml90IF9fYSwgdWludDY0eDJfdCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKF9fYSA8PSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2Y2xlIC0g
c2NhbGFyLiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsZXNfZjMyIChmbG9hdDMyX3QgX19hLCBm
bG9hdDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSA8PSBfX2IgPyAtMSA6IDA7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsZWRfczY0IChpbnQ2NF90IF9fYSwgaW50NjRf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIDw9IF9fYiA/IC0xbGwgOiAwbGw7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsZWRfdTY0ICh1aW50NjRfdCBfX2EsIHVpbnQ2NF90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgPD0gX19iID8gLTFsbCA6IDBsbDsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2xlZF9mNjQgKGZsb2F0NjRfdCBfX2EsIGZsb2F0NjRf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIDw9IF9fYiA/IC0xbGwgOiAwbGw7DQog
ICAgK30NCiAgICArDQogICAgKy8qIHZjbGV6IC0gdmVjdG9yLiAgKi8NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y2xlel9mMzIgKGZsb2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
dWludDMyeDJfdCkgKF9fYSA8PSAwLjBmKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zj
bGV6X2Y2NCAoZmxvYXQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4
MV90KSAoX19hIDw9IChmbG9hdDY0eDFfdCkgezAuMH0pOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y2xlel9zOCAoaW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50
OHg4X3QpIChfX2EgPD0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2xlel9zMTYg
KGludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng0X3QpIChfX2Eg
PD0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2xlel9zMzIgKGludDMyeDJfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIChfX2EgPD0gMCk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2xlel9zNjQgKGludDY0eDFfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIChfX2EgPD0gX19BQVJDSDY0X0lOVDY0X0MgKDAp
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbGV6cV9mMzIgKGZsb2F0MzJ4NF90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDRfdCkgKF9fYSA8PSAwLjBmKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbGV6cV9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgKF9fYSA8PSAwLjApOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmNsZXpxX3M4IChpbnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuICh1aW50OHgxNl90KSAoX19hIDw9IDApOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmNsZXpxX3MxNiAoaW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
dWludDE2eDhfdCkgKF9fYSA8PSAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbGV6
cV9zMzIgKGludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3Qp
IChfX2EgPD0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2xlenFfczY0IChpbnQ2
NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSAoX19hIDw9IF9f
QUFSQ0g2NF9JTlQ2NF9DICgwKSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZjbGV6IC0gc2Nh
bGFyLiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQz
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsZXpzX2YzMiAoZmxvYXQzMl90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2EgPD0gMC4wZiA/IC0xIDogMDsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Y2xlemRfczY0IChpbnQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2EgPD0gMCA/IC0xbGwgOiAwbGw7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsZXpk
X2Y2NCAoZmxvYXQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgPD0gMC4wID8g
LTFsbCA6IDBsbDsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmNsdCAtIHZlY3Rvci4gICovDQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmNsdF9mMzIgKGZsb2F0MzJ4Ml90IF9fYSwgZmxvYXQzMngyX3Qg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4Ml90KSAoX19hIDwgX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHRfZjY0IChmbG9hdDY0eDFfdCBfX2EsIGZsb2F0
NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkgKF9fYSA8IF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHRfczggKGludDh4OF90IF9fYSwgaW50
OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3QpIChfX2EgPCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsdF9zMTYgKGludDE2eDRfdCBfX2EsIGlu
dDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng0X3QpIChfX2EgPCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsdF9zMzIgKGludDMyeDJfdCBfX2Es
IGludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIChfX2Eg
PCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsdF9zNjQgKGludDY0eDFfdCBf
X2EsIGludDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIChf
X2EgPCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x0X3U4ICh1aW50OHg4X3Qg
X19hLCB1aW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgPCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsdF91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50
MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoX19hIDwgX19iKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZjbHRfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA8IF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Y2x0X3U2NCAodWludDY0eDFfdCBfX2EsIHVpbnQ2NHgxX3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChfX2EgPCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNsdHFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDMyeDRfdCkgKF9fYSA8IF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Y2x0cV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSAoX19hIDwgX19iKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZjbHRxX3M4IChpbnQ4eDE2X3QgX19hLCBpbnQ4eDE2X3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHgxNl90KSAoX19hIDwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHRxX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkgKF9fYSA8IF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x0cV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMy
eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3QpIChfX2EgPCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsdHFfczY0IChpbnQ2NHgyX3QgX19hLCBp
bnQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSAoX19hIDwg
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHRxX3U4ICh1aW50OHgxNl90IF9f
YSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA8IF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x0cV91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50
MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoX19hIDwgX19iKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZjbHRxX3UzMiAodWludDMyeDRfdCBfX2EsIHVpbnQzMng0X3Qg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgPCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmNsdHFfdTY0ICh1aW50NjR4Ml90IF9fYSwgdWludDY0eDJfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKF9fYSA8IF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8q
IHZjbHQgLSBzY2FsYXIuICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x0c19mMzIgKGZsb2F0MzJf
dCBfX2EsIGZsb2F0MzJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hIDwgX19iID8g
LTEgOiAwOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHRkX3M2NCAoaW50NjRfdCBfX2Es
IGludDY0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSA8IF9fYiA/IC0xbGwgOiAw
bGw7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsdGRfdTY0ICh1aW50NjRfdCBfX2EsIHVp
bnQ2NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgPCBfX2IgPyAtMWxsIDogMGxs
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHRkX2Y2NCAoZmxvYXQ2NF90IF9fYSwgZmxv
YXQ2NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgPCBfX2IgPyAtMWxsIDogMGxs
Ow0KICAgICt9DQogICAgKw0KICAgICsvKiB2Y2x0eiAtIHZlY3Rvci4gICovDQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmNsdHpfZjMyIChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHVpbnQzMngyX3QpIChfX2EgPCAwLjBmKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZjbHR6X2Y2NCAoZmxvYXQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50
NjR4MV90KSAoX19hIDwgKGZsb2F0NjR4MV90KSB7MC4wfSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZjbHR6X3M4IChpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVp
bnQ4eDhfdCkgKF9fYSA8IDApOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsdHpfczE2
IChpbnQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90KSAoX19h
IDwgMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x0el9zMzIgKGludDMyeDJfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIChfX2EgPCAwKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHR6X3M2NCAoaW50NjR4MV90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDY0eDFfdCkgKF9fYSA8IF9fQUFSQ0g2NF9JTlQ2NF9DICgwKSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQz
Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x0enFfZjMyIChmbG9hdDMyeDRfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3QpIChfX2EgPCAwLjBmKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHR6cV9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgKF9fYSA8IDAuMCk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2Y2x0enFfczggKGludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQ4eDE2X3QpIChfX2EgPCAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZjbHR6cV9zMTYgKGludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQx
Nng4X3QpIChfX2EgPCAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHR6cV9zMzIg
KGludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3QpIChfX2Eg
PCAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHR6cV9zNjQgKGludDY0eDJfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIChfX2EgPCBfX0FBUkNINjRf
SU5UNjRfQyAoMCkpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2Y2x0eiAtIHNjYWxhci4gICov
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZjbHR6c19mMzIgKGZsb2F0MzJfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19hIDwgMC4wZiA/IC0xIDogMDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Y2x0emRfczY0IChpbnQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgPCAw
ID8gLTFsbCA6IDBsbDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x0emRfZjY0IChmbG9h
dDY0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSA8IDAuMCA/IC0xbGwgOiAwbGw7
DQogICAgK30NCiAgICArDQogICAgKy8qIHZjbHMuICAqLw0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2xz
X3M4IChpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfY2xyc2J2OHFpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2xzX3MxNiAo
aW50MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9j
bHJzYnY0aGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHNfczMyIChpbnQz
MngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NscnNi
djJzaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsc3FfczggKGludDh4MTZf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY2xyc2J2MTZx
aSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsc3FfczE2IChpbnQxNng4X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NscnNidjhoaSAo
X19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsc3FfczMyIChpbnQzMng0X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NscnNidjRzaSAoX19h
KTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmNsei4gICovDQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zj
bHpfczggKGludDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9jbHp2OHFpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x6X3MxNiAo
aW50MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9j
bHp2NGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x6X3MzMiAoaW50MzJ4
Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jbHp2MnNp
IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x6X3U4ICh1aW50OHg4X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3QpX19idWlsdGluX2FhcmNoNjRfY2x6
djhxaSAoKGludDh4OF90KV9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x6X3Ux
NiAodWludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng0X3QpX19i
dWlsdGluX2FhcmNoNjRfY2x6djRoaSAoKGludDE2eDRfdClfX2EpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmNsel91MzIgKHVpbnQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuICh1aW50MzJ4Ml90KV9fYnVpbHRpbl9hYXJjaDY0X2NsenYyc2kgKChpbnQzMngyX3QpX19h
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsenFfczggKGludDh4MTZfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY2x6djE2cWkgKF9fYSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHpxX3MxNiAoaW50MTZ4OF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jbHp2OGhpIChfX2EpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2Y2x6cV9zMzIgKGludDMyeDRfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY2x6djRzaSAoX19hKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZjbHpxX3U4ICh1aW50OHgxNl90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDh4MTZfdClfX2J1aWx0aW5fYWFyY2g2NF9jbHp2MTZxaSAoKGludDh4MTZf
dClfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsenFfdTE2ICh1aW50MTZ4OF90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDhfdClfX2J1aWx0aW5fYWFyY2g2
NF9jbHp2OGhpICgoaW50MTZ4OF90KV9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y2x6cV91MzIgKHVpbnQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4
NF90KV9fYnVpbHRpbl9hYXJjaDY0X2NsenY0c2kgKChpbnQzMng0X3QpX19hKTsNCiAgICArfQ0K
ICAgICsNCiAgICArLyogdmNudC4gICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y250X3A4IChwb2x5
OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5OHg4X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X3BvcGNvdW50djhxaSAoKGludDh4OF90KSBfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZjbnRfczggKGludDh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9wb3Bjb3VudHY4cWkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZjbnRfdTggKHVpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4
eDhfdCkgX19idWlsdGluX2FhcmNoNjRfcG9wY291bnR2OHFpICgoaW50OHg4X3QpIF9fYSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y250cV9wOCAocG9seTh4MTZfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3BvcGNvdW50
djE2cWkgKChpbnQ4eDE2X3QpIF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbnRx
X3M4IChpbnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X3BvcGNvdW50djE2cWkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y250
cV91OCAodWludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X3BvcGNvdW50djE2cWkgKChpbnQ4eDE2X3QpIF9fYSk7DQogICAg
K30NCiAgICArDQogICAgKy8qIHZjb3B5X2xhbmUuICAqLw0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y29weV9sYW5lX2YzMiAoZmxvYXQzMngyX3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICAr
CQlmbG9hdDMyeDJfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19i
LCBfX2xhbmUyKSwNCiAgICArCQkJCSAgX19hLCBfX2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Y29weV9sYW5lX2Y2NCAoZmxvYXQ2NHgxX3QgX19hLCBjb25zdCBpbnQgX19s
YW5lMSwNCiAgICArCQlmbG9hdDY0eDFfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9s
YW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSAgX19hLCBfX2xhbmUxKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlfbGFuZV9wOCAocG9seTh4OF90IF9fYSwgY29uc3Qg
aW50IF9fbGFuZTEsDQogICAgKwkgICAgICAgcG9seTh4OF90IF9fYiwgY29uc3QgaW50IF9fbGFu
ZTIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFy
Y2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIpLA0KICAgICsJCQkJIF9fYSwgX19sYW5l
MSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHkxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29weV9sYW5lX3AxNiAocG9seTE2eDRf
dCBfX2EsIGNvbnN0IGludCBfX2xhbmUxLA0KICAgICsJCXBvbHkxNng0X3QgX19iLCBjb25zdCBp
bnQgX19sYW5lMikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2Fu
eSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgIF9f
YSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29weV9sYW5lX3A2NCAo
cG9seTY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2xhbmUxLA0KICAgICsJCXBvbHk2NHgxX3QgX19i
LCBjb25zdCBpbnQgX19sYW5lMikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNl
dF9sYW5lX2FueSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAg
KwkJCQkgIF9fYSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlfbGFu
ZV9zOCAoaW50OHg4X3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCSAgICAgICBpbnQ4
eDhfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFy
Y2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUy
KSwNCiAgICArCQkJCSBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y29weV9sYW5lX3MxNiAoaW50MTZ4NF90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJ
aW50MTZ4NF90IF9fYiwgY29uc3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9f
bGFuZTIpLA0KICAgICsJCQkJICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y29weV9sYW5lX3MzMiAoaW50MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQog
ICAgKwkJaW50MzJ4Ml90IF9fYiwgY29uc3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChf
X2IsIF9fbGFuZTIpLA0KICAgICsJCQkJICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Y29weV9sYW5lX3M2NCAoaW50NjR4MV90IF9fYSwgY29uc3QgaW50IF9fbGFu
ZTEsDQogICAgKwkJaW50NjR4MV90IF9fYiwgY29uc3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVf
YW55IChfX2IsIF9fbGFuZTIpLA0KICAgICsJCQkJICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y29weV9sYW5lX3U4ICh1aW50OHg4X3QgX19hLCBjb25zdCBpbnQg
X19sYW5lMSwNCiAgICArCSAgICAgICB1aW50OHg4X3QgX19iLCBjb25zdCBpbnQgX19sYW5lMikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19hYXJjaDY0
X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgX19hLCBfX2xhbmUxKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5X2xhbmVfdTE2ICh1aW50MTZ4NF90IF9f
YSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJdWludDE2eDRfdCBfX2IsIGNvbnN0IGludCBf
X2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChf
X2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSAgX19hLCBf
X2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5X2xhbmVfdTMyICh1aW50
MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJdWludDMyeDJfdCBfX2IsIGNv
bnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xh
bmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJ
CSAgX19hLCBfX2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5X2xhbmVf
dTY0ICh1aW50NjR4MV90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJdWludDY0eDFf
dCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2
NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwN
CiAgICArCQkJCSAgX19hLCBfX2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmNvcHlf
bGFuZXEuICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29weV9sYW5lcV9mMzIgKGZsb2F0MzJ4
Ml90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJIGZsb2F0MzJ4NF90IF9fYiwgY29u
c3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFu
ZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIpLA0KICAgICsJCQkJ
ICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5X2xhbmVx
X2Y2NCAoZmxvYXQ2NHgxX3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCQkgZmxvYXQ2
NHgyX3QgX19iLCBjb25zdCBpbnQgX19sYW5lMikNCiAgICArew0KICAgICsgIHJldHVybiBfX2Fh
cmNoNjRfdnNldF9sYW5lX2FueSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5l
MiksDQogICAgKwkJCQkgIF9fYSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Zjb3B5X2xhbmVxX3A4IChwb2x5OHg4X3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICAr
CQlwb2x5OHgxNl90IF9fYiwgY29uc3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2Is
IF9fbGFuZTIpLA0KICAgICsJCQkJIF9fYSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2Y29weV9sYW5lcV9wMTYgKHBvbHkxNng0X3QgX19hLCBjb25zdCBpbnQgX19sYW5l
MSwNCiAgICArCQkgcG9seTE2eDhfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5l
X2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSAgX19hLCBfX2xhbmUxKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDFfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Zjb3B5X2xhbmVxX3A2NCAocG9seTY0eDFfdCBfX2EsIGNvbnN0
IGludCBfX2xhbmUxLA0KICAgICsJCSBwb2x5NjR4Ml90IF9fYiwgY29uc3QgaW50IF9fbGFuZTIp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2
NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIpLA0KICAgICsJCQkJICBfX2EsIF9fbGFuZTEp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5X2xhbmVxX3M4IChpbnQ4eDhfdCBfX2Es
IGNvbnN0IGludCBfX2xhbmUxLA0KICAgICsJCWludDh4MTZfdCBfX2IsIGNvbnN0IGludCBfX2xh
bmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2Fh
cmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSBfX2EsIF9fbGFu
ZTEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29weV9sYW5lcV9zMTYgKGludDE2eDRf
dCBfX2EsIGNvbnN0IGludCBfX2xhbmUxLA0KICAgICsJCSBpbnQxNng4X3QgX19iLCBjb25zdCBp
bnQgX19sYW5lMikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2Fu
eSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgIF9f
YSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5X2xhbmVxX3MzMiAo
aW50MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJIGludDMyeDRfdCBfX2Is
IGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0
X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICAr
CQkJCSAgX19hLCBfX2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlfbGFu
ZXFfczY0IChpbnQ2NHgxX3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCQkgaW50NjR4
Ml90IF9fYiwgY29uc3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJj
aDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIp
LA0KICAgICsJCQkJICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y29weV9sYW5lcV91OCAodWludDh4OF90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJ
dWludDh4MTZfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBf
X2xhbmUyKSwNCiAgICArCQkJCSBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmNvcHlfbGFuZXFfdTE2ICh1aW50MTZ4NF90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEs
DQogICAgKwkJIHVpbnQxNng4X3QgX19iLCBjb25zdCBpbnQgX19sYW5lMikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9h
bnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgIF9fYSwgX19sYW5lMSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y29weV9sYW5lcV91MzIgKHVpbnQzMngyX3QgX19hLCBjb25zdCBp
bnQgX19sYW5lMSwNCiAgICArCQkgdWludDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRf
dmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSAgX19hLCBfX2xhbmUxKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0
eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5X2xhbmVxX3U2NCAodWludDY0eDFfdCBf
X2EsIGNvbnN0IGludCBfX2xhbmUxLA0KICAgICsJCSB1aW50NjR4Ml90IF9fYiwgY29uc3QgaW50
IF9fbGFuZTIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkg
KF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIpLA0KICAgICsJCQkJICBfX2Es
IF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2Y29weXFfbGFuZS4gICovDQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Zjb3B5cV9sYW5lX2YzMiAoZmxvYXQzMng0X3QgX19hLCBjb25zdCBp
bnQgX19sYW5lMSwNCiAgICArCQkgZmxvYXQzMngyX3QgX19iLCBjb25zdCBpbnQgX19sYW5lMikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19hYXJjaDY0
X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgICBfX2EsIF9fbGFuZTEp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5cV9sYW5lX2Y2NCAoZmxvYXQ2NHgy
X3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCQkgZmxvYXQ2NHgxX3QgX19iLCBjb25z
dCBpbnQgX19sYW5lMikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5l
X2FueSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkg
ICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBwb2x5OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlxX2xhbmVf
cDggKHBvbHk4eDE2X3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCQlwb2x5OHg4X3Qg
X19iLCBjb25zdCBpbnQgX19sYW5lMikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRf
dnNldF9sYW5lX2FueSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQog
ICAgKwkJCQkgIF9fYSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29w
eXFfbGFuZV9wMTYgKHBvbHkxNng4X3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCQkg
cG9seTE2eDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBf
X2xhbmUyKSwNCiAgICArCQkJCSAgIF9fYSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2Y29weXFfbGFuZV9wNjQgKHBvbHk2NHgyX3QgX19hLCBjb25zdCBpbnQgX19sYW5l
MSwNCiAgICArCQkgcG9seTY0eDFfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5l
X2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSAgIF9fYSwgX19sYW5lMSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Zjb3B5cV9sYW5lX3M4IChpbnQ4eDE2X3QgX19hLCBjb25zdCBp
bnQgX19sYW5lMSwNCiAgICArCQlpbnQ4eDhfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdl
dF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSAgX19hLCBfX2xhbmUxKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlxX2xhbmVfczE2IChpbnQxNng4X3QgX19hLCBj
b25zdCBpbnQgX19sYW5lMSwNCiAgICArCQkgaW50MTZ4NF90IF9fYiwgY29uc3QgaW50IF9fbGFu
ZTIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFy
Y2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIpLA0KICAgICsJCQkJICAgX19hLCBfX2xh
bmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlxX2xhbmVfczMyIChpbnQzMng0
X3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCQkgaW50MzJ4Ml90IF9fYiwgY29uc3Qg
aW50IF9fbGFuZTIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9h
bnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIpLA0KICAgICsJCQkJICAg
X19hLCBfX2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlxX2xhbmVfczY0
IChpbnQ2NHgyX3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCQkgaW50NjR4MV90IF9f
YiwgY29uc3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3Zz
ZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIpLA0KICAg
ICsJCQkJICAgX19hLCBfX2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5
cV9sYW5lX3U4ICh1aW50OHgxNl90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJdWlu
dDh4OF90IF9fYiwgY29uc3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
YXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFu
ZTIpLA0KICAgICsJCQkJICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmNvcHlxX2xhbmVfdTE2ICh1aW50MTZ4OF90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQog
ICAgKwkJIHVpbnQxNng0X3QgX19iLCBjb25zdCBpbnQgX19sYW5lMikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkg
KF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmNvcHlxX2xhbmVfdTMyICh1aW50MzJ4NF90IF9fYSwgY29uc3QgaW50
IF9fbGFuZTEsDQogICAgKwkJIHVpbnQzMngyX3QgX19iLCBjb25zdCBpbnQgX19sYW5lMikNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19hYXJjaDY0X3Zn
ZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgICBfX2EsIF9fbGFuZTEpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlxX2xhbmVfdTY0ICh1aW50NjR4Ml90IF9f
YSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJIHVpbnQ2NHgxX3QgX19iLCBjb25zdCBpbnQg
X19sYW5lMikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAo
X19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgICBfX2Es
IF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2Y29weXFfbGFuZXEuICAqLw0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y29weXFfbGFuZXFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGNvbnN0
IGludCBfX2xhbmUxLA0KICAgICsJCSAgZmxvYXQzMng0X3QgX19iLCBjb25zdCBpbnQgX19sYW5l
MikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19hYXJj
aDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgICBfX2EsIF9fbGFu
ZTEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5cV9sYW5lcV9mNjQgKGZsb2F0
NjR4Ml90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJICBmbG9hdDY0eDJfdCBfX2Is
IGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0
X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICAr
CQkJCSAgIF9fYSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29weXFf
bGFuZXFfcDggKHBvbHk4eDE2X3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCQkgcG9s
eTh4MTZfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xh
bmUyKSwNCiAgICArCQkJCSAgX19hLCBfX2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Zjb3B5cV9sYW5lcV9wMTYgKHBvbHkxNng4X3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwN
CiAgICArCQkgIHBvbHkxNng4X3QgX19iLCBjb25zdCBpbnQgX19sYW5lMikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9h
bnkgKF9fYiwgX19sYW5lMiksDQogICAgKwkJCQkgICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmNvcHlxX2xhbmVxX3A2NCAocG9seTY0eDJfdCBfX2EsIGNvbnN0
IGludCBfX2xhbmUxLA0KICAgICsJCSAgcG9seTY0eDJfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUy
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNo
NjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSAgIF9fYSwgX19sYW5l
MSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zjb3B5cV9sYW5lcV9zOCAoaW50OHgxNl90
IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJIGludDh4MTZfdCBfX2IsIGNvbnN0IGlu
dCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55
IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSAgX19h
LCBfX2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlxX2xhbmVxX3MxNiAo
aW50MTZ4OF90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJICBpbnQxNng4X3QgX19i
LCBjb25zdCBpbnQgX19sYW5lMikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNl
dF9sYW5lX2FueSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lMiksDQogICAg
KwkJCQkgICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29weXFf
bGFuZXFfczMyIChpbnQzMng0X3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICArCQkgIGlu
dDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YWFyY2g2NF92c2V0X2xhbmVfYW55IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xh
bmUyKSwNCiAgICArCQkJCSAgIF9fYSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Zjb3B5cV9sYW5lcV9zNjQgKGludDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2xhbmUxLA0K
ICAgICsJCSAgaW50NjR4Ml90IF9fYiwgY29uc3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55
IChfX2IsIF9fbGFuZTIpLA0KICAgICsJCQkJICAgX19hLCBfX2xhbmUxKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Zjb3B5cV9sYW5lcV91OCAodWludDh4MTZfdCBfX2EsIGNvbnN0IGlu
dCBfX2xhbmUxLA0KICAgICsJCSB1aW50OHgxNl90IF9fYiwgY29uc3QgaW50IF9fbGFuZTIpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92
Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIpLA0KICAgICsJCQkJICBfX2EsIF9fbGFuZTEpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNvcHlxX2xhbmVxX3UxNiAodWludDE2eDhfdCBf
X2EsIGNvbnN0IGludCBfX2xhbmUxLA0KICAgICsJCSAgdWludDE2eDhfdCBfX2IsIGNvbnN0IGlu
dCBfX2xhbmUyKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55
IChfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUyKSwNCiAgICArCQkJCSAgIF9f
YSwgX19sYW5lMSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y29weXFfbGFuZXFfdTMy
ICh1aW50MzJ4NF90IF9fYSwgY29uc3QgaW50IF9fbGFuZTEsDQogICAgKwkJICB1aW50MzJ4NF90
IF9fYiwgY29uc3QgaW50IF9fbGFuZTIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0
X3ZzZXRfbGFuZV9hbnkgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZTIpLA0K
ICAgICsJCQkJICAgX19hLCBfX2xhbmUxKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zj
b3B5cV9sYW5lcV91NjQgKHVpbnQ2NHgyX3QgX19hLCBjb25zdCBpbnQgX19sYW5lMSwNCiAgICAr
CQkgIHVpbnQ2NHgyX3QgX19iLCBjb25zdCBpbnQgX19sYW5lMikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9f
YiwgX19sYW5lMiksDQogICAgKwkJCQkgICBfX2EsIF9fbGFuZTEpOw0KICAgICt9DQogICAgKw0K
ICAgICsvKiB2Y3Z0IChkb3VibGUgLT4gZmxvYXQpLiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmN2dF9mMTZfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfZmxvYXRfdHJ1bmNhdGVfbG9fdjRoZiAoX19hKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y3Z0X2hpZ2hfZjE2X2YzMiAoZmxvYXQxNng0X3QgX19hLCBmbG9h
dDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZmxv
YXRfdHJ1bmNhdGVfaGlfdjhoZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZjdnRfZjMyX2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X2Zsb2F0X3RydW5jYXRlX2xvX3Yyc2YgKF9fYSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dF9oaWdoX2YzMl9mNjQgKGZsb2F0MzJ4Ml90IF9fYSwg
ZmxvYXQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X2Zsb2F0X3RydW5jYXRlX2hpX3Y0c2YgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
LyogdmN2dCAoZmxvYXQgLT4gZG91YmxlKS4gICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRf
ZjMyX2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X2Zsb2F0X2V4dGVuZF9sb192NHNmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZjdnRfZjY0X2YzMiAoZmxvYXQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKw0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbG9hdF9leHRlbmRfbG9fdjJkZiAoX19h
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0X2hpZ2hfZjMyX2YxNiAoZmxvYXQx
Nng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3ZlY191
bnBhY2tzX2hpX3Y4aGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dF9o
aWdoX2Y2NF9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF92ZWNfdW5wYWNrc19oaV92NHNmIChfX2EpOw0KICAgICt9DQogICAgKw0K
ICAgICsvKiB2Y3Z0ICg8dT5maXhlZC1wb2ludCAtPiBmbG9hdCkuICAqLw0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmN2dGRfbl9mNjRfczY0IChpbnQ2NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zY3Z0ZmRpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRkX25fZjY0X3U2NCAodWludDY0X3QgX19hLCBj
b25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vj
dnRmZGlfc3VzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRzX25f
ZjMyX3MzMiAoaW50MzJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfc2N2dGZzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Y3Z0c19uX2YzMl91MzIgKHVpbnQzMl90IF9fYSwgY29uc3QgaW50IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91Y3Z0ZnNpX3N1cyAoX19h
LCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRfbl9mMzJfczMyIChpbnQz
MngyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3NjdnRmdjJzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZjdnRfbl9mMzJfdTMyICh1aW50MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91Y3Z0ZnYyc2lfc3VzIChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs
b2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dF9uX2Y2NF9zNjQgKGludDY0eDFf
dCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0NjR4MV90
KQ0KICAgICsgICAgeyBfX2J1aWx0aW5fYWFyY2g2NF9zY3Z0ZmRpICh2Z2V0X2xhbmVfczY0IChf
X2EsIDApLCBfX2IpIH07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dF9uX2Y2NF91
NjQgKHVpbnQ2NHgxX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChmbG9hdDY0eDFfdCkNCiAgICArICAgIHsgX19idWlsdGluX2FhcmNoNjRfdWN2dGZkaV9zdXMg
KHZnZXRfbGFuZV91NjQgKF9fYSwgMCksIF9fYikgfTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y3Z0cV9uX2YzMl9zMzIgKGludDMyeDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc2N2dGZ2NHNpIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0
MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHFfbl9mMzJfdTMyICh1aW50MzJ4NF90
IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF91Y3Z0ZnY0c2lfc3VzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmN2dHFfbl9mNjRfczY0IChpbnQ2NHgyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NjdnRmdjJkaSAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRxX25fZjY0X3U2NCAodWludDY0eDJfdCBf
X2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfdWN2dGZ2MmRpX3N1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2Y3Z0
IChmbG9hdCAtPiA8dT5maXhlZC1wb2ludCkuICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRkX25f
czY0X2Y2NCAoZmxvYXQ2NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mY3Z0enNkZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZjdnRkX25fdTY0X2Y2NCAoZmxvYXQ2NF90IF9fYSwgY29uc3QgaW50IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mY3Z0enVkZl91c3Mg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRzX25fczMyX2YzMiAoZmxv
YXQzMl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9mY3Z0enNzZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZjdnRzX25fdTMyX2YzMiAoZmxvYXQzMl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mY3Z0enVzZl91c3MgKF9fYSwgX19iKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dF9uX3MzMl9mMzIgKGZsb2F0MzJ4Ml90IF9f
YSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9mY3Z0enN2MnNmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0
X25fdTMyX2YzMiAoZmxvYXQzMngyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZjdnR6dXYyc2ZfdXNzIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRfbl9zNjRfZjY0IChmbG9hdDY0eDFfdCBfX2Es
IGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDFfdCkNCiAgICAr
ICAgIHsgX19idWlsdGluX2FhcmNoNjRfZmN2dHpzZGYgKHZnZXRfbGFuZV9mNjQgKF9fYSwgMCks
IF9fYikgfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRfbl91NjRfZjY0IChmbG9h
dDY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2
NHgxX3QpDQogICAgKyAgICB7IF9fYnVpbHRpbl9hYXJjaDY0X2ZjdnR6dWRmX3VzcyAodmdldF9s
YW5lX2Y2NCAoX19hLCAwKSwgX19iKSB9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0
cV9uX3MzMl9mMzIgKGZsb2F0MzJ4NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mY3Z0enN2NHNmIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0cV9uX3UzMl9mMzIgKGZsb2F0MzJ4NF90IF9fYSwg
Y29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9m
Y3Z0enV2NHNmX3VzcyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0
cV9uX3M2NF9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mY3Z0enN2MmRmIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0cV9uX3U2NF9mNjQgKGZsb2F0NjR4Ml90IF9fYSwg
Y29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9m
Y3Z0enV2MmRmX3VzcyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2Y3Z0ICAo
PHU+aW50IC0+IGZsb2F0KSAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRkX2Y2NF9zNjQgKGlu
dDY0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDY0X3QpIF9fYTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dGRfZjY0X3U2NCAodWludDY0X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChmbG9hdDY0X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmN2dHNfZjMyX3MzMiAoaW50MzJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZs
b2F0MzJfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0c19mMzJfdTMyICh1
aW50MzJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MzJfdCkgX19hOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRfZjMyX3MzMiAoaW50MzJ4Ml90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbG9hdHYyc2l2MnNmIChfX2Ep
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRfZjMyX3UzMiAodWludDMyeDJfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZmxvYXR1bnN2MnNp
djJzZiAoKGludDMyeDJfdCkgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0
X2Y2NF9zNjQgKGludDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0NjR4
MV90KSB7IHZnZXRfbGFuZV9zNjQgKF9fYSwgMCkgfTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y3Z0X2Y2NF91NjQgKHVpbnQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChmbG9hdDY0eDFfdCkgeyB2Z2V0X2xhbmVfdTY0IChfX2EsIDApIH07DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmN2dHFfZjMyX3MzMiAoaW50MzJ4NF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbG9hdHY0c2l2NHNmIChfX2EpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRxX2YzMl91MzIgKHVpbnQzMng0X3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zsb2F0dW5zdjRzaXY0c2YgKChp
bnQzMng0X3QpIF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHFfZjY0X3M2
NCAoaW50NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9mbG9hdHYyZGl2MmRmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRx
X2Y2NF91NjQgKHVpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X2Zsb2F0dW5zdjJkaXYyZGYgKChpbnQ2NHgyX3QpIF9fYSk7DQogICAgK30NCiAg
ICArDQogICAgKy8qIHZjdnQgKGZsb2F0IC0+IDx1PmludCkgICovDQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmN2dGRfczY0X2Y2NCAoZmxvYXQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
NjRfdCkgX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRkX3U2NF9mNjQgKGZsb2F0
NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NF90KSBfX2E7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y3Z0c19zMzJfZjMyIChmbG9hdDMyX3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIChpbnQzMl90KSBfX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2
dHNfdTMyX2YzMiAoZmxvYXQzMl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMy
X3QpIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dF9zMzJfZjMyIChmbG9hdDMy
eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGJ0cnVu
Y3Yyc2Z2MnNpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dF91MzJfZjMy
IChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfbGJ0cnVuY3V2MnNmdjJzaV91cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmN2dHFfczMyX2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X2xidHJ1bmN2NHNmdjRzaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZjdnRxX3UzMl9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sYnRydW5jdXY0c2Z2NHNpX3VzIChfX2EpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0X3M2NF9mNjQgKGZsb2F0NjR4MV90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSB7dmN2dGRfczY0X2Y2NCAoX19hWzBdKX07
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2
NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0X3U2NF9mNjQgKGZsb2F0NjR4MV90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkge3ZjdnRkX3U2NF9mNjQgKF9f
YVswXSl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0cV9zNjRfZjY0IChmbG9hdDY0
eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGJ0cnVu
Y3YyZGZ2MmRpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHFfdTY0X2Y2
NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X2xidHJ1bmN1djJkZnYyZGlfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZj
dnRhICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRhZF9zNjRfZjY0IChmbG9hdDY0X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xyb3VuZGRmZGkgKF9fYSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dGFkX3U2NF9mNjQgKGZsb2F0NjRfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbHJvdW5kdWRmZGlfdXMg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0YXNfczMyX2YzMiAoZmxvYXQzMl90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9scm91bmRzZnNp
IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRhc191MzJfZjMyIChmbG9hdDMy
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xyb3VuZHVz
ZnNpX3VzIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0YV9zMzJfZjMyIChm
bG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
bHJvdW5kdjJzZnYyc2kgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0YV91
MzJfZjMyIChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfbHJvdW5kdXYyc2Z2MnNpX3VzIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y3Z0YXFfczMyX2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xyb3VuZHY0c2Z2NHNpIChfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmN2dGFxX3UzMl9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9scm91bmR1djRzZnY0c2lfdXMgKF9fYSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0
eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRhX3M2NF9mNjQgKGZsb2F0NjR4MV90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSB7dmN2dGFkX3M2NF9mNjQgKF9f
YVswXSl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dGFfdTY0X2Y2NCAoZmxvYXQ2
NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSB7dmN2dGFkX3U2
NF9mNjQgKF9fYVswXSl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0YXFfczY0X2Y2
NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X2xyb3VuZHYyZGZ2MmRpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2
dGFxX3U2NF9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9scm91bmR1djJkZnYyZGlfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQog
ICAgKy8qIHZjdnRtICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRtZF9zNjRfZjY0IChmbG9hdDY0
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9sbGZsb29yIChfX2EpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRtZF91NjRfZjY0IChmbG9hdDY0X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xmbG9vcnVkZmRpX3VzIChf
X2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dG1zX3MzMl9mMzIgKGZsb2F0MzJfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2lmbG9vcmYgKF9fYSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dG1zX3UzMl9mMzIgKGZsb2F0MzJfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZsb29ydXNmc2lfdXMgKF9fYSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMy
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRtX3MzMl9mMzIgKGZsb2F0MzJ4Ml90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sZmxvb3J2MnNmdjJz
aSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRtX3UzMl9mMzIgKGZsb2F0
MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sZmxv
b3J1djJzZnYyc2lfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRtcV9z
MzJfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfbGZsb29ydjRzZnY0c2kgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Y3Z0bXFfdTMyX2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X2xmbG9vcnV2NHNmdjRzaV91cyAoX19hKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmN2dG1fczY0X2Y2NCAoZmxvYXQ2NHgxX3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIChpbnQ2NHgxX3QpIHt2Y3Z0bWRfczY0X2Y2NCAoX19hWzBdKX07DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0bV91NjRfZjY0IChmbG9hdDY0eDFfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIHt2Y3Z0bWRfdTY0X2Y2NCAoX19hWzBd
KX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRtcV9zNjRfZjY0IChmbG9hdDY0eDJf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZsb29ydjJk
ZnYyZGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0bXFfdTY0X2Y2NCAo
ZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X2xmbG9vcnV2MmRmdjJkaV91cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmN2dG4g
ICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dG5kX3M2NF9mNjQgKGZsb2F0NjRfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZyaW50bmRmZGkgKF9fYSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dG5kX3U2NF9mNjQgKGZsb2F0NjRfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZyaW50bnVkZmRpX3VzIChf
X2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dG5zX3MzMl9mMzIgKGZsb2F0MzJfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZyaW50bnNmc2kg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dG5zX3UzMl9mMzIgKGZsb2F0MzJf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZyaW50bnVz
ZnNpX3VzIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0bl9zMzJfZjMyIChm
bG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
bGZyaW50bnYyc2Z2MnNpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dG5f
dTMyX2YzMiAoZmxvYXQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X2xmcmludG51djJzZnYyc2lfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZjdnRucV9zMzJfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZyaW50bnY0c2Z2NHNpIChfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmN2dG5xX3UzMl9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sZnJpbnRudXY0c2Z2NHNpX3VzIChf
X2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0bl9zNjRfZjY0IChmbG9hdDY0eDFf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDFfdCkge3ZjdnRuZF9zNjRfZjY0
IChfX2FbMF0pfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRuX3U2NF9mNjQgKGZs
b2F0NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkge3ZjdnRu
ZF91NjRfZjY0IChfX2FbMF0pfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dG5xX3M2
NF9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9sZnJpbnRudjJkZnYyZGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Y3Z0bnFfdTY0X2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X2xmcmludG51djJkZnYyZGlfdXMgKF9fYSk7DQogICAgK30NCiAg
ICArDQogICAgKy8qIHZjdnRwICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRwZF9zNjRfZjY0IChm
bG9hdDY0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9sbGNlaWwgKF9f
YSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHBkX3U2NF9mNjQgKGZsb2F0NjRfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGNlaWx1ZGZkaV91
cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRwc19zMzJfZjMyIChmbG9hdDMy
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9pY2VpbGYgKF9fYSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHBzX3UzMl9mMzIgKGZsb2F0MzJfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGNlaWx1c2ZzaV91cyAoX19h
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHBfczMyX2YzMiAoZmxvYXQzMngyX3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xjZWlsdjJzZnYy
c2kgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0cF91MzJfZjMyIChmbG9h
dDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGNl
aWx1djJzZnYyc2lfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRwcV9z
MzJfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfbGNlaWx2NHNmdjRzaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZjdnRwcV91MzJfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfbGNlaWx1djRzZnY0c2lfdXMgKF9fYSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZjdnRwX3M2NF9mNjQgKGZsb2F0NjR4MV90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAoaW50NjR4MV90KSB7dmN2dHBkX3M2NF9mNjQgKF9fYVswXSl9Ow0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHBfdTY0X2Y2NCAoZmxvYXQ2NHgxX3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSB7dmN2dHBkX3U2NF9mNjQgKF9fYVswXSl9
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2
NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0cHFfczY0X2Y2NCAoZmxvYXQ2NHgyX3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xjZWlsdjJkZnYy
ZGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0cHFfdTY0X2Y2NCAoZmxv
YXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xj
ZWlsdXYyZGZ2MmRpX3VzIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2ZHVwX24gICov
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBfbl9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGZsb2F0MTZ4NF90KSB7X19hLCBfX2EsIF9fYSwgX19hfTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwX25fZjMyIChmbG9hdDMyX3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChmbG9hdDMyeDJfdCkge19fYSwgX19hfTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZHVwX25fZjY0IChmbG9hdDY0X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIChmbG9hdDY0eDFfdCkge19fYX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zk
dXBfbl9wOCAocG9seThfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk4eDhfdCkg
e19fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hfTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZkdXBfbl9wMTYgKHBvbHkxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAocG9seTE2eDRfdCkge19fYSwgX19hLCBfX2EsIF9fYX07DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2ZHVwX25fcDY0IChwb2x5NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHBvbHk2NHgxX3QpIHtfX2F9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBfbl9z
OCAoaW50OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHg4X3QpIHtfX2EsIF9f
YSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYX07DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZkdXBfbl9zMTYgKGludDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQx
Nng0X3QpIHtfX2EsIF9fYSwgX19hLCBfX2F9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
ZHVwX25fczMyIChpbnQzMl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4Ml90
KSB7X19hLCBfX2F9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwX25fczY0IChpbnQ2
NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSB7X19hfTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cF9uX3U4ICh1aW50OF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAodWludDh4OF90KSB7X19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19h
LCBfX2F9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cF9uX3UxNiAodWludDE2X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90KSB7X19hLCBfX2EsIF9fYSwg
X19hfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBfbl91MzIgKHVpbnQzMl90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkge19fYSwgX19hfTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBfbl91NjQgKHVpbnQ2NF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDY0eDFfdCkge19fYX07DQogICAgK30NCiAgICArDQogICAgKy8q
IHZkdXBxX24gICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBxX25fZjE2IChmbG9hdDE2X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDE2eDhfdCkge19fYSwgX19hLCBfX2Es
IF9fYSwgX19hLCBfX2EsIF9fYSwgX19hfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
ZHVwcV9uX2YzMiAoZmxvYXQzMl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQz
Mng0X3QpIHtfX2EsIF9fYSwgX19hLCBfX2F9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZkdXBxX25fZjY0IChmbG9hdDY0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9h
dDY0eDJfdCkge19fYSwgX19hfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBxX25f
cDggKHVpbnQzMl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4MTZfdCkge19f
YSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLA0KICAgICsJCSAgICAgICBfX2Es
IF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYX07DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2ZHVwcV9uX3AxNiAodWludDMyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChwb2x5MTZ4OF90KSB7X19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2F9Ow0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cHFfbl9wNjQgKHVpbnQ2NF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiAocG9seTY0eDJfdCkge19fYSwgX19hfTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmR1cHFfbl9zOCAoaW50MzJfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKGludDh4MTZfdCkge19fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19h
LA0KICAgICsJCSAgICAgIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hfTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cHFfbl9zMTYgKGludDMyX3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIHtfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwg
X19hLCBfX2EsIF9fYX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBxX25fczMyIChp
bnQzMl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4NF90KSB7X19hLCBfX2Es
IF9fYSwgX19hfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cHFfbl9zNjQgKGludDY0
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgyX3QpIHtfX2EsIF9fYX07DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwcV9uX3U4ICh1aW50MzJfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpIHtfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwg
X19hLCBfX2EsIF9fYSwNCiAgICArCQkgICAgICAgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9f
YSwgX19hLCBfX2F9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cHFfbl91MTYgKHVp
bnQzMl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkge19fYSwgX19h
LCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hfTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZkdXBxX25fdTMyICh1aW50MzJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVp
bnQzMng0X3QpIHtfX2EsIF9fYSwgX19hLCBfX2F9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmR1cHFfbl91NjQgKHVpbnQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWlu
dDY0eDJfdCkge19fYSwgX19hfTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmR1cF9sYW5lICAq
Lw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwX2xhbmVfZjE2IChmbG9hdDE2eDRfdCBfX2EsIGNv
bnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBfbGFuZV9m
MTYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwX2xhbmVfZjMy
IChmbG9hdDMyeDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19hYXJjaDY0X3ZkdXBfbGFuZV9mMzIgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2ZHVwX2xhbmVfZjY0IChmbG9hdDY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBfbGFuZV9mNjQgKF9fYSwgX19iKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cF9sYW5lX3A4IChwb2x5OHg4X3QgX19hLCBj
b25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwX2xhbmVf
cDggKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgcG9seTE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBfbGFuZV9wMTYg
KHBvbHkxNng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YWFyY2g2NF92ZHVwX2xhbmVfcDE2IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2ZHVwX2xhbmVfcDY0IChwb2x5NjR4MV90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmR1cF9sYW5lX3A2NCAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBfbGFuZV9zOCAoaW50OHg4X3QgX19hLCBjb25zdCBp
bnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwX2xhbmVfczggKF9f
YSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cF9sYW5lX3MxNiAoaW50MTZ4
NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRf
dmR1cF9sYW5lX3MxNiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVw
X2xhbmVfczMyIChpbnQzMngyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYWFyY2g2NF92ZHVwX2xhbmVfczMyIChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZkdXBfbGFuZV9zNjQgKGludDY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBfbGFuZV9zNjQgKF9fYSwgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cF9sYW5lX3U4ICh1aW50OHg4X3QgX19h
LCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwX2xh
bmVfdTggKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBfbGFuZV91
MTYgKHVpbnQxNng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYWFyY2g2NF92ZHVwX2xhbmVfdTE2IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2ZHVwX2xhbmVfdTMyICh1aW50MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmR1cF9sYW5lX3UzMiAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4
MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cF9sYW5lX3U2NCAodWludDY0eDFfdCBfX2Es
IGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBfbGFu
ZV91NjQgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmR1cF9sYW5lcSAgKi8N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cF9sYW5lcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgY29u
c3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmR1cF9sYW5lcV9m
MTYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwX2xhbmVxX2Yz
MiAoZmxvYXQzMng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYWFyY2g2NF92ZHVwX2xhbmVxX2YzMiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZkdXBfbGFuZXFfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBfbGFuZXFfZjY0IChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBfbGFuZXFfcDggKHBvbHk4eDE2X3Qg
X19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVw
X2xhbmVxX3A4IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwX2xh
bmVxX3AxNiAocG9seTE2eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19hYXJjaDY0X3ZkdXBfbGFuZXFfcDE2IChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZHVwX2xhbmVxX3A2NCAocG9seTY0eDJfdCBfX2EsIGNvbnN0IGludCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBfbGFuZXFfcDY0IChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cF9sYW5lcV9zOCAoaW50OHgxNl90
IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmR1
cF9sYW5lcV9zOCAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwX2xh
bmVxX3MxNiAoaW50MTZ4OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2FhcmNoNjRfdmR1cF9sYW5lcV9zMTYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmR1cF9sYW5lcV9zMzIgKGludDMyeDRfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBfbGFuZXFfczMyIChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBfbGFuZXFfczY0IChpbnQ2NHgyX3Qg
X19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVw
X2xhbmVxX3M2NCAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwX2xh
bmVxX3U4ICh1aW50OHgxNl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2FhcmNoNjRfdmR1cF9sYW5lcV91OCAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmR1cF9sYW5lcV91MTYgKHVpbnQxNng4X3QgX19hLCBjb25zdCBpbnQgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwX2xhbmVxX3UxNiAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cF9sYW5lcV91MzIgKHVpbnQzMng0
X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92
ZHVwX2xhbmVxX3UzMiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1
cF9sYW5lcV91NjQgKHVpbnQ2NHgyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwX2xhbmVxX3U2NCAoX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICsvKiB2ZHVwcV9sYW5lICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwcV9s
YW5lX2YxNiAoZmxvYXQxNng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYWFyY2g2NF92ZHVwcV9sYW5lX2YxNiAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZkdXBxX2xhbmVfZjMyIChmbG9hdDMyeDJfdCBfX2EsIGNvbnN0IGlu
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBxX2xhbmVfZjMyIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cHFfbGFuZV9mNjQgKGZs
b2F0NjR4MV90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2Fh
cmNoNjRfdmR1cHFfbGFuZV9mNjQgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZkdXBxX2xhbmVfcDggKHBvbHk4eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBxX2xhbmVfcDggKF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBxX2xhbmVfcDE2IChwb2x5MTZ4NF90IF9fYSwgY29u
c3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmR1cHFfbGFuZV9w
MTYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgcG9seTY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBxX2xhbmVfcDY0
IChwb2x5NjR4MV90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2FhcmNoNjRfdmR1cHFfbGFuZV9wNjQgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmR1cHFfbGFuZV9zOCAoaW50OHg4X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwcV9sYW5lX3M4IChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBxX2xhbmVfczE2IChpbnQxNng0X3QgX19hLCBjb25z
dCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwcV9sYW5lX3Mx
NiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwcV9sYW5lX3MzMiAo
aW50MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2Fh
cmNoNjRfdmR1cHFfbGFuZV9zMzIgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmR1cHFfbGFuZV9zNjQgKGludDY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBxX2xhbmVfczY0IChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwcV9sYW5lX3U4ICh1aW50OHg4X3QgX19hLCBjb25z
dCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwcV9sYW5lX3U4
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwcV9sYW5lX3UxNiAo
dWludDE2eDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
YXJjaDY0X3ZkdXBxX2xhbmVfdTE2IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2ZHVwcV9sYW5lX3UzMiAodWludDMyeDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBxX2xhbmVfdTMyIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwcV9sYW5lX3U2NCAodWludDY0eDFfdCBfX2Es
IGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBxX2xh
bmVfdTY0IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZkdXBxX2xhbmVxICAq
Lw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwcV9sYW5lcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwg
Y29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmR1cHFfbGFu
ZXFfZjE2IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cHFfbGFu
ZXFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19hYXJjaDY0X3ZkdXBxX2xhbmVxX2YzMiAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZkdXBxX2xhbmVxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBjb25zdCBp
bnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV9mNjQg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBxX2xhbmVxX3A4IChw
b2x5OHgxNl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2Fh
cmNoNjRfdmR1cHFfbGFuZXFfcDggKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZkdXBxX2xhbmVxX3AxNiAocG9seTE2eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBxX2xhbmVxX3AxNiAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cHFfbGFuZXFfcDY0IChwb2x5NjR4Ml90IF9f
YSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmR1cHFf
bGFuZXFfcDY0IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBxX2xh
bmVxX3M4IChpbnQ4eDE2X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV9zOCAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2ZHVwcV9sYW5lcV9zMTYgKGludDE2eDhfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBxX2xhbmVxX3MxNiAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwcV9sYW5lcV9zMzIgKGludDMyeDRf
dCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3Zk
dXBxX2xhbmVxX3MzMiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVw
cV9sYW5lcV9zNjQgKGludDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hYXJjaDY0X3ZkdXBxX2xhbmVxX3M2NCAoX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmR1cHFfbGFuZXFfdTggKHVpbnQ4eDE2X3QgX19hLCBjb25zdCBp
bnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV91OCAo
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cHFfbGFuZXFfdTE2ICh1
aW50MTZ4OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2Fh
cmNoNjRfdmR1cHFfbGFuZXFfdTE2IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2ZHVwcV9sYW5lcV91MzIgKHVpbnQzMng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV91MzIgKF9fYSwgX19iKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBxX2xhbmVxX3U2NCAodWludDY0eDJfdCBf
X2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZkdXBx
X2xhbmVxX3U2NCAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2ZHVwYl9sYW5l
ICAqLw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmR1cGJfbGFuZV9wOCAocG9seTh4OF90IF9fYSwgY29uc3QgaW50IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwYl9sYW5lX3M4IChpbnQ4eDhfdCBfX2Es
IGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFu
ZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBiX2xhbmVfdTgg
KHVpbnQ4eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
YXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArLyog
dmR1cGhfbGFuZSAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBoX2xhbmVfZjE2IChmbG9hdDE2
eDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0
X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVw
aF9sYW5lX3AxNiAocG9seTE2eDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZkdXBoX2xhbmVfczE2IChpbnQxNng0X3QgX19hLCBjb25zdCBpbnQgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cGhfbGFuZV91MTYgKHVpbnQxNng0X3Qg
X19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0
X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZkdXBzX2xhbmUg
ICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwc19sYW5lX2YzMiAoZmxvYXQzMngyX3QgX19hLCBj
b25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVf
YW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwc19sYW5lX3MzMiAo
aW50MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2Fh
cmNoNjRfdmdldF9sYW5lX2FueSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZkdXBzX2xhbmVfdTMyICh1aW50MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19hLCBfX2IpOw0KICAgICt9
DQogICAgKw0KICAgICsvKiB2ZHVwZF9sYW5lICAqLw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwZF9sYW5lX2Y2
NCAoZmxvYXQ2NHgxX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgX19BQVJD
SDY0X0xBTkVfQ0hFQ0sgKF9fYSwgX19iKTsNCiAgICArICByZXR1cm4gX19hWzBdOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmR1cGRfbGFuZV9zNjQgKGludDY0eDFfdCBfX2EsIGNvbnN0IGlu
dCBfX2IpDQogICAgK3sNCiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19hLCBfX2IpOw0K
ICAgICsgIHJldHVybiBfX2FbMF07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cGRfbGFu
ZV91NjQgKHVpbnQ2NHgxX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgX19B
QVJDSDY0X0xBTkVfQ0hFQ0sgKF9fYSwgX19iKTsNCiAgICArICByZXR1cm4gX19hWzBdOw0KICAg
ICt9DQogICAgKw0KICAgICsvKiB2ZHVwYl9sYW5lcSAgKi8NCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgcG9seThfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBiX2xhbmVx
X3A4IChwb2x5OHgxNl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2ZHVwYl9sYW5lcV9zOCAoaW50OHgxNl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmR1cGJfbGFuZXFfdTggKHVpbnQ4eDE2X3QgX19hLCBjb25z
dCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZkdXBoX2xhbmVxICAqLw0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNl90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmR1cGhfbGFuZXFfZjE2IChmbG9hdDE2eDhfdCBfX2EsIGNvbnN0IGlu
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9f
YSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgcG9seTE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVwaF9sYW5lcV9wMTYgKHBvbHkx
Nng4X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2
NF92Z2V0X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVw
aF9sYW5lcV9zMTYgKGludDE2eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZHVwaF9sYW5lcV91MTYgKHVpbnQxNng4X3QgX19hLCBjb25zdCBpbnQg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZkdXBzX2xhbmVxICAqLw0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmR1cHNfbGFuZXFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBzX2xhbmVxX3MzMiAoaW50MzJ4NF90IF9f
YSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdmdldF9s
YW5lX2FueSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBzX2xhbmVx
X3UzMiAodWludDMyeDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArLyogdmR1cGRfbGFuZXEgICovDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkdXBkX2xhbmVxX2Y2NCAoZmxvYXQ2
NHgyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2
NF92Z2V0X2xhbmVfYW55IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZHVw
ZF9sYW5lcV9zNjQgKGludDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZHVwZF9sYW5lcV91NjQgKHVpbnQ2NHgyX3QgX19hLCBjb25zdCBpbnQg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZleHQgICovDQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZleHRfZjE2IChmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYiwgX19jb25zdCBp
bnQgX19jKQ0KICAgICt7DQogICAgKyAgX19BQVJDSDY0X0xBTkVfQ0hFQ0sgKF9fYSwgX19jKTsN
CiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKF9fYiwgX19hLA0KICAgICsJCQkgICAgKHVpbnQxNng0X3QpIHs0IC0gX19jLCA1IC0gX19j
LCA2IC0gX19jLCA3IC0gX19jfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9zaHVmZmxlIChfX2EsIF9fYiwNCiAgICArCQkJICAgICh1aW50MTZ4NF90KSB7X19jLCBfX2Mg
KyAxLCBfX2MgKyAyLCBfX2MgKyAzfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZleHRfZjMyIChmbG9hdDMyeDJfdCBfX2EsIGZsb2F0MzJ4Ml90IF9fYiwgX19j
b25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgX19BQVJDSDY0X0xBTkVfQ0hFQ0sgKF9fYSwg
X19jKTsNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGlu
X3NodWZmbGUgKF9fYiwgX19hLCAodWludDMyeDJfdCkgezItX19jLCAzLV9fY30pOw0KICAgICsj
ZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4
Ml90KSB7X19jLCBfX2MrMX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2ZXh0X2Y2NCAoZmxvYXQ2NHgxX3QgX19hLCBmbG9hdDY0eDFfdCBfX2IsIF9fY29uc3Qg
aW50IF9fYykNCiAgICArew0KICAgICsgIF9fQUFSQ0g2NF9MQU5FX0NIRUNLIChfX2EsIF9fYyk7
DQogICAgKyAgLyogVGhlIG9ubHkgcG9zc2libGUgaW5kZXggdG8gdGhlIGFzc2VtYmxlciBpbnN0
cnVjdGlvbiByZXR1cm5zIGVsZW1lbnQgMC4gICovDQogICAgKyAgcmV0dXJuIF9fYTsNCiAgICAr
fQ0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZXh0X3A4IChwb2x5OHg4X3QgX19hLCBwb2x5OHg4X3QgX19iLCBfX2Nv
bnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19hLCBf
X2MpOw0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
c2h1ZmZsZSAoX19iLCBfX2EsICh1aW50OHg4X3QpDQogICAgKyAgICAgIHs4LV9fYywgOS1fX2Ms
IDEwLV9fYywgMTEtX19jLCAxMi1fX2MsIDEzLV9fYywgMTQtX19jLCAxNS1fX2N9KTsNCiAgICAr
I2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLA0KICAgICsg
ICAgICAodWludDh4OF90KSB7X19jLCBfX2MrMSwgX19jKzIsIF9fYyszLCBfX2MrNCwgX19jKzUs
IF9fYys2LCBfX2MrN30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZleHRfcDE2IChwb2x5MTZ4NF90IF9fYSwgcG9seTE2eDRfdCBfX2IsIF9fY29uc3QgaW50IF9f
YykNCiAgICArew0KICAgICsgIF9fQUFSQ0g2NF9MQU5FX0NIRUNLIChfX2EsIF9fYyk7DQogICAg
KyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChf
X2IsIF9fYSwNCiAgICArICAgICAgKHVpbnQxNng0X3QpIHs0LV9fYywgNS1fX2MsIDYtX19jLCA3
LV9fY30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19h
LCBfX2IsICh1aW50MTZ4NF90KSB7X19jLCBfX2MrMSwgX19jKzIsIF9fYyszfSk7DQogICAgKyNl
bmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBw
b2x5NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmV4dF9wNjQgKHBvbHk2NHgxX3QgX19h
LCBwb2x5NjR4MV90IF9fYiwgX19jb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgX19BQVJD
SDY0X0xBTkVfQ0hFQ0sgKF9fYSwgX19jKTsNCiAgICArICAvKiBUaGUgb25seSBwb3NzaWJsZSBp
bmRleCB0byB0aGUgYXNzZW1ibGVyIGluc3RydWN0aW9uIHJldHVybnMgZWxlbWVudCAwLiAgKi8N
CiAgICArICByZXR1cm4gX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZleHRfczggKGlu
dDh4OF90IF9fYSwgaW50OHg4X3QgX19iLCBfX2NvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICAr
ICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19hLCBfX2MpOw0KICAgICsjaWZkZWYgX19BQVJDSDY0
RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19iLCBfX2EsICh1aW50OHg4
X3QpDQogICAgKyAgICAgIHs4LV9fYywgOS1fX2MsIDEwLV9fYywgMTEtX19jLCAxMi1fX2MsIDEz
LV9fYywgMTQtX19jLCAxNS1fX2N9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWls
dGluX3NodWZmbGUgKF9fYSwgX19iLA0KICAgICsgICAgICAodWludDh4OF90KSB7X19jLCBfX2Mr
MSwgX19jKzIsIF9fYyszLCBfX2MrNCwgX19jKzUsIF9fYys2LCBfX2MrN30pOw0KICAgICsjZW5k
aWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmV4dF9zMTYgKGludDE2eDRfdCBfX2EsIGlu
dDE2eDRfdCBfX2IsIF9fY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIF9fQUFSQ0g2NF9M
QU5FX0NIRUNLIChfX2EsIF9fYyk7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2IsIF9fYSwNCiAgICArICAgICAgKHVpbnQxNng0
X3QpIHs0LV9fYywgNS1fX2MsIDYtX19jLCA3LV9fY30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4NF90KSB7X19jLCBfX2Mr
MSwgX19jKzIsIF9fYyszfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2ZXh0X3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYiwgX19jb25zdCBpbnQgX19j
KQ0KICAgICt7DQogICAgKyAgX19BQVJDSDY0X0xBTkVfQ0hFQ0sgKF9fYSwgX19jKTsNCiAgICAr
I2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9f
YiwgX19hLCAodWludDMyeDJfdCkgezItX19jLCAzLV9fY30pOw0KICAgICsjZWxzZQ0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4Ml90KSB7X19jLCBf
X2MrMX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmV4dF9zNjQg
KGludDY0eDFfdCBfX2EsIGludDY0eDFfdCBfX2IsIF9fY29uc3QgaW50IF9fYykNCiAgICArew0K
ICAgICsgIF9fQUFSQ0g2NF9MQU5FX0NIRUNLIChfX2EsIF9fYyk7DQogICAgKyAgLyogVGhlIG9u
bHkgcG9zc2libGUgaW5kZXggdG8gdGhlIGFzc2VtYmxlciBpbnN0cnVjdGlvbiByZXR1cm5zIGVs
ZW1lbnQgMC4gICovDQogICAgKyAgcmV0dXJuIF9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmV4dF91OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9fYiwgX19jb25zdCBpbnQgX19j
KQ0KICAgICt7DQogICAgKyAgX19BQVJDSDY0X0xBTkVfQ0hFQ0sgKF9fYSwgX19jKTsNCiAgICAr
I2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9f
YiwgX19hLCAodWludDh4OF90KQ0KICAgICsgICAgICB7OC1fX2MsIDktX19jLCAxMC1fX2MsIDEx
LV9fYywgMTItX19jLCAxMy1fX2MsIDE0LV9fYywgMTUtX19jfSk7DQogICAgKyNlbHNlDQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwNCiAgICArICAgICAgKHVpbnQ4
eDhfdCkge19fYywgX19jKzEsIF9fYysyLCBfX2MrMywgX19jKzQsIF9fYys1LCBfX2MrNiwgX19j
Kzd9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZXh0X3UxNiAo
dWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iLCBfX2NvbnN0IGludCBfX2MpDQogICAgK3sN
CiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19hLCBfX2MpOw0KICAgICsjaWZkZWYgX19B
QVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19iLCBfX2EsDQog
ICAgKyAgICAgICh1aW50MTZ4NF90KSB7NC1fX2MsIDUtX19jLCA2LV9fYywgNy1fX2N9KTsNCiAg
ICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWlu
dDE2eDRfdCkge19fYywgX19jKzEsIF9fYysyLCBfX2MrM30pOw0KICAgICsjZW5kaWYNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZleHRfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJf
dCBfX2IsIF9fY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIF9fQUFSQ0g2NF9MQU5FX0NI
RUNLIChfX2EsIF9fYyk7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2IsIF9fYSwgKHVpbnQzMngyX3QpIHsyLV9fYywgMy1fX2N9
KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19i
LCAodWludDMyeDJfdCkge19fYywgX19jKzF9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZXh0X3U2NCAodWludDY0eDFfdCBfX2EsIHVpbnQ2NHgxX3QgX19iLCBf
X2NvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19h
LCBfX2MpOw0KICAgICsgIC8qIFRoZSBvbmx5IHBvc3NpYmxlIGluZGV4IHRvIHRoZSBhc3NlbWJs
ZXIgaW5zdHJ1Y3Rpb24gcmV0dXJucyBlbGVtZW50IDAuICAqLw0KICAgICsgIHJldHVybiBfX2E7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0
MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmV4dHFfZjE2IChmbG9hdDE2eDhfdCBfX2Es
IGZsb2F0MTZ4OF90IF9fYiwgX19jb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgX19BQVJD
SDY0X0xBTkVfQ0hFQ0sgKF9fYSwgX19jKTsNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAg
ICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYiwgX19hLA0KICAgICsJCQkgICAgKHVp
bnQxNng4X3QpIHs4IC0gX19jLCA5IC0gX19jLCAxMCAtIF9fYywgMTEgLSBfX2MsDQogICAgKwkJ
CQkJICAxMiAtIF9fYywgMTMgLSBfX2MsIDE0IC0gX19jLA0KICAgICsJCQkJCSAgMTUgLSBfX2N9
KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19i
LA0KICAgICsJCQkgICAgKHVpbnQxNng4X3QpIHtfX2MsIF9fYyArIDEsIF9fYyArIDIsIF9fYyAr
IDMsDQogICAgKwkJCQkJICBfX2MgKyA0LCBfX2MgKyA1LCBfX2MgKyA2LCBfX2MgKyA3fSk7DQog
ICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZleHRxX2YzMiAoZmxvYXQz
Mng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IsIF9fY29uc3QgaW50IF9fYykNCiAgICArew0KICAg
ICsgIF9fQUFSQ0g2NF9MQU5FX0NIRUNLIChfX2EsIF9fYyk7DQogICAgKyNpZmRlZiBfX0FBUkNI
NjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2IsIF9fYSwNCiAgICAr
ICAgICAgKHVpbnQzMng0X3QpIHs0LV9fYywgNS1fX2MsIDYtX19jLCA3LV9fY30pOw0KICAgICsj
ZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4
NF90KSB7X19jLCBfX2MrMSwgX19jKzIsIF9fYyszfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZleHRxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9hdDY0eDJf
dCBfX2IsIF9fY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIF9fQUFSQ0g2NF9MQU5FX0NI
RUNLIChfX2EsIF9fYyk7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2IsIF9fYSwgKHVpbnQ2NHgyX3QpIHsyLV9fYywgMy1fX2N9
KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19i
LCAodWludDY0eDJfdCkge19fYywgX19jKzF9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZXh0cV9wOCAocG9seTh4MTZfdCBfX2EsIHBvbHk4eDE2X3QgX19iLCBf
X2NvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19h
LCBfX2MpOw0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fc2h1ZmZsZSAoX19iLCBfX2EsICh1aW50OHgxNl90KQ0KICAgICsgICAgICB7MTYtX19jLCAx
Ny1fX2MsIDE4LV9fYywgMTktX19jLCAyMC1fX2MsIDIxLV9fYywgMjItX19jLCAyMy1fX2MsDQog
ICAgKyAgICAgICAyNC1fX2MsIDI1LV9fYywgMjYtX19jLCAyNy1fX2MsIDI4LV9fYywgMjktX19j
LCAzMC1fX2MsIDMxLV9fY30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
c2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHgxNl90KQ0KICAgICsgICAgICB7X19jLCBfX2MrMSwg
X19jKzIsIF9fYyszLCBfX2MrNCwgX19jKzUsIF9fYys2LCBfX2MrNywNCiAgICArICAgICAgIF9f
Yys4LCBfX2MrOSwgX19jKzEwLCBfX2MrMTEsIF9fYysxMiwgX19jKzEzLCBfX2MrMTQsIF9fYysx
NX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZleHRxX3AxNiAo
cG9seTE2eDhfdCBfX2EsIHBvbHkxNng4X3QgX19iLCBfX2NvbnN0IGludCBfX2MpDQogICAgK3sN
CiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19hLCBfX2MpOw0KICAgICsjaWZkZWYgX19B
QVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19iLCBfX2EsICh1
aW50MTZ4OF90KQ0KICAgICsgICAgICB7OC1fX2MsIDktX19jLCAxMC1fX2MsIDExLV9fYywgMTIt
X19jLCAxMy1fX2MsIDE0LV9fYywgMTUtX19jfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwNCiAgICArICAgICAgKHVpbnQxNng4X3QpIHtf
X2MsIF9fYysxLCBfX2MrMiwgX19jKzMsIF9fYys0LCBfX2MrNSwgX19jKzYsIF9fYys3fSk7DQog
ICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBwb2x5NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmV4dHFfcDY0IChwb2x5NjR4
Ml90IF9fYSwgcG9seTY0eDJfdCBfX2IsIF9fY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsg
IF9fQUFSQ0g2NF9MQU5FX0NIRUNLIChfX2EsIF9fYyk7DQogICAgKyNpZmRlZiBfX0FBUkNINjRF
Ql9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2IsIF9fYSwgKHVpbnQ2NHgy
X3QpIHsyLV9fYywgMy1fX2N9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGlu
X3NodWZmbGUgKF9fYSwgX19iLCAodWludDY0eDJfdCkge19fYywgX19jKzF9KTsNCiAgICArI2Vu
ZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZleHRxX3M4IChpbnQ4eDE2X3QgX19hLCBp
bnQ4eDE2X3QgX19iLCBfX2NvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICBfX0FBUkNINjRf
TEFORV9DSEVDSyAoX19hLCBfX2MpOw0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19iLCBfX2EsICh1aW50OHgxNl90KQ0KICAgICsg
ICAgICB7MTYtX19jLCAxNy1fX2MsIDE4LV9fYywgMTktX19jLCAyMC1fX2MsIDIxLV9fYywgMjIt
X19jLCAyMy1fX2MsDQogICAgKyAgICAgICAyNC1fX2MsIDI1LV9fYywgMjYtX19jLCAyNy1fX2Ms
IDI4LV9fYywgMjktX19jLCAzMC1fX2MsIDMxLV9fY30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHgxNl90KQ0KICAgICsgICAg
ICB7X19jLCBfX2MrMSwgX19jKzIsIF9fYyszLCBfX2MrNCwgX19jKzUsIF9fYys2LCBfX2MrNywN
CiAgICArICAgICAgIF9fYys4LCBfX2MrOSwgX19jKzEwLCBfX2MrMTEsIF9fYysxMiwgX19jKzEz
LCBfX2MrMTQsIF9fYysxNX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmV4dHFfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iLCBfX2NvbnN0IGludCBf
X2MpDQogICAgK3sNCiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19hLCBfX2MpOw0KICAg
ICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAo
X19iLCBfX2EsICh1aW50MTZ4OF90KQ0KICAgICsgICAgICB7OC1fX2MsIDktX19jLCAxMC1fX2Ms
IDExLV9fYywgMTItX19jLCAxMy1fX2MsIDE0LV9fYywgMTUtX19jfSk7DQogICAgKyNlbHNlDQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwNCiAgICArICAgICAgKHVp
bnQxNng4X3QpIHtfX2MsIF9fYysxLCBfX2MrMiwgX19jKzMsIF9fYys0LCBfX2MrNSwgX19jKzYs
IF9fYys3fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZXh0cV9z
MzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IsIF9fY29uc3QgaW50IF9fYykNCiAgICAr
ew0KICAgICsgIF9fQUFSQ0g2NF9MQU5FX0NIRUNLIChfX2EsIF9fYyk7DQogICAgKyNpZmRlZiBf
X0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2IsIF9fYSwN
CiAgICArICAgICAgKHVpbnQzMng0X3QpIHs0LV9fYywgNS1fX2MsIDYtX19jLCA3LV9fY30pOw0K
ICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1
aW50MzJ4NF90KSB7X19jLCBfX2MrMSwgX19jKzIsIF9fYyszfSk7DQogICAgKyNlbmRpZg0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2ZXh0cV9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJf
dCBfX2IsIF9fY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIF9fQUFSQ0g2NF9MQU5FX0NI
RUNLIChfX2EsIF9fYyk7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2IsIF9fYSwgKHVpbnQ2NHgyX3QpIHsyLV9fYywgMy1fX2N9
KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19i
LCAodWludDY0eDJfdCkge19fYywgX19jKzF9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2ZXh0cV91OCAodWludDh4MTZfdCBfX2EsIHVpbnQ4eDE2X3QgX19iLCBf
X2NvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19h
LCBfX2MpOw0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fc2h1ZmZsZSAoX19iLCBfX2EsICh1aW50OHgxNl90KQ0KICAgICsgICAgICB7MTYtX19jLCAx
Ny1fX2MsIDE4LV9fYywgMTktX19jLCAyMC1fX2MsIDIxLV9fYywgMjItX19jLCAyMy1fX2MsDQog
ICAgKyAgICAgICAyNC1fX2MsIDI1LV9fYywgMjYtX19jLCAyNy1fX2MsIDI4LV9fYywgMjktX19j
LCAzMC1fX2MsIDMxLV9fY30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
c2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHgxNl90KQ0KICAgICsgICAgICB7X19jLCBfX2MrMSwg
X19jKzIsIF9fYyszLCBfX2MrNCwgX19jKzUsIF9fYys2LCBfX2MrNywNCiAgICArICAgICAgIF9f
Yys4LCBfX2MrOSwgX19jKzEwLCBfX2MrMTEsIF9fYysxMiwgX19jKzEzLCBfX2MrMTQsIF9fYysx
NX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZleHRxX3UxNiAo
dWludDE2eDhfdCBfX2EsIHVpbnQxNng4X3QgX19iLCBfX2NvbnN0IGludCBfX2MpDQogICAgK3sN
CiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAoX19hLCBfX2MpOw0KICAgICsjaWZkZWYgX19B
QVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19iLCBfX2EsICh1
aW50MTZ4OF90KQ0KICAgICsgICAgICB7OC1fX2MsIDktX19jLCAxMC1fX2MsIDExLV9fYywgMTIt
X19jLCAxMy1fX2MsIDE0LV9fYywgMTUtX19jfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwNCiAgICArICAgICAgKHVpbnQxNng4X3QpIHtf
X2MsIF9fYysxLCBfX2MrMiwgX19jKzMsIF9fYys0LCBfX2MrNSwgX19jKzYsIF9fYys3fSk7DQog
ICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmV4dHFfdTMyICh1aW50MzJ4
NF90IF9fYSwgdWludDMyeDRfdCBfX2IsIF9fY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsg
IF9fQUFSQ0g2NF9MQU5FX0NIRUNLIChfX2EsIF9fYyk7DQogICAgKyNpZmRlZiBfX0FBUkNINjRF
Ql9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2IsIF9fYSwNCiAgICArICAg
ICAgKHVpbnQzMng0X3QpIHs0LV9fYywgNS1fX2MsIDYtX19jLCA3LV9fY30pOw0KICAgICsjZWxz
ZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4NF90
KSB7X19jLCBfX2MrMSwgX19jKzIsIF9fYyszfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmV4dHFfdTY0ICh1aW50NjR4Ml90IF9fYSwgdWludDY0eDJfdCBfX2Is
IF9fY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIF9fQUFSQ0g2NF9MQU5FX0NIRUNLIChf
X2EsIF9fYyk7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9zaHVmZmxlIChfX2IsIF9fYSwgKHVpbnQ2NHgyX3QpIHsyLV9fYywgMy1fX2N9KTsNCiAg
ICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWlu
dDY0eDJfdCkge19fYywgX19jKzF9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAg
Ky8qIHZmbWEgICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbWFfZjY0IChmbG9hdDY0eDFfdCBf
X2EsIGZsb2F0NjR4MV90IF9fYiwgZmxvYXQ2NHgxX3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9mbWEgKF9fYlswXSwgX19jWzBdLCBfX2FbMF0p
fTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1hX2YzMiAoZmxvYXQzMngyX3QgX19h
LCBmbG9hdDMyeDJfdCBfX2IsIGZsb2F0MzJ4Ml90IF9fYykNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9mbWF2MnNmIChfX2IsIF9fYywgX19hKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Zm1hcV9mMzIgKGZsb2F0MzJ4NF90IF9fYSwgZmxvYXQzMng0X3Qg
X19iLCBmbG9hdDMyeDRfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfZm1hdjRzZiAoX19iLCBfX2MsIF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmZtYXFfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0NjR4Ml90IF9fYiwgZmxvYXQ2NHgy
X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtYXYyZGYg
KF9fYiwgX19jLCBfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbWFfbl9mMzIg
KGZsb2F0MzJ4Ml90IF9fYSwgZmxvYXQzMngyX3QgX19iLCBmbG9hdDMyX3QgX19jKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtYXYyc2YgKF9fYiwgdmR1cF9uX2Yz
MiAoX19jKSwgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1hX25fZjY0IChm
bG9hdDY0eDFfdCBfX2EsIGZsb2F0NjR4MV90IF9fYiwgZmxvYXQ2NF90IF9fYykNCiAgICArew0K
ICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIHtfX2JbMF0gKiBfX2MgKyBfX2FbMF19Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbWFxX25fZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZs
b2F0MzJ4NF90IF9fYiwgZmxvYXQzMl90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9mbWF2NHNmIChfX2IsIHZkdXBxX25fZjMyIChfX2MpLCBfX2EpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbWFxX25fZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZs
b2F0NjR4Ml90IF9fYiwgZmxvYXQ2NF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9mbWF2MmRmIChfX2IsIHZkdXBxX25fZjY0IChfX2MpLCBfX2EpOw0KICAg
ICt9DQogICAgKw0KICAgICsvKiB2Zm1hX2xhbmUgICovDQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zm
bWFfbGFuZV9mMzIgKGZsb2F0MzJ4Ml90IF9fYSwgZmxvYXQzMngyX3QgX19iLA0KICAgICsJICAg
ICAgIGZsb2F0MzJ4Ml90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbWF2MnNmIChfX2IsDQogICAgKwkJCQkgICAgX19hYXJj
aDY0X3ZkdXBfbGFuZV9mMzIgKF9fYywgX19sYW5lKSwNCiAgICArCQkJCSAgICBfX2EpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbWFfbGFuZV9mNjQgKGZsb2F0NjR4MV90IF9fYSwg
ZmxvYXQ2NHgxX3QgX19iLA0KICAgICsJICAgICAgIGZsb2F0NjR4MV90IF9fYywgY29uc3QgaW50
IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIHtfX2J1aWx0aW5f
Zm1hIChfX2JbMF0sIF9fY1swXSwgX19hWzBdKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZmbWFkX2xhbmVfZjY0IChmbG9hdDY0X3QgX19hLCBmbG9hdDY0X3QgX19iLA0KICAgICsJICAg
ICAgICBmbG9hdDY0eDFfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2ZtYSAoX19iLCBfX2NbMF0sIF9fYSk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZmbWFzX2xhbmVfZjMyIChmbG9hdDMyX3QgX19hLCBmbG9hdDMyX3QgX19iLA0K
ICAgICsJICAgICAgICBmbG9hdDMyeDJfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX2ZtYWYgKF9fYiwgX19hYXJjaDY0X3ZnZXRfbGFuZV9h
bnkgKF9fYywgX19sYW5lKSwgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmZtYV9sYW5l
cSAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmZtYV9sYW5lcV9mMzIgKGZsb2F0MzJ4Ml90IF9f
YSwgZmxvYXQzMngyX3QgX19iLA0KICAgICsJICAgICAgICBmbG9hdDMyeDRfdCBfX2MsIGNvbnN0
IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm1h
djJzZiAoX19iLA0KICAgICsJCQkJICAgIF9fYWFyY2g2NF92ZHVwX2xhbmVxX2YzMiAoX19jLCBf
X2xhbmUpLA0KICAgICsJCQkJICAgIF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmZtYV9sYW5lcV9mNjQgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iLA0KICAgICsJ
ICAgICAgICBmbG9hdDY0eDJfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICAr
ICBmbG9hdDY0X3QgX19jMCA9IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSk7
DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9mbWEgKF9fYlswXSwgX19j
MCwgX19hWzBdKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbWFkX2xhbmVxX2Y2NCAo
ZmxvYXQ2NF90IF9fYSwgZmxvYXQ2NF90IF9fYiwNCiAgICArCSAgICAgICAgIGZsb2F0NjR4Ml90
IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
Zm1hIChfX2IsIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSksIF9fYSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbWFzX2xhbmVxX2YzMiAoZmxvYXQzMl90IF9fYSwg
ZmxvYXQzMl90IF9fYiwNCiAgICArCQkgZmxvYXQzMng0X3QgX19jLCBjb25zdCBpbnQgX19sYW5l
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9mbWFmIChfX2IsIF9fYWFyY2g2NF92
Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSksIF9fYSk7DQogICAgK30NCiAgICArDQogICAgKy8q
IHZmbWFxX2xhbmUgICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbWFxX2xhbmVfZjMyIChmbG9h
dDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9fYiwNCiAgICArCSAgICAgICAgZmxvYXQzMngyX3Qg
X19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X2ZtYXY0c2YgKF9fYiwNCiAgICArCQkJCSAgICBfX2FhcmNoNjRfdmR1cHFfbGFuZV9m
MzIgKF9fYywgX19sYW5lKSwNCiAgICArCQkJCSAgICBfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZmbWFxX2xhbmVfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0NjR4Ml90IF9f
YiwNCiAgICArCSAgICAgICAgZmxvYXQ2NHgxX3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtYXYyZGYgKF9fYiwgdmR1cHFf
bl9mNjQgKF9fY1swXSksIF9fYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZmbWFxX2xhbmVx
ICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1hcV9sYW5lcV9mMzIgKGZsb2F0MzJ4NF90IF9f
YSwgZmxvYXQzMng0X3QgX19iLA0KICAgICsJICAgICAgICAgZmxvYXQzMng0X3QgX19jLCBjb25z
dCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zt
YXY0c2YgKF9fYiwNCiAgICArCQkJCSAgICBfX2FhcmNoNjRfdmR1cHFfbGFuZXFfZjMyIChfX2Ms
IF9fbGFuZSksDQogICAgKwkJCQkgICAgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Zm1hcV9sYW5lcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iLA0KICAg
ICsJICAgICAgICAgZmxvYXQ2NHgyX3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtYXYyZGYgKF9fYiwNCiAgICArCQkJCSAg
ICBfX2FhcmNoNjRfdmR1cHFfbGFuZXFfZjY0IChfX2MsIF9fbGFuZSksDQogICAgKwkJCQkgICAg
X19hKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmZtcyAgKi8NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmZtc19mNjQgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iLCBmbG9hdDY0eDFf
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0NjR4MV90KSB7X19idWlsdGluX2Zt
YSAoLV9fYlswXSwgX19jWzBdLCBfX2FbMF0pfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Zm1zX2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2IsIGZsb2F0MzJ4Ml90
IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbWF2MnNmICgt
X19iLCBfX2MsIF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmZtc3FfZjMyIChm
bG9hdDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9fYiwgZmxvYXQzMng0X3QgX19jKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtYXY0c2YgKC1fX2IsIF9fYywgX19h
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1zcV9mNjQgKGZsb2F0NjR4Ml90IF9f
YSwgZmxvYXQ2NHgyX3QgX19iLCBmbG9hdDY0eDJfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfZm1hdjJkZiAoLV9fYiwgX19jLCBfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZmbXNfbl9mMzIgKGZsb2F0MzJ4Ml90IF9fYSwgZmxvYXQzMngy
X3QgX19iLCBmbG9hdDMyX3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X2ZtYXYyc2YgKC1fX2IsIHZkdXBfbl9mMzIgKF9fYyksIF9fYSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmZtc19uX2Y2NCAoZmxvYXQ2NHgxX3QgX19hLCBmbG9hdDY0eDFf
dCBfX2IsIGZsb2F0NjRfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0NjR4MV90
KSB7LV9fYlswXSAqIF9fYyArIF9fYVswXX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmZtc3Ffbl9mMzIgKGZsb2F0MzJ4NF90IF9fYSwgZmxvYXQzMng0X3QgX19iLCBmbG9hdDMyX3Qg
X19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtYXY0c2YgKC1f
X2IsIHZkdXBxX25fZjMyIChfX2MpLCBfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZmbXNxX25fZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0NjR4Ml90IF9fYiwgZmxvYXQ2NF90
IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbWF2MmRmICgt
X19iLCB2ZHVwcV9uX2Y2NCAoX19jKSwgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmZt
c19sYW5lICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1zX2xhbmVfZjMyIChmbG9hdDMyeDJf
dCBfX2EsIGZsb2F0MzJ4Ml90IF9fYiwNCiAgICArCSAgICAgICBmbG9hdDMyeDJfdCBfX2MsIGNv
bnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
Zm1hdjJzZiAoLV9fYiwNCiAgICArCQkJCSAgICBfX2FhcmNoNjRfdmR1cF9sYW5lX2YzMiAoX19j
LCBfX2xhbmUpLA0KICAgICsJCQkJICAgIF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmZtc19sYW5lX2Y2NCAoZmxvYXQ2NHgxX3QgX19hLCBmbG9hdDY0eDFfdCBfX2IsDQogICAg
KwkgICAgICAgZmxvYXQ2NHgxX3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9mbWEgKC1fX2JbMF0sIF9fY1swXSwg
X19hWzBdKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbXNkX2xhbmVfZjY0IChmbG9h
dDY0X3QgX19hLCBmbG9hdDY0X3QgX19iLA0KICAgICsJICAgICAgICBmbG9hdDY0eDFfdCBfX2Ms
IGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2ZtYSAo
LV9fYiwgX19jWzBdLCBfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1zc19sYW5l
X2YzMiAoZmxvYXQzMl90IF9fYSwgZmxvYXQzMl90IF9fYiwNCiAgICArCSAgICAgICAgZmxvYXQz
MngyX3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9mbWFmICgtX19iLCBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xhbmUpLCBf
X2EpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2Zm1zX2xhbmVxICAqLw0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2Zm1zX2xhbmVxX2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2Is
DQogICAgKwkgICAgICAgIGZsb2F0MzJ4NF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbWF2MnNmICgtX19iLA0KICAgICsJ
CQkJICAgIF9fYWFyY2g2NF92ZHVwX2xhbmVxX2YzMiAoX19jLCBfX2xhbmUpLA0KICAgICsJCQkJ
ICAgIF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmZtc19sYW5lcV9mNjQgKGZs
b2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iLA0KICAgICsJICAgICAgICBmbG9hdDY0eDJf
dCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICBmbG9hdDY0X3QgX19jMCA9
IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSk7DQogICAgKyAgcmV0dXJuIChm
bG9hdDY0eDFfdCkge19fYnVpbHRpbl9mbWEgKC1fX2JbMF0sIF9fYzAsIF9fYVswXSl9Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1zZF9sYW5lcV9mNjQgKGZsb2F0NjRfdCBfX2EsIGZs
b2F0NjRfdCBfX2IsDQogICAgKwkgICAgICAgICBmbG9hdDY0eDJfdCBfX2MsIGNvbnN0IGludCBf
X2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2ZtYSAoLV9fYiwgX19hYXJj
aDY0X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19sYW5lKSwgX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmZtc3NfbGFuZXFfZjMyIChmbG9hdDMyX3QgX19hLCBmbG9hdDMyX3QgX19iLA0K
ICAgICsJCSBmbG9hdDMyeDRfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2ZtYWYgKC1fX2IsIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChf
X2MsIF9fbGFuZSksIF9fYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZmbXNxX2xhbmUgICov
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZmbXNxX2xhbmVfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZs
b2F0MzJ4NF90IF9fYiwNCiAgICArCSAgICAgICAgZmxvYXQzMngyX3QgX19jLCBjb25zdCBpbnQg
X19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtYXY0c2Yg
KC1fX2IsDQogICAgKwkJCQkgICAgX19hYXJjaDY0X3ZkdXBxX2xhbmVfZjMyIChfX2MsIF9fbGFu
ZSksDQogICAgKwkJCQkgICAgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1z
cV9sYW5lX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9hdDY0eDJfdCBfX2IsDQogICAgKwkgICAg
ICAgIGZsb2F0NjR4MV90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbWF2MmRmICgtX19iLCB2ZHVwcV9uX2Y2NCAoX19jWzBd
KSwgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmZtc3FfbGFuZXEgICovDQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZmbXNxX2xhbmVxX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9hdDMyeDRf
dCBfX2IsDQogICAgKwkgICAgICAgICBmbG9hdDMyeDRfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm1hdjRzZiAoLV9fYiwN
CiAgICArCQkJCSAgICBfX2FhcmNoNjRfdmR1cHFfbGFuZXFfZjMyIChfX2MsIF9fbGFuZSksDQog
ICAgKwkJCQkgICAgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1zcV9sYW5l
cV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iLA0KICAgICsJICAgICAgICAg
ZmxvYXQ2NHgyX3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X2ZtYXYyZGYgKC1fX2IsDQogICAgKwkJCQkgICAgX19hYXJjaDY0
X3ZkdXBxX2xhbmVxX2Y2NCAoX19jLCBfX2xhbmUpLA0KICAgICsJCQkJICAgIF9fYSk7DQogICAg
K30NCiAgICArDQogICAgKy8qIHZsZDEgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMV9mMTYg
KGNvbnN0IGZsb2F0MTZfdCAqX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X2xkMXY0aGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMV9m
MzIgKGNvbnN0IGZsb2F0MzJfdCAqYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9sZDF2MnNmICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zZiAqKSBhKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2
NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxX2Y2NCAoY29uc3QgZmxvYXQ2NF90ICph
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDFfdCkgeyphfTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmxkMV9wOCAoY29uc3QgcG9seThfdCAqYSkNCiAgICArew0KICAgICsg
IHJldHVybiAocG9seTh4OF90KQ0KICAgICsgICAgX19idWlsdGluX2FhcmNoNjRfbGQxdjhxaSAo
KGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgYSk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bGQxX3AxNiAoY29uc3QgcG9seTE2X3QgKmEpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHBvbHkxNng0X3QpDQogICAgKyAgICBfX2J1aWx0aW5fYWFyY2g2NF9sZDF2NGhpICgo
Y29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBhKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDFfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZsZDFfcDY0IChjb25zdCBwb2x5NjRfdCAqYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAocG9seTY0eDFfdCkgeyphfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxX3M4
IChjb25zdCBpbnQ4X3QgKmEpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfbGQxdjhxaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgYSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFfczE2IChjb25zdCBpbnQxNl90ICphKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xkMXY0aGkgKChjb25zdCBfX2J1aWx0
aW5fYWFyY2g2NF9zaW1kX2hpICopIGEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQx
X3MzMiAoY29uc3QgaW50MzJfdCAqYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9sZDF2MnNpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAqKSBhKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4
MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMV9zNjQgKGNvbnN0IGludDY0X3QgKmEpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDFfdCkgeyphfTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmxkMV91OCAoY29uc3QgdWludDhfdCAqYSkNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDh4OF90KQ0KICAgICsgICAgX19idWlsdGluX2FhcmNoNjRfbGQxdjhxaSAoKGNvbnN0
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgYSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bGQxX3UxNiAoY29uc3QgdWludDE2X3QgKmEpDQogICAgK3sNCiAgICArICByZXR1cm4g
KHVpbnQxNng0X3QpDQogICAgKyAgICBfX2J1aWx0aW5fYWFyY2g2NF9sZDF2NGhpICgoY29uc3Qg
X19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBhKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZsZDFfdTMyIChjb25zdCB1aW50MzJfdCAqYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
dWludDMyeDJfdCkNCiAgICArICAgIF9fYnVpbHRpbl9hYXJjaDY0X2xkMXYyc2kgKChjb25zdCBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIGEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmxkMV91NjQgKGNvbnN0IHVpbnQ2NF90ICphKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1
aW50NjR4MV90KSB7KmF9Ow0KICAgICt9DQogICAgKw0KICAgICsvKiB2bGQxcSAqLw0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQxcV9mMTYgKGNvbnN0IGZsb2F0MTZfdCAqX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xkMXY4aGYgKF9fYSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmxkMXFfZjMyIChjb25zdCBmbG9hdDMyX3QgKmEpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGQxdjRzZiAoKGNvbnN0IF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfc2YgKikgYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxk
MXFfZjY0IChjb25zdCBmbG9hdDY0X3QgKmEpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfbGQxdjJkZiAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGYgKikg
YSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9wOCAoY29uc3QgcG9seThfdCAq
YSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4MTZfdCkNCiAgICArICAgIF9fYnVpbHRp
bl9hYXJjaDY0X2xkMXYxNnFpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBh
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9s
eTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX3AxNiAoY29uc3QgcG9seTE2X3Qg
KmEpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHkxNng4X3QpDQogICAgKyAgICBfX2J1aWx0
aW5fYWFyY2g2NF9sZDF2OGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBh
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9s
eTY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX3A2NCAoY29uc3QgcG9seTY0X3Qg
KmEpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk2NHgyX3QpDQogICAgKyAgICBfX2J1aWx0
aW5fYWFyY2g2NF9sZDF2MmRpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBh
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMXFfczggKGNvbnN0IGludDhfdCAqYSkN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sZDF2MTZxaSAoKGNvbnN0
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgYSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZsZDFxX3MxNiAoY29uc3QgaW50MTZfdCAqYSkNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9sZDF2OGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9o
aSAqKSBhKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMXFfczMyIChjb25zdCBpbnQz
Ml90ICphKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xkMXY0c2kg
KChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIGEpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bGQxcV9zNjQgKGNvbnN0IGludDY0X3QgKmEpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGQxdjJkaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfZGkgKikgYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV91OCAoY29u
c3QgdWludDhfdCAqYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkNCiAgICAr
ICAgIF9fYnVpbHRpbl9hYXJjaDY0X2xkMXYxNnFpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9xaSAqKSBhKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX3UxNiAoY29u
c3QgdWludDE2X3QgKmEpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng4X3QpDQogICAg
KyAgICBfX2J1aWx0aW5fYWFyY2g2NF9sZDF2OGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9oaSAqKSBhKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX3UzMiAoY29u
c3QgdWludDMyX3QgKmEpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3QpDQogICAg
KyAgICBfX2J1aWx0aW5fYWFyY2g2NF9sZDF2NHNpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9zaSAqKSBhKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX3U2NCAoY29u
c3QgdWludDY0X3QgKmEpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpDQogICAg
KyAgICBfX2J1aWx0aW5fYWFyY2g2NF9sZDF2MmRpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9kaSAqKSBhKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmxkMV9kdXAgICovDQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDFfZHVwX2YxNiAoY29uc3QgZmxvYXQxNl90KiBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gdmR1cF9uX2YxNiAoKl9fYSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmxkMV9kdXBfZjMyIChjb25zdCBmbG9hdDMyX3QqIF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiB2ZHVwX25fZjMyICgqX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2bGQxX2R1cF9mNjQgKGNvbnN0IGZsb2F0NjRfdCogX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIHZkdXBfbl9mNjQgKCpfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxX2R1
cF9wOCAoY29uc3QgcG9seThfdCogX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZkdXBfbl9w
OCAoKl9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxX2R1cF9wMTYgKGNvbnN0
IHBvbHkxNl90KiBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cF9uX3AxNiAoKl9fYSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2
NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxX2R1cF9wNjQgKGNvbnN0IHBvbHk2NF90
KiBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cF9uX3A2NCAoKl9fYSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmxkMV9kdXBfczggKGNvbnN0IGludDhfdCogX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIHZkdXBfbl9zOCAoKl9fYSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZsZDFfZHVwX3MxNiAoY29uc3QgaW50MTZfdCogX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIHZkdXBfbl9zMTYgKCpfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxX2R1
cF9zMzIgKGNvbnN0IGludDMyX3QqIF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiB2ZHVwX25f
czMyICgqX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMV9kdXBfczY0IChjb25z
dCBpbnQ2NF90KiBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cF9uX3M2NCAoKl9fYSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFfZHVwX3U4IChjb25zdCB1aW50OF90KiBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cF9uX3U4ICgqX19hKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDFfZHVwX3UxNiAoY29uc3QgdWludDE2X3QqIF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiB2ZHVwX25fdTE2ICgqX19hKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZsZDFfZHVwX3UzMiAoY29uc3QgdWludDMyX3QqIF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiB2ZHVwX25fdTMyICgqX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zs
ZDFfZHVwX3U2NCAoY29uc3QgdWludDY0X3QqIF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiB2
ZHVwX25fdTY0ICgqX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmxkMXFfZHVwICAqLw0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9kdXBfZjE2IChjb25zdCBmbG9hdDE2X3QqIF9fYSkN
CiAgICArew0KICAgICsgIHJldHVybiB2ZHVwcV9uX2YxNiAoKl9fYSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmxkMXFfZHVwX2YzMiAoY29uc3QgZmxvYXQzMl90KiBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gdmR1cHFfbl9mMzIgKCpfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZsZDFxX2R1cF9mNjQgKGNvbnN0IGZsb2F0NjRfdCogX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIHZkdXBxX25fZjY0ICgqX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZsZDFxX2R1cF9wOCAoY29uc3QgcG9seThfdCogX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIHZkdXBxX25fcDggKCpfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBwb2x5MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMXFf
ZHVwX3AxNiAoY29uc3QgcG9seTE2X3QqIF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiB2ZHVw
cV9uX3AxNiAoKl9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHBvbHk2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9kdXBfcDY0
IChjb25zdCBwb2x5NjRfdCogX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZkdXBxX25fcDY0
ICgqX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX2R1cF9zOCAoY29uc3Qg
aW50OF90KiBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cHFfbl9zOCAoKl9fYSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX2R1cF9zMTYgKGNvbnN0IGludDE2X3QqIF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiB2ZHVwcV9uX3MxNiAoKl9fYSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDFxX2R1cF9zMzIgKGNvbnN0IGludDMyX3QqIF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiB2ZHVwcV9uX3MzMiAoKl9fYSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZsZDFxX2R1cF9zNjQgKGNvbnN0IGludDY0X3QqIF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiB2ZHVwcV9uX3M2NCAoKl9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bGQxcV9kdXBfdTggKGNvbnN0IHVpbnQ4X3QqIF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiB2
ZHVwcV9uX3U4ICgqX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX2R1cF91
MTYgKGNvbnN0IHVpbnQxNl90KiBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cHFfbl91
MTYgKCpfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMXFfZHVwX3UzMiAoY29u
c3QgdWludDMyX3QqIF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiB2ZHVwcV9uX3UzMiAoKl9f
YSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9kdXBfdTY0IChjb25zdCB1aW50
NjRfdCogX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZkdXBxX25fdTY0ICgqX19hKTsNCiAg
ICArfQ0KICAgICsNCiAgICArLyogdmxkMV9sYW5lICAqLw0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bGQxX2xhbmVfZjE2IChjb25zdCBmbG9hdDE2X3QgKl9fc3JjLCBmbG9hdDE2eDRfdCBfX3ZlYywg
Y29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9s
YW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bGQxX2xhbmVfZjMyIChjb25zdCBmbG9hdDMyX3QgKl9fc3JjLCBmbG9hdDMyeDJfdCBf
X3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRf
dnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bGQxX2xhbmVfZjY0IChjb25zdCBmbG9hdDY0X3QgKl9fc3JjLCBmbG9hdDY0
eDFfdCBfX3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2Fh
cmNoNjRfdnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5lKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmxkMV9sYW5lX3A4IChjb25zdCBwb2x5OF90ICpfX3NyYywgcG9seTh4
OF90IF9fdmVjLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFy
Y2g2NF92c2V0X2xhbmVfYW55ICgqX19zcmMsIF9fdmVjLCBfX2xhbmUpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmxkMV9sYW5lX3AxNiAoY29uc3QgcG9seTE2X3QgKl9fc3JjLCBwb2x5
MTZ4NF90IF9fdmVjLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YWFyY2g2NF92c2V0X2xhbmVfYW55ICgqX19zcmMsIF9fdmVjLCBfX2xhbmUpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4MV90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmxkMV9sYW5lX3A2NCAoY29uc3QgcG9seTY0X3QgKl9fc3JjLCBw
b2x5NjR4MV90IF9fdmVjLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYWFyY2g2NF92c2V0X2xhbmVfYW55ICgqX19zcmMsIF9fdmVjLCBfX2xhbmUpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZsZDFfbGFuZV9zOCAoY29uc3QgaW50OF90ICpfX3NyYywgaW50
OHg4X3QgX192ZWMsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
YXJjaDY0X3ZzZXRfbGFuZV9hbnkgKCpfX3NyYywgX192ZWMsIF9fbGFuZSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDFfbGFuZV9zMTYgKGNvbnN0IGludDE2X3QgKl9fc3JjLCBpbnQx
Nng0X3QgX192ZWMsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
YXJjaDY0X3ZzZXRfbGFuZV9hbnkgKCpfX3NyYywgX192ZWMsIF9fbGFuZSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDFfbGFuZV9zMzIgKGNvbnN0IGludDMyX3QgKl9fc3JjLCBpbnQz
MngyX3QgX192ZWMsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
YXJjaDY0X3ZzZXRfbGFuZV9hbnkgKCpfX3NyYywgX192ZWMsIF9fbGFuZSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDFfbGFuZV9zNjQgKGNvbnN0IGludDY0X3QgKl9fc3JjLCBpbnQ2
NHgxX3QgX192ZWMsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
YXJjaDY0X3ZzZXRfbGFuZV9hbnkgKCpfX3NyYywgX192ZWMsIF9fbGFuZSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDFfbGFuZV91OCAoY29uc3QgdWludDhfdCAqX19zcmMsIHVpbnQ4
eDhfdCBfX3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2Fh
cmNoNjRfdnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5lKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDFfbGFuZV91MTYgKGNvbnN0IHVpbnQxNl90ICpfX3NyYywgdWlu
dDE2eDRfdCBfX3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBf
X2FhcmNoNjRfdnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5lKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZsZDFfbGFuZV91MzIgKGNvbnN0IHVpbnQzMl90ICpfX3NyYywg
dWludDMyeDJfdCBfX3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5lKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFfbGFuZV91NjQgKGNvbnN0IHVpbnQ2NF90ICpfX3Ny
YywgdWludDY0eDFfdCBfX3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5lKTsNCiAg
ICArfQ0KICAgICsNCiAgICArLyogdmxkMXFfbGFuZSAgKi8NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmxkMXFfbGFuZV9mMTYgKGNvbnN0IGZsb2F0MTZfdCAqX19zcmMsIGZsb2F0MTZ4OF90IF9fdmVj
LCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0
X2xhbmVfYW55ICgqX19zcmMsIF9fdmVjLCBfX2xhbmUpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZsZDFxX2xhbmVfZjMyIChjb25zdCBmbG9hdDMyX3QgKl9fc3JjLCBmbG9hdDMyeDRf
dCBfX3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNo
NjRfdnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5lKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQxcV9sYW5lX2Y2NCAoY29uc3QgZmxvYXQ2NF90ICpfX3NyYywgZmxv
YXQ2NHgyX3QgX192ZWMsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKCpfX3NyYywgX192ZWMsIF9fbGFuZSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9sYW5lX3A4IChjb25zdCBwb2x5OF90ICpfX3NyYywg
cG9seTh4MTZfdCBfX3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5lKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX2xhbmVfcDE2IChjb25zdCBwb2x5MTZfdCAqX19z
cmMsIHBvbHkxNng4X3QgX192ZWMsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKCpfX3NyYywgX192ZWMsIF9fbGFuZSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9sYW5lX3A2NCAoY29uc3QgcG9seTY0X3Qg
Kl9fc3JjLCBwb2x5NjR4Ml90IF9fdmVjLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55ICgqX19zcmMsIF9fdmVjLCBfX2xhbmUp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4
eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9sYW5lX3M4IChjb25zdCBpbnQ4X3Qg
Kl9fc3JjLCBpbnQ4eDE2X3QgX192ZWMsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKCpfX3NyYywgX192ZWMsIF9fbGFuZSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX2xhbmVfczE2IChjb25zdCBpbnQxNl90
ICpfX3NyYywgaW50MTZ4OF90IF9fdmVjLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55ICgqX19zcmMsIF9fdmVjLCBfX2xhbmUp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQz
Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9sYW5lX3MzMiAoY29uc3QgaW50MzJf
dCAqX19zcmMsIGludDMyeDRfdCBfX3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19sYW5l
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMXFfbGFuZV9zNjQgKGNvbnN0IGludDY0
X3QgKl9fc3JjLCBpbnQ2NHgyX3QgX192ZWMsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKCpfX3NyYywgX192ZWMsIF9fbGFu
ZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9sYW5lX3U4IChjb25zdCB1aW50
OF90ICpfX3NyYywgdWludDh4MTZfdCBfX3ZlYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoKl9fc3JjLCBfX3ZlYywgX19s
YW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDFxX2xhbmVfdTE2IChjb25zdCB1
aW50MTZfdCAqX19zcmMsIHVpbnQxNng4X3QgX192ZWMsIGNvbnN0IGludCBfX2xhbmUpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19hYXJjaDY0X3ZzZXRfbGFuZV9hbnkgKCpfX3NyYywgX192ZWMs
IF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQxcV9sYW5lX3UzMiAoY29u
c3QgdWludDMyX3QgKl9fc3JjLCB1aW50MzJ4NF90IF9fdmVjLCBjb25zdCBpbnQgX19sYW5lKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYWFyY2g2NF92c2V0X2xhbmVfYW55ICgqX19zcmMsIF9f
dmVjLCBfX2xhbmUpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMXFfbGFuZV91NjQg
KGNvbnN0IHVpbnQ2NF90ICpfX3NyYywgdWludDY0eDJfdCBfX3ZlYywgY29uc3QgaW50IF9fbGFu
ZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2FhcmNoNjRfdnNldF9sYW5lX2FueSAoKl9fc3Jj
LCBfX3ZlYywgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdmxkbiAqLw0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MXgyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQyX3M2NCAoY29uc3QgaW50NjRfdCAqIF9fYSkNCiAgICArew0KICAg
ICsgIGludDY0eDF4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9f
bzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJkaSAoKGNvbnN0IF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGludDY0eDFf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaWRpIChfX28sIDApOw0KICAgICsgIHJldC52
YWxbMV0gPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pZGkgKF9fbywg
MSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDY0eDF4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxk
Ml91NjQgKGNvbnN0IHVpbnQ2NF90ICogX19hKQ0KICAgICt7DQogICAgKyAgdWludDY0eDF4Ml90
IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJkaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
ZGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9kcmVnb2lkaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQ2
NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2lkaSAoX19vLCAxKTsNCiAgICArICBy
ZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBmbG9hdDY0eDF4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMl9mNjQgKGNvbnN0
IGZsb2F0NjRfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGZsb2F0NjR4MXgyX3QgcmV0Ow0KICAg
ICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRp
bl9hYXJjaDY0X2xkMmRmICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9kZiAqKSBfX2Ep
Ow0KICAgICsgIHJldC52YWxbMF0gPSAoZmxvYXQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfZHJlZ29pZGYgKF9fbywgMCl9Ow0KICAgICsgIHJldC52YWxbMV0gPSAoZmxvYXQ2NHgxX3Qp
IHtfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pZGYgKF9fbywgMSl9Ow0KICAgICsgIHJldHVy
biByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDh4OHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQyX3M4IChjb25zdCBpbnQ4X3Qg
KiBfX2EpDQogICAgK3sNCiAgICArICBpbnQ4eDh4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJ2
OHFpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EpOw0KICAgICsgIHJl
dC52YWxbMF0gPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2OHFpIChf
X28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2dldF9kcmVnb2l2OHFpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDh4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmxkMl9wOCAoY29uc3QgcG9seThfdCAqIF9fYSkNCiAgICArew0K
ICAgICsgIHBvbHk4eDh4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29p
IF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJ2OHFpICgoY29uc3QgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAocG9s
eTh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pdjhxaSAoX19vLCAwKTsNCiAgICAr
ICByZXQudmFsWzFdID0gKHBvbHk4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaXY4
cWkgKF9fbywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0eDF4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmxkMl9wNjQgKGNvbnN0IHBvbHk2NF90ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9s
eTY0eDF4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJkaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHBvbHk2NHgxX3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2lkaV9wc3MgKF9fbywgMCk7DQogICAgKyAgcmV0LnZh
bFsxXSA9IChwb2x5NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pZGlfcHNzIChf
X28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmxkMl9zMTYgKGNvbnN0IGludDE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQxNng0eDJf
dCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19v
ID0gX19idWlsdGluX2FhcmNoNjRfbGQydjRoaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3Np
bWRfaGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGludDE2eDRfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWdvaXY0aGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChp
bnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2NGhpIChfX28sIDEpOw0KICAg
ICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHBvbHkxNng0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDJfcDE2IChj
b25zdCBwb2x5MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHBvbHkxNng0eDJfdCByZXQ7DQog
ICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWls
dGluX2FhcmNoNjRfbGQydjRoaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkgKikg
X19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2dldF9kcmVnb2l2NGhpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAocG9seTE2eDRf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaXY0aGkgKF9fbywgMSk7DQogICAgKyAgcmV0
dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MzJ4MngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQyX3MzMiAoY29uc3QgaW50
MzJfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDMyeDJ4Ml90IHJldDsNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9sZDJ2MnNpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAqKSBfX2EpOw0KICAg
ICsgIHJldC52YWxbMF0gPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29p
djJzaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDMyeDJfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWdvaXYyc2kgKF9fbywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OHgy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQyX3U4IChjb25zdCB1aW50OF90ICogX19hKQ0K
ICAgICt7DQogICAgKyAgdWludDh4OHgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnY4cWkgKChj
b25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFsw
XSA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2OHFpIChfX28sIDAp
Ow0KICAgICsgIHJldC52YWxbMV0gPSAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
ZHJlZ29pdjhxaSAoX19vLCAxKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NHgyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQyX3UxNiAoY29uc3QgdWludDE2X3QgKiBfX2EpDQogICAgK3sNCiAg
ICArICB1aW50MTZ4NHgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kg
X19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnY0aGkgKChjb25zdCBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1aW50
MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pdjRoaSAoX19vLCAwKTsNCiAgICAr
ICByZXQudmFsWzFdID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2
NGhpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyeDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZsZDJfdTMyIChjb25zdCB1aW50MzJfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHVp
bnQzMngyeDJfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQog
ICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQydjJzaSAoKGNvbnN0IF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfc2kgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHVpbnQzMngyX3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2MnNpIChfX28sIDApOw0KICAgICsgIHJldC52
YWxbMV0gPSAodWludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaXYyc2kgKF9f
bywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZsZDJfZjE2IChjb25zdCBmbG9hdDE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBmbG9hdDE2
eDR4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJ2NGhmIChfX2EpOw0KICAgICsgIHJldC52YWxb
MF0gPSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pdjRoZiAoX19vLCAwKTsNCiAgICArICBy
ZXQudmFsWzFdID0gX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaXY0aGYgKF9fbywgMSk7DQog
ICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQzMngyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDJfZjMy
IChjb25zdCBmbG9hdDMyX3QgKiBfX2EpDQogICAgK3sNCiAgICArICBmbG9hdDMyeDJ4Ml90IHJl
dDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9sZDJ2MnNmICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9z
ZiAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9kcmVnb2l2MnNmIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoZmxv
YXQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2MnNmIChfX28sIDEpOw0KICAg
ICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDh4MTZ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMnFfczggKGNv
bnN0IGludDhfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDh4MTZ4Ml90IHJldDsNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9sZDJ2MTZxaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19h
KTsNCiAgICArICByZXQudmFsWzBdID0gKGludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0
X3FyZWdvaXYxNnFpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoaW50OHgxNl90KSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29pdjE2cWkgKF9fbywgMSk7DQogICAgKyAgcmV0dXJu
IHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
cG9seTh4MTZ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMnFfcDggKGNvbnN0IHBvbHk4
X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBwb2x5OHgxNngyX3QgcmV0Ow0KICAgICsgIF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X2xkMnYxNnFpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EpOw0KICAg
ICsgIHJldC52YWxbMF0gPSAocG9seTh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdv
aXYxNnFpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAocG9seTh4MTZfdCkgX19idWls
dGluX2FhcmNoNjRfZ2V0X3FyZWdvaXYxNnFpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2
eDh4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMnFfczE2IChjb25zdCBpbnQxNl90ICog
X19hKQ0KICAgICt7DQogICAgKyAgaW50MTZ4OHgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnY4
aGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSk7DQogICAgKyAgcmV0
LnZhbFswXSA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2OGhpIChf
X28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ29pdjhoaSAoX19vLCAxKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4OHgyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bGQycV9wMTYgKGNvbnN0IHBvbHkxNl90ICogX19hKQ0KICAg
ICt7DQogICAgKyAgcG9seTE2eDh4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJ2OGhpICgoY29u
c3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0g
PSAocG9seTE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXY4aGkgKF9fbywgMCk7
DQogICAgKyAgcmV0LnZhbFsxXSA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
cXJlZ29pdjhoaSAoX19vLCAxKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4MngyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQycV9wNjQgKGNvbnN0IHBvbHk2NF90ICogX19hKQ0KICAgICt7DQog
ICAgKyAgcG9seTY0eDJ4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29p
IF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJ2MmRpICgoY29uc3QgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAocG9s
eTY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXYyZGlfcHNzIChfX28sIDApOw0K
ICAgICsgIHJldC52YWxbMV0gPSAocG9seTY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3Fy
ZWdvaXYyZGlfcHNzIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDR4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmxkMnFfczMyIChjb25zdCBpbnQzMl90ICogX19hKQ0KICAgICt7DQog
ICAgKyAgaW50MzJ4NHgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kg
X19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnY0c2kgKChjb25zdCBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChpbnQz
Mng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2NHNpIChfX28sIDApOw0KICAgICsg
IHJldC52YWxbMV0gPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29pdjRz
aSAoX19vLCAxKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZsZDJxX3M2NCAoY29uc3QgaW50NjRfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDY0
eDJ4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJ2MmRpICgoY29uc3QgX19idWlsdGluX2FhcmNo
NjRfc2ltZF9kaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoaW50NjR4Ml90KSBfX2J1
aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29pdjJkaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFd
ID0gKGludDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXYyZGkgKF9fbywgMSk7
DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDh4MTZ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMnFf
dTggKGNvbnN0IHVpbnQ4X3QgKiBfX2EpDQogICAgK3sNCiAgICArICB1aW50OHgxNngyX3QgcmV0
Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X2xkMnYxNnFpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9x
aSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWludDh4MTZfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X3FyZWdvaXYxNnFpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAodWlu
dDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXYxNnFpIChfX28sIDEpOw0KICAg
ICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQxNng4eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDJxX3UxNiAo
Y29uc3QgdWludDE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICB1aW50MTZ4OHgyX3QgcmV0Ow0K
ICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X2xkMnY4aGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICop
IF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ29pdjhoaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQxNng4
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2OGhpIChfX28sIDEpOw0KICAgICsgIHJl
dHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQzMng0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDJxX3UzMiAoY29uc3Qg
dWludDMyX3QgKiBfX2EpDQogICAgK3sNCiAgICArICB1aW50MzJ4NHgyX3QgcmV0Ow0KICAgICsg
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9h
YXJjaDY0X2xkMnY0c2kgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSk7
DQogICAgKyAgcmV0LnZhbFswXSA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
cXJlZ29pdjRzaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQzMng0X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2NHNpIChfX28sIDEpOw0KICAgICsgIHJldHVybiBy
ZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NHgyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDJxX3U2NCAoY29uc3QgdWludDY0
X3QgKiBfX2EpDQogICAgK3sNCiAgICArICB1aW50NjR4MngyX3QgcmV0Ow0KICAgICsgIF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X2xkMnYyZGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSk7DQogICAg
KyAgcmV0LnZhbFswXSA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29p
djJkaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2dldF9xcmVnb2l2MmRpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4
OHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQycV9mMTYgKGNvbnN0IGZsb2F0MTZfdCAq
IF9fYSkNCiAgICArew0KICAgICsgIGZsb2F0MTZ4OHgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xk
MnY4aGYgKF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9x
cmVnb2l2OGhmIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ29pdjhoZiAoX19vLCAxKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDR4Ml90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMnFfZjMyIChjb25zdCBmbG9hdDMyX3QgKiBfX2EpDQog
ICAgK3sNCiAgICArICBmbG9hdDMyeDR4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJ2NHNmICgo
Y29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zZiAqKSBfX2EpOw0KICAgICsgIHJldC52YWxb
MF0gPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2NHNmIChfX28s
IDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2dldF9xcmVnb2l2NHNmIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MngyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bGQycV9mNjQgKGNvbnN0IGZsb2F0NjRfdCAqIF9fYSkNCiAg
ICArew0KICAgICsgIGZsb2F0NjR4MngyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnYyZGYgKChj
b25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RmICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFsw
XSA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXYyZGYgKF9fbywg
MCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRf
Z2V0X3FyZWdvaXYyZGYgKF9fbywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MXgzX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2bGQzX3M2NCAoY29uc3QgaW50NjRfdCAqIF9fYSkNCiAgICArew0K
ICAgICsgIGludDY0eDF4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2Np
IF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDNkaSAoKGNvbnN0IF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGludDY0
eDFfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaWRpIChfX28sIDApOw0KICAgICsgIHJl
dC52YWxbMV0gPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpZGkgKF9f
bywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2dldF9kcmVnY2lkaSAoX19vLCAyKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MXgzX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2bGQzX3U2NCAoY29uc3QgdWludDY0X3QgKiBfX2EpDQogICAgK3sN
CiAgICArICB1aW50NjR4MXgzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
Y2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM2RpICgoY29uc3QgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWlu
dDY0eDFfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaWRpIChfX28sIDApOw0KICAgICsg
IHJldC52YWxbMV0gPSAodWludDY0eDFfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaWRp
IChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAodWludDY0eDFfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X2RyZWdjaWRpIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MXgzX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQzX2Y2NCAoY29uc3QgZmxvYXQ2NF90ICogX19hKQ0K
ICAgICt7DQogICAgKyAgZmxvYXQ2NHgxeDNfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQzZGYgKChj
b25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RmICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFsw
XSA9IChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2lkZiAoX19vLCAw
KX07DQogICAgKyAgcmV0LnZhbFsxXSA9IChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0
X2dldF9kcmVnY2lkZiAoX19vLCAxKX07DQogICAgKyAgcmV0LnZhbFsyXSA9IChmbG9hdDY0eDFf
dCkge19fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2lkZiAoX19vLCAyKX07DQogICAgKyAgcmV0
dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50OHg4eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNfczggKGNvbnN0IGludDhf
dCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDh4OHgzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xk
M3Y4cWkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAg
cmV0LnZhbFswXSA9IChpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY4cWkg
KF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNo
NjRfZ2V0X2RyZWdjaXY4cWkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChpbnQ4eDhf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY4cWkgKF9fbywgMik7DQogICAgKyAgcmV0
dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgcG9seTh4OHgzX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQzX3A4IChjb25zdCBwb2x5
OF90ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9seTh4OHgzX3QgcmV0Ow0KICAgICsgIF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X2xkM3Y4cWkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAg
KyAgcmV0LnZhbFswXSA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2
OHFpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAocG9seTh4OF90KSBfX2J1aWx0aW5f
YWFyY2g2NF9nZXRfZHJlZ2NpdjhxaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHBv
bHk4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY4cWkgKF9fbywgMik7DQogICAg
KyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50MTZ4NHgzX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQzX3MxNiAoY29u
c3QgaW50MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDE2eDR4M190IHJldDsNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9sZDN2NGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2Ep
Ow0KICAgICsgIHJldC52YWxbMF0gPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
ZHJlZ2NpdjRoaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDE2eDRfdCkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY0aGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsy
XSA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2NGhpIChfX28sIDIp
Ow0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNf
cDE2IChjb25zdCBwb2x5MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHBvbHkxNng0eDNfdCBy
ZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfbGQzdjRoaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
aGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9kcmVnY2l2NGhpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAocG9s
eTE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY0aGkgKF9fbywgMSk7DQogICAg
KyAgcmV0LnZhbFsyXSA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2Np
djRoaSAoX19vLCAyKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyeDNfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZsZDNfczMyIChjb25zdCBpbnQzMl90ICogX19hKQ0KICAgICt7DQogICAgKyAgaW50
MzJ4MngzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM3Yyc2kgKChjb25zdCBfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX3NpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChpbnQzMngyX3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2MnNpIChfX28sIDApOw0KICAgICsgIHJldC52YWxb
MV0gPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpdjJzaSAoX19vLCAx
KTsNCiAgICArICByZXQudmFsWzJdID0gKGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0
X2RyZWdjaXYyc2kgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OHgzX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQzX3U4IChjb25zdCB1aW50OF90ICogX19hKQ0KICAgICt7DQogICAg
KyAgdWludDh4OHgzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19v
Ow0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM3Y4cWkgKChjb25zdCBfX2J1aWx0
aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1aW50OHg4
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2OHFpIChfX28sIDApOw0KICAgICsgIHJl
dC52YWxbMV0gPSAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpdjhxaSAo
X19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNo
NjRfZ2V0X2RyZWdjaXY4cWkgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDR4M190DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM191MTYgKGNvbnN0IHVpbnQxNl90ICogX19hKQ0KICAg
ICt7DQogICAgKyAgdWludDE2eDR4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDN2NGhpICgoY29u
c3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0g
PSAodWludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY0aGkgKF9fbywgMCk7
DQogICAgKyAgcmV0LnZhbFsxXSA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
ZHJlZ2NpdjRoaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHVpbnQxNng0X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2NGhpIChfX28sIDIpOw0KICAgICsgIHJldHVybiBy
ZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQzMngyeDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNfdTMyIChjb25zdCB1aW50MzJf
dCAqIF9fYSkNCiAgICArew0KICAgICsgIHVpbnQzMngyeDNfdCByZXQ7DQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
bGQzdjJzaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfc2kgKikgX19hKTsNCiAgICAr
ICByZXQudmFsWzBdID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2
MnNpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAodWludDMyeDJfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWdjaXYyc2kgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9ICh1
aW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpdjJzaSAoX19vLCAyKTsNCiAg
ICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDE2eDR4M190DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM19mMTYg
KGNvbnN0IGZsb2F0MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGZsb2F0MTZ4NHgzX3QgcmV0
Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X2xkM3Y0aGYgKF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2NGhmIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0g
PSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpdjRoZiAoX19vLCAxKTsNCiAgICArICByZXQu
dmFsWzJdID0gX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY0aGYgKF9fbywgMik7DQogICAg
KyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQzMngyeDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNfZjMyIChj
b25zdCBmbG9hdDMyX3QgKiBfX2EpDQogICAgK3sNCiAgICArICBmbG9hdDMyeDJ4M190IHJldDsN
CiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1
aWx0aW5fYWFyY2g2NF9sZDN2MnNmICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zZiAq
KSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9hYXJj
aDY0X2dldF9kcmVnY2l2MnNmIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoZmxvYXQz
MngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2MnNmIChfX28sIDEpOw0KICAgICsg
IHJldC52YWxbMl0gPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2
MnNmIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxeDNfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZsZDNfcDY0IChjb25zdCBwb2x5NjRfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHBv
bHk2NHgxeDNfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQog
ICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQzZGkgKChjb25zdCBfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX2RpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChwb2x5NjR4MV90KSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpZGlfcHNzIChfX28sIDApOw0KICAgICsgIHJldC52
YWxbMV0gPSAocG9seTY0eDFfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaWRpX3BzcyAo
X19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9hYXJj
aDY0X2dldF9kcmVnY2lkaV9wc3MgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNngzX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQzcV9zOCAoY29uc3QgaW50OF90ICogX19hKQ0KICAg
ICt7DQogICAgKyAgaW50OHgxNngzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3Np
bWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM3YxNnFpICgoY29u
c3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0g
PSAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjE2cWkgKF9fbywgMCk7
DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9x
cmVnY2l2MTZxaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKGludDh4MTZfdCkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXYxNnFpIChfX28sIDIpOw0KICAgICsgIHJldHVybiBy
ZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHk4eDE2eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNxX3A4IChjb25zdCBwb2x5OF90
ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9seTh4MTZ4M190IHJldDsNCiAgICArICBfX2J1aWx0
aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9s
ZDN2MTZxaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19hKTsNCiAgICAr
ICByZXQudmFsWzBdID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2
MTZxaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2dldF9xcmVnY2l2MTZxaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0g
KHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MTZxaSAoX19vLCAyKTsN
CiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQxNng4eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNxX3Mx
NiAoY29uc3QgaW50MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDE2eDh4M190IHJldDsN
CiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1
aWx0aW5fYWFyY2g2NF9sZDN2OGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAq
KSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ2NpdjhoaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDE2eDhf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY4aGkgKF9fbywgMSk7DQogICAgKyAgcmV0
LnZhbFsyXSA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2OGhpIChf
X28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng4eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZsZDNxX3AxNiAoY29uc3QgcG9seTE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBwb2x5MTZ4
OHgzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM3Y4aGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX2hpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChwb2x5MTZ4OF90KSBfX2J1
aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjhoaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFd
ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2OGhpIChfX28sIDEp
Ow0KICAgICsgIHJldC52YWxbMl0gPSAocG9seTE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0
X3FyZWdjaXY4aGkgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NHgzX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQzcV9zMzIgKGNvbnN0IGludDMyX3QgKiBfX2EpDQogICAgK3sNCiAg
ICArICBpbnQzMng0eDNfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBf
X287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQzdjRzaSAoKGNvbnN0IF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfc2kgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGludDMy
eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY0c2kgKF9fbywgMCk7DQogICAgKyAg
cmV0LnZhbFsxXSA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2NHNp
IChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fYWFy
Y2g2NF9nZXRfcXJlZ2NpdjRzaSAoX19vLCAyKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyeDNfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNxX3M2NCAoY29uc3QgaW50NjRfdCAqIF9fYSkNCiAg
ICArew0KICAgICsgIGludDY0eDJ4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDN2MmRpICgoY29u
c3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0g
PSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjJkaSAoX19vLCAwKTsN
CiAgICArICByZXQudmFsWzFdID0gKGludDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3Fy
ZWdjaXYyZGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChpbnQ2NHgyX3QpIF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MmRpIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4
eDE2eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNxX3U4IChjb25zdCB1aW50OF90ICog
X19hKQ0KICAgICt7DQogICAgKyAgdWludDh4MTZ4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDN2
MTZxaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19hKTsNCiAgICArICBy
ZXQudmFsWzBdID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MTZx
aSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9xcmVnY2l2MTZxaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHVp
bnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MTZxaSAoX19vLCAyKTsNCiAg
ICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MTZ4OHgzX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQzcV91MTYg
KGNvbnN0IHVpbnQxNl90ICogX19hKQ0KICAgICt7DQogICAgKyAgdWludDE2eDh4M190IHJldDsN
CiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1
aWx0aW5fYWFyY2g2NF9sZDN2OGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAq
KSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWludDE2eDhfdCkgX19idWlsdGluX2FhcmNo
NjRfZ2V0X3FyZWdjaXY4aGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9ICh1aW50MTZ4
OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjhoaSAoX19vLCAxKTsNCiAgICArICBy
ZXQudmFsWzJdID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2OGhp
IChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZsZDNxX3UzMiAoY29uc3QgdWludDMyX3QgKiBfX2EpDQogICAgK3sNCiAgICArICB1aW50
MzJ4NHgzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM3Y0c2kgKChjb25zdCBfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX3NpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1aW50MzJ4NF90KSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjRzaSAoX19vLCAwKTsNCiAgICArICByZXQudmFs
WzFdID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2NHNpIChfX28s
IDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRf
Z2V0X3FyZWdjaXY0c2kgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJ4M190DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmxkM3FfdTY0IChjb25zdCB1aW50NjRfdCAqIF9fYSkNCiAgICAr
ew0KICAgICsgIHVpbnQ2NHgyeDNfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2lt
ZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQzdjJkaSAoKGNvbnN0
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0g
KHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MmRpIChfX28sIDApOw0K
ICAgICsgIHJldC52YWxbMV0gPSAodWludDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3Fy
ZWdjaXYyZGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9ICh1aW50NjR4Ml90KSBfX2J1
aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjJkaSAoX19vLCAyKTsNCiAgICArICByZXR1cm4gcmV0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDE2eDh4M190DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM3FfZjE2IChjb25zdCBmbG9hdDE2
X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBmbG9hdDE2eDh4M190IHJldDsNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9sZDN2OGhmIChfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfcXJlZ2NpdjhoZiAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gX19idWlsdGluX2Fh
cmNoNjRfZ2V0X3FyZWdjaXY4aGYgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2OGhmIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0
MzJ4NHgzX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQzcV9mMzIgKGNvbnN0IGZsb2F0MzJf
dCAqIF9fYSkNCiAgICArew0KICAgICsgIGZsb2F0MzJ4NHgzX3QgcmV0Ow0KICAgICsgIF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X2xkM3Y0c2YgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NmICopIF9fYSk7DQogICAg
KyAgcmV0LnZhbFswXSA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdj
aXY0c2YgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChmbG9hdDMyeDRfdCkgX19idWls
dGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY0c2YgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9
IChmbG9hdDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY0c2YgKF9fbywgMik7
DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyeDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNx
X2Y2NCAoY29uc3QgZmxvYXQ2NF90ICogX19hKQ0KICAgICt7DQogICAgKyAgZmxvYXQ2NHgyeDNf
dCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19v
ID0gX19idWlsdGluX2FhcmNoNjRfbGQzdjJkZiAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3Np
bWRfZGYgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0
aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjJkZiAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0g
KGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjJkZiAoX19vLCAxKTsN
CiAgICArICByZXQudmFsWzJdID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
cXJlZ2NpdjJkZiAoX19vLCAyKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4MngzX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQzcV9wNjQgKGNvbnN0IHBvbHk2NF90ICogX19hKQ0KICAgICt7DQog
ICAgKyAgcG9seTY0eDJ4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2Np
IF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDN2MmRpICgoY29uc3QgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAocG9s
eTY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXYyZGlfcHNzIChfX28sIDApOw0K
ICAgICsgIHJldC52YWxbMV0gPSAocG9seTY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3Fy
ZWdjaXYyZGlfcHNzIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAocG9seTY0eDJfdCkg
X19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXYyZGlfcHNzIChfX28sIDIpOw0KICAgICsgIHJl
dHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDY0eDF4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkNF9zNjQgKGNvbnN0IGlu
dDY0X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQ2NHgxeDRfdCByZXQ7DQogICAgKyAgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfbGQ0ZGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSk7DQogICAg
KyAgcmV0LnZhbFswXSA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGlk
aSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDY0eDFfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X2RyZWd4aWRpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAoaW50NjR4
MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGkgKF9fbywgMik7DQogICAgKyAgcmV0
LnZhbFszXSA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGlkaSAoX19v
LCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MXg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bGQ0X3U2NCAoY29uc3QgdWludDY0X3QgKiBfX2EpDQogICAgK3sNCiAgICArICB1aW50NjR4MXg0
X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIF9f
byA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNGRpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2lt
ZF9kaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWludDY0eDFfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWd4aWRpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAodWlu
dDY0eDFfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aWRpIChfX28sIDEpOw0KICAgICsg
IHJldC52YWxbMl0gPSAodWludDY0eDFfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aWRp
IChfX28sIDIpOw0KICAgICsgIHJldC52YWxbM10gPSAodWludDY0eDFfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X2RyZWd4aWRpIChfX28sIDMpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MXg0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0X2Y2NCAoY29uc3QgZmxvYXQ2NF90ICogX19hKQ0K
ICAgICt7DQogICAgKyAgZmxvYXQ2NHgxeDRfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0ZGYgKChj
b25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RmICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFsw
XSA9IChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGlkZiAoX19vLCAw
KX07DQogICAgKyAgcmV0LnZhbFsxXSA9IChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0
X2dldF9kcmVneGlkZiAoX19vLCAxKX07DQogICAgKyAgcmV0LnZhbFsyXSA9IChmbG9hdDY0eDFf
dCkge19fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGlkZiAoX19vLCAyKX07DQogICAgKyAgcmV0
LnZhbFszXSA9IChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGlkZiAo
X19vLCAzKX07DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZsZDRfczggKGNvbnN0IGludDhfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDh4OHg0X3Qg
cmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIF9fbyA9
IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHY4cWkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1k
X3FpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChpbnQ4eDhfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQ4
eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMSk7DQogICAgKyAg
cmV0LnZhbFsyXSA9IChpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkg
KF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IChpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNo
NjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OHg0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bGQ0X3A4IChjb25zdCBwb2x5OF90ICogX19hKQ0KICAgICt7
DQogICAgKyAgcG9seTh4OHg0X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
eGkgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHY4cWkgKChjb25zdCBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChw
b2x5OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2OHFpIChfX28sIDApOw0KICAg
ICsgIHJldC52YWxbMV0gPSAocG9seTh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hp
djhxaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHBvbHk4eDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IChw
b2x5OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2OHFpIChfX28sIDMpOw0KICAg
ICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDE2eDR4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkNF9zMTYgKGNv
bnN0IGludDE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQxNng0eDRfdCByZXQ7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfbGQ0djRoaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgX19h
KTsNCiAgICArICByZXQudmFsWzBdID0gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0
X2RyZWd4aXY0aGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQxNng0X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2NGhpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxb
Ml0gPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjRoaSAoX19vLCAy
KTsNCiAgICArICByZXQudmFsWzNdID0gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0
X2RyZWd4aXY0aGkgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDR4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmxkNF9wMTYgKGNvbnN0IHBvbHkxNl90ICogX19hKQ0KICAgICt7DQog
ICAgKyAgcG9seTE2eDR4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hp
IF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDR2NGhpICgoY29uc3QgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAocG9s
eTE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY0aGkgKF9fbywgMCk7DQogICAg
KyAgcmV0LnZhbFsxXSA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hp
djRoaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHBvbHkxNng0X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2dldF9kcmVneGl2NGhpIChfX28sIDIpOw0KICAgICsgIHJldC52YWxbM10gPSAo
cG9seTE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY0aGkgKF9fbywgMyk7DQog
ICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MzJ4Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0X3MzMiAo
Y29uc3QgaW50MzJfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDMyeDJ4NF90IHJldDsNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0
aW5fYWFyY2g2NF9sZDR2MnNpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAqKSBf
X2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfZHJlZ3hpdjJzaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDMyeDJfdCkg
X19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXYyc2kgKF9fbywgMSk7DQogICAgKyAgcmV0LnZh
bFsyXSA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2MnNpIChfX28s
IDIpOw0KICAgICsgIHJldC52YWxbM10gPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfZHJlZ3hpdjJzaSAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDRfdTggKGNvbnN0IHVpbnQ4X3QgKiBfX2EpDQogICAgK3sNCiAg
ICArICB1aW50OHg4eDRfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBf
X287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0djhxaSAoKGNvbnN0IF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHVpbnQ4
eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMCk7DQogICAgKyAg
cmV0LnZhbFsxXSA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2OHFp
IChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAodWludDh4OF90KSBfX2J1aWx0aW5fYWFy
Y2g2NF9nZXRfZHJlZ3hpdjhxaSAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKHVpbnQ4
eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMyk7DQogICAgKyAg
cmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDR4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkNF91MTYgKGNvbnN0
IHVpbnQxNl90ICogX19hKQ0KICAgICt7DQogICAgKyAgdWludDE2eDR4NF90IHJldDsNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9sZDR2NGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2Ep
Ow0KICAgICsgIHJldC52YWxbMF0gPSAodWludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0
X2RyZWd4aXY0aGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9ICh1aW50MTZ4NF90KSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjRoaSAoX19vLCAxKTsNCiAgICArICByZXQudmFs
WzJdID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2NGhpIChfX28s
IDIpOw0KICAgICsgIHJldC52YWxbM10gPSAodWludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRf
Z2V0X2RyZWd4aXY0aGkgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmxkNF91MzIgKGNvbnN0IHVpbnQzMl90ICogX19hKQ0KICAgICt7
DQogICAgKyAgdWludDMyeDJ4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1k
X3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDR2MnNpICgoY29uc3Qg
X19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAo
dWludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXYyc2kgKF9fbywgMCk7DQog
ICAgKyAgcmV0LnZhbFsxXSA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJl
Z3hpdjJzaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHVpbnQzMngyX3QpIF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9kcmVneGl2MnNpIChfX28sIDIpOw0KICAgICsgIHJldC52YWxbM10g
PSAodWludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXYyc2kgKF9fbywgMyk7
DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQxNng0eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDRf
ZjE2IChjb25zdCBmbG9hdDE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBmbG9hdDE2eDR4NF90
IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9sZDR2NGhmIChfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjRoZiAoX19vLCAwKTsNCiAgICArICByZXQudmFs
WzFdID0gX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY0aGYgKF9fbywgMSk7DQogICAgKyAg
cmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2NGhmIChfX28sIDIpOw0K
ICAgICsgIHJldC52YWxbM10gPSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjRoZiAoX19v
LCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmxkNF9mMzIgKGNvbnN0IGZsb2F0MzJfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGZsb2F0MzJ4
Mng0X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHYyc2YgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX3NmICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChmbG9hdDMyeDJfdCkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXYyc2YgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsx
XSA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXYyc2YgKF9fbywg
MSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRf
Z2V0X2RyZWd4aXYyc2YgKF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IChmbG9hdDMyeDJf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXYyc2YgKF9fbywgMyk7DQogICAgKyAgcmV0
dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgcG9seTY0eDF4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkNF9wNjQgKGNvbnN0IHBv
bHk2NF90ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9seTY0eDF4NF90ICByZXQ7DQogICAgKyAg
X19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2Fh
cmNoNjRfbGQ0ZGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSk7DQog
ICAgKyAgcmV0LnZhbFswXSA9IChwb2x5NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJl
Z3hpZGlfcHNzIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAocG9seTY0eDFfdCkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aWRpX3BzcyAoX19vLCAxKTsNCiAgICArICByZXQudmFs
WzJdID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGlkaV9wc3MgKF9f
bywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IChwb2x5NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfZHJlZ3hpZGlfcHNzIChfX28sIDMpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkNHFfczggKGNvbnN0IGludDhfdCAqIF9fYSkNCiAgICAr
ew0KICAgICsgIGludDh4MTZ4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1k
X3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDR2MTZxaSAoKGNvbnN0
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0g
KGludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXYxNnFpIChfX28sIDApOw0K
ICAgICsgIHJldC52YWxbMV0gPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJl
Z3hpdjE2cWkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChpbnQ4eDE2X3QpIF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNd
ID0gKGludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXYxNnFpIChfX28sIDMp
Ow0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDRx
X3A4IChjb25zdCBwb2x5OF90ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9seTh4MTZ4NF90IHJl
dDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9sZDR2MTZxaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
cWkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHBv
bHk4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19vLCAxKTsNCiAg
ICArICByZXQudmFsWzJdID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVn
eGl2MTZxaSAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKHBvbHk4eDE2X3QpIF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQx
Nng4eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDRxX3MxNiAoY29uc3QgaW50MTZfdCAq
IF9fYSkNCiAgICArew0KICAgICsgIGludDE2eDh4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDR2
OGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EpOw0KICAgICsgIHJl
dC52YWxbMF0gPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoaSAo
X19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDE2eDhfdCkgX19idWlsdGluX2FhcmNo
NjRfZ2V0X3FyZWd4aXY4aGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChpbnQxNng4
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2OGhpIChfX28sIDIpOw0KICAgICsgIHJl
dC52YWxbM10gPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoaSAo
X19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4OHg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2bGQ0cV9wMTYgKGNvbnN0IHBvbHkxNl90ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9seTE2
eDh4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDR2OGhpICgoY29uc3QgX19idWlsdGluX2FhcmNo
NjRfc2ltZF9oaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAocG9seTE2eDhfdCkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY4aGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsx
XSA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoaSAoX19vLCAx
KTsNCiAgICArICByZXQudmFsWzJdID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dl
dF9xcmVneGl2OGhpIChfX28sIDIpOw0KICAgICsgIHJldC52YWxbM10gPSAocG9seTE2eDhfdCkg
X19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY4aGkgKF9fbywgMyk7DQogICAgKyAgcmV0dXJu
IHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MzJ4NHg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0cV9zMzIgKGNvbnN0IGludDMy
X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQzMng0eDRfdCByZXQ7DQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
bGQ0djRzaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfc2kgKikgX19hKTsNCiAgICAr
ICByZXQudmFsWzBdID0gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY0
c2kgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9xcmVneGl2NHNpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAoaW50
MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjRzaSAoX19vLCAyKTsNCiAgICAr
ICByZXQudmFsWzNdID0gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY0
c2kgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Mng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bGQ0cV9zNjQgKGNvbnN0IGludDY0X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQ2
NHgyeDRfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAg
KyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0djJkaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGludDY0eDJfdCkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXYyZGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsx
XSA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MmRpIChfX28sIDEp
Ow0KICAgICsgIHJldC52YWxbMl0gPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
cXJlZ3hpdjJkaSAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKGludDY0eDJfdCkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXYyZGkgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJl
dDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDh4MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkNHFfdTggKGNvbnN0IHVpbnQ4X3Qg
KiBfX2EpDQogICAgK3sNCiAgICArICB1aW50OHgxNng0X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xk
NHYxNnFpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EpOw0KICAgICsg
IHJldC52YWxbMF0gPSAodWludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXYx
NnFpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAodWludDh4MTZfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X3FyZWd4aXYxNnFpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAo
dWludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXYxNnFpIChfX28sIDIpOw0K
ICAgICsgIHJldC52YWxbM10gPSAodWludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3Fy
ZWd4aXYxNnFpIChfX28sIDMpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZsZDRxX3UxNiAoY29uc3QgdWludDE2X3QgKiBfX2EpDQogICAgK3sNCiAg
ICArICB1aW50MTZ4OHg0X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkg
X19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHY4aGkgKChjb25zdCBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1aW50
MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoaSAoX19vLCAwKTsNCiAgICAr
ICByZXQudmFsWzFdID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2
OGhpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAodWludDE2eDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X3FyZWd4aXY4aGkgKF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9ICh1
aW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoaSAoX19vLCAzKTsNCiAg
ICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MzJ4NHg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0cV91MzIg
KGNvbnN0IHVpbnQzMl90ICogX19hKQ0KICAgICt7DQogICAgKyAgdWludDMyeDR4NF90IHJldDsN
CiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1
aWx0aW5fYWFyY2g2NF9sZDR2NHNpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAq
KSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNo
NjRfZ2V0X3FyZWd4aXY0c2kgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9ICh1aW50MzJ4
NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjRzaSAoX19vLCAxKTsNCiAgICArICBy
ZXQudmFsWzJdID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2NHNp
IChfX28sIDIpOw0KICAgICsgIHJldC52YWxbM10gPSAodWludDMyeDRfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X3FyZWd4aXY0c2kgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkNHFfdTY0IChjb25zdCB1aW50NjRfdCAqIF9fYSkN
CiAgICArew0KICAgICsgIHVpbnQ2NHgyeDRfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0djJkaSAo
KGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICByZXQudmFs
WzBdID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MmRpIChfX28s
IDApOw0KICAgICsgIHJldC52YWxbMV0gPSAodWludDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRf
Z2V0X3FyZWd4aXYyZGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9ICh1aW50NjR4Ml90
KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJkaSAoX19vLCAyKTsNCiAgICArICByZXQu
dmFsWzNdID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MmRpIChf
X28sIDMpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OHg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2bGQ0cV9mMTYgKGNvbnN0IGZsb2F0MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGZsb2F0
MTZ4OHg0X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHY4aGYgKF9fYSk7DQogICAgKyAgcmV0LnZh
bFswXSA9IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2OGhmIChfX28sIDApOw0KICAgICsg
IHJldC52YWxbMV0gPSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoZiAoX19vLCAxKTsN
CiAgICArICByZXQudmFsWzJdID0gX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY4aGYgKF9f
bywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2
OGhmIChfX28sIDMpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NHg0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bGQ0cV9mMzIgKGNvbnN0IGZsb2F0MzJfdCAqIF9fYSkNCiAgICArew0KICAgICsg
IGZsb2F0MzJ4NHg0X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19v
Ow0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHY0c2YgKChjb25zdCBfX2J1aWx0
aW5fYWFyY2g2NF9zaW1kX3NmICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChmbG9hdDMy
eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY0c2YgKF9fbywgMCk7DQogICAgKyAg
cmV0LnZhbFsxXSA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY0
c2YgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChmbG9hdDMyeDRfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X3FyZWd4aXY0c2YgKF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IChm
bG9hdDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY0c2YgKF9fbywgMyk7DQog
ICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQ2NHgyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDRxX2Y2
NCAoY29uc3QgZmxvYXQ2NF90ICogX19hKQ0KICAgICt7DQogICAgKyAgZmxvYXQ2NHgyeDRfdCBy
ZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfbGQ0djJkZiAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
ZGYgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5f
YWFyY2g2NF9nZXRfcXJlZ3hpdjJkZiAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGZs
b2F0NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJkZiAoX19vLCAxKTsNCiAg
ICArICByZXQudmFsWzJdID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJl
Z3hpdjJkZiAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKGZsb2F0NjR4Ml90KSBfX2J1
aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJkZiAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5
NjR4Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0cV9wNjQgKGNvbnN0IHBvbHk2NF90
ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9seTY0eDJ4NF90ICByZXQ7DQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
bGQ0djJkaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICAr
ICByZXQudmFsWzBdID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2
MmRpX3BzcyAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHBvbHk2NHgyX3QpIF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MmRpX3BzcyAoX19vLCAxKTsNCiAgICArICByZXQudmFs
WzJdID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MmRpX3BzcyAo
X19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9hYXJj
aDY0X2dldF9xcmVneGl2MmRpX3BzcyAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAg
ICt9DQogICAgKw0KICAgICsvKiB2bGRuX2R1cCAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50OHg4eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDJf
ZHVwX3M4IChjb25zdCBpbnQ4X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQ4eDh4Ml90IHJl
dDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9sZDJydjhxaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
cWkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGludDh4OF90KSBfX2J1aWx0aW5fYWFy
Y2g2NF9nZXRfZHJlZ29pdjhxaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDh4
OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pdjhxaSAoX19vLCAxKTsNCiAgICArICBy
ZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQxNng0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDJfZHVwX3MxNiAoY29u
c3QgaW50MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDE2eDR4Ml90IHJldDsNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9sZDJydjRoaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgX19h
KTsNCiAgICArICByZXQudmFsWzBdID0gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0
X2RyZWdvaXY0aGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQxNng0X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2NGhpIChfX28sIDEpOw0KICAgICsgIHJldHVybiBy
ZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDMyeDJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMl9kdXBfczMyIChjb25zdCBpbnQz
Ml90ICogX19hKQ0KICAgICt7DQogICAgKyAgaW50MzJ4MngyX3QgcmV0Ow0KICAgICsgIF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X2xkMnJ2MnNpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAqKSBfX2EpOw0KICAg
ICsgIHJldC52YWxbMF0gPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29p
djJzaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDMyeDJfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWdvaXYyc2kgKF9fbywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDJfZHVwX2YxNiAoY29uc3QgZmxvYXQxNl90
ICogX19hKQ0KICAgICt7DQogICAgKyAgZmxvYXQxNng0eDJfdCByZXQ7DQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
bGQycnY0aGYgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hmICopIF9fYSk7DQogICAg
KyAgcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2NGhmIChfX28sIDAp
Ow0KICAgICsgIHJldC52YWxbMV0gPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dl
dF9kcmVnb2l2NGhmIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4MngyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2bGQyX2R1cF9mMzIgKGNvbnN0IGZsb2F0MzJfdCAqIF9fYSkNCiAg
ICArew0KICAgICsgIGZsb2F0MzJ4MngyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnJ2MnNmICgo
Y29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zZiAqKSBfX2EpOw0KICAgICsgIHJldC52YWxb
MF0gPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2MnNmIChfX28s
IDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2dldF9kcmVnb2l2MnNmIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MXgyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bGQyX2R1cF9mNjQgKGNvbnN0IGZsb2F0NjRfdCAqIF9fYSkN
CiAgICArew0KICAgICsgIGZsb2F0NjR4MXgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnJkZiAo
KGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGYgKikgX19hKTsNCiAgICArICByZXQudmFs
WzBdID0gKGZsb2F0NjR4MV90KSB7X19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaWRmIChfX28s
IDApfTsNCiAgICArICByZXQudmFsWzFdID0gKGZsb2F0NjR4MV90KSB7X19idWlsdGluX2FhcmNo
NjRfZ2V0X2RyZWdvaWRmIChfX28sIDEpfTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZsZDJfZHVwX3U4IChjb25zdCB1aW50OF90ICogX19hKQ0KICAg
ICt7DQogICAgKyAgdWludDh4OHgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3Np
bWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnJ2OHFpICgoY29u
c3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0g
PSAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pdjhxaSAoX19vLCAwKTsN
CiAgICArICByZXQudmFsWzFdID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2Ry
ZWdvaXY4cWkgKF9fbywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmxkMl9kdXBfdTE2IChjb25zdCB1aW50MTZfdCAqIF9fYSkNCiAgICArew0K
ICAgICsgIHVpbnQxNng0eDJfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9v
aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQycnY0aGkgKChjb25zdCBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1
aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pdjRoaSAoX19vLCAwKTsNCiAg
ICArICByZXQudmFsWzFdID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVn
b2l2NGhpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZsZDJfZHVwX3UzMiAoY29uc3QgdWludDMyX3QgKiBfX2EpDQogICAgK3sNCiAg
ICArICB1aW50MzJ4MngyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kg
X19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnJ2MnNpICgoY29uc3QgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9zaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWlu
dDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaXYyc2kgKF9fbywgMCk7DQogICAg
KyAgcmV0LnZhbFsxXSA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29p
djJzaSAoX19vLCAxKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4eDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZsZDJfZHVwX3A4IChjb25zdCBwb2x5OF90ICogX19hKQ0KICAgICt7DQogICAgKyAg
cG9seTh4OHgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnJ2OHFpICgoY29uc3QgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAocG9seTh4OF90
KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pdjhxaSAoX19vLCAwKTsNCiAgICArICByZXQu
dmFsWzFdID0gKHBvbHk4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaXY4cWkgKF9f
bywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmxkMl9kdXBfcDE2IChjb25zdCBwb2x5MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHBvbHkx
Nng0eDJfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAg
KyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQycnY0aGkgKChjb25zdCBfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX2hpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChwb2x5MTZ4NF90KSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pdjRoaSAoX19vLCAwKTsNCiAgICArICByZXQudmFs
WzFdID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2l2NGhpIChfX28s
IDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgxeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zs
ZDJfZHVwX3A2NCAoY29uc3QgcG9seTY0X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBwb2x5NjR4
MXgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnJ2MmRpICgoY29uc3QgX19idWlsdGluX2FhcmNo
NjRfc2ltZF9kaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAocG9seTY0eDFfdCkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaWRpX3BzcyAoX19vLCAwKTsNCiAgICArICByZXQudmFs
WzFdID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnb2lkaV9wc3MgKF9f
bywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDF4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmxkMl9kdXBfczY0IChjb25zdCBpbnQ2NF90ICogX19hKQ0KICAgICt7DQogICAgKyAg
aW50NjR4MXgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnJkaSAoKGNvbnN0IF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGludDY0eDFfdCkg
X19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaWRpIChfX28sIDApOw0KICAgICsgIHJldC52YWxb
MV0gPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pZGkgKF9fbywgMSk7
DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDY0eDF4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMl9k
dXBfdTY0IChjb25zdCB1aW50NjRfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHVpbnQ2NHgxeDJf
dCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19v
ID0gX19idWlsdGluX2FhcmNoNjRfbGQycmRpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2lt
ZF9kaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWludDY0eDFfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWdvaWRpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAodWlu
dDY0eDFfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaWRpIChfX28sIDEpOw0KICAgICsg
IHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDh4MTZ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMnFfZHVwX3M4IChj
b25zdCBpbnQ4X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQ4eDE2eDJfdCByZXQ7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfbGQycnYxNnFpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBf
X2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfcXJlZ29pdjE2cWkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQ4eDE2X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2MTZxaSAoX19vLCAxKTsNCiAgICArICByZXR1
cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBwb2x5OHgxNngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQycV9kdXBfcDggKGNvbnN0
IHBvbHk4X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBwb2x5OHgxNngyX3QgcmV0Ow0KICAgICsg
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9h
YXJjaDY0X2xkMnJ2MTZxaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19h
KTsNCiAgICArICByZXQudmFsWzBdID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dl
dF9xcmVnb2l2MTZxaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHBvbHk4eDE2X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2MTZxaSAoX19vLCAxKTsNCiAgICArICByZXR1
cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQxNng4eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDJxX2R1cF9zMTYgKGNvbnN0
IGludDE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQxNng4eDJfdCByZXQ7DQogICAgKyAg
X19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2Fh
cmNoNjRfbGQycnY4aGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSk7
DQogICAgKyAgcmV0LnZhbFswXSA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9x
cmVnb2l2OGhpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoaW50MTZ4OF90KSBfX2J1
aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29pdjhoaSAoX19vLCAxKTsNCiAgICArICByZXR1cm4gcmV0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5
MTZ4OHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQycV9kdXBfcDE2IChjb25zdCBwb2x5
MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHBvbHkxNng4eDJfdCByZXQ7DQogICAgKyAgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfbGQycnY4aGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSk7DQog
ICAgKyAgcmV0LnZhbFswXSA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJl
Z29pdjhoaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHBvbHkxNng4X3QpIF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2OGhpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMy
eDR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMnFfZHVwX3MzMiAoY29uc3QgaW50MzJf
dCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDMyeDR4Ml90IHJldDsNCiAgICArICBfX2J1aWx0
aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9s
ZDJydjRzaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfc2kgKikgX19hKTsNCiAgICAr
ICByZXQudmFsWzBdID0gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXY0
c2kgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9xcmVnb2l2NHNpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJ4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkMnFfZHVwX3M2NCAoY29uc3QgaW50NjRfdCAqIF9f
YSkNCiAgICArew0KICAgICsgIGludDY0eDJ4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJydjJk
aSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICByZXQu
dmFsWzBdID0gKGludDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXYyZGkgKF9f
bywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2dldF9xcmVnb2l2MmRpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZsZDJxX2R1cF91OCAoY29uc3QgdWludDhfdCAqIF9fYSkNCiAg
ICArew0KICAgICsgIHVpbnQ4eDE2eDJfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQycnYxNnFpICgo
Y29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxb
MF0gPSAodWludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXYxNnFpIChfX28s
IDApOw0KICAgICsgIHJldC52YWxbMV0gPSAodWludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRf
Z2V0X3FyZWdvaXYxNnFpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZsZDJxX2R1cF91MTYgKGNvbnN0IHVpbnQxNl90ICogX19hKQ0K
ICAgICt7DQogICAgKyAgdWludDE2eDh4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJydjhoaSAo
KGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgX19hKTsNCiAgICArICByZXQudmFs
WzBdID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2OGhpIChfX28s
IDApOw0KICAgICsgIHJldC52YWxbMV0gPSAodWludDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRf
Z2V0X3FyZWdvaXY4aGkgKF9fbywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDR4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmxkMnFfZHVwX3UzMiAoY29uc3QgdWludDMyX3QgKiBfX2EpDQog
ICAgK3sNCiAgICArICB1aW50MzJ4NHgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnJ2NHNpICgo
Y29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxb
MF0gPSAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXY0c2kgKF9fbywg
MCk7DQogICAgKyAgcmV0LnZhbFsxXSA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfcXJlZ29pdjRzaSAoX19vLCAxKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MngyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2bGQycV9kdXBfdTY0IChjb25zdCB1aW50NjRfdCAqIF9fYSkNCiAg
ICArew0KICAgICsgIHVpbnQ2NHgyeDJfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQycnYyZGkgKChj
b25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFsw
XSA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29pdjJkaSAoX19vLCAw
KTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dl
dF9xcmVnb2l2MmRpIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OHgyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2bGQycV9kdXBfZjE2IChjb25zdCBmbG9hdDE2X3QgKiBfX2EpDQog
ICAgK3sNCiAgICArICBmbG9hdDE2eDh4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJydjhoZiAo
KGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGYgKikgX19hKTsNCiAgICArICByZXQudmFs
WzBdID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29pdjhoZiAoX19v
LCAwKTsNCiAgICArICByZXQudmFsWzFdID0gX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdvaXY4
aGYgKF9fbywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0eDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZsZDJxX2R1cF9mMzIgKGNvbnN0IGZsb2F0MzJfdCAqIF9fYSkNCiAgICArew0KICAg
ICsgIGZsb2F0MzJ4NHgyX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kg
X19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkMnJ2NHNmICgoY29uc3QgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9zZiAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoZmxv
YXQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnb2l2NHNmIChfX28sIDApOw0KICAg
ICsgIHJldC52YWxbMV0gPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVn
b2l2NHNmIChfX28sIDEpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MngyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bGQycV9kdXBfZjY0IChjb25zdCBmbG9hdDY0X3QgKiBfX2EpDQogICAgK3sN
CiAgICArICBmbG9hdDY0eDJ4Ml90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1k
X29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDJydjJkZiAoKGNvbnN0
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGYgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0g
KGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29pdjJkZiAoX19vLCAwKTsN
CiAgICArICByZXQudmFsWzFdID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
cXJlZ29pdjJkZiAoX19vLCAxKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4MngyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQycV9kdXBfcDY0IChjb25zdCBwb2x5NjRfdCAqIF9fYSkNCiAgICAr
ew0KICAgICsgIHBvbHk2NHgyeDJfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2lt
ZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQycnYyZGkgKChjb25z
dCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9
IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29pdjJkaV9wc3MgKF9fbywg
MCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfcXJlZ29pdjJkaV9wc3MgKF9fbywgMSk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MXgzX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bGQzX2R1cF9zNjQgKGNvbnN0IGludDY0X3QgKiBfX2EpDQog
ICAgK3sNCiAgICArICBpbnQ2NHgxeDNfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQzcmRpICgoY29u
c3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0g
PSAoaW50NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpZGkgKF9fbywgMCk7DQog
ICAgKyAgcmV0LnZhbFsxXSA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVn
Y2lkaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKGludDY0eDFfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWdjaWRpIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxeDNf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNfZHVwX3U2NCAoY29uc3QgdWludDY0X3QgKiBf
X2EpDQogICAgK3sNCiAgICArICB1aW50NjR4MXgzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM3Jk
aSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICByZXQu
dmFsWzBdID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2lkaSAoX19v
LCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2dldF9kcmVnY2lkaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHVpbnQ2NHgxX3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2lkaSAoX19vLCAyKTsNCiAgICArICByZXR1cm4g
cmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDY0eDF4M190DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM19kdXBfZjY0IChjb25zdCBm
bG9hdDY0X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBmbG9hdDY0eDF4M190IHJldDsNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9sZDNyZGYgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RmICopIF9fYSk7
DQogICAgKyAgcmV0LnZhbFswXSA9IChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X2dl
dF9kcmVnY2lkZiAoX19vLCAwKX07DQogICAgKyAgcmV0LnZhbFsxXSA9IChmbG9hdDY0eDFfdCkg
e19fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2lkZiAoX19vLCAxKX07DQogICAgKyAgcmV0LnZh
bFsyXSA9IChmbG9hdDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2lkZiAoX19v
LCAyKX07DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zs
ZDNfZHVwX3M4IChjb25zdCBpbnQ4X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQ4eDh4M190
IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9sZDNydjhxaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3Np
bWRfcWkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGludDh4OF90KSBfX2J1aWx0aW5f
YWFyY2g2NF9nZXRfZHJlZ2NpdjhxaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGlu
dDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpdjhxaSAoX19vLCAxKTsNCiAgICAr
ICByZXQudmFsWzJdID0gKGludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2Npdjhx
aSAoX19vLCAyKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZsZDNfZHVwX3A4IChjb25zdCBwb2x5OF90ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9s
eTh4OHgzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM3J2OHFpICgoY29uc3QgX19idWlsdGluX2Fh
cmNoNjRfc2ltZF9xaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAocG9seTh4OF90KSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpdjhxaSAoX19vLCAwKTsNCiAgICArICByZXQudmFs
WzFdID0gKHBvbHk4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY4cWkgKF9fbywg
MSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dl
dF9kcmVnY2l2OHFpIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDR4M190DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmxkM19kdXBfczE2IChjb25zdCBpbnQxNl90ICogX19hKQ0KICAgICt7
DQogICAgKyAgaW50MTZ4NHgzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
Y2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM3J2NGhpICgoY29uc3Qg
X19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAo
aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpdjRoaSAoX19vLCAwKTsNCiAg
ICArICByZXQudmFsWzFdID0gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdj
aXY0aGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChpbnQxNng0X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2dldF9kcmVnY2l2NGhpIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0
eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNfZHVwX3AxNiAoY29uc3QgcG9seTE2X3Qg
KiBfX2EpDQogICAgK3sNCiAgICArICBwb2x5MTZ4NHgzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xk
M3J2NGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EpOw0KICAgICsg
IHJldC52YWxbMF0gPSAocG9seTE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY0
aGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5f
YWFyY2g2NF9nZXRfZHJlZ2NpdjRoaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHBv
bHkxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2NGhpIChfX28sIDIpOw0KICAg
ICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyeDJ4M190DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM19kdXBfczMy
IChjb25zdCBpbnQzMl90ICogX19hKQ0KICAgICt7DQogICAgKyAgaW50MzJ4MngzX3QgcmV0Ow0K
ICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X2xkM3J2MnNpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAq
KSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfZHJlZ2NpdjJzaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDMyeDJf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXYyc2kgKF9fbywgMSk7DQogICAgKyAgcmV0
LnZhbFsyXSA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2MnNpIChf
X28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDh4M190DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dmxkM19kdXBfdTggKGNvbnN0IHVpbnQ4X3QgKiBfX2EpDQogICAgK3sNCiAgICArICB1aW50OHg4
eDNfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAg
X19vID0gX19idWlsdGluX2FhcmNoNjRfbGQzcnY4cWkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1aW50OHg4X3QpIF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9kcmVnY2l2OHFpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0g
PSAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpdjhxaSAoX19vLCAxKTsN
CiAgICArICByZXQudmFsWzJdID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2Ry
ZWdjaXY4cWkgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDR4M190DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmxkM19kdXBfdTE2IChjb25zdCB1aW50MTZfdCAqIF9fYSkNCiAgICArew0K
ICAgICsgIHVpbnQxNng0eDNfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9j
aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQzcnY0aGkgKChjb25zdCBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1
aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2NpdjRoaSAoX19vLCAwKTsNCiAg
ICArICByZXQudmFsWzFdID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVn
Y2l2NGhpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAodWludDE2eDRfdCkgX19idWls
dGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY0aGkgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMy
eDJ4M190DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM19kdXBfdTMyIChjb25zdCB1aW50MzJf
dCAqIF9fYSkNCiAgICArew0KICAgICsgIHVpbnQzMngyeDNfdCByZXQ7DQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
bGQzcnYyc2kgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSk7DQogICAg
KyAgcmV0LnZhbFswXSA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ2Np
djJzaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQzMngyX3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2dldF9kcmVnY2l2MnNpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAo
dWludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXYyc2kgKF9fbywgMik7DQog
ICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQxNng0eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNfZHVw
X2YxNiAoY29uc3QgZmxvYXQxNl90ICogX19hKQ0KICAgICt7DQogICAgKyAgZmxvYXQxNng0eDNf
dCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19v
ID0gX19idWlsdGluX2FhcmNoNjRfbGQzcnY0aGYgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX2hmICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChmbG9hdDE2eDRfdCkgX19idWls
dGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY0aGYgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9
IChmbG9hdDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXY0aGYgKF9fbywgMSk7
DQogICAgKyAgcmV0LnZhbFsyXSA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0
X2RyZWdjaXY0aGYgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyeDNfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDNfZHVwX2YzMiAoY29uc3QgZmxvYXQzMl90ICogX19hKQ0KICAg
ICt7DQogICAgKyAgZmxvYXQzMngyeDNfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQzcnYyc2YgKChj
b25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NmICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFsw
XSA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXYyc2YgKF9fbywg
MCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRf
Z2V0X2RyZWdjaXYyc2YgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChmbG9hdDMyeDJf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaXYyc2YgKF9fbywgMik7DQogICAgKyAgcmV0
dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgcG9seTY0eDF4M190DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM19kdXBfcDY0IChjb25z
dCBwb2x5NjRfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHBvbHk2NHgxeDNfdCByZXQ7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfbGQzcnYyZGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9f
YSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChwb2x5NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfZHJlZ2NpZGlfcHNzIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAocG9seTY0eDFf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaWRpX3BzcyAoX19vLCAxKTsNCiAgICArICBy
ZXQudmFsWzJdID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2lkaV9w
c3MgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNngzX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bGQzcV9kdXBfczggKGNvbnN0IGludDhfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGlu
dDh4MTZ4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDNydjE2cWkgKChjb25zdCBfX2J1aWx0aW5f
YWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChpbnQ4eDE2X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MTZxaSAoX19vLCAwKTsNCiAgICArICByZXQu
dmFsWzFdID0gKGludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXYxNnFpIChf
X28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ2NpdjE2cWkgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZ4M190DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM3FfZHVwX3A4IChjb25zdCBwb2x5OF90ICogX19hKQ0K
ICAgICt7DQogICAgKyAgcG9seTh4MTZ4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDNydjE2cWkg
KChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAgcmV0LnZh
bFswXSA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjE2cWkgKF9f
bywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ2NpdjE2cWkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChwb2x5OHgx
Nl90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjE2cWkgKF9fbywgMik7DQogICAgKyAg
cmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MTZ4OHgzX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQzcV9kdXBfczE2IChj
b25zdCBpbnQxNl90ICogX19hKQ0KICAgICt7DQogICAgKyAgaW50MTZ4OHgzX3QgcmV0Ow0KICAg
ICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRp
bl9hYXJjaDY0X2xkM3J2OGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBf
X2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfcXJlZ2NpdjhoaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDE2eDhfdCkg
X19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY4aGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZh
bFsyXSA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2OGhpIChfX28s
IDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng4eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zs
ZDNxX2R1cF9wMTYgKGNvbnN0IHBvbHkxNl90ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9seTE2
eDh4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDNydjhoaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfaGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHBvbHkxNng4X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2OGhpIChfX28sIDApOw0KICAgICsgIHJldC52YWxb
MV0gPSAocG9seTE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY4aGkgKF9fbywg
MSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfcXJlZ2NpdjhoaSAoX19vLCAyKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0eDNfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZsZDNxX2R1cF9zMzIgKGNvbnN0IGludDMyX3QgKiBfX2EpDQogICAg
K3sNCiAgICArICBpbnQzMng0eDNfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2lt
ZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQzcnY0c2kgKChjb25z
dCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9
IChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2NHNpIChfX28sIDApOw0K
ICAgICsgIHJldC52YWxbMV0gPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJl
Z2NpdjRzaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKGludDMyeDRfdCkgX19idWls
dGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY0c2kgKF9fbywgMik7DQogICAgKyAgcmV0dXJuIHJldDsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4
MngzX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQzcV9kdXBfczY0IChjb25zdCBpbnQ2NF90
ICogX19hKQ0KICAgICt7DQogICAgKyAgaW50NjR4MngzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xk
M3J2MmRpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EpOw0KICAgICsg
IHJldC52YWxbMF0gPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjJk
aSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDY0eDJfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X3FyZWdjaXYyZGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChpbnQ2
NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MmRpIChfX28sIDIpOw0KICAgICsg
IHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ4eDE2eDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNxX2R1cF91OCAo
Y29uc3QgdWludDhfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHVpbnQ4eDE2eDNfdCByZXQ7DQog
ICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWls
dGluX2FhcmNoNjRfbGQzcnYxNnFpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAq
KSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWludDh4MTZfdCkgX19idWlsdGluX2FhcmNo
NjRfZ2V0X3FyZWdjaXYxNnFpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAodWludDh4
MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXYxNnFpIChfX28sIDEpOw0KICAgICsg
IHJldC52YWxbMl0gPSAodWludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXYx
NnFpIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4eDNfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZsZDNxX2R1cF91MTYgKGNvbnN0IHVpbnQxNl90ICogX19hKQ0KICAgICt7DQogICAg
KyAgdWludDE2eDh4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9f
bzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDNydjhoaSAoKGNvbnN0IF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHVpbnQx
Nng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2OGhpIChfX28sIDApOw0KICAgICsg
IHJldC52YWxbMV0gPSAodWludDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY4
aGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5f
YWFyY2g2NF9nZXRfcXJlZ2NpdjhoaSAoX19vLCAyKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NHgz
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQzcV9kdXBfdTMyIChjb25zdCB1aW50MzJfdCAq
IF9fYSkNCiAgICArew0KICAgICsgIHVpbnQzMng0eDNfdCByZXQ7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQz
cnY0c2kgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSk7DQogICAgKyAg
cmV0LnZhbFswXSA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjRz
aSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9xcmVnY2l2NHNpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAodWlu
dDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY0c2kgKF9fbywgMik7DQogICAg
KyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDY0eDJ4M190DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM3FfZHVwX3U2
NCAoY29uc3QgdWludDY0X3QgKiBfX2EpDQogICAgK3sNCiAgICArICB1aW50NjR4MngzX3QgcmV0
Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X2xkM3J2MmRpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9k
aSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWludDY0eDJfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X3FyZWdjaXYyZGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9ICh1aW50
NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjJkaSAoX19vLCAxKTsNCiAgICAr
ICByZXQudmFsWzJdID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2
MmRpIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OHgzX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bGQzcV9kdXBfZjE2IChjb25zdCBmbG9hdDE2X3QgKiBfX2EpDQogICAgK3sNCiAg
ICArICBmbG9hdDE2eDh4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2Np
IF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDNydjhoZiAoKGNvbnN0IF9f
YnVpbHRpbl9hYXJjaDY0X3NpbWRfaGYgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGZs
b2F0MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjhoZiAoX19vLCAwKTsNCiAg
ICArICByZXQudmFsWzFdID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJl
Z2NpdjhoZiAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKGZsb2F0MTZ4OF90KSBfX2J1
aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjhoZiAoX19vLCAyKTsNCiAgICArICByZXR1cm4gcmV0
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDMyeDR4M190DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkM3FfZHVwX2YzMiAoY29uc3QgZmxv
YXQzMl90ICogX19hKQ0KICAgICt7DQogICAgKyAgZmxvYXQzMng0eDNfdCByZXQ7DQogICAgKyAg
X19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2Fh
cmNoNjRfbGQzcnY0c2YgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NmICopIF9fYSk7
DQogICAgKyAgcmV0LnZhbFswXSA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0
X3FyZWdjaXY0c2YgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChmbG9hdDMyeDRfdCkg
X19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY0c2YgKF9fbywgMSk7DQogICAgKyAgcmV0LnZh
bFsyXSA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWdjaXY0c2YgKF9f
bywgMik7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyeDNfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZsZDNxX2R1cF9mNjQgKGNvbnN0IGZsb2F0NjRfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGZs
b2F0NjR4MngzX3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM3J2MmRmICgoY29uc3QgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF9kZiAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoZmxvYXQ2NHgy
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MmRmIChfX28sIDApOw0KICAgICsgIHJl
dC52YWxbMV0gPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MmRm
IChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9xcmVnY2l2MmRmIChfX28sIDIpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk2NHgyeDNf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDNxX2R1cF9wNjQgKGNvbnN0IHBvbHk2NF90ICog
X19hKQ0KICAgICt7DQogICAgKyAgcG9seTY0eDJ4M190IHJldDsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDNy
djJkaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hKTsNCiAgICArICBy
ZXQudmFsWzBdID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MmRp
X3BzcyAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2dldF9xcmVnY2l2MmRpX3BzcyAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJd
ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2MmRpX3BzcyAoX19v
LCAyKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgxeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zs
ZDRfZHVwX3M2NCAoY29uc3QgaW50NjRfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGludDY0eDF4
NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDRyZGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX2RpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChpbnQ2NHgxX3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2dldF9kcmVneGlkaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGlu
dDY0eDFfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aWRpIChfX28sIDEpOw0KICAgICsg
IHJldC52YWxbMl0gPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGkg
KF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9hYXJj
aDY0X2dldF9kcmVneGlkaSAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MXg0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bGQ0X2R1cF91NjQgKGNvbnN0IHVpbnQ2NF90ICogX19hKQ0K
ICAgICt7DQogICAgKyAgdWludDY0eDF4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDRyZGkgKChj
b25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFsw
XSA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGkgKF9fbywgMCk7
DQogICAgKyAgcmV0LnZhbFsxXSA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
ZHJlZ3hpZGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9ICh1aW50NjR4MV90KSBfX2J1
aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGkgKF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9
ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGkgKF9fbywgMyk7DQog
ICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQ2NHgxeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDRfZHVw
X2Y2NCAoY29uc3QgZmxvYXQ2NF90ICogX19hKQ0KICAgICt7DQogICAgKyAgZmxvYXQ2NHgxeDRf
dCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19v
ID0gX19idWlsdGluX2FhcmNoNjRfbGQ0cmRmICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2lt
ZF9kZiAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoZmxvYXQ2NHgxX3QpIHtfX2J1aWx0
aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGYgKF9fbywgMCl9Ow0KICAgICsgIHJldC52YWxbMV0gPSAo
ZmxvYXQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGYgKF9fbywgMSl9Ow0K
ICAgICsgIHJldC52YWxbMl0gPSAoZmxvYXQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
ZHJlZ3hpZGYgKF9fbywgMil9Ow0KICAgICsgIHJldC52YWxbM10gPSAoZmxvYXQ2NHgxX3QpIHtf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGYgKF9fbywgMyl9Ow0KICAgICsgIHJldHVybiBy
ZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDh4OHg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0X2R1cF9zOCAoY29uc3QgaW50OF90
ICogX19hKQ0KICAgICt7DQogICAgKyAgaW50OHg4eDRfdCByZXQ7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0
cnY4cWkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAg
cmV0LnZhbFswXSA9IChpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkg
KF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNo
NjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChpbnQ4eDhf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMik7DQogICAgKyAgcmV0
LnZhbFszXSA9IChpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9f
bywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OHg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bGQ0X2R1cF9wOCAoY29uc3QgcG9seThfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHBvbHk4eDh4
NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDRydjhxaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfcWkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHBvbHk4eDhfdCkgX19idWls
dGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9
IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2OHFpIChfX28sIDEpOw0K
ICAgICsgIHJldC52YWxbMl0gPSAocG9seTh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJl
Z3hpdjhxaSAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKHBvbHk4eDhfdCkgX19idWls
dGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4
NHg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0X2R1cF9zMTYgKGNvbnN0IGludDE2X3Qg
KiBfX2EpDQogICAgK3sNCiAgICArICBpbnQxNng0eDRfdCByZXQ7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0
cnY0aGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSk7DQogICAgKyAg
cmV0LnZhbFswXSA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2NGhp
IChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fYWFy
Y2g2NF9nZXRfZHJlZ3hpdjRoaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKGludDE2
eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY0aGkgKF9fbywgMik7DQogICAgKyAg
cmV0LnZhbFszXSA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2NGhp
IChfX28sIDMpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZsZDRfZHVwX3AxNiAoY29uc3QgcG9seTE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBw
b2x5MTZ4NHg0X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHJ2NGhpICgoY29uc3QgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAocG9seTE2eDRf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY0aGkgKF9fbywgMCk7DQogICAgKyAgcmV0
LnZhbFsxXSA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjRoaSAo
X19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9hYXJj
aDY0X2dldF9kcmVneGl2NGhpIChfX28sIDIpOw0KICAgICsgIHJldC52YWxbM10gPSAocG9seTE2
eDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXY0aGkgKF9fbywgMyk7DQogICAgKyAg
cmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJ4Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0X2R1cF9zMzIgKGNv
bnN0IGludDMyX3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQzMngyeDRfdCByZXQ7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfbGQ0cnYyc2kgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9f
YSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dl
dF9kcmVneGl2MnNpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoaW50MzJ4Ml90KSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjJzaSAoX19vLCAxKTsNCiAgICArICByZXQudmFs
WzJdID0gKGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXYyc2kgKF9fbywg
Mik7DQogICAgKyAgcmV0LnZhbFszXSA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dl
dF9kcmVneGl2MnNpIChfX28sIDMpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDh4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmxkNF9kdXBfdTggKGNvbnN0IHVpbnQ4X3QgKiBfX2EpDQogICAgK3sN
CiAgICArICB1aW50OHg4eDRfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94
aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0cnY4cWkgKChjb25zdCBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1
aW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2OHFpIChfX28sIDApOw0KICAg
ICsgIHJldC52YWxbMV0gPSAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hp
djhxaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHVpbnQ4eDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWd4aXY4cWkgKF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9ICh1
aW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2OHFpIChfX28sIDMpOw0KICAg
ICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQxNng0eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDRfZHVwX3Ux
NiAoY29uc3QgdWludDE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICB1aW50MTZ4NHg0X3QgcmV0
Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X2xkNHJ2NGhpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9o
aSAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAodWludDE2eDRfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X2RyZWd4aXY0aGkgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9ICh1aW50
MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjRoaSAoX19vLCAxKTsNCiAgICAr
ICByZXQudmFsWzJdID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVneGl2
NGhpIChfX28sIDIpOw0KICAgICsgIHJldC52YWxbM10gPSAodWludDE2eDRfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X2RyZWd4aXY0aGkgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxkNF9kdXBfdTMyIChjb25zdCB1aW50MzJfdCAq
IF9fYSkNCiAgICArew0KICAgICsgIHVpbnQzMngyeDRfdCByZXQ7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0
cnYyc2kgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSk7DQogICAgKyAg
cmV0LnZhbFswXSA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjJz
aSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9kcmVneGl2MnNpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAodWlu
dDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aXYyc2kgKF9fbywgMik7DQogICAg
KyAgcmV0LnZhbFszXSA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hp
djJzaSAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDR4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmxkNF9kdXBfZjE2IChjb25zdCBmbG9hdDE2X3QgKiBfX2EpDQogICAgK3sNCiAg
ICArICBmbG9hdDE2eDR4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hp
IF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDRydjRoZiAoKGNvbnN0IF9f
YnVpbHRpbl9hYXJjaDY0X3NpbWRfaGYgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGZs
b2F0MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjRoZiAoX19vLCAwKTsNCiAg
ICArICByZXQudmFsWzFdID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJl
Z3hpdjRoZiAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKGZsb2F0MTZ4NF90KSBfX2J1
aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjRoZiAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNd
ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjRoZiAoX19vLCAz
KTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmxk
NF9kdXBfZjMyIChjb25zdCBmbG9hdDMyX3QgKiBfX2EpDQogICAgK3sNCiAgICArICBmbG9hdDMy
eDJ4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDRydjJzZiAoKGNvbnN0IF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfc2YgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGZsb2F0MzJ4Ml90KSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjJzZiAoX19vLCAwKTsNCiAgICArICByZXQudmFs
WzFdID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjJzZiAoX19v
LCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfZHJlZ3hpdjJzZiAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKGZsb2F0MzJ4
Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpdjJzZiAoX19vLCAzKTsNCiAgICArICBy
ZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBwb2x5NjR4MXg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0X2R1cF9wNjQgKGNv
bnN0IHBvbHk2NF90ICogX19hKQ0KICAgICt7DQogICAgKyAgcG9seTY0eDF4NF90IHJldDsNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0
aW5fYWFyY2g2NF9sZDRydjJkaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGkgKikg
X19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2dldF9kcmVneGlkaV9wc3MgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChwb2x5NjR4
MV90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGlfcHNzIChfX28sIDEpOw0KICAgICsg
IHJldC52YWxbMl0gPSAocG9seTY0eDFfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWd4aWRp
X3BzcyAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2dldF9kcmVneGlkaV9wc3MgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0cV9kdXBfczggKGNvbnN0IGludDhfdCAq
IF9fYSkNCiAgICArew0KICAgICsgIGludDh4MTZ4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDRy
djE2cWkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSk7DQogICAgKyAg
cmV0LnZhbFswXSA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MTZx
aSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDh4MTZfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X3FyZWd4aXYxNnFpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAoaW50
OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjE2cWkgKF9fbywgMik7DQogICAg
KyAgcmV0LnZhbFszXSA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2
MTZxaSAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHgxNng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bGQ0cV9kdXBfcDggKGNvbnN0IHBvbHk4X3QgKiBfX2EpDQogICAgK3sNCiAgICAr
ICBwb2x5OHgxNng0X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19v
Ow0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHJ2MTZxaSAoKGNvbnN0IF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKHBvbHk4
eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19vLCAwKTsNCiAgICAr
ICByZXQudmFsWzFdID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2
MTZxaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0g
KHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19vLCAzKTsN
CiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQxNng4eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDRxX2R1
cF9zMTYgKGNvbnN0IGludDE2X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBpbnQxNng4eDRfdCBy
ZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfbGQ0cnY4aGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1k
X2hpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9xcmVneGl2OGhpIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAoaW50
MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoaSAoX19vLCAxKTsNCiAgICAr
ICByZXQudmFsWzJdID0gKGludDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY4
aGkgKF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9xcmVneGl2OGhpIChfX28sIDMpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng4eDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDRxX2R1cF9wMTYgKGNvbnN0IHBvbHkxNl90ICog
X19hKQ0KICAgICt7DQogICAgKyAgcG9seTE2eDh4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDRy
djhoaSAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgX19hKTsNCiAgICArICBy
ZXQudmFsWzBdID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2OGhp
IChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0gPSAocG9seTE2eDhfdCkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X3FyZWd4aXY4aGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChwb2x5
MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoaSAoX19vLCAyKTsNCiAgICAr
ICByZXQudmFsWzNdID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2
OGhpIChfX28sIDMpOw0KICAgICsgIHJldHVybiByZXQ7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDR4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdmxkNHFfZHVwX3MzMiAoY29uc3QgaW50MzJfdCAqIF9fYSkNCiAgICArew0KICAgICsg
IGludDMyeDR4NF90IHJldDsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsN
CiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9sZDRydjRzaSAoKGNvbnN0IF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfc2kgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGludDMyeDRf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY0c2kgKF9fbywgMCk7DQogICAgKyAgcmV0
LnZhbFsxXSA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2NHNpIChf
X28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ3hpdjRzaSAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKGludDMyeDRf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY0c2kgKF9fbywgMyk7DQogICAgKyAgcmV0
dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50NjR4Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0cV9kdXBfczY0IChjb25z
dCBpbnQ2NF90ICogX19hKQ0KICAgICt7DQogICAgKyAgaW50NjR4Mng0X3QgcmV0Ow0KICAgICsg
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9h
YXJjaDY0X2xkNHJ2MmRpICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2Ep
Ow0KICAgICsgIHJldC52YWxbMF0gPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
cXJlZ3hpdjJkaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGludDY0eDJfdCkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXYyZGkgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsy
XSA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MmRpIChfX28sIDIp
Ow0KICAgICsgIHJldC52YWxbM10gPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRf
cXJlZ3hpdjJkaSAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bGQ0cV9kdXBfdTggKGNvbnN0IHVpbnQ4X3QgKiBfX2EpDQogICAgK3sN
CiAgICArICB1aW50OHgxNng0X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
eGkgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHJ2MTZxaSAoKGNvbnN0
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19hKTsNCiAgICArICByZXQudmFsWzBdID0g
KHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19vLCAwKTsN
CiAgICArICByZXQudmFsWzFdID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9x
cmVneGl2MTZxaSAoX19vLCAxKTsNCiAgICArICByZXQudmFsWzJdID0gKHVpbnQ4eDE2X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19vLCAyKTsNCiAgICArICByZXQudmFs
WzNdID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2MTZxaSAoX19v
LCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OHg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bGQ0cV9kdXBfdTE2IChjb25zdCB1aW50MTZfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHVpbnQx
Nng4eDRfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAg
KyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0cnY4aGkgKChjb25zdCBfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX2hpICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1aW50MTZ4OF90KSBf
X2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoaSAoX19vLCAwKTsNCiAgICArICByZXQudmFs
WzFdID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2OGhpIChfX28s
IDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAodWludDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRf
Z2V0X3FyZWd4aXY4aGkgKF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9ICh1aW50MTZ4OF90
KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjhoaSAoX19vLCAzKTsNCiAgICArICByZXR1
cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MzJ4NHg0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0cV9kdXBfdTMyIChjb25z
dCB1aW50MzJfdCAqIF9fYSkNCiAgICArew0KICAgICsgIHVpbnQzMng0eDRfdCByZXQ7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfbGQ0cnY0c2kgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9f
YSk7DQogICAgKyAgcmV0LnZhbFswXSA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9n
ZXRfcXJlZ3hpdjRzaSAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQzMng0X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2NHNpIChfX28sIDEpOw0KICAgICsgIHJldC52
YWxbMl0gPSAodWludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY0c2kgKF9f
bywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ3hpdjRzaSAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Mng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bGQ0cV9kdXBfdTY0IChjb25zdCB1aW50NjRfdCAqIF9fYSkN
CiAgICArew0KICAgICsgIHVpbnQ2NHgyeDRfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0cnYyZGkg
KChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSk7DQogICAgKyAgcmV0LnZh
bFswXSA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJkaSAoX19v
LCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0
X2dldF9xcmVneGl2MmRpIChfX28sIDEpOw0KICAgICsgIHJldC52YWxbMl0gPSAodWludDY0eDJf
dCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXYyZGkgKF9fbywgMik7DQogICAgKyAgcmV0
LnZhbFszXSA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJkaSAo
X19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDh4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdmxkNHFfZHVwX2YxNiAoY29uc3QgZmxvYXQxNl90ICogX19hKQ0KICAgICt7DQogICAgKyAg
ZmxvYXQxNng4eDRfdCByZXQ7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287
DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0cnY4aGYgKChjb25zdCBfX2J1aWx0
aW5fYWFyY2g2NF9zaW1kX2hmICopIF9fYSk7DQogICAgKyAgcmV0LnZhbFswXSA9IChmbG9hdDE2
eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY4aGYgKF9fbywgMCk7DQogICAgKyAg
cmV0LnZhbFsxXSA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY4
aGYgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsyXSA9IChmbG9hdDE2eDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfZ2V0X3FyZWd4aXY4aGYgKF9fbywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IChm
bG9hdDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY4aGYgKF9fbywgMyk7DQog
ICAgKyAgcmV0dXJuIHJldDsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQzMng0eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZsZDRxX2R1
cF9mMzIgKGNvbnN0IGZsb2F0MzJfdCAqIF9fYSkNCiAgICArew0KICAgICsgIGZsb2F0MzJ4NHg0
X3QgcmV0Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIF9f
byA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkNHJ2NHNmICgoY29uc3QgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9zZiAqKSBfX2EpOw0KICAgICsgIHJldC52YWxbMF0gPSAoZmxvYXQzMng0X3QpIF9fYnVp
bHRpbl9hYXJjaDY0X2dldF9xcmVneGl2NHNmIChfX28sIDApOw0KICAgICsgIHJldC52YWxbMV0g
PSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2NHNmIChfX28sIDEp
Ow0KICAgICsgIHJldC52YWxbMl0gPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dl
dF9xcmVneGl2NHNmIChfX28sIDIpOw0KICAgICsgIHJldC52YWxbM10gPSAoZmxvYXQzMng0X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVneGl2NHNmIChfX28sIDMpOw0KICAgICsgIHJldHVy
biByZXQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0NjR4Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0cV9kdXBfZjY0IChjb25z
dCBmbG9hdDY0X3QgKiBfX2EpDQogICAgK3sNCiAgICArICBmbG9hdDY0eDJ4NF90IHJldDsNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0
aW5fYWFyY2g2NF9sZDRydjJkZiAoKGNvbnN0IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGYgKikg
X19hKTsNCiAgICArICByZXQudmFsWzBdID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ3hpdjJkZiAoX19vLCAwKTsNCiAgICArICByZXQudmFsWzFdID0gKGZsb2F0NjR4
Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJkZiAoX19vLCAxKTsNCiAgICArICBy
ZXQudmFsWzJdID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJk
ZiAoX19vLCAyKTsNCiAgICArICByZXQudmFsWzNdID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5f
YWFyY2g2NF9nZXRfcXJlZ3hpdjJkZiAoX19vLCAzKTsNCiAgICArICByZXR1cm4gcmV0Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4Mng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bGQ0cV9kdXBfcDY0IChjb25zdCBwb2x5NjRfdCAq
IF9fYSkNCiAgICArew0KICAgICsgIHBvbHk2NHgyeDRfdCByZXQ7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfbGQ0
cnYyZGkgKChjb25zdCBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSk7DQogICAgKyAg
cmV0LnZhbFswXSA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJk
aV9wc3MgKF9fbywgMCk7DQogICAgKyAgcmV0LnZhbFsxXSA9IChwb2x5NjR4Ml90KSBfX2J1aWx0
aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJkaV9wc3MgKF9fbywgMSk7DQogICAgKyAgcmV0LnZhbFsy
XSA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjJkaV9wc3MgKF9f
bywgMik7DQogICAgKyAgcmV0LnZhbFszXSA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2
NF9nZXRfcXJlZ3hpdjJkaV9wc3MgKF9fbywgMyk7DQogICAgKyAgcmV0dXJuIHJldDsNCiAgICAr
fQ0KICAgICsNCiAgICArLyogdmxkMl9sYW5lICovDQogICAgKw0KICAgICsjZGVmaW5lIF9fTEQy
X0xBTkVfRlVOQyhpbnR5cGUsIHZlY3R5cGUsIGxhcmdldHlwZSwgcHRydHlwZSwgbW9kZSwJICAg
XA0KICAgICsJCQkgcW1vZGUsIHB0cm1vZGUsIGZ1bmNzdWZmaXgsIHNpZ25lZHR5cGUpCSAgIFwN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50eXBlIFwNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXyxfX2FydGlmaWNpYWxf
XykpIFwNCiAgICArdmxkMl9sYW5lXyMjZnVuY3N1ZmZpeCAoY29uc3QgcHRydHlwZSAqIF9fcHRy
LCBpbnR5cGUgX19iLCBjb25zdCBpbnQgX19jKSAgXA0KICAgICt7CQkJCQkJCQkJICAgXA0KICAg
ICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOwkJCQkJICAgXA0KICAgICsgIGxhcmdl
dHlwZSBfX3RlbXA7CQkJCQkJCSAgIFwNCiAgICArICBfX3RlbXAudmFsWzBdID0JCQkJCQkJICAg
XA0KICAgICsgICAgdmNvbWJpbmVfIyNmdW5jc3VmZml4IChfX2IudmFsWzBdLCB2Y3JlYXRlXyMj
ZnVuY3N1ZmZpeCAoMCkpOwkgICBcDQogICAgKyAgX190ZW1wLnZhbFsxXSA9CQkJCQkJCSAgIFwN
CiAgICArICAgIHZjb21iaW5lXyMjZnVuY3N1ZmZpeCAoX19iLnZhbFsxXSwgdmNyZWF0ZV8jI2Z1
bmNzdWZmaXggKDApKTsJICAgXA0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9x
cmVnb2kjI3Ftb2RlIChfX28sCQkJICAgXA0KICAgICsJCQkJCSAgICAoc2lnbmVkdHlwZSkgX190
ZW1wLnZhbFswXSwJICAgXA0KICAgICsJCQkJCSAgICAwKTsJCQkJICAgXA0KICAgICsgIF9fbyA9
IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2kjI3Ftb2RlIChfX28sCQkJICAgXA0KICAgICsJ
CQkJCSAgICAoc2lnbmVkdHlwZSkgX190ZW1wLnZhbFsxXSwJICAgXA0KICAgICsJCQkJCSAgICAx
KTsJCQkJICAgXA0KICAgICsgIF9fbyA9CV9fYnVpbHRpbl9hYXJjaDY0X2xkMl9sYW5lIyNtb2Rl
ICgJCQkJICAgXA0KICAgICsJICAoX19idWlsdGluX2FhcmNoNjRfc2ltZF8jI3B0cm1vZGUgKikg
X19wdHIsIF9fbywgX19jKTsJICAgXA0KICAgICsgIF9fYi52YWxbMF0gPSAodmVjdHlwZSkgX19i
dWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdvaWRpIChfX28sIDApOwkgICBcDQogICAgKyAgX19iLnZh
bFsxXSA9ICh2ZWN0eXBlKSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ29pZGkgKF9fbywgMSk7
CSAgIFwNCiAgICArICByZXR1cm4gX19iOwkJCQkJCQkJICAgXA0KICAgICt9DQogICAgKw0KICAg
ICtfX0xEMl9MQU5FX0ZVTkMgKGZsb2F0MTZ4NHgyX3QsIGZsb2F0MTZ4NF90LCBmbG9hdDE2eDh4
Ml90LCBmbG9hdDE2X3QsIHY0aGYsDQogICAgKwkJIHY4aGYsIGhmLCBmMTYsIGZsb2F0MTZ4OF90
KQ0KICAgICtfX0xEMl9MQU5FX0ZVTkMgKGZsb2F0MzJ4MngyX3QsIGZsb2F0MzJ4Ml90LCBmbG9h
dDMyeDR4Ml90LCBmbG9hdDMyX3QsIHYyc2YsIHY0c2YsDQogICAgKwkJIHNmLCBmMzIsIGZsb2F0
MzJ4NF90KQ0KICAgICtfX0xEMl9MQU5FX0ZVTkMgKGZsb2F0NjR4MXgyX3QsIGZsb2F0NjR4MV90
LCBmbG9hdDY0eDJ4Ml90LCBmbG9hdDY0X3QsIGRmLCB2MmRmLA0KICAgICsJCSBkZiwgZjY0LCBm
bG9hdDY0eDJfdCkNCiAgICArX19MRDJfTEFORV9GVU5DIChwb2x5OHg4eDJfdCwgcG9seTh4OF90
LCBwb2x5OHgxNngyX3QsIHBvbHk4X3QsIHY4cWksIHYxNnFpLCBxaSwgcDgsDQogICAgKwkJIGlu
dDh4MTZfdCkNCiAgICArX19MRDJfTEFORV9GVU5DIChwb2x5MTZ4NHgyX3QsIHBvbHkxNng0X3Qs
IHBvbHkxNng4eDJfdCwgcG9seTE2X3QsIHY0aGksIHY4aGksIGhpLA0KICAgICsJCSBwMTYsIGlu
dDE2eDhfdCkNCiAgICArX19MRDJfTEFORV9GVU5DIChwb2x5NjR4MXgyX3QsIHBvbHk2NHgxX3Qs
IHBvbHk2NHgyeDJfdCwgcG9seTY0X3QsIGRpLA0KICAgICsJCSB2MmRpX3NzcHMsIGRpLCBwNjQs
IHBvbHk2NHgyX3QpDQogICAgK19fTEQyX0xBTkVfRlVOQyAoaW50OHg4eDJfdCwgaW50OHg4X3Qs
IGludDh4MTZ4Ml90LCBpbnQ4X3QsIHY4cWksIHYxNnFpLCBxaSwgczgsDQogICAgKwkJIGludDh4
MTZfdCkNCiAgICArX19MRDJfTEFORV9GVU5DIChpbnQxNng0eDJfdCwgaW50MTZ4NF90LCBpbnQx
Nng4eDJfdCwgaW50MTZfdCwgdjRoaSwgdjhoaSwgaGksIHMxNiwNCiAgICArCQkgaW50MTZ4OF90
KQ0KICAgICtfX0xEMl9MQU5FX0ZVTkMgKGludDMyeDJ4Ml90LCBpbnQzMngyX3QsIGludDMyeDR4
Ml90LCBpbnQzMl90LCB2MnNpLCB2NHNpLCBzaSwgczMyLA0KICAgICsJCSBpbnQzMng0X3QpDQog
ICAgK19fTEQyX0xBTkVfRlVOQyAoaW50NjR4MXgyX3QsIGludDY0eDFfdCwgaW50NjR4MngyX3Qs
IGludDY0X3QsIGRpLCB2MmRpLCBkaSwgczY0LA0KICAgICsJCSBpbnQ2NHgyX3QpDQogICAgK19f
TEQyX0xBTkVfRlVOQyAodWludDh4OHgyX3QsIHVpbnQ4eDhfdCwgdWludDh4MTZ4Ml90LCB1aW50
OF90LCB2OHFpLCB2MTZxaSwgcWksIHU4LA0KICAgICsJCSBpbnQ4eDE2X3QpDQogICAgK19fTEQy
X0xBTkVfRlVOQyAodWludDE2eDR4Ml90LCB1aW50MTZ4NF90LCB1aW50MTZ4OHgyX3QsIHVpbnQx
Nl90LCB2NGhpLCB2OGhpLCBoaSwNCiAgICArCQkgdTE2LCBpbnQxNng4X3QpDQogICAgK19fTEQy
X0xBTkVfRlVOQyAodWludDMyeDJ4Ml90LCB1aW50MzJ4Ml90LCB1aW50MzJ4NHgyX3QsIHVpbnQz
Ml90LCB2MnNpLCB2NHNpLCBzaSwNCiAgICArCQkgdTMyLCBpbnQzMng0X3QpDQogICAgK19fTEQy
X0xBTkVfRlVOQyAodWludDY0eDF4Ml90LCB1aW50NjR4MV90LCB1aW50NjR4MngyX3QsIHVpbnQ2
NF90LCBkaSwgdjJkaSwgZGksDQogICAgKwkJIHU2NCwgaW50NjR4Ml90KQ0KICAgICsNCiAgICAr
I3VuZGVmIF9fTEQyX0xBTkVfRlVOQw0KICAgICsNCiAgICArLyogdmxkMnFfbGFuZSAqLw0KICAg
ICsNCiAgICArI2RlZmluZSBfX0xEMl9MQU5FX0ZVTkMoaW50eXBlLCB2dHlwZSwgcHRydHlwZSwg
bW9kZSwgcHRybW9kZSwgZnVuY3N1ZmZpeCkgXA0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnR5cGUgXA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLF9fYXJ0aWZpY2lhbF9fKSkgXA0KICAgICt2bGQycV9sYW5lXyMjZnVu
Y3N1ZmZpeCAoY29uc3QgcHRydHlwZSAqIF9fcHRyLCBpbnR5cGUgX19iLCBjb25zdCBpbnQgX19j
KSBcDQogICAgK3sJCQkJCQkJCQkgICBcDQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9v
aSBfX287CQkJCQkgICBcDQogICAgKyAgaW50eXBlIHJldDsJCQkJCQkJCSAgIFwNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjRzaSAoX19vLCAoaW50MzJ4NF90KSBf
X2IudmFsWzBdLCAwKTsgXA0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
b2l2NHNpIChfX28sIChpbnQzMng0X3QpIF9fYi52YWxbMV0sIDEpOyBcDQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfbGQyX2xhbmUjI21vZGUgKAkJCQkgICBcDQogICAgKwkoX19idWls
dGluX2FhcmNoNjRfc2ltZF8jI3B0cm1vZGUgKikgX19wdHIsIF9fbywgX19jKTsJCSAgIFwNCiAg
ICArICByZXQudmFsWzBdID0gKHZ0eXBlKSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ29pdjRz
aSAoX19vLCAwKTsJICAgXA0KICAgICsgIHJldC52YWxbMV0gPSAodnR5cGUpIF9fYnVpbHRpbl9h
YXJjaDY0X2dldF9xcmVnb2l2NHNpIChfX28sIDEpOwkgICBcDQogICAgKyAgcmV0dXJuIHJldDsJ
CQkJCQkJCSAgIFwNCiAgICArfQ0KICAgICsNCiAgICArX19MRDJfTEFORV9GVU5DIChmbG9hdDE2
eDh4Ml90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCB2OGhmLCBoZiwgZjE2KQ0KICAgICtfX0xE
Ml9MQU5FX0ZVTkMgKGZsb2F0MzJ4NHgyX3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIHY0c2Ys
IHNmLCBmMzIpDQogICAgK19fTEQyX0xBTkVfRlVOQyAoZmxvYXQ2NHgyeDJfdCwgZmxvYXQ2NHgy
X3QsIGZsb2F0NjRfdCwgdjJkZiwgZGYsIGY2NCkNCiAgICArX19MRDJfTEFORV9GVU5DIChwb2x5
OHgxNngyX3QsIHBvbHk4eDE2X3QsIHBvbHk4X3QsIHYxNnFpLCBxaSwgcDgpDQogICAgK19fTEQy
X0xBTkVfRlVOQyAocG9seTE2eDh4Ml90LCBwb2x5MTZ4OF90LCBwb2x5MTZfdCwgdjhoaSwgaGks
IHAxNikNCiAgICArX19MRDJfTEFORV9GVU5DIChwb2x5NjR4MngyX3QsIHBvbHk2NHgyX3QsIHBv
bHk2NF90LCB2MmRpLCBkaSwgcDY0KQ0KICAgICtfX0xEMl9MQU5FX0ZVTkMgKGludDh4MTZ4Ml90
LCBpbnQ4eDE2X3QsIGludDhfdCwgdjE2cWksIHFpLCBzOCkNCiAgICArX19MRDJfTEFORV9GVU5D
IChpbnQxNng4eDJfdCwgaW50MTZ4OF90LCBpbnQxNl90LCB2OGhpLCBoaSwgczE2KQ0KICAgICtf
X0xEMl9MQU5FX0ZVTkMgKGludDMyeDR4Ml90LCBpbnQzMng0X3QsIGludDMyX3QsIHY0c2ksIHNp
LCBzMzIpDQogICAgK19fTEQyX0xBTkVfRlVOQyAoaW50NjR4MngyX3QsIGludDY0eDJfdCwgaW50
NjRfdCwgdjJkaSwgZGksIHM2NCkNCiAgICArX19MRDJfTEFORV9GVU5DICh1aW50OHgxNngyX3Qs
IHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIHYxNnFpLCBxaSwgdTgpDQogICAgK19fTEQyX0xBTkVfRlVO
QyAodWludDE2eDh4Ml90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgdjhoaSwgaGksIHUxNikNCiAg
ICArX19MRDJfTEFORV9GVU5DICh1aW50MzJ4NHgyX3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCB2
NHNpLCBzaSwgdTMyKQ0KICAgICtfX0xEMl9MQU5FX0ZVTkMgKHVpbnQ2NHgyeDJfdCwgdWludDY0
eDJfdCwgdWludDY0X3QsIHYyZGksIGRpLCB1NjQpDQogICAgKw0KICAgICsjdW5kZWYgX19MRDJf
TEFORV9GVU5DDQogICAgKw0KICAgICsvKiB2bGQzX2xhbmUgKi8NCiAgICArDQogICAgKyNkZWZp
bmUgX19MRDNfTEFORV9GVU5DKGludHlwZSwgdmVjdHlwZSwgbGFyZ2V0eXBlLCBwdHJ0eXBlLCBt
b2RlLAkgICBcDQogICAgKwkJCSBxbW9kZSwgcHRybW9kZSwgZnVuY3N1ZmZpeCwgc2lnbmVkdHlw
ZSkJICAgXA0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnR5cGUgXA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLF9fYXJ0
aWZpY2lhbF9fKSkgXA0KICAgICt2bGQzX2xhbmVfIyNmdW5jc3VmZml4IChjb25zdCBwdHJ0eXBl
ICogX19wdHIsIGludHlwZSBfX2IsIGNvbnN0IGludCBfX2MpICBcDQogICAgK3sJCQkJCQkJCQkg
ICBcDQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287CQkJCQkgICBcDQogICAg
KyAgbGFyZ2V0eXBlIF9fdGVtcDsJCQkJCQkJICAgXA0KICAgICsgIF9fdGVtcC52YWxbMF0gPQkJ
CQkJCQkgICBcDQogICAgKyAgICB2Y29tYmluZV8jI2Z1bmNzdWZmaXggKF9fYi52YWxbMF0sIHZj
cmVhdGVfIyNmdW5jc3VmZml4ICgwKSk7CSAgIFwNCiAgICArICBfX3RlbXAudmFsWzFdID0JCQkJ
CQkJICAgXA0KICAgICsgICAgdmNvbWJpbmVfIyNmdW5jc3VmZml4IChfX2IudmFsWzFdLCB2Y3Jl
YXRlXyMjZnVuY3N1ZmZpeCAoMCkpOwkgICBcDQogICAgKyAgX190ZW1wLnZhbFsyXSA9CQkJCQkJ
CSAgIFwNCiAgICArICAgIHZjb21iaW5lXyMjZnVuY3N1ZmZpeCAoX19iLnZhbFsyXSwgdmNyZWF0
ZV8jI2Z1bmNzdWZmaXggKDApKTsJICAgXA0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X3NldF9xcmVnY2kjI3Ftb2RlIChfX28sCQkJICAgXA0KICAgICsJCQkJCSAgICAoc2lnbmVkdHlw
ZSkgX190ZW1wLnZhbFswXSwJICAgXA0KICAgICsJCQkJCSAgICAwKTsJCQkJICAgXA0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2kjI3Ftb2RlIChfX28sCQkJICAgXA0K
ICAgICsJCQkJCSAgICAoc2lnbmVkdHlwZSkgX190ZW1wLnZhbFsxXSwJICAgXA0KICAgICsJCQkJ
CSAgICAxKTsJCQkJICAgXA0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
Y2kjI3Ftb2RlIChfX28sCQkJICAgXA0KICAgICsJCQkJCSAgICAoc2lnbmVkdHlwZSkgX190ZW1w
LnZhbFsyXSwJICAgXA0KICAgICsJCQkJCSAgICAyKTsJCQkJICAgXA0KICAgICsgIF9fbyA9CV9f
YnVpbHRpbl9hYXJjaDY0X2xkM19sYW5lIyNtb2RlICgJCQkJICAgXA0KICAgICsJICAoX19idWls
dGluX2FhcmNoNjRfc2ltZF8jI3B0cm1vZGUgKikgX19wdHIsIF9fbywgX19jKTsJICAgXA0KICAg
ICsgIF9fYi52YWxbMF0gPSAodmVjdHlwZSkgX19idWlsdGluX2FhcmNoNjRfZ2V0X2RyZWdjaWRp
IChfX28sIDApOwkgICBcDQogICAgKyAgX19iLnZhbFsxXSA9ICh2ZWN0eXBlKSBfX2J1aWx0aW5f
YWFyY2g2NF9nZXRfZHJlZ2NpZGkgKF9fbywgMSk7CSAgIFwNCiAgICArICBfX2IudmFsWzJdID0g
KHZlY3R5cGUpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVnY2lkaSAoX19vLCAyKTsJICAgXA0K
ICAgICsgIHJldHVybiBfX2I7CQkJCQkJCQkgICBcDQogICAgK30NCiAgICArDQogICAgK19fTEQz
X0xBTkVfRlVOQyAoZmxvYXQxNng0eDNfdCwgZmxvYXQxNng0X3QsIGZsb2F0MTZ4OHgzX3QsIGZs
b2F0MTZfdCwgdjRoZiwNCiAgICArCQkgdjhoZiwgaGYsIGYxNiwgZmxvYXQxNng4X3QpDQogICAg
K19fTEQzX0xBTkVfRlVOQyAoZmxvYXQzMngyeDNfdCwgZmxvYXQzMngyX3QsIGZsb2F0MzJ4NHgz
X3QsIGZsb2F0MzJfdCwgdjJzZiwgdjRzZiwNCiAgICArCQkgc2YsIGYzMiwgZmxvYXQzMng0X3Qp
DQogICAgK19fTEQzX0xBTkVfRlVOQyAoZmxvYXQ2NHgxeDNfdCwgZmxvYXQ2NHgxX3QsIGZsb2F0
NjR4MngzX3QsIGZsb2F0NjRfdCwgZGYsIHYyZGYsDQogICAgKwkJIGRmLCBmNjQsIGZsb2F0NjR4
Ml90KQ0KICAgICtfX0xEM19MQU5FX0ZVTkMgKHBvbHk4eDh4M190LCBwb2x5OHg4X3QsIHBvbHk4
eDE2eDNfdCwgcG9seThfdCwgdjhxaSwgdjE2cWksIHFpLCBwOCwNCiAgICArCQkgaW50OHgxNl90
KQ0KICAgICtfX0xEM19MQU5FX0ZVTkMgKHBvbHkxNng0eDNfdCwgcG9seTE2eDRfdCwgcG9seTE2
eDh4M190LCBwb2x5MTZfdCwgdjRoaSwgdjhoaSwgaGksDQogICAgKwkJIHAxNiwgaW50MTZ4OF90
KQ0KICAgICtfX0xEM19MQU5FX0ZVTkMgKHBvbHk2NHgxeDNfdCwgcG9seTY0eDFfdCwgcG9seTY0
eDJ4M190LCBwb2x5NjRfdCwgZGksDQogICAgKwkJIHYyZGlfc3NwcywgZGksIHA2NCwgcG9seTY0
eDJfdCkNCiAgICArX19MRDNfTEFORV9GVU5DIChpbnQ4eDh4M190LCBpbnQ4eDhfdCwgaW50OHgx
NngzX3QsIGludDhfdCwgdjhxaSwgdjE2cWksIHFpLCBzOCwNCiAgICArCQkgaW50OHgxNl90KQ0K
ICAgICtfX0xEM19MQU5FX0ZVTkMgKGludDE2eDR4M190LCBpbnQxNng0X3QsIGludDE2eDh4M190
LCBpbnQxNl90LCB2NGhpLCB2OGhpLCBoaSwgczE2LA0KICAgICsJCSBpbnQxNng4X3QpDQogICAg
K19fTEQzX0xBTkVfRlVOQyAoaW50MzJ4MngzX3QsIGludDMyeDJfdCwgaW50MzJ4NHgzX3QsIGlu
dDMyX3QsIHYyc2ksIHY0c2ksIHNpLCBzMzIsDQogICAgKwkJIGludDMyeDRfdCkNCiAgICArX19M
RDNfTEFORV9GVU5DIChpbnQ2NHgxeDNfdCwgaW50NjR4MV90LCBpbnQ2NHgyeDNfdCwgaW50NjRf
dCwgZGksIHYyZGksIGRpLCBzNjQsDQogICAgKwkJIGludDY0eDJfdCkNCiAgICArX19MRDNfTEFO
RV9GVU5DICh1aW50OHg4eDNfdCwgdWludDh4OF90LCB1aW50OHgxNngzX3QsIHVpbnQ4X3QsIHY4
cWksIHYxNnFpLCBxaSwgdTgsDQogICAgKwkJIGludDh4MTZfdCkNCiAgICArX19MRDNfTEFORV9G
VU5DICh1aW50MTZ4NHgzX3QsIHVpbnQxNng0X3QsIHVpbnQxNng4eDNfdCwgdWludDE2X3QsIHY0
aGksIHY4aGksIGhpLA0KICAgICsJCSB1MTYsIGludDE2eDhfdCkNCiAgICArX19MRDNfTEFORV9G
VU5DICh1aW50MzJ4MngzX3QsIHVpbnQzMngyX3QsIHVpbnQzMng0eDNfdCwgdWludDMyX3QsIHYy
c2ksIHY0c2ksIHNpLA0KICAgICsJCSB1MzIsIGludDMyeDRfdCkNCiAgICArX19MRDNfTEFORV9G
VU5DICh1aW50NjR4MXgzX3QsIHVpbnQ2NHgxX3QsIHVpbnQ2NHgyeDNfdCwgdWludDY0X3QsIGRp
LCB2MmRpLCBkaSwNCiAgICArCQkgdTY0LCBpbnQ2NHgyX3QpDQogICAgKw0KICAgICsjdW5kZWYg
X19MRDNfTEFORV9GVU5DDQogICAgKw0KICAgICsvKiB2bGQzcV9sYW5lICovDQogICAgKw0KICAg
ICsjZGVmaW5lIF9fTEQzX0xBTkVfRlVOQyhpbnR5cGUsIHZ0eXBlLCBwdHJ0eXBlLCBtb2RlLCBw
dHJtb2RlLCBmdW5jc3VmZml4KSBcDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludHlwZSBcDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sX19hcnRpZmljaWFsX18pKSBcDQogICAgK3ZsZDNxX2xhbmVfIyNmdW5jc3VmZml4
IChjb25zdCBwdHJ0eXBlICogX19wdHIsIGludHlwZSBfX2IsIGNvbnN0IGludCBfX2MpIFwNCiAg
ICArewkJCQkJCQkJCSAgIFwNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsJ
CQkJCSAgIFwNCiAgICArICBpbnR5cGUgcmV0OwkJCQkJCQkJICAgXA0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2NHNpIChfX28sIChpbnQzMng0X3QpIF9fYi52YWxb
MF0sIDApOyBcDQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY0c2kg
KF9fbywgKGludDMyeDRfdCkgX19iLnZhbFsxXSwgMSk7IFwNCiAgICArICBfX28gPSBfX2J1aWx0
aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjRzaSAoX19vLCAoaW50MzJ4NF90KSBfX2IudmFsWzJdLCAy
KTsgXA0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X2xkM19sYW5lIyNtb2RlICgJCQkJ
ICAgXA0KICAgICsJKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfIyNwdHJtb2RlICopIF9fcHRyLCBf
X28sIF9fYyk7CQkgICBcDQogICAgKyAgcmV0LnZhbFswXSA9ICh2dHlwZSkgX19idWlsdGluX2Fh
cmNoNjRfZ2V0X3FyZWdjaXY0c2kgKF9fbywgMCk7CSAgIFwNCiAgICArICByZXQudmFsWzFdID0g
KHZ0eXBlKSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ2NpdjRzaSAoX19vLCAxKTsJICAgXA0K
ICAgICsgIHJldC52YWxbMl0gPSAodnR5cGUpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVnY2l2
NHNpIChfX28sIDIpOwkgICBcDQogICAgKyAgcmV0dXJuIHJldDsJCQkJCQkJCSAgIFwNCiAgICAr
fQ0KICAgICsNCiAgICArX19MRDNfTEFORV9GVU5DIChmbG9hdDE2eDh4M190LCBmbG9hdDE2eDhf
dCwgZmxvYXQxNl90LCB2OGhmLCBoZiwgZjE2KQ0KICAgICtfX0xEM19MQU5FX0ZVTkMgKGZsb2F0
MzJ4NHgzX3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIHY0c2YsIHNmLCBmMzIpDQogICAgK19f
TEQzX0xBTkVfRlVOQyAoZmxvYXQ2NHgyeDNfdCwgZmxvYXQ2NHgyX3QsIGZsb2F0NjRfdCwgdjJk
ZiwgZGYsIGY2NCkNCiAgICArX19MRDNfTEFORV9GVU5DIChwb2x5OHgxNngzX3QsIHBvbHk4eDE2
X3QsIHBvbHk4X3QsIHYxNnFpLCBxaSwgcDgpDQogICAgK19fTEQzX0xBTkVfRlVOQyAocG9seTE2
eDh4M190LCBwb2x5MTZ4OF90LCBwb2x5MTZfdCwgdjhoaSwgaGksIHAxNikNCiAgICArX19MRDNf
TEFORV9GVU5DIChwb2x5NjR4MngzX3QsIHBvbHk2NHgyX3QsIHBvbHk2NF90LCB2MmRpLCBkaSwg
cDY0KQ0KICAgICtfX0xEM19MQU5FX0ZVTkMgKGludDh4MTZ4M190LCBpbnQ4eDE2X3QsIGludDhf
dCwgdjE2cWksIHFpLCBzOCkNCiAgICArX19MRDNfTEFORV9GVU5DIChpbnQxNng4eDNfdCwgaW50
MTZ4OF90LCBpbnQxNl90LCB2OGhpLCBoaSwgczE2KQ0KICAgICtfX0xEM19MQU5FX0ZVTkMgKGlu
dDMyeDR4M190LCBpbnQzMng0X3QsIGludDMyX3QsIHY0c2ksIHNpLCBzMzIpDQogICAgK19fTEQz
X0xBTkVfRlVOQyAoaW50NjR4MngzX3QsIGludDY0eDJfdCwgaW50NjRfdCwgdjJkaSwgZGksIHM2
NCkNCiAgICArX19MRDNfTEFORV9GVU5DICh1aW50OHgxNngzX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4
X3QsIHYxNnFpLCBxaSwgdTgpDQogICAgK19fTEQzX0xBTkVfRlVOQyAodWludDE2eDh4M190LCB1
aW50MTZ4OF90LCB1aW50MTZfdCwgdjhoaSwgaGksIHUxNikNCiAgICArX19MRDNfTEFORV9GVU5D
ICh1aW50MzJ4NHgzX3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCB2NHNpLCBzaSwgdTMyKQ0KICAg
ICtfX0xEM19MQU5FX0ZVTkMgKHVpbnQ2NHgyeDNfdCwgdWludDY0eDJfdCwgdWludDY0X3QsIHYy
ZGksIGRpLCB1NjQpDQogICAgKw0KICAgICsjdW5kZWYgX19MRDNfTEFORV9GVU5DDQogICAgKw0K
ICAgICsvKiB2bGQ0X2xhbmUgKi8NCiAgICArDQogICAgKyNkZWZpbmUgX19MRDRfTEFORV9GVU5D
KGludHlwZSwgdmVjdHlwZSwgbGFyZ2V0eXBlLCBwdHJ0eXBlLCBtb2RlLAkgICBcDQogICAgKwkJ
CSBxbW9kZSwgcHRybW9kZSwgZnVuY3N1ZmZpeCwgc2lnbmVkdHlwZSkJICAgXA0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnR5cGUgXA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLF9fYXJ0aWZpY2lhbF9fKSkgXA0KICAg
ICt2bGQ0X2xhbmVfIyNmdW5jc3VmZml4IChjb25zdCBwdHJ0eXBlICogX19wdHIsIGludHlwZSBf
X2IsIGNvbnN0IGludCBfX2MpICBcDQogICAgK3sJCQkJCQkJCQkgICBcDQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc2ltZF94aSBfX287CQkJCQkgICBcDQogICAgKyAgbGFyZ2V0eXBlIF9fdGVt
cDsJCQkJCQkJICAgXA0KICAgICsgIF9fdGVtcC52YWxbMF0gPQkJCQkJCQkgICBcDQogICAgKyAg
ICB2Y29tYmluZV8jI2Z1bmNzdWZmaXggKF9fYi52YWxbMF0sIHZjcmVhdGVfIyNmdW5jc3VmZml4
ICgwKSk7CSAgIFwNCiAgICArICBfX3RlbXAudmFsWzFdID0JCQkJCQkJICAgXA0KICAgICsgICAg
dmNvbWJpbmVfIyNmdW5jc3VmZml4IChfX2IudmFsWzFdLCB2Y3JlYXRlXyMjZnVuY3N1ZmZpeCAo
MCkpOwkgICBcDQogICAgKyAgX190ZW1wLnZhbFsyXSA9CQkJCQkJCSAgIFwNCiAgICArICAgIHZj
b21iaW5lXyMjZnVuY3N1ZmZpeCAoX19iLnZhbFsyXSwgdmNyZWF0ZV8jI2Z1bmNzdWZmaXggKDAp
KTsJICAgXA0KICAgICsgIF9fdGVtcC52YWxbM10gPQkJCQkJCQkgICBcDQogICAgKyAgICB2Y29t
YmluZV8jI2Z1bmNzdWZmaXggKF9fYi52YWxbM10sIHZjcmVhdGVfIyNmdW5jc3VmZml4ICgwKSk7
CSAgIFwNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpIyNxbW9kZSAo
X19vLAkJCSAgIFwNCiAgICArCQkJCQkgICAgKHNpZ25lZHR5cGUpIF9fdGVtcC52YWxbMF0sCSAg
IFwNCiAgICArCQkJCQkgICAgMCk7CQkJCSAgIFwNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFy
Y2g2NF9zZXRfcXJlZ3hpIyNxbW9kZSAoX19vLAkJCSAgIFwNCiAgICArCQkJCQkgICAgKHNpZ25l
ZHR5cGUpIF9fdGVtcC52YWxbMV0sCSAgIFwNCiAgICArCQkJCQkgICAgMSk7CQkJCSAgIFwNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpIyNxbW9kZSAoX19vLAkJCSAg
IFwNCiAgICArCQkJCQkgICAgKHNpZ25lZHR5cGUpIF9fdGVtcC52YWxbMl0sCSAgIFwNCiAgICAr
CQkJCQkgICAgMik7CQkJCSAgIFwNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRf
cXJlZ3hpIyNxbW9kZSAoX19vLAkJCSAgIFwNCiAgICArCQkJCQkgICAgKHNpZ25lZHR5cGUpIF9f
dGVtcC52YWxbM10sCSAgIFwNCiAgICArCQkJCQkgICAgMyk7CQkJCSAgIFwNCiAgICArICBfX28g
PQlfX2J1aWx0aW5fYWFyY2g2NF9sZDRfbGFuZSMjbW9kZSAoCQkJCSAgIFwNCiAgICArCSAgKF9f
YnVpbHRpbl9hYXJjaDY0X3NpbWRfIyNwdHJtb2RlICopIF9fcHRyLCBfX28sIF9fYyk7CSAgIFwN
CiAgICArICBfX2IudmFsWzBdID0gKHZlY3R5cGUpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9kcmVn
eGlkaSAoX19vLCAwKTsJICAgXA0KICAgICsgIF9fYi52YWxbMV0gPSAodmVjdHlwZSkgX19idWls
dGluX2FhcmNoNjRfZ2V0X2RyZWd4aWRpIChfX28sIDEpOwkgICBcDQogICAgKyAgX19iLnZhbFsy
XSA9ICh2ZWN0eXBlKSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZHJlZ3hpZGkgKF9fbywgMik7CSAg
IFwNCiAgICArICBfX2IudmFsWzNdID0gKHZlY3R5cGUpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9k
cmVneGlkaSAoX19vLCAzKTsJICAgXA0KICAgICsgIHJldHVybiBfX2I7CQkJCQkJCQkgICBcDQog
ICAgK30NCiAgICArDQogICAgKy8qIHZsZDRxX2xhbmUgKi8NCiAgICArDQogICAgK19fTEQ0X0xB
TkVfRlVOQyAoZmxvYXQxNng0eDRfdCwgZmxvYXQxNng0X3QsIGZsb2F0MTZ4OHg0X3QsIGZsb2F0
MTZfdCwgdjRoZiwNCiAgICArCQkgdjhoZiwgaGYsIGYxNiwgZmxvYXQxNng4X3QpDQogICAgK19f
TEQ0X0xBTkVfRlVOQyAoZmxvYXQzMngyeDRfdCwgZmxvYXQzMngyX3QsIGZsb2F0MzJ4NHg0X3Qs
IGZsb2F0MzJfdCwgdjJzZiwgdjRzZiwNCiAgICArCQkgc2YsIGYzMiwgZmxvYXQzMng0X3QpDQog
ICAgK19fTEQ0X0xBTkVfRlVOQyAoZmxvYXQ2NHgxeDRfdCwgZmxvYXQ2NHgxX3QsIGZsb2F0NjR4
Mng0X3QsIGZsb2F0NjRfdCwgZGYsIHYyZGYsDQogICAgKwkJIGRmLCBmNjQsIGZsb2F0NjR4Ml90
KQ0KICAgICtfX0xENF9MQU5FX0ZVTkMgKHBvbHk4eDh4NF90LCBwb2x5OHg4X3QsIHBvbHk4eDE2
eDRfdCwgcG9seThfdCwgdjhxaSwgdjE2cWksIHFpLCBwOCwNCiAgICArCQkgaW50OHgxNl90KQ0K
ICAgICtfX0xENF9MQU5FX0ZVTkMgKHBvbHkxNng0eDRfdCwgcG9seTE2eDRfdCwgcG9seTE2eDh4
NF90LCBwb2x5MTZfdCwgdjRoaSwgdjhoaSwgaGksDQogICAgKwkJIHAxNiwgaW50MTZ4OF90KQ0K
ICAgICtfX0xENF9MQU5FX0ZVTkMgKHBvbHk2NHgxeDRfdCwgcG9seTY0eDFfdCwgcG9seTY0eDJ4
NF90LCBwb2x5NjRfdCwgZGksDQogICAgKwkJIHYyZGlfc3NwcywgZGksIHA2NCwgcG9seTY0eDJf
dCkNCiAgICArX19MRDRfTEFORV9GVU5DIChpbnQ4eDh4NF90LCBpbnQ4eDhfdCwgaW50OHgxNng0
X3QsIGludDhfdCwgdjhxaSwgdjE2cWksIHFpLCBzOCwNCiAgICArCQkgaW50OHgxNl90KQ0KICAg
ICtfX0xENF9MQU5FX0ZVTkMgKGludDE2eDR4NF90LCBpbnQxNng0X3QsIGludDE2eDh4NF90LCBp
bnQxNl90LCB2NGhpLCB2OGhpLCBoaSwgczE2LA0KICAgICsJCSBpbnQxNng4X3QpDQogICAgK19f
TEQ0X0xBTkVfRlVOQyAoaW50MzJ4Mng0X3QsIGludDMyeDJfdCwgaW50MzJ4NHg0X3QsIGludDMy
X3QsIHYyc2ksIHY0c2ksIHNpLCBzMzIsDQogICAgKwkJIGludDMyeDRfdCkNCiAgICArX19MRDRf
TEFORV9GVU5DIChpbnQ2NHgxeDRfdCwgaW50NjR4MV90LCBpbnQ2NHgyeDRfdCwgaW50NjRfdCwg
ZGksIHYyZGksIGRpLCBzNjQsDQogICAgKwkJIGludDY0eDJfdCkNCiAgICArX19MRDRfTEFORV9G
VU5DICh1aW50OHg4eDRfdCwgdWludDh4OF90LCB1aW50OHgxNng0X3QsIHVpbnQ4X3QsIHY4cWks
IHYxNnFpLCBxaSwgdTgsDQogICAgKwkJIGludDh4MTZfdCkNCiAgICArX19MRDRfTEFORV9GVU5D
ICh1aW50MTZ4NHg0X3QsIHVpbnQxNng0X3QsIHVpbnQxNng4eDRfdCwgdWludDE2X3QsIHY0aGks
IHY4aGksIGhpLA0KICAgICsJCSB1MTYsIGludDE2eDhfdCkNCiAgICArX19MRDRfTEFORV9GVU5D
ICh1aW50MzJ4Mng0X3QsIHVpbnQzMngyX3QsIHVpbnQzMng0eDRfdCwgdWludDMyX3QsIHYyc2ks
IHY0c2ksIHNpLA0KICAgICsJCSB1MzIsIGludDMyeDRfdCkNCiAgICArX19MRDRfTEFORV9GVU5D
ICh1aW50NjR4MXg0X3QsIHVpbnQ2NHgxX3QsIHVpbnQ2NHgyeDRfdCwgdWludDY0X3QsIGRpLCB2
MmRpLCBkaSwNCiAgICArCQkgdTY0LCBpbnQ2NHgyX3QpDQogICAgKw0KICAgICsjdW5kZWYgX19M
RDRfTEFORV9GVU5DDQogICAgKw0KICAgICsvKiB2bGQ0cV9sYW5lICovDQogICAgKw0KICAgICsj
ZGVmaW5lIF9fTEQ0X0xBTkVfRlVOQyhpbnR5cGUsIHZ0eXBlLCBwdHJ0eXBlLCBtb2RlLCBwdHJt
b2RlLCBmdW5jc3VmZml4KSBcDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dHlwZSBcDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sX19hcnRpZmljaWFsX18pKSBcDQogICAgK3ZsZDRxX2xhbmVfIyNmdW5jc3VmZml4IChj
b25zdCBwdHJ0eXBlICogX19wdHIsIGludHlwZSBfX2IsIGNvbnN0IGludCBfX2MpIFwNCiAgICAr
ewkJCQkJCQkJCSAgIFwNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsJCQkJ
CSAgIFwNCiAgICArICBpbnR5cGUgcmV0OwkJCQkJCQkJICAgXA0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X3NldF9xcmVneGl2NHNpIChfX28sIChpbnQzMng0X3QpIF9fYi52YWxbMF0s
IDApOyBcDQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY0c2kgKF9f
bywgKGludDMyeDRfdCkgX19iLnZhbFsxXSwgMSk7IFwNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9zZXRfcXJlZ3hpdjRzaSAoX19vLCAoaW50MzJ4NF90KSBfX2IudmFsWzJdLCAyKTsg
XA0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2NHNpIChfX28sIChp
bnQzMng0X3QpIF9fYi52YWxbM10sIDMpOyBcDQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfbGQ0X2xhbmUjI21vZGUgKAkJCQkgICBcDQogICAgKwkoX19idWlsdGluX2FhcmNoNjRfc2lt
ZF8jI3B0cm1vZGUgKikgX19wdHIsIF9fbywgX19jKTsJCSAgIFwNCiAgICArICByZXQudmFsWzBd
ID0gKHZ0eXBlKSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjRzaSAoX19vLCAwKTsJICAg
XA0KICAgICsgIHJldC52YWxbMV0gPSAodnR5cGUpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9xcmVn
eGl2NHNpIChfX28sIDEpOwkgICBcDQogICAgKyAgcmV0LnZhbFsyXSA9ICh2dHlwZSkgX19idWls
dGluX2FhcmNoNjRfZ2V0X3FyZWd4aXY0c2kgKF9fbywgMik7CSAgIFwNCiAgICArICByZXQudmFs
WzNdID0gKHZ0eXBlKSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfcXJlZ3hpdjRzaSAoX19vLCAzKTsJ
ICAgXA0KICAgICsgIHJldHVybiByZXQ7CQkJCQkJCQkgICBcDQogICAgK30NCiAgICArDQogICAg
K19fTEQ0X0xBTkVfRlVOQyAoZmxvYXQxNng4eDRfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwg
djhoZiwgaGYsIGYxNikNCiAgICArX19MRDRfTEFORV9GVU5DIChmbG9hdDMyeDR4NF90LCBmbG9h
dDMyeDRfdCwgZmxvYXQzMl90LCB2NHNmLCBzZiwgZjMyKQ0KICAgICtfX0xENF9MQU5FX0ZVTkMg
KGZsb2F0NjR4Mng0X3QsIGZsb2F0NjR4Ml90LCBmbG9hdDY0X3QsIHYyZGYsIGRmLCBmNjQpDQog
ICAgK19fTEQ0X0xBTkVfRlVOQyAocG9seTh4MTZ4NF90LCBwb2x5OHgxNl90LCBwb2x5OF90LCB2
MTZxaSwgcWksIHA4KQ0KICAgICtfX0xENF9MQU5FX0ZVTkMgKHBvbHkxNng4eDRfdCwgcG9seTE2
eDhfdCwgcG9seTE2X3QsIHY4aGksIGhpLCBwMTYpDQogICAgK19fTEQ0X0xBTkVfRlVOQyAocG9s
eTY0eDJ4NF90LCBwb2x5NjR4Ml90LCBwb2x5NjRfdCwgdjJkaSwgZGksIHA2NCkNCiAgICArX19M
RDRfTEFORV9GVU5DIChpbnQ4eDE2eDRfdCwgaW50OHgxNl90LCBpbnQ4X3QsIHYxNnFpLCBxaSwg
czgpDQogICAgK19fTEQ0X0xBTkVfRlVOQyAoaW50MTZ4OHg0X3QsIGludDE2eDhfdCwgaW50MTZf
dCwgdjhoaSwgaGksIHMxNikNCiAgICArX19MRDRfTEFORV9GVU5DIChpbnQzMng0eDRfdCwgaW50
MzJ4NF90LCBpbnQzMl90LCB2NHNpLCBzaSwgczMyKQ0KICAgICtfX0xENF9MQU5FX0ZVTkMgKGlu
dDY0eDJ4NF90LCBpbnQ2NHgyX3QsIGludDY0X3QsIHYyZGksIGRpLCBzNjQpDQogICAgK19fTEQ0
X0xBTkVfRlVOQyAodWludDh4MTZ4NF90LCB1aW50OHgxNl90LCB1aW50OF90LCB2MTZxaSwgcWks
IHU4KQ0KICAgICtfX0xENF9MQU5FX0ZVTkMgKHVpbnQxNng4eDRfdCwgdWludDE2eDhfdCwgdWlu
dDE2X3QsIHY4aGksIGhpLCB1MTYpDQogICAgK19fTEQ0X0xBTkVfRlVOQyAodWludDMyeDR4NF90
LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgdjRzaSwgc2ksIHUzMikNCiAgICArX19MRDRfTEFORV9G
VU5DICh1aW50NjR4Mng0X3QsIHVpbnQ2NHgyX3QsIHVpbnQ2NF90LCB2MmRpLCBkaSwgdTY0KQ0K
ICAgICsNCiAgICArI3VuZGVmIF9fTEQ0X0xBTkVfRlVOQw0KICAgICsNCiAgICArLyogdm1heCAq
Lw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2bWF4X2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMy
eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21heF9u
YW52MnNmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1heF9mNjQg
KGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAgKyAgICByZXR1
cm4gKGZsb2F0NjR4MV90KQ0KICAgICsgICAgICB7IF9fYnVpbHRpbl9hYXJjaDY0X3NtYXhfbmFu
ZGYgKHZnZXRfbGFuZV9mNjQgKF9fYSwgMCksDQogICAgKwkJCQkgICAgICB2Z2V0X2xhbmVfZjY0
IChfX2IsIDApKSB9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXhfczggKGludDh4OF90
IF9fYSwgaW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X3NtYXh2OHFpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXhf
czE2IChpbnQxNng0X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3NtYXh2NGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZtYXhfczMyIChpbnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NtYXh2MnNpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXhfdTggKHVpbnQ4eDhfdCBfX2EsIHVpbnQ4eDhf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNo
NjRfdW1heHY4cWkgKChpbnQ4eDhfdCkgX19hLA0KICAgICsJCQkJCQkgKGludDh4OF90KSBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1heF91MTYgKHVpbnQxNng0X3QgX19hLCB1
aW50MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkgX19idWls
dGluX2FhcmNoNjRfdW1heHY0aGkgKChpbnQxNng0X3QpIF9fYSwNCiAgICArCQkJCQkJICAoaW50
MTZ4NF90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1heF91MzIgKHVpbnQz
MngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMy
eDJfdCkgX19idWlsdGluX2FhcmNoNjRfdW1heHYyc2kgKChpbnQzMngyX3QpIF9fYSwNCiAgICAr
CQkJCQkJICAoaW50MzJ4Ml90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
YXhxX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21heF9uYW52NHNmIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1heHFfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0
NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWF4
X25hbnYyZGYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1heHFfczgg
KGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfc21heHYxNnFpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZtYXhxX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWF4djhoaSAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2bWF4cV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21heHY0c2kg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXhxX3U4ICh1aW50OHgx
Nl90IF9fYSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VtYXh2MTZxaSAoKGludDh4MTZfdCkgX19hLA0KICAgICsJ
CQkJCQkgICAoaW50OHgxNl90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1h
eHFfdTE2ICh1aW50MTZ4OF90IF9fYSwgdWludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VtYXh2OGhpICgoaW50MTZ4OF90
KSBfX2EsDQogICAgKwkJCQkJCSAgKGludDE2eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZtYXhxX3UzMiAodWludDMyeDRfdCBfX2EsIHVpbnQzMng0X3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF91bWF4djRz
aSAoKGludDMyeDRfdCkgX19hLA0KICAgICsJCQkJCQkgIChpbnQzMng0X3QpIF9fYik7DQogICAg
K30NCiAgICArLyogdm11bHggKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHhfZjMyIChmbG9h
dDMyeDJfdCBfX2EsIGZsb2F0MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9mbXVseHYyc2YgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bXVseHFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbXVseHY0c2YgKF9fYSwgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVseF9mNjQgKGZsb2F0NjR4MV90IF9f
YSwgZmxvYXQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDFfdCkg
e19fYnVpbHRpbl9hYXJjaDY0X2ZtdWx4ZGYgKF9fYVswXSwgX19iWzBdKX07DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm11bHhxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9hdDY0eDJf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm11bHh2MmRm
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWx4c19mMzIgKGZsb2F0
MzJfdCBfX2EsIGZsb2F0MzJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfZm11bHhzZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bXVseGRfZjY0IChmbG9hdDY0X3QgX19hLCBmbG9hdDY0X3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtdWx4ZGYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2bXVseF9sYW5lX2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMy
eDJfdCBfX3YsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gdm11bHhf
ZjMyIChfX2EsIF9fYWFyY2g2NF92ZHVwX2xhbmVfZjMyIChfX3YsIF9fbGFuZSkpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWx4X2xhbmVfZjY0IChmbG9hdDY0eDFfdCBfX2EsIGZs
b2F0NjR4MV90IF9fdiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiB2
bXVseF9mNjQgKF9fYSwgX19hYXJjaDY0X3ZkdXBfbGFuZV9mNjQgKF9fdiwgX19sYW5lKSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHhxX2xhbmVfZjMyIChmbG9hdDMyeDRfdCBf
X2EsIGZsb2F0MzJ4Ml90IF9fdiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJl
dHVybiB2bXVseHFfZjMyIChfX2EsIF9fYWFyY2g2NF92ZHVwcV9sYW5lX2YzMiAoX192LCBfX2xh
bmUpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVseHFfbGFuZV9mNjQgKGZsb2F0
NjR4Ml90IF9fYSwgZmxvYXQ2NHgxX3QgX192LCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIHZtdWx4cV9mNjQgKF9fYSwgX19hYXJjaDY0X3ZkdXBxX2xhbmVfZjY0IChf
X3YsIF9fbGFuZSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWx4X2xhbmVxX2Yz
MiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDRfdCBfX3YsIGNvbnN0IGludCBfX2xhbmUpDQog
ICAgK3sNCiAgICArICByZXR1cm4gdm11bHhfZjMyIChfX2EsIF9fYWFyY2g2NF92ZHVwX2xhbmVx
X2YzMiAoX192LCBfX2xhbmUpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVseF9s
YW5lcV9mNjQgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgyX3QgX192LCBjb25zdCBpbnQgX19s
YW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZtdWx4X2Y2NCAoX19hLCBfX2FhcmNoNjRfdmR1
cF9sYW5lcV9mNjQgKF9fdiwgX19sYW5lKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm11bHhxX2xhbmVxX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX3YsIGNvbnN0
IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gdm11bHhxX2YzMiAoX19hLCBfX2Fh
cmNoNjRfdmR1cHFfbGFuZXFfZjMyIChfX3YsIF9fbGFuZSkpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZtdWx4cV9sYW5lcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3Qg
X192LCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZtdWx4cV9mNjQg
KF9fYSwgX19hYXJjaDY0X3ZkdXBxX2xhbmVxX2Y2NCAoX192LCBfX2xhbmUpKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm11bHhzX2xhbmVfZjMyIChmbG9hdDMyX3QgX19hLCBmbG9hdDMy
eDJfdCBfX3YsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gdm11bHhz
X2YzMiAoX19hLCBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX192LCBfX2xhbmUpKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHhzX2xhbmVxX2YzMiAoZmxvYXQzMl90IF9fYSwgZmxv
YXQzMng0X3QgX192LCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZt
dWx4c19mMzIgKF9fYSwgX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fdiwgX19sYW5lKSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWx4ZF9sYW5lX2Y2NCAoZmxvYXQ2NF90IF9fYSwg
ZmxvYXQ2NHgxX3QgX192LCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IHZtdWx4ZF9mNjQgKF9fYSwgX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fdiwgX19sYW5lKSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0
NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWx4ZF9sYW5lcV9mNjQgKGZsb2F0NjRfdCBf
X2EsIGZsb2F0NjR4Ml90IF9fdiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJl
dHVybiB2bXVseGRfZjY0IChfX2EsIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX3YsIF9fbGFu
ZSkpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2cG1heCAgKi8NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnBtYXhfczggKGludDh4OF90IGEsIGludDh4OF90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfc21heHB2OHFpIChhLCBiKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnBtYXhfczE2IChpbnQxNng0X3QgYSwgaW50MTZ4NF90IGIpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21heHB2NGhpIChhLCBiKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnBtYXhfczMyIChpbnQzMngyX3QgYSwgaW50MzJ4Ml90IGIpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21heHB2MnNpIChhLCBiKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtYXhfdTggKHVpbnQ4eDhfdCBhLCB1aW50OHg4X3Qg
YikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF91
bWF4cHY4cWkgKChpbnQ4eDhfdCkgYSwNCiAgICArCQkJCQkJICAoaW50OHg4X3QpIGIpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtYXhfdTE2ICh1aW50MTZ4NF90IGEsIHVpbnQxNng0
X3QgYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkgX19idWlsdGluX2FhcmNo
NjRfdW1heHB2NGhpICgoaW50MTZ4NF90KSBhLA0KICAgICsJCQkJCQkgICAoaW50MTZ4NF90KSBi
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWF4X3UzMiAodWludDMyeDJfdCBhLCB1
aW50MzJ4Ml90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIF9fYnVpbHRp
bl9hYXJjaDY0X3VtYXhwdjJzaSAoKGludDMyeDJfdCkgYSwNCiAgICArCQkJCQkJICAgKGludDMy
eDJfdCkgYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWF4cV9zOCAoaW50OHgxNl90
IGEsIGludDh4MTZfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3NtYXhwdjE2cWkgKGEsIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cG1heHFfczE2
IChpbnQxNng4X3QgYSwgaW50MTZ4OF90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfc21heHB2OGhpIChhLCBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnBtYXhxX3MzMiAoaW50MzJ4NF90IGEsIGludDMyeDRfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NtYXhwdjRzaSAoYSwgYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cG1heHFfdTggKHVpbnQ4eDE2X3QgYSwgdWludDh4MTZfdCBiKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuICh1aW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF91bWF4cHYxNnFp
ICgoaW50OHgxNl90KSBhLA0KICAgICsJCQkJCQkgICAgKGludDh4MTZfdCkgYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cG1heHFfdTE2ICh1aW50MTZ4OF90IGEsIHVpbnQxNng4X3Qg
YikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRf
dW1heHB2OGhpICgoaW50MTZ4OF90KSBhLA0KICAgICsJCQkJCQkgICAoaW50MTZ4OF90KSBiKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMy
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWF4cV91MzIgKHVpbnQzMng0X3QgYSwgdWlu
dDMyeDRfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSBfX2J1aWx0aW5f
YWFyY2g2NF91bWF4cHY0c2kgKChpbnQzMng0X3QpIGEsDQogICAgKwkJCQkJCSAgIChpbnQzMng0
X3QpIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWF4X2YzMiAoZmxvYXQzMngy
X3QgYSwgZmxvYXQzMngyX3QgYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9zbWF4X25hbnB2MnNmIChhLCBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cG1heHFfZjMyIChmbG9hdDMyeDRfdCBhLCBmbG9hdDMyeDRfdCBiKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NtYXhfbmFucHY0c2YgKGEsIGIpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZwbWF4cV9mNjQgKGZsb2F0NjR4Ml90IGEsIGZsb2F0NjR4Ml90
IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21heF9uYW5wdjJk
ZiAoYSwgYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWF4cWRfZjY0IChmbG9hdDY0
eDJfdCBhKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3Nt
YXhfbmFuX3NjYWxfdjJkZiAoYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWF4c19m
MzIgKGZsb2F0MzJ4Ml90IGEpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfcmVkdWNfc21heF9uYW5fc2NhbF92MnNmIChhKTsNCiAgICArfQ0KICAgICsNCiAgICArLyog
dnBtYXhubSAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs
b2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtYXhubV9mMzIgKGZsb2F0MzJ4Ml90
IGEsIGZsb2F0MzJ4Ml90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfc21heHB2MnNmIChhLCBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cG1heG5t
cV9mMzIgKGZsb2F0MzJ4NF90IGEsIGZsb2F0MzJ4NF90IGIpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfc21heHB2NHNmIChhLCBiKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cG1heG5tcV9mNjQgKGZsb2F0NjR4Ml90IGEsIGZsb2F0NjR4Ml90IGIpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21heHB2MmRmIChhLCBiKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtYXhubXFkX2Y2NCAoZmxvYXQ2NHgyX3QgYSkN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19zbWF4X3NjYWxf
djJkZiAoYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWF4bm1zX2YzMiAoZmxvYXQz
MngyX3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19z
bWF4X3NjYWxfdjJzZiAoYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZwbWluICAqLw0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cG1pbl9zOCAoaW50OHg4X3QgYSwgaW50OHg4X3QgYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWlucHY4cWkgKGEsIGIpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cG1pbl9zMTYgKGludDE2eDRfdCBhLCBpbnQxNng0X3QgYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWlucHY0aGkgKGEsIGIp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQz
MngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cG1pbl9zMzIgKGludDMyeDJfdCBhLCBpbnQz
MngyX3QgYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWlucHYy
c2kgKGEsIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cG1pbl91OCAodWludDh4OF90
IGEsIHVpbnQ4eDhfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3QpIF9fYnVp
bHRpbl9hYXJjaDY0X3VtaW5wdjhxaSAoKGludDh4OF90KSBhLA0KICAgICsJCQkJCQkgIChpbnQ4
eDhfdCkgYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cG1pbl91MTYgKHVpbnQxNng0
X3QgYSwgdWludDE2eDRfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90KSBf
X2J1aWx0aW5fYWFyY2g2NF91bWlucHY0aGkgKChpbnQxNng0X3QpIGEsDQogICAgKwkJCQkJCSAg
IChpbnQxNng0X3QpIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtaW5fdTMyICh1
aW50MzJ4Ml90IGEsIHVpbnQzMngyX3QgYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMy
eDJfdCkgX19idWlsdGluX2FhcmNoNjRfdW1pbnB2MnNpICgoaW50MzJ4Ml90KSBhLA0KICAgICsJ
CQkJCQkgICAoaW50MzJ4Ml90KSBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtaW5x
X3M4IChpbnQ4eDE2X3QgYSwgaW50OHgxNl90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfc21pbnB2MTZxaSAoYSwgYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZwbWlucV9zMTYgKGludDE2eDhfdCBhLCBpbnQxNng4X3QgYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWlucHY4aGkgKGEsIGIpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cG1pbnFfczMyIChpbnQzMng0X3QgYSwgaW50MzJ4NF90IGIpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21pbnB2NHNpIChhLCBiKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWlucV91OCAodWludDh4MTZfdCBhLCB1aW50OHgx
Nl90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJj
aDY0X3VtaW5wdjE2cWkgKChpbnQ4eDE2X3QpIGEsDQogICAgKwkJCQkJCSAgICAoaW50OHgxNl90
KSBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWlucV91MTYgKHVpbnQxNng4X3Qg
YSwgdWludDE2eDhfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4OF90KSBfX2J1
aWx0aW5fYWFyY2g2NF91bWlucHY4aGkgKChpbnQxNng4X3QpIGEsDQogICAgKwkJCQkJCSAgIChp
bnQxNng4X3QpIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtaW5xX3UzMiAodWlu
dDMyeDRfdCBhLCB1aW50MzJ4NF90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VtaW5wdjRzaSAoKGludDMyeDRfdCkgYSwNCiAgICArCQkJ
CQkJICAgKGludDMyeDRfdCkgYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtaW5f
ZjMyIChmbG9hdDMyeDJfdCBhLCBmbG9hdDMyeDJfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3NtaW5fbmFucHYyc2YgKGEsIGIpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZwbWlucV9mMzIgKGZsb2F0MzJ4NF90IGEsIGZsb2F0MzJ4NF90IGIpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21pbl9uYW5wdjRzZiAoYSwg
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs
b2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtaW5xX2Y2NCAoZmxvYXQ2NHgyX3Qg
YSwgZmxvYXQ2NHgyX3QgYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9zbWluX25hbnB2MmRmIChhLCBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtaW5x
ZF9mNjQgKGZsb2F0NjR4Ml90IGEpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfcmVkdWNfc21pbl9uYW5fc2NhbF92MmRmIChhKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnBtaW5zX2YzMiAoZmxvYXQzMngyX3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19zbWluX25hbl9zY2FsX3Yyc2YgKGEpOw0KICAgICt9DQog
ICAgKw0KICAgICsvKiB2cG1pbm5tICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cG1pbm5tX2Yz
MiAoZmxvYXQzMngyX3QgYSwgZmxvYXQzMngyX3QgYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9zbWlucHYyc2YgKGEsIGIpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZwbWlubm1xX2YzMiAoZmxvYXQzMng0X3QgYSwgZmxvYXQzMng0X3QgYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWlucHY0c2YgKGEsIGIpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwbWlubm1xX2Y2NCAoZmxvYXQ2NHgyX3QgYSwgZmxv
YXQ2NHgyX3QgYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWlu
cHYyZGYgKGEsIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cG1pbm5tcWRfZjY0IChm
bG9hdDY0eDJfdCBhKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Jl
ZHVjX3NtaW5fc2NhbF92MmRmIChhKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtaW5u
bXNfZjMyIChmbG9hdDMyeDJfdCBhKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X3JlZHVjX3NtaW5fc2NhbF92MnNmIChhKTsNCiAgICArfQ0KICAgICsNCiAgICArLyog
dm1heG5tICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWF4bm1fZjMyIChmbG9hdDMyeDJfdCBf
X2EsIGZsb2F0MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9mbWF4djJzZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
YXhubV9mNjQgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChmbG9hdDY0eDFfdCkNCiAgICArICAgIHsgX19idWlsdGluX2FhcmNoNjRfZm1h
eGRmICh2Z2V0X2xhbmVfZjY0IChfX2EsIDApLA0KICAgICsJCQkJdmdldF9sYW5lX2Y2NCAoX19i
LCAwKSkgfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWF4bm1xX2YzMiAoZmxvYXQz
Mng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfZm1heHY0c2YgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bWF4bm1xX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9hdDY0eDJfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm1heHYyZGYgKF9fYSwgX19iKTsN
CiAgICArfQ0KICAgICsNCiAgICArLyogdm1heHYgICovDQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWF4
dl9mMzIgKGZsb2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9yZWR1Y19zbWF4X25hbl9zY2FsX3Yyc2YgKF9fYSk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZtYXh2X3M4IChpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfcmVkdWNfc21heF9zY2FsX3Y4cWkgKF9fYSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bWF4dl9zMTYgKGludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfc21heF9zY2FsX3Y0aGkgKF9fYSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2bWF4dl9zMzIgKGludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfc21heF9zY2FsX3Yyc2kgKF9fYSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2bWF4dl91OCAodWludDh4OF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y191bWF4X3NjYWxfdjhxaV91dSAo
X19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWF4dl91MTYgKHVpbnQxNng0X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3VtYXhfc2Nh
bF92NGhpX3V1IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXh2X3UzMiAodWlu
dDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVk
dWNfdW1heF9zY2FsX3Yyc2lfdXUgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
YXh2cV9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9yZWR1Y19zbWF4X25hbl9zY2FsX3Y0c2YgKF9fYSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZtYXh2cV9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19zbWF4X25hbl9zY2FsX3YyZGYgKF9fYSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXh2cV9zOCAoaW50OHgxNl90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19zbWF4X3NjYWxfdjE2cWkg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWF4dnFfczE2IChpbnQxNng4X3QgX19h
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3NtYXhfc2Nh
bF92OGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1heHZxX3MzMiAoaW50MzJ4
NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19z
bWF4X3NjYWxfdjRzaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXh2cV91OCAo
dWludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
cmVkdWNfdW1heF9zY2FsX3YxNnFpX3V1IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZtYXh2cV91MTYgKHVpbnQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3JlZHVjX3VtYXhfc2NhbF92OGhpX3V1IChfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZtYXh2cV91MzIgKHVpbnQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3VtYXhfc2NhbF92NHNpX3V1IChfX2EpOw0K
ICAgICt9DQogICAgKw0KICAgICsvKiB2bWF4bm12ICAqLw0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1h
eG5tdl9mMzIgKGZsb2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9yZWR1Y19zbWF4X3NjYWxfdjJzZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdm1heG5tdnFfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfc21heF9zY2FsX3Y0c2YgKF9fYSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXhubXZxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3NtYXhfc2NhbF92MmRm
IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2bWluICAqLw0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bWluX2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21pbl9uYW52MnNmIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0
NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbl9mNjQgKGZsb2F0NjR4MV90IF9fYSwg
ZmxvYXQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAgKyAgICByZXR1cm4gKGZsb2F0NjR4MV90KQ0K
ICAgICsJICB7IF9fYnVpbHRpbl9hYXJjaDY0X3NtaW5fbmFuZGYgKHZnZXRfbGFuZV9mNjQgKF9f
YSwgMCksDQogICAgKwkJCQkJICB2Z2V0X2xhbmVfZjY0IChfX2IsIDApKSB9Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZtaW5fczggKGludDh4OF90IF9fYSwgaW50OHg4X3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NtaW52OHFpIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW5fczE2IChpbnQxNng0X3QgX19hLCBpbnQx
Nng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NtaW52
NGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW5fczMyIChpbnQz
MngyX3QgX19hLCBpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3NtaW52MnNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZtaW5fdTggKHVpbnQ4eDhfdCBfX2EsIHVpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfdW1pbnY4cWkgKChpbnQ4eDhfdCkg
X19hLA0KICAgICsJCQkJCQkgKGludDh4OF90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdm1pbl91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4NF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfdW1pbnY0aGkgKChp
bnQxNng0X3QpIF9fYSwNCiAgICArCQkJCQkJICAoaW50MTZ4NF90KSBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm1pbl91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRf
dW1pbnYyc2kgKChpbnQzMngyX3QpIF9fYSwNCiAgICArCQkJCQkJICAoaW50MzJ4Ml90KSBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW5xX2YzMiAoZmxvYXQzMng0X3QgX19h
LCBmbG9hdDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfc21pbl9uYW52NHNmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1pbnFfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0NjR4Ml90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWluX25hbnYyZGYgKF9fYSwgX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbnFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZf
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21pbnYxNnFp
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW5xX3MxNiAoaW50MTZ4
OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9zbWludjhoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bWlucV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21pbnY0c2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZtaW5xX3U4ICh1aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Vt
aW52MTZxaSAoKGludDh4MTZfdCkgX19hLA0KICAgICsJCQkJCQkgICAoaW50OHgxNl90KSBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbnFfdTE2ICh1aW50MTZ4OF90IF9fYSwg
dWludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng4X3QpIF9fYnVp
bHRpbl9hYXJjaDY0X3VtaW52OGhpICgoaW50MTZ4OF90KSBfX2EsDQogICAgKwkJCQkJCSAgKGlu
dDE2eDhfdCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW5xX3UzMiAodWlu
dDMyeDRfdCBfX2EsIHVpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50
MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF91bWludjRzaSAoKGludDMyeDRfdCkgX19hLA0KICAg
ICsJCQkJCQkgIChpbnQzMng0X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZtaW5u
bSAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbm5tX2YzMiAoZmxvYXQzMngyX3QgX19hLCBm
bG9hdDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
Zm1pbnYyc2YgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWlubm1f
ZjY0IChmbG9hdDY0eDFfdCBfX2EsIGZsb2F0NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiAoZmxvYXQ2NHgxX3QpDQogICAgKyAgICB7IF9fYnVpbHRpbl9hYXJjaDY0X2ZtaW5kZiAo
dmdldF9sYW5lX2Y2NCAoX19hLCAwKSwNCiAgICArCQkJCXZnZXRfbGFuZV9mNjQgKF9fYiwgMCkp
IH07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs
b2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbm5tcV9mMzIgKGZsb2F0MzJ4NF90
IF9fYSwgZmxvYXQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X2ZtaW52NHNmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1pbm5tcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtaW52MmRmIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgKy8qIHZtaW52ICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbnZfZjMy
IChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfcmVkdWNfc21pbl9uYW5fc2NhbF92MnNmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2bWludl9zOCAoaW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3JlZHVjX3NtaW5fc2NhbF92OHFpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdm1pbnZfczE2IChpbnQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X3JlZHVjX3NtaW5fc2NhbF92NGhpIChfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdm1pbnZfczMyIChpbnQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3NtaW5fc2NhbF92MnNpIChfX2EpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm1pbnZfdTggKHVpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfdW1pbl9zY2FsX3Y4cWlfdXUgKF9fYSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx
Nl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbnZfdTE2ICh1aW50MTZ4NF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y191bWluX3NjYWxfdjRo
aV91dSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWludl91MzIgKHVpbnQzMngy
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3Vt
aW5fc2NhbF92MnNpX3V1IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBmbG9hdDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWludnFf
ZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfcmVkdWNfc21pbl9uYW5fc2NhbF92NHNmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bWludnFfZjY0IChmbG9hdDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfc21pbl9uYW5fc2NhbF92MmRmIChfX2EpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bWludnFfczggKGludDh4MTZfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfc21pbl9zY2FsX3YxNnFpIChfX2Ep
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQx
Nl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbnZxX3MxNiAoaW50MTZ4OF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19zbWluX3NjYWxfdjho
aSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW52cV9zMzIgKGludDMyeDRfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfc21pbl9z
Y2FsX3Y0c2kgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWludnFfdTggKHVpbnQ4
eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVj
X3VtaW5fc2NhbF92MTZxaV91dSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWlu
dnFfdTE2ICh1aW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9yZWR1Y191bWluX3NjYWxfdjhoaV91dSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bWludnFfdTMyICh1aW50MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y191bWluX3NjYWxfdjRzaV91dSAoX19hKTsNCiAgICAr
fQ0KICAgICsNCiAgICArLyogdm1pbm5tdiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW5ubXZf
ZjMyIChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfcmVkdWNfc21pbl9zY2FsX3Yyc2YgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZtaW5ubXZxX2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3NtaW5fc2NhbF92NHNmIChfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2bWlubm12cV9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19zbWluX3NjYWxfdjJkZiAoX19h
KTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdm1sYSAqLw0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bWxhX2YzMiAoZmxvYXQzMngyX3QgYSwgZmxvYXQzMngyX3QgYiwgZmxvYXQzMngyX3QgYykNCiAg
ICArew0KICAgICsgIHJldHVybiBhICsgYiAqIGM7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdm1sYV9mNjQgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iLCBmbG9hdDY0eDFf
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICsgX19iICogX19jOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZtbGFxX2YzMiAoZmxvYXQzMng0X3QgYSwgZmxvYXQzMng0X3Qg
YiwgZmxvYXQzMng0X3QgYykNCiAgICArew0KICAgICsgIHJldHVybiBhICsgYiAqIGM7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYXFfZjY0IChmbG9hdDY0eDJfdCBhLCBmbG9hdDY0
eDJfdCBiLCBmbG9hdDY0eDJfdCBjKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIGEgKyBiICogYzsN
CiAgICArfQ0KICAgICsNCiAgICArLyogdm1sYV9sYW5lICAqLw0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2bWxhX2xhbmVfZjMyIChmbG9hdDMyeDJfdCBfX2EsIGZsb2F0MzJ4Ml90IF9fYiwNCiAgICAr
CSAgICAgICBmbG9hdDMyeDJfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKF9fYSArIChfX2IgKiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xh
bmUpKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbGFfbGFuZV9zMTYgKGludDE2eDRf
dCBfX2EsIGludDE2eDRfdCBfX2IsDQogICAgKwkJaW50MTZ4NF90IF9fYywgY29uc3QgaW50IF9f
bGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAoX19hICsgKF9fYiAqIF9fYWFyY2g2NF92Z2V0
X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1s
YV9sYW5lX3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYiwNCiAgICArCQlpbnQzMngy
X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgKyAo
X19iICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm1sYV9sYW5lX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0
X3QgX19iLA0KICAgICsJCXVpbnQxNng0X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChfX2EgKyAoX19iICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9f
YywgX19sYW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYV9sYW5lX3UzMiAo
dWludDMyeDJfdCBfX2EsIHVpbnQzMngyX3QgX19iLA0KICAgICsJICAgICAgIHVpbnQzMngyX3Qg
X19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgKyAoX19i
ICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQogICAg
Kw0KICAgICsvKiB2bWxhX2xhbmVxICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxhX2xhbmVx
X2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2IsDQogICAgKwkgICAgICAgIGZs
b2F0MzJ4NF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAo
X19hICsgKF9fYiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYV9sYW5lcV9zMTYgKGludDE2eDRfdCBfX2EsIGlu
dDE2eDRfdCBfX2IsDQogICAgKwkJaW50MTZ4OF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAg
ICArew0KICAgICsgIHJldHVybiAoX19hICsgKF9fYiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55
IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYV9sYW5lcV9z
MzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IsDQogICAgKwkJaW50MzJ4NF90IF9fYywg
Y29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAoX19hICsgKF9fYiAqIF9f
YWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZtbGFfbGFuZXFfdTE2ICh1aW50MTZ4NF90IF9fYSwgdWludDE2eDRfdCBfX2Is
DQogICAgKwkJdWludDE2eDhfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKF9fYSArIChfX2IgKiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xh
bmUpKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxhX2xhbmVxX3UzMiAodWludDMy
eDJfdCBfX2EsIHVpbnQzMngyX3QgX19iLA0KICAgICsJCXVpbnQzMng0X3QgX19jLCBjb25zdCBp
bnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgKyAoX19iICogX19hYXJjaDY0
X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2
bWxhcV9sYW5lICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxhcV9sYW5lX2YzMiAoZmxvYXQz
Mng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IsDQogICAgKwkJZmxvYXQzMngyX3QgX19jLCBjb25z
dCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgKyAoX19iICogX19hYXJj
aDY0X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bWxhcV9sYW5lX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYiwNCiAgICAr
CQlpbnQxNng0X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChfX2EgKyAoX19iICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19sYW5lKSkpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxhcV9sYW5lX3MzMiAoaW50MzJ4NF90IF9fYSwg
aW50MzJ4NF90IF9fYiwNCiAgICArCQlpbnQzMngyX3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgKyAoX19iICogX19hYXJjaDY0X3ZnZXRfbGFuZV9h
bnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYXFfbGFu
ZV91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYiwNCiAgICArCQl1aW50MTZ4NF90
IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAoX19hICsgKF9f
YiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZtbGFxX2xhbmVfdTMyICh1aW50MzJ4NF90IF9fYSwgdWludDMyeDRf
dCBfX2IsDQogICAgKwkJdWludDMyeDJfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sN
CiAgICArICByZXR1cm4gKF9fYSArIChfX2IgKiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19j
LCBfX2xhbmUpKSk7DQogICAgK30NCiAgICArDQogICAgKyAgLyogdm1sYXFfbGFuZXEgICovDQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZtbGFxX2xhbmVxX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9h
dDMyeDRfdCBfX2IsDQogICAgKwkJIGZsb2F0MzJ4NF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkN
CiAgICArew0KICAgICsgIHJldHVybiAoX19hICsgKF9fYiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVf
YW55IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYXFfbGFu
ZXFfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iLA0KICAgICsJCWludDE2eDhfdCBf
X2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSArIChfX2Ig
KiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xhbmUpKSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZtbGFxX2xhbmVxX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9f
YiwNCiAgICArCQlpbnQzMng0X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChfX2EgKyAoX19iICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19s
YW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sYXFfbGFuZXFfdTE2ICh1aW50
MTZ4OF90IF9fYSwgdWludDE2eDhfdCBfX2IsDQogICAgKwkJdWludDE2eDhfdCBfX2MsIGNvbnN0
IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSArIChfX2IgKiBfX2FhcmNo
NjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xhbmUpKSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bWxhcV9sYW5lcV91MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9fYiwNCiAg
ICArCQl1aW50MzJ4NF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJl
dHVybiAoX19hICsgKF9fYiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkp
KTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdm1scyAgKi8NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1sc19mMzIgKGZsb2F0MzJ4Ml90IGEsIGZsb2F0MzJ4Ml90IGIsIGZsb2F0MzJ4Ml90IGMpDQog
ICAgK3sNCiAgICArICByZXR1cm4gYSAtIGIgKiBjOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZtbHNfZjY0IChmbG9hdDY0eDFfdCBfX2EsIGZsb2F0NjR4MV90IF9fYiwgZmxvYXQ2NHgx
X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAtIF9fYiAqIF9fYzsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bWxzcV9mMzIgKGZsb2F0MzJ4NF90IGEsIGZsb2F0MzJ4NF90
IGIsIGZsb2F0MzJ4NF90IGMpDQogICAgK3sNCiAgICArICByZXR1cm4gYSAtIGIgKiBjOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNxX2Y2NCAoZmxvYXQ2NHgyX3QgYSwgZmxvYXQ2
NHgyX3QgYiwgZmxvYXQ2NHgyX3QgYykNCiAgICArew0KICAgICsgIHJldHVybiBhIC0gYiAqIGM7
DQogICAgK30NCiAgICArDQogICAgKy8qIHZtbHNfbGFuZSAgKi8NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdm1sc19sYW5lX2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMyeDJfdCBfX2IsDQogICAg
KwkgICAgICAgZmxvYXQzMngyX3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChfX2EgLSAoX19iICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19s
YW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzX2xhbmVfczE2IChpbnQxNng0
X3QgX19hLCBpbnQxNng0X3QgX19iLA0KICAgICsJCWludDE2eDRfdCBfX2MsIGNvbnN0IGludCBf
X2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9fYSAtIChfX2IgKiBfX2FhcmNoNjRfdmdl
dF9sYW5lX2FueSAoX19jLCBfX2xhbmUpKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
bHNfbGFuZV9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IsDQogICAgKwkJaW50MzJ4
Ml90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAoX19hIC0g
KF9fYiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZtbHNfbGFuZV91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4
NF90IF9fYiwNCiAgICArCQl1aW50MTZ4NF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAoX19hIC0gKF9fYiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChf
X2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNfbGFuZV91MzIg
KHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYiwNCiAgICArCSAgICAgICB1aW50MzJ4Ml90
IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAoX19hIC0gKF9f
YiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAg
ICsNCiAgICArLyogdm1sc19sYW5lcSAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc19sYW5l
cV9mMzIgKGZsb2F0MzJ4Ml90IF9fYSwgZmxvYXQzMngyX3QgX19iLA0KICAgICsJICAgICAgIGZs
b2F0MzJ4NF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAo
X19hIC0gKF9fYiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc19sYW5lcV9zMTYgKGludDE2eDRfdCBfX2EsIGlu
dDE2eDRfdCBfX2IsDQogICAgKwkJaW50MTZ4OF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAg
ICArew0KICAgICsgIHJldHVybiAoX19hIC0gKF9fYiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55
IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc19sYW5lcV9z
MzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IsDQogICAgKwkJaW50MzJ4NF90IF9fYywg
Y29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAoX19hIC0gKF9fYiAqIF9f
YWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZtbHNfbGFuZXFfdTE2ICh1aW50MTZ4NF90IF9fYSwgdWludDE2eDRfdCBfX2Is
DQogICAgKwkJdWludDE2eDhfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKF9fYSAtIChfX2IgKiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xh
bmUpKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzX2xhbmVxX3UzMiAodWludDMy
eDJfdCBfX2EsIHVpbnQzMngyX3QgX19iLA0KICAgICsJCXVpbnQzMng0X3QgX19jLCBjb25zdCBp
bnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgLSAoX19iICogX19hYXJjaDY0
X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2
bWxzcV9sYW5lICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzcV9sYW5lX2YzMiAoZmxvYXQz
Mng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IsDQogICAgKwkJZmxvYXQzMngyX3QgX19jLCBjb25z
dCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgLSAoX19iICogX19hYXJj
aDY0X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bWxzcV9sYW5lX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYiwNCiAgICAr
CQlpbnQxNng0X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChfX2EgLSAoX19iICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYywgX19sYW5lKSkpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzcV9sYW5lX3MzMiAoaW50MzJ4NF90IF9fYSwg
aW50MzJ4NF90IF9fYiwNCiAgICArCQlpbnQzMngyX3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgLSAoX19iICogX19hYXJjaDY0X3ZnZXRfbGFuZV9h
bnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1sc3FfbGFu
ZV91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYiwNCiAgICArCQl1aW50MTZ4NF90
IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAoX19hIC0gKF9f
YiAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZtbHNxX2xhbmVfdTMyICh1aW50MzJ4NF90IF9fYSwgdWludDMyeDRf
dCBfX2IsDQogICAgKwkJdWludDMyeDJfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sN
CiAgICArICByZXR1cm4gKF9fYSAtIChfX2IgKiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19j
LCBfX2xhbmUpKSk7DQogICAgK30NCiAgICArDQogICAgKyAgLyogdm1sc3FfbGFuZXEgICovDQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZtbHNxX2xhbmVxX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9h
dDMyeDRfdCBfX2IsDQogICAgKwkJZmxvYXQzMng0X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgLSAoX19iICogX19hYXJjaDY0X3ZnZXRfbGFuZV9h
bnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWxzcV9sYW5l
cV9zMTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IsDQogICAgKwkJaW50MTZ4OF90IF9f
YywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiAoX19hIC0gKF9fYiAq
IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdm1sc3FfbGFuZXFfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19i
LA0KICAgICsJCWludDMyeDRfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKF9fYSAtIChfX2IgKiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xh
bmUpKSk7DQogICAgK30NCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtbHNxX2xhbmVxX3UxNiAodWludDE2eDhfdCBf
X2EsIHVpbnQxNng4X3QgX19iLA0KICAgICsJCXVpbnQxNng4X3QgX19jLCBjb25zdCBpbnQgX19s
YW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChfX2EgLSAoX19iICogX19hYXJjaDY0X3ZnZXRf
bGFuZV9hbnkgKF9fYywgX19sYW5lKSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1s
c3FfbGFuZXFfdTMyICh1aW50MzJ4NF90IF9fYSwgdWludDMyeDRfdCBfX2IsDQogICAgKwkJdWlu
dDMyeDRfdCBfX2MsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gKF9f
YSAtIChfX2IgKiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xhbmUpKSk7DQogICAg
K30NCiAgICArDQogICAgKy8qIHZtb3Zfbl8gICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3Zf
bl9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cF9uX2YxNiAo
X19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bW92X25fZjMyIChmbG9hdDMyX3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZkdXBfbl9mMzIgKF9fYSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm1vdl9uX2Y2NCAoZmxvYXQ2NF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIHtfX2F9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2bW92X25fcDggKHBvbHk4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZkdXBfbl9w
OCAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgcG9seTE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3Zfbl9wMTYgKHBvbHkxNl90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiB2ZHVwX25fcDE2IChfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5NjR4MV90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm1vdl9uX3A2NCAocG9seTY0X3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIHZkdXBfbl9wNjQgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1v
dl9uX3M4IChpbnQ4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZkdXBfbl9zOCAoX19h
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1vdl9uX3MxNiAoaW50MTZfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gdmR1cF9uX3MxNiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdm1vdl9uX3MzMiAoaW50MzJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
dmR1cF9uX3MzMiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1vdl9uX3M2NCAo
aW50NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDFfdCkge19fYX07DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3Zfbl91OCAodWludDhfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gdmR1cF9uX3U4IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdm1vdl9uX3UxNiAodWludDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgICByZXR1cm4gdmR1
cF9uX3UxNiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3Zfbl91MzIgKHVp
bnQzMl90IF9fYSkNCiAgICArew0KICAgICsgICByZXR1cm4gdmR1cF9uX3UzMiAoX19hKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3Zfbl91NjQgKHVpbnQ2NF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkge19fYX07DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdm1vdnFfbl9mMTYgKGZsb2F0MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gdmR1cHFfbl9mMTYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1vdnFf
bl9mMzIgKGZsb2F0MzJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cHFfbl9mMzIg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1vdnFfbl9mNjQgKGZsb2F0NjRf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cHFfbl9mNjQgKF9fYSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bW92cV9uX3A4IChwb2x5OF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiB2ZHVwcV9uX3A4IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1vdnFfbl9wMTYgKHBvbHkxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiB2ZHVwcV9u
X3AxNiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgcG9seTY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3ZxX25fcDY0IChwb2x5
NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cHFfbl9wNjQgKF9fYSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3Ztb3ZxX25fczggKGludDhfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gdmR1cHFfbl9zOCAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm1vdnFfbl9zMTYgKGludDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZkdXBxX25f
czE2IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bW92cV9uX3MzMiAoaW50MzJf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1cHFfbl9zMzIgKF9fYSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Ztb3ZxX25fczY0IChpbnQ2NF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiB2ZHVwcV9uX3M2NCAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Ztb3ZxX25fdTggKHVpbnQ4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZkdXBxX25f
dTggKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bW92cV9uX3UxNiAodWludDE2
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZkdXBxX25fdTE2IChfX2EpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm1vdnFfbl91MzIgKHVpbnQzMl90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiB2ZHVwcV9uX3UzMiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Ztb3ZxX25fdTY0ICh1aW50NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdmR1
cHFfbl91NjQgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZtdWxfbGFuZSAgKi8NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm11bF9sYW5lX2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMy
eDJfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICog
X19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bXVsX2xhbmVfZjY0IChmbG9hdDY0eDFfdCBfX2EsIGZsb2F0NjR4MV90IF9f
YiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKiBfX2I7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxfbGFuZV9zMTYgKGludDE2eDRfdCBfX2EsIGlu
dDE2eDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
ICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdm11bF9sYW5lX3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYiwg
Y29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKiBfX2FhcmNoNjRf
dmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm11bF9sYW5lX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iLCBjb25zdCBpbnQg
X19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xhbmVf
YW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsX2xhbmVf
dTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwg
X19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdm11bGRfbGFuZSAgKi8NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZtdWxkX2xhbmVfZjY0IChmbG9hdDY0X3QgX19hLCBmbG9hdDY0eDFfdCBfX2Is
IGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19hYXJjaDY0
X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm11bGRfbGFuZXFfZjY0IChmbG9hdDY0X3QgX19hLCBmbG9hdDY0eDJfdCBfX2IsIGNvbnN0IGlu
dCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19hYXJjaDY0X3ZnZXRfbGFu
ZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdm11bHNfbGFuZSAg
Ki8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxzX2xhbmVfZjMyIChmbG9hdDMyX3QgX19hLCBmbG9h
dDMyeDJfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
ICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdm11bHNfbGFuZXFfZjMyIChmbG9hdDMyX3QgX19hLCBmbG9hdDMyeDRfdCBf
X2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19hYXJj
aDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArLyog
dm11bF9sYW5lcSAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bF9sYW5lcV9mMzIgKGZsb2F0
MzJ4Ml90IF9fYSwgZmxvYXQzMng0X3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0
NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bF9sYW5lcV9mNjQgKGZsb2F0NjR4MV90
IF9fYSwgZmxvYXQ2NHgyX3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxfbGFuZXFfczE2IChpbnQxNng0X3QgX19hLCBpbnQx
Nng4X3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAq
IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZtdWxfbGFuZXFfczMyIChpbnQzMngyX3QgX19hLCBpbnQzMng0X3QgX19iLCBj
b25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92
Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bXVsX2xhbmVxX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng4X3QgX19iLCBjb25zdCBpbnQg
X19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xhbmVf
YW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsX2xhbmVx
X3UzMiAodWludDMyeDJfdCBfX2EsIHVpbnQzMng0X3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2Is
IF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZtdWxfbiAgKi8NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdm11bF9uX2Y2NCAgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIHsgdmdldF9sYW5lX2Y2NCAoX19hLCAw
KSAqIF9fYiB9Ow0KICAgICt9DQogICAgKw0KICAgICsvKiB2bXVscV9sYW5lICAqLw0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2bXVscV9sYW5lX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9hdDMyeDJf
dCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19h
YXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bXVscV9sYW5lX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9hdDY0eDFfdCBfX2Is
IGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICBfX0FBUkNINjRfTEFORV9DSEVDSyAo
X19hLCBfX2xhbmUpOw0KICAgICsgIHJldHVybiBfX2EgKiBfX2JbMF07DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZtdWxxX2xhbmVfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng0X3QgX19i
LCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2
NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZtdWxxX2xhbmVfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMngyX3QgX19iLCBjb25zdCBpbnQg
X19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xhbmVf
YW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVscV9sYW5l
X3UxNiAodWludDE2eDhfdCBfX2EsIHVpbnQxNng0X3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2Is
IF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVscV9sYW5lX3UzMiAodWlu
dDMyeDRfdCBfX2EsIHVpbnQzMngyX3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7
DQogICAgK30NCiAgICArDQogICAgKy8qIHZtdWxxX2xhbmVxICAqLw0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bXVscV9sYW5lcV9mMzIgKGZsb2F0MzJ4NF90IF9fYSwgZmxvYXQzMng0X3QgX19iLCBj
b25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92
Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm11bHFfbGFuZXFfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0NjR4Ml90IF9fYiwgY29uc3Qg
aW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKiBfX2FhcmNoNjRfdmdldF9s
YW5lX2FueSAoX19iLCBfX2xhbmUpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVscV9s
YW5lcV9zMTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9f
YiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHFfbGFuZXFfczMyIChp
bnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx
Nng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVscV9sYW5lcV91MTYgKHVpbnQxNng4X3Qg
X19hLCB1aW50MTZ4OF90IF9fYiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2EgKiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHFfbGFuZXFfdTMyICh1aW50MzJ4NF90IF9fYSwgdWlu
dDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19h
ICogX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsN
CiAgICArLyogdm11bF9uLiAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bF9uX2YzMiAoZmxv
YXQzMngyX3QgX19hLCBmbG9hdDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAq
IF9fYjsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVscV9uX2YzMiAoZmxvYXQzMng0
X3QgX19hLCBmbG9hdDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYjsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2
NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVscV9uX2Y2NCAoZmxvYXQ2NHgyX3QgX19h
LCBmbG9hdDY0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYjsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bF9uX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2bXVscV9uX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVs
X25fczMyIChpbnQzMngyX3QgX19hLCBpbnQzMl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2EgKiBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxxX25fczMyIChpbnQz
Mng0X3QgX19hLCBpbnQzMl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2EgKiBfX2I7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsX25fdTE2ICh1aW50MTZ4NF90IF9fYSwg
dWludDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYjsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZtdWxxX25fdTE2ICh1aW50MTZ4OF90IF9fYSwgdWludDE2X3Qg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYjsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZtdWxfbl91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dm11bHFfbl91MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2bXZuICAqLw0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdm12bl9wOCAocG9seTh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiAocG9seTh4OF90KSB+KChpbnQ4eDhfdCkgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2bXZuX3M4IChpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gfl9fYTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm12bl9zMTYgKGludDE2eDRfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gfl9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm12bl9z
MzIgKGludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gfl9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdm12bl91OCAodWludDh4OF90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiB+X19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm12bl91MTYgKHVpbnQx
Nng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIH5fX2E7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bXZuX3UzMiAodWludDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gfl9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztdm5xX3A4IChwb2x5OHgxNl90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9seTh4MTZfdCkgfigoaW50OHgxNl90KSBf
X2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXZucV9zOCAoaW50OHgxNl90IF9fYSkN
CiAgICArew0KICAgICsgIHJldHVybiB+X19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
bXZucV9zMTYgKGludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gfl9fYTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm12bnFfczMyIChpbnQzMng0X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIH5fX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXZucV91
OCAodWludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gfl9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Ztdm5xX3UxNiAodWludDE2eDhfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gfl9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Ztdm5xX3UzMiAo
dWludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gfl9fYTsNCiAgICArfQ0KICAg
ICsNCiAgICArLyogdm5lZyAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm5lZ19mMzIgKGZsb2F0
MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAtX19hOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZuZWdfZjY0IChmbG9hdDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gLV9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bmVnX3M4IChpbnQ4eDhfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gLV9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdm5lZ19zMTYgKGludDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gLV9fYTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm5lZ19zMzIgKGludDMyeDJfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gLV9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm5lZ19z
NjQgKGludDY0eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gLV9fYTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2bmVncV9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAtX19hOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZuZWdxX2Y2
NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIC1fX2E7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZuZWdxX3M4IChpbnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIC1fX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZuZWdxX3MxNiAoaW50
MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAtX19hOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bmVncV9zMzIgKGludDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gLV9fYTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm5lZ3FfczY0IChpbnQ2NHgyX3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIC1fX2E7DQogICAgK30NCiAgICArDQogICAgKy8q
IHZwYWRkICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cGFkZF9mMzIgKGZsb2F0MzJ4Ml90IF9f
YSwgZmxvYXQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X2ZhZGRwdjJzZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zw
YWRkcV9mMzIgKGZsb2F0MzJ4NF90IF9fYSwgZmxvYXQzMng0X3QgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZhZGRwdjRzZiAoX19hLCBfX2IpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2
NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZhZGRw
djJkZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkX3M4IChpbnQ4
eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9hZGRwdjhxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cGFkZF9zMTYgKGludDE2eDRfdCBfX2EsIGludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfYWRkcHY0aGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnBhZGRfczMyIChpbnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2FkZHB2MnNpIChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkX3U4ICh1aW50OHg4X3QgX19hLCB1
aW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3QpIF9fYnVpbHRp
bl9hYXJjaDY0X2FkZHB2OHFpICgoaW50OHg4X3QpIF9fYSwNCiAgICArCQkJCQkJIChpbnQ4eDhf
dCkgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkX3UxNiAodWludDE2eDRf
dCBfX2EsIHVpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90
KSBfX2J1aWx0aW5fYWFyY2g2NF9hZGRwdjRoaSAoKGludDE2eDRfdCkgX19hLA0KICAgICsJCQkJ
CQkgIChpbnQxNng0X3QpIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cGFkZF91
MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfYWRkcHYyc2kgKChpbnQzMngyX3QpIF9f
YSwNCiAgICArCQkJCQkJICAoaW50MzJ4Ml90KSBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cGFkZHNfZjMyIChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3Yyc2YgKF9fYSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZwYWRkZF9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19wbHVzX3NjYWxfdjJkZiAoX19hKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZwYWRkZF9zNjQgKGludDY0eDJfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfYWRkcGRpIChfX2EpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZwYWRkZF91NjQgKHVpbnQ2NHgyX3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2FkZHBkaSAoKGludDY0eDJfdCkgX19hKTsN
CiAgICArfQ0KICAgICsNCiAgICArLyogdnFhYnMgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWJz
cV9zNjQgKGludDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDJfdCkg
X19idWlsdGluX2FhcmNoNjRfc3FhYnN2MmRpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cWFic2JfczggKGludDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDhfdCkg
X19idWlsdGluX2FhcmNoNjRfc3FhYnNxaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZxYWJzaF9zMTYgKGludDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNl90
KSBfX2J1aWx0aW5fYWFyY2g2NF9zcWFic2hpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnFhYnNzX3MzMiAoaW50MzJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMy
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxYWJzc2kgKF9fYSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cWFic2RfczY0IChpbnQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9zcWFic2RpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2cWFk
ZCAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnFhZGRiX3M4IChpbnQ4X3QgX19hLCBpbnQ4X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxYWRkcWkg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRkaF9zMTYgKGludDE2X3Qg
X19hLCBpbnQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZfdCkgX19idWls
dGluX2FhcmNoNjRfc3FhZGRoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnFhZGRzX3MzMiAoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQzMl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcWFkZHNpIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cWFkZGRfczY0IChpbnQ2NF90IF9fYSwgaW50NjRfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FhZGRkaSAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFhZGRiX3U4ICh1aW50OF90IF9fYSwgdWlu
dDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4X3QpIF9fYnVpbHRpbl9hYXJj
aDY0X3VxYWRkcWlfdXV1IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFh
ZGRoX3UxNiAodWludDE2X3QgX19hLCB1aW50MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHVpbnQxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF91cWFkZGhpX3V1dSAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxYWRkc191MzIgKHVpbnQzMl90IF9fYSwgdWludDMy
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJfdCkgX19idWlsdGluX2FhcmNo
NjRfdXFhZGRzaV91dXUgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWFk
ZGRfdTY0ICh1aW50NjRfdCBfX2EsIHVpbnQ2NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF91cWFkZGRpX3V1dSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICsvKiB2cWRtbGFsICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbGFsX3MxNiAoaW50
MzJ4NF90IF9fYSwgaW50MTZ4NF90IF9fYiwgaW50MTZ4NF90IF9fYykNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcWRtbGFsdjRoaSAoX19hLCBfX2IsIF9fYyk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG1sYWxfaGlnaF9zMTYgKGludDMyeDRfdCBfX2Es
IGludDE2eDhfdCBfX2IsIGludDE2eDhfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfc3FkbWxhbDJ2OGhpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnFkbWxhbF9oaWdoX2xhbmVfczE2IChpbnQzMng0X3QgX19hLCBpbnQx
Nng4X3QgX19iLCBpbnQxNng0X3QgX19jLA0KICAgICsJCSAgICAgICBpbnQgY29uc3QgX19kKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sYWwyX2xhbmV2OGhp
IChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbGFs
X2hpZ2hfbGFuZXFfczE2IChpbnQzMng0X3QgX19hLCBpbnQxNng4X3QgX19iLCBpbnQxNng4X3Qg
X19jLA0KICAgICsJCQlpbnQgY29uc3QgX19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3NxZG1sYWwyX2xhbmVxdjhoaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbWxhbF9oaWdoX25fczE2IChpbnQzMng0X3QgX19h
LCBpbnQxNng4X3QgX19iLCBpbnQxNl90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9zcWRtbGFsMl9udjhoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZxZG1sYWxfbGFuZV9zMTYgKGludDMyeDRfdCBfX2EsIGludDE2eDRf
dCBfX2IsIGludDE2eDRfdCBfX2MsIGludCBjb25zdCBfX2QpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbWxhbF9sYW5ldjRoaSAoX19hLCBfX2IsIF9fYywgX19k
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbWxhbF9sYW5lcV9zMTYgKGludDMyeDRf
dCBfX2EsIGludDE2eDRfdCBfX2IsIGludDE2eDhfdCBfX2MsIGludCBjb25zdCBfX2QpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbWxhbF9sYW5lcXY0aGkgKF9f
YSwgX19iLCBfX2MsIF9fZCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG1sYWxfbl9z
MTYgKGludDMyeDRfdCBfX2EsIGludDE2eDRfdCBfX2IsIGludDE2X3QgX19jKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sYWxfbnY0aGkgKF9fYSwgX19iLCBf
X2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbGFsX3MzMiAoaW50NjR4Ml90IF9f
YSwgaW50MzJ4Ml90IF9fYiwgaW50MzJ4Ml90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9zcWRtbGFsdjJzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZxZG1sYWxfaGlnaF9zMzIgKGludDY0eDJfdCBfX2EsIGludDMyeDRf
dCBfX2IsIGludDMyeDRfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc3FkbWxhbDJ2NHNpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFkbWxhbF9oaWdoX2xhbmVfczMyIChpbnQ2NHgyX3QgX19hLCBpbnQzMng0X3QgX19i
LCBpbnQzMngyX3QgX19jLA0KICAgICsJCSAgICAgICBpbnQgY29uc3QgX19kKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sYWwyX2xhbmV2NHNpIChfX2EsIF9f
YiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbGFsX2hpZ2hfbGFu
ZXFfczMyIChpbnQ2NHgyX3QgX19hLCBpbnQzMng0X3QgX19iLCBpbnQzMng0X3QgX19jLA0KICAg
ICsJCQlpbnQgY29uc3QgX19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X3NxZG1sYWwyX2xhbmVxdjRzaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnFkbWxhbF9oaWdoX25fczMyIChpbnQ2NHgyX3QgX19hLCBpbnQzMng0
X3QgX19iLCBpbnQzMl90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9zcWRtbGFsMl9udjRzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZxZG1sYWxfbGFuZV9zMzIgKGludDY0eDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGlu
dDMyeDJfdCBfX2MsIGludCBjb25zdCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfc3FkbWxhbF9sYW5ldjJzaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbWxhbF9sYW5lcV9zMzIgKGludDY0eDJfdCBfX2EsIGlu
dDMyeDJfdCBfX2IsIGludDMyeDRfdCBfX2MsIGludCBjb25zdCBfX2QpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbWxhbF9sYW5lcXYyc2kgKF9fYSwgX19iLCBf
X2MsIF9fZCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG1sYWxfbl9zMzIgKGludDY0
eDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGludDMyX3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sYWxfbnYyc2kgKF9fYSwgX19iLCBfX2MpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbWxhbGhfczE2IChpbnQzMl90IF9fYSwgaW50MTZfdCBf
X2IsIGludDE2X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3NxZG1sYWxoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRt
bGFsaF9sYW5lX3MxNiAoaW50MzJfdCBfX2EsIGludDE2X3QgX19iLCBpbnQxNng0X3QgX19jLCBj
b25zdCBpbnQgX19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nx
ZG1sYWxfbGFuZWhpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnFkbWxhbGhfbGFuZXFfczE2IChpbnQzMl90IF9fYSwgaW50MTZfdCBfX2IsIGludDE2eDhf
dCBfX2MsIGNvbnN0IGludCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc3FkbWxhbF9sYW5lcWhpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFkbWxhbHNfczMyIChpbnQ2NF90IF9fYSwgaW50MzJfdCBfX2IsIGludDMy
X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sYWxz
aSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbGFsc19sYW5l
X3MzMiAoaW50NjRfdCBfX2EsIGludDMyX3QgX19iLCBpbnQzMngyX3QgX19jLCBjb25zdCBpbnQg
X19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sYWxfbGFu
ZXNpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbWxh
bHNfbGFuZXFfczMyIChpbnQ2NF90IF9fYSwgaW50MzJfdCBfX2IsIGludDMyeDRfdCBfX2MsIGNv
bnN0IGludCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3Fk
bWxhbF9sYW5lcXNpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICsv
KiB2cWRtbHNsICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbHNsX3MxNiAoaW50MzJ4NF90IF9f
YSwgaW50MTZ4NF90IF9fYiwgaW50MTZ4NF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9zcWRtbHNsdjRoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZxZG1sc2xfaGlnaF9zMTYgKGludDMyeDRfdCBfX2EsIGludDE2eDhf
dCBfX2IsIGludDE2eDhfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc3FkbWxzbDJ2OGhpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFkbWxzbF9oaWdoX2xhbmVfczE2IChpbnQzMng0X3QgX19hLCBpbnQxNng4X3QgX19i
LCBpbnQxNng0X3QgX19jLA0KICAgICsJCSAgICAgICBpbnQgY29uc3QgX19kKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sc2wyX2xhbmV2OGhpIChfX2EsIF9f
YiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbHNsX2hpZ2hfbGFu
ZXFfczE2IChpbnQzMng0X3QgX19hLCBpbnQxNng4X3QgX19iLCBpbnQxNng4X3QgX19jLA0KICAg
ICsJCQlpbnQgY29uc3QgX19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X3NxZG1sc2wyX2xhbmVxdjhoaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnFkbWxzbF9oaWdoX25fczE2IChpbnQzMng0X3QgX19hLCBpbnQxNng4
X3QgX19iLCBpbnQxNl90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9zcWRtbHNsMl9udjhoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZxZG1sc2xfbGFuZV9zMTYgKGludDMyeDRfdCBfX2EsIGludDE2eDRfdCBfX2IsIGlu
dDE2eDRfdCBfX2MsIGludCBjb25zdCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfc3FkbWxzbF9sYW5ldjRoaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbWxzbF9sYW5lcV9zMTYgKGludDMyeDRfdCBfX2EsIGlu
dDE2eDRfdCBfX2IsIGludDE2eDhfdCBfX2MsIGludCBjb25zdCBfX2QpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbWxzbF9sYW5lcXY0aGkgKF9fYSwgX19iLCBf
X2MsIF9fZCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG1sc2xfbl9zMTYgKGludDMy
eDRfdCBfX2EsIGludDE2eDRfdCBfX2IsIGludDE2X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sc2xfbnY0aGkgKF9fYSwgX19iLCBfX2MpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbHNsX3MzMiAoaW50NjR4Ml90IF9fYSwgaW50MzJ4
Ml90IF9fYiwgaW50MzJ4Ml90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9zcWRtbHNsdjJzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZxZG1sc2xfaGlnaF9zMzIgKGludDY0eDJfdCBfX2EsIGludDMyeDRfdCBfX2IsIGlu
dDMyeDRfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3Fk
bWxzbDJ2NHNpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFk
bWxzbF9oaWdoX2xhbmVfczMyIChpbnQ2NHgyX3QgX19hLCBpbnQzMng0X3QgX19iLCBpbnQzMngy
X3QgX19jLA0KICAgICsJCSAgICAgICBpbnQgY29uc3QgX19kKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sc2wyX2xhbmV2NHNpIChfX2EsIF9fYiwgX19jLCBf
X2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbHNsX2hpZ2hfbGFuZXFfczMyIChp
bnQ2NHgyX3QgX19hLCBpbnQzMng0X3QgX19iLCBpbnQzMng0X3QgX19jLA0KICAgICsJCQlpbnQg
Y29uc3QgX19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1s
c2wyX2xhbmVxdjRzaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFkbWxzbF9oaWdoX25fczMyIChpbnQ2NHgyX3QgX19hLCBpbnQzMng0X3QgX19iLCBp
bnQzMl90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcWRt
bHNsMl9udjRzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zx
ZG1sc2xfbGFuZV9zMzIgKGludDY0eDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGludDMyeDJfdCBf
X2MsIGludCBjb25zdCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfc3FkbWxzbF9sYW5ldjJzaSAoX19hLCBfX2IsIF9fYywgX19kKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFkbWxzbF9sYW5lcV9zMzIgKGludDY0eDJfdCBfX2EsIGludDMyeDJfdCBf
X2IsIGludDMyeDRfdCBfX2MsIGludCBjb25zdCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfc3FkbWxzbF9sYW5lcXYyc2kgKF9fYSwgX19iLCBfX2MsIF9fZCk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG1sc2xfbl9zMzIgKGludDY0eDJfdCBfX2Es
IGludDMyeDJfdCBfX2IsIGludDMyX3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3NxZG1sc2xfbnYyc2kgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFkbWxzbGhfczE2IChpbnQzMl90IF9fYSwgaW50MTZfdCBfX2IsIGludDE2
X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sc2xo
aSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbHNsaF9sYW5l
X3MxNiAoaW50MzJfdCBfX2EsIGludDE2X3QgX19iLCBpbnQxNng0X3QgX19jLCBjb25zdCBpbnQg
X19kKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sc2xfbGFu
ZWhpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbWxz
bGhfbGFuZXFfczE2IChpbnQzMl90IF9fYSwgaW50MTZfdCBfX2IsIGludDE2eDhfdCBfX2MsIGNv
bnN0IGludCBfX2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3Fk
bWxzbF9sYW5lcWhpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnFkbWxzbHNfczMyIChpbnQ2NF90IF9fYSwgaW50MzJfdCBfX2IsIGludDMyX3QgX19jKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sc2xzaSAoX19hLCBf
X2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtbHNsc19sYW5lX3MzMiAoaW50
NjRfdCBfX2EsIGludDMyX3QgX19iLCBpbnQzMngyX3QgX19jLCBjb25zdCBpbnQgX19kKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG1sc2xfbGFuZXNpIChfX2Es
IF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbWxzbHNfbGFuZXFf
czMyIChpbnQ2NF90IF9fYSwgaW50MzJfdCBfX2IsIGludDMyeDRfdCBfX2MsIGNvbnN0IGludCBf
X2QpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbWxzbF9sYW5l
cXNpIChfX2EsIF9fYiwgX19jLCBfX2QpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2cWRtdWxo
ICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtdWxoX2xhbmVfczE2IChpbnQxNng0X3QgX19hLCBp
bnQxNng0X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3NxZG11bGhfbGFuZXY0aGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cWRtdWxoX2xhbmVfczMyIChpbnQzMngyX3QgX19hLCBpbnQzMngy
X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X3NxZG11bGhfbGFuZXYyc2kgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cWRtdWxocV9sYW5lX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4NF90IF9f
YiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9zcWRtdWxoX2xhbmV2OGhpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFkbXVsaHFfbGFuZV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDJfdCBfX2IsIGNv
bnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3Fk
bXVsaF9sYW5ldjRzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cWRtdWxoaF9zMTYgKGludDE2X3QgX19hLCBpbnQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiAoaW50MTZfdCkgX19idWlsdGluX2FhcmNoNjRfc3FkbXVsaGhpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtdWxoaF9sYW5lX3MxNiAoaW50MTZfdCBfX2EsIGlu
dDE2eDRfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfc3FkbXVsaF9sYW5laGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNl90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFkbXVsaGhfbGFuZXFfczE2IChpbnQxNl90IF9fYSwgaW50MTZ4OF90IF9f
YiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9zcWRtdWxoX2xhbmVxaGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnFkbXVsaHNfczMyIChpbnQzMl90IF9fYSwgaW50MzJfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGludDMyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11bGhzaSAoX19hLCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQz
Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbXVsaHNfbGFuZV9zMzIgKGludDMyX3QgX19h
LCBpbnQzMngyX3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X3NxZG11bGhfbGFuZXNpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZxZG11bGhzX2xhbmVxX3MzMiAoaW50MzJfdCBfX2EsIGludDMyeDRf
dCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc3FkbXVsaF9sYW5lcXNpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAg
ICArLyogdnFkbXVsbCAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbXVsbF9zMTYgKGludDE2eDRf
dCBfX2EsIGludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc3FkbXVsbHY0aGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnFkbXVsbF9oaWdoX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcWRtdWxsMnY4aGkgKF9fYSwgX19iKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbXVsbF9oaWdoX2xhbmVfczE2IChpbnQxNng4
X3QgX19hLCBpbnQxNng0X3QgX19iLCBpbnQgY29uc3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11bGwyX2xhbmV2OGhpIChfX2EsIF9fYixfX2MpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtdWxsX2hpZ2hfbGFuZXFfczE2IChpbnQxNng4
X3QgX19hLCBpbnQxNng4X3QgX19iLCBpbnQgY29uc3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11bGwyX2xhbmVxdjhoaSAoX19hLCBfX2IsX19jKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbXVsbF9oaWdoX25fczE2IChpbnQxNng4X3Qg
X19hLCBpbnQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9zcWRtdWxsMl9udjhoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cWRtdWxsX2xhbmVfczE2IChpbnQxNng0X3QgX19hLCBpbnQxNng0X3QgX19iLCBpbnQgY29uc3Qg
X19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11bGxfbGFu
ZXY0aGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cWRtdWxs
X2xhbmVxX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4OF90IF9fYiwgaW50IGNvbnN0IF9fYykN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcWRtdWxsX2xhbmVxdjRo
aSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG11bGxfbl9z
MTYgKGludDE2eDRfdCBfX2EsIGludDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X3NxZG11bGxfbnY0aGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFkbXVsbF9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbXVsbHYyc2kgKF9fYSwg
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbXVsbF9oaWdoX3MzMiAoaW50MzJ4
NF90IF9fYSwgaW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9zcWRtdWxsMnY0c2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnFkbXVsbF9oaWdoX2xhbmVfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMngyX3QgX19iLCBp
bnQgY29uc3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nx
ZG11bGwyX2xhbmV2NHNpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnFkbXVsbF9oaWdoX2xhbmVxX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9fYiwg
aW50IGNvbnN0IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9z
cWRtdWxsMl9sYW5lcXY0c2kgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cWRtdWxsX2hpZ2hfbl9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyX3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11bGwyX252NHNpIChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG11bGxfbGFuZV9zMzIgKGludDMy
eDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGludCBjb25zdCBfX2MpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbXVsbF9sYW5ldjJzaSAoX19hLCBfX2IsIF9fYyk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG11bGxfbGFuZXFfczMyIChpbnQzMngyX3Qg
X19hLCBpbnQzMng0X3QgX19iLCBpbnQgY29uc3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11bGxfbGFuZXF2MnNpIChfX2EsIF9fYiwgX19jKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbXVsbF9uX3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50
MzJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbXVs
bF9udjJzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFkbXVsbGhfczE2
IChpbnQxNl90IF9fYSwgaW50MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMy
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11bGxoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFkbXVsbGhfbGFuZV9zMTYgKGludDE2X3QgX19hLCBpbnQxNng0X3QgX19i
LCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3NxZG11bGxfbGFuZWhpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZxZG11bGxoX2xhbmVxX3MxNiAoaW50MTZfdCBfX2EsIGludDE2eDhfdCBfX2IsIGNvbnN0IGlu
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbXVsbF9s
YW5lcWhpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG11bGxz
X3MzMiAoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X3NxZG11bGxzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFkbXVsbHNfbGFuZV9zMzIgKGludDMyX3QgX19hLCBpbnQzMngyX3QgX19iLCBjb25z
dCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxZG11
bGxfbGFuZXNpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxZG11
bGxzX2xhbmVxX3MzMiAoaW50MzJfdCBfX2EsIGludDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2Mp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FkbXVsbF9sYW5lcXNp
IChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdnFtb3ZuICovDQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZxbW92bl9zMTYgKGludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKGludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcW1vdm52OGhpIChfX2EpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cW1vdm5fczMyIChpbnQzMng0X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxbW92bnY0c2kg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxbW92bl9zNjQgKGludDY0eDJfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRf
c3Ftb3ZudjJkaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFtb3ZuX3UxNiAo
dWludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDhfdCkgX19idWls
dGluX2FhcmNoNjRfdXFtb3ZudjhoaSAoKGludDE2eDhfdCkgX19hKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZxbW92bl91MzIgKHVpbnQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF91cW1vdm52NHNpICgoaW50MzJ4
NF90KSBfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFtb3ZuX3U2NCAodWludDY0
eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9h
YXJjaDY0X3VxbW92bnYyZGkgKChpbnQ2NHgyX3QpIF9fYSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZxbW92bmhfczE2IChpbnQxNl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcW1vdm5oaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZxbW92bnNfczMyIChpbnQzMl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAo
aW50MTZfdCkgX19idWlsdGluX2FhcmNoNjRfc3Ftb3Zuc2kgKF9fYSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cW1vdm5kX3M2NCAoaW50NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gKGludDMyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxbW92bmRpIChfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnFtb3ZuaF91MTYgKHVpbnQxNl90IF9fYSkNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDhfdCkgX19idWlsdGluX2FhcmNoNjRfdXFtb3ZuaGkgKF9fYSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnFtb3Zuc191MzIgKHVpbnQzMl90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VxbW92bnNpIChfX2Ep
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxbW92bmRfdTY0ICh1aW50NjRfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMl90KSBfX2J1aWx0aW5fYWFyY2g2NF91cW1vdm5k
aSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdnFtb3Z1biAqLw0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFtb3Z1bl9zMTYgKGludDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4g
KHVpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfc3Ftb3Z1bnY4aGkgKF9fYSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cW1vdnVuX3MzMiAoaW50MzJ4NF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfc3Ftb3Z1bnY0c2kg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cW1vdnVuX3M2NCAoaW50NjR4Ml90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkgX19idWlsdGluX2FhcmNo
NjRfc3Ftb3Z1bnYyZGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxbW92dW5oX3Mx
NiAoaW50MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfc3Ftb3Z1bmhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFtb3Z1
bnNfczMyIChpbnQzMl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZfdCkgX19i
dWlsdGluX2FhcmNoNjRfc3Ftb3Z1bnNpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnFtb3Z1bmRfczY0IChpbnQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJf
dCkgX19idWlsdGluX2FhcmNoNjRfc3Ftb3Z1bmRpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICsvKiB2cW5lZyAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFuZWdxX3M2NCAoaW50NjR4Ml90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9z
cW5lZ3YyZGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxbmVnYl9zOCAoaW50OF90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9z
cW5lZ3FpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFuZWdoX3MxNiAoaW50MTZf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0
X3NxbmVnaGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cW5lZ3NfczMyIChpbnQz
Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJfdCkgX19idWlsdGluX2FhcmNo
NjRfc3FuZWdzaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxbmVnZF9zNjQgKGlu
dDY0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxbmVn
ZGkgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZxcmRtdWxoICovDQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cXJkbXVsaF9sYW5lX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYiwg
Y29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAgX19idWlsdGluX2FhcmNoNjRf
c3FyZG11bGhfbGFuZXY0aGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cXJkbXVsaF9sYW5lX3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYiwgY29u
c3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJk
bXVsaF9sYW5ldjJzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZxcmRtdWxocV9sYW5lX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4NF90IF9fYiwgY29uc3Qg
aW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbXVs
aF9sYW5ldjhoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zx
cmRtdWxocV9sYW5lX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50MzJ4Ml90IF9fYiwgY29uc3QgaW50
IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbXVsaF9s
YW5ldjRzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbXVs
aGhfczE2IChpbnQxNl90IF9fYSwgaW50MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
KGludDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRtdWxoaGkgKF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZxcmRtdWxoaF9sYW5lX3MxNiAoaW50MTZfdCBfX2EsIGludDE2
eDRfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfc3FyZG11bGhfbGFuZWhpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZxcmRtdWxoaF9sYW5lcV9zMTYgKGludDE2X3QgX19hLCBpbnQxNng4X3QgX19i
LCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3NxcmRtdWxoX2xhbmVxaGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnFyZG11bGhzX3MzMiAoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChpbnQzMl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXJkbXVsaHNpIChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJkbXVsaHNfbGFuZV9zMzIgKGludDMyX3Qg
X19hLCBpbnQzMngyX3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3NxcmRtdWxoX2xhbmVzaSAoX19hLCBfX2IsIF9fYyk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cXJkbXVsaHNfbGFuZXFfczMyIChpbnQzMl90IF9fYSwgaW50
MzJ4NF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9zcXJkbXVsaF9sYW5lcXNpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAg
ICsNCiAgICArLyogdnFyc2hsICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcnNobF9zOCAoaW50OHg4
X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc3Fyc2hsdjhxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cXJzaGxfczE2IChpbnQxNng0X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxcnNobHY0aGkgKF9fYSwgX19iKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnFyc2hsX3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJzaGx2MnNpIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcnNobF9zNjQgKGludDY0eDFf
dCBfX2EsIGludDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDFfdCkg
e19fYnVpbHRpbl9hYXJjaDY0X3NxcnNobGRpIChfX2FbMF0sIF9fYlswXSl9Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cXJzaGxfdTggKHVpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXJzaGx2OHFpX3V1cyAo
IF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcnNobF91MTYgKHVpbnQx
Nng0X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3VxcnNobHY0aGlfdXVzICggX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFyc2hsX3UzMiAodWludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXFyc2hsdjJzaV91dXMgKCBfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJzaGxfdTY0ICh1aW50NjR4MV90
IF9fYSwgaW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkg
e19fYnVpbHRpbl9hYXJjaDY0X3VxcnNobGRpX3V1cyAoX19hWzBdLCBfX2JbMF0pfTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyc2hscV9zOCAoaW50OHgxNl90IF9fYSwgaW50OHgxNl90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJzaGx2MTZx
aSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJzaGxxX3MxNiAoaW50
MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9zcXJzaGx2OGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZxcnNobHFfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxcnNobHY0c2kgKF9fYSwgX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyc2hscV9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0
eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3Fyc2hs
djJkaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyc2hscV91OCAo
dWludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfdXFyc2hsdjE2cWlfdXVzICggX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnFyc2hscV91MTYgKHVpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VxcnNobHY4aGlfdXVz
ICggX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyc2hscV91MzIgKHVp
bnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3VxcnNobHY0c2lfdXVzICggX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFyc2hscV91NjQgKHVpbnQ2NHgyX3QgX19hLCBpbnQ2NHgyX3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VxcnNobHYyZGlfdXVzICgg
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQ4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJzaGxiX3M4IChpbnQ4X3QgX19h
LCBpbnQ4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nx
cnNobHFpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJzaGxoX3MxNiAo
aW50MTZfdCBfX2EsIGludDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3NxcnNobGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cXJzaGxzX3MzMiAoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxcnNobHNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cXJzaGxkX3M2NCAoaW50NjRfdCBfX2EsIGludDY0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NxcnNobGRpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJzaGxiX3U4ICh1aW50OF90IF9fYSwgdWludDhfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXFyc2hscWlfdXVz
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyc2hsaF91MTYgKHVpbnQx
Nl90IF9fYSwgdWludDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X3VxcnNobGhpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZxcnNobHNfdTMyICh1aW50MzJfdCBfX2EsIHVpbnQzMl90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXJzaGxzaV91dXMgKF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cXJzaGxkX3U2NCAodWludDY0X3QgX19hLCB1aW50NjRfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXFyc2hsZGlfdXVz
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZxcnNocm4gKi8NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFyc2hybl9uX3MxNiAoaW50MTZ4OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAoaW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxcnNocm5f
bnY4aGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyc2hybl9uX3Mz
MiAoaW50MzJ4NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAo
aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXJzaHJuX252NHNpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcnNocm5fbl9zNjQgKGludDY0eDJfdCBfX2EsIGNv
bnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDJfdCkgX19idWlsdGlu
X2FhcmNoNjRfc3Fyc2hybl9udjJkaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cXJzaHJuX25fdTE2ICh1aW50MTZ4OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXJzaHJuX252OGhpX3V1cyAoIF9f
YSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcnNocm5fbl91MzIgKHVpbnQz
Mng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3VxcnNocm5fbnY0c2lfdXVzICggX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFyc2hybl9uX3U2NCAodWludDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXFyc2hybl9udjJkaV91
dXMgKCBfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcnNocm5oX25fczE2IChp
bnQxNl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OF90
KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXJzaHJuX25oaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNl90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFyc2hybnNfbl9zMzIgKGludDMyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXJzaHJu
X25zaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyc2hybmRfbl9zNjQg
KGludDY0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQz
Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXJzaHJuX25kaSAoX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnFyc2hybmhfbl91MTYgKHVpbnQxNl90IF9fYSwgY29uc3QgaW50IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXJzaHJuX25oaV91
dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJzaHJuc19uX3UzMiAo
dWludDMyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3VxcnNocm5fbnNpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZxcnNocm5kX25fdTY0ICh1aW50NjRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXFyc2hybl9uZGlfdXVzIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZxcnNocnVuICovDQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cXJzaHJ1bl9uX3MxNiAoaW50MTZ4OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXJzaHJ1
bl9udjhoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFyc2hydW5f
bl9zMzIgKGludDMyeDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxcnNocnVuX252NHNpIChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXJzaHJ1bl9uX3M2NCAoaW50NjR4Ml90
IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkg
X19idWlsdGluX2FhcmNoNjRfc3Fyc2hydW5fbnYyZGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFyc2hydW5oX25fczE2IChpbnQxNl90IF9fYSwgY29uc3QgaW50IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAoaW50OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXJzaHJ1
bl9uaGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxcnNocnVuc19uX3Mz
MiAoaW50MzJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGlu
dDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NxcnNocnVuX25zaSAoX19hLCBfX2IpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnFyc2hydW5kX25fczY0IChpbnQ2NF90IF9fYSwgY29uc3QgaW50
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJfdCkgX19idWlsdGluX2FhcmNoNjRf
c3Fyc2hydW5fbmRpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZxc2hsICov
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Zxc2hsX3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXNobHY4cWkgKF9fYSwg
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxfczE2IChpbnQxNng0X3QgX19h
LCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3Nxc2hsdjRoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNobF9z
MzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfc3FzaGx2MnNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3Zxc2hsX3M2NCAoaW50NjR4MV90IF9fYSwgaW50NjR4MV90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSB7X19idWlsdGluX2FhcmNoNjRfc3FzaGxkaSAo
X19hWzBdLCBfX2JbMF0pfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxfdTggKHVp
bnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF91cXNobHY4cWlfdXVzICggX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFzaGxfdTE2ICh1aW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXNobHY0aGlfdXVzICggX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxfdTMyICh1aW50MzJ4Ml90IF9f
YSwgaW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF91cXNobHYyc2lfdXVzICggX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnFzaGxfdTY0ICh1aW50NjR4MV90IF9fYSwgaW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X3Vxc2hsZGlfdXVzIChfX2Fb
MF0sIF9fYlswXSl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNobHFfczggKGludDh4
MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfc3FzaGx2MTZxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cXNobHFfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc2hsdjhoaSAoX19hLCBfX2IpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cXNobHFfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3Qg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc2hsdjRzaSAo
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNobHFfczY0IChpbnQ2NHgy
X3QgX19hLCBpbnQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X3Nxc2hsdjJkaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnFzaGxxX3U4ICh1aW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXNobHYxNnFpX3V1cyAoIF9fYSwgX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hscV91MTYgKHVpbnQxNng4X3QgX19hLCBpbnQx
Nng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hs
djhoaV91dXMgKCBfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNobHFf
dTMyICh1aW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF91cXNobHY0c2lfdXVzICggX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnFzaGxxX3U2NCAodWludDY0eDJfdCBfX2EsIGludDY0eDJfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXFzaGx2MmRpX3V1
cyAoIF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxiX3M4IChpbnQ4X3Qg
X19hLCBpbnQ4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3Nxc2hscWkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hsaF9zMTYg
KGludDE2X3QgX19hLCBpbnQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9zcXNobGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cXNobHNfczMyIChpbnQzMl90IF9fYSwgaW50MzJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfc3FzaGxzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFzaGxkX3M2NCAoaW50NjRfdCBfX2EsIGludDY0X3QgX19iKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc2hsZGkgKF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Zxc2hsYl91OCAodWludDhfdCBfX2EsIHVpbnQ4X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hscWlfdXVzIChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxoX3UxNiAodWludDE2X3QgX19h
LCB1aW50MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
dXFzaGxoaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNobHNf
dTMyICh1aW50MzJfdCBfX2EsIHVpbnQzMl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF91cXNobHNpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3Zxc2hsZF91NjQgKHVpbnQ2NF90IF9fYSwgdWludDY0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hsZGlfdXVzIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxfbl9zOCAoaW50OHg4X3QgX19hLCBjb25z
dCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19idWlsdGluX2Fh
cmNoNjRfc3FzaGxfbnY4cWkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnFzaGxfbl9zMTYgKGludDE2eDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfc3FzaGxfbnY0aGkgKF9fYSwg
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxfbl9zMzIgKGludDMyeDJfdCBf
X2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDJfdCkgX19i
dWlsdGluX2FhcmNoNjRfc3FzaGxfbnYyc2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFzaGxfbl9zNjQgKGludDY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKGludDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X3Nxc2hsX25k
aSAoX19hWzBdLCBfX2IpfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxfbl91OCAo
dWludDh4OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF91cXNobF9udjhxaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3Zxc2hsX25fdTE2ICh1aW50MTZ4NF90IF9fYSwgY29uc3QgaW50IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXNobF9udjRoaV91dXMg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hsX25fdTMyICh1aW50
MzJ4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF91cXNobF9udjJzaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3Zxc2hsX25fdTY0ICh1aW50NjR4MV90IF9fYSwgY29uc3QgaW50IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X3Vxc2hs
X25kaV91dXMgKF9fYVswXSwgX19iKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hs
cV9uX3M4IChpbnQ4eDE2X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc2hsX252MTZxaSAoX19hLCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQx
Nng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNobHFfbl9zMTYgKGludDE2eDhfdCBfX2Es
IGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDhfdCkgX19idWls
dGluX2FhcmNoNjRfc3FzaGxfbnY4aGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFzaGxxX25fczMyIChpbnQzMng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc2hsX252NHNp
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hscV9uX3M2NCAoaW50
NjR4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4
Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXNobF9udjJkaSAoX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnFzaGxxX25fdTggKHVpbnQ4eDE2X3QgX19hLCBjb25zdCBpbnQg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hsX252MTZx
aV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hscV9uX3Ux
NiAodWludDE2eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfdXFzaGxfbnY4aGlfdXVzIChfX2EsIF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cXNobHFfbl91MzIgKHVpbnQzMng0X3QgX19hLCBjb25zdCBpbnQg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hsX252NHNp
X3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxxX25fdTY0
ICh1aW50NjR4Ml90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF91cXNobF9udjJkaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnFzaGxiX25fczggKGludDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKGludDhfdCkgX19idWlsdGluX2FhcmNoNjRfc3FzaGxfbnFpIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNobGhfbl9zMTYgKGludDE2X3Qg
X19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNl90KSBfX2J1
aWx0aW5fYWFyY2g2NF9zcXNobF9uaGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Zxc2hsc19uX3MzMiAoaW50MzJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGludDMyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc2hsX25zaSAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGxkX25fczY0IChpbnQ2NF90IF9fYSwg
Y29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9z
cXNobF9uZGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hsYl9uX3U4
ICh1aW50OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF91cXNobF9ucWlfdXVzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNl90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnFzaGxoX25fdTE2ICh1aW50MTZfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXFzaGxfbmhpX3V1cyAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hsc19uX3UzMiAodWludDMyX3QgX19h
LCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3Vxc2hsX25zaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNo
bGRfbl91NjQgKHVpbnQ2NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cXNobF9uZGlfdXVzIChfX2EsIF9fYik7DQogICAgK30N
CiAgICArDQogICAgKy8qIHZxc2hsdSAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGx1X25fczgg
KGludDh4OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9zcXNobHVfbnY4cWlfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cXNobHVfbl9zMTYgKGludDE2eDRfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FzaGx1X252NGhpX3Vz
cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGx1X25fczMyIChp
bnQzMngyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3Nxc2hsdV9udjJzaV91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3Zxc2hsdV9uX3M2NCAoaW50NjR4MV90IF9fYSwgY29uc3QgaW50IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X3Nx
c2hsdV9uZGlfdXNzIChfX2FbMF0sIF9fYil9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnFzaGx1cV9uX3M4IChpbnQ4eDE2X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc2hsdV9udjE2cWlfdXNzIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx
Nng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNobHVxX25fczE2IChpbnQxNng4X3QgX19h
LCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3Nxc2hsdV9udjhoaV91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Zxc2hsdXFfbl9zMzIgKGludDMyeDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3FzaGx1X252NHNpX3VzcyAoX19hLCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGx1cV9uX3M2NCAoaW50NjR4Ml90IF9f
YSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF9zcXNobHVfbnYyZGlfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zx
c2hsdWJfbl9zOCAoaW50OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiAoaW50OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXNobHVfbnFpX3VzcyAoX19hLCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQx
Nl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaGx1aF9uX3MxNiAoaW50MTZfdCBfX2EsIGNv
bnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2X3QpIF9fYnVpbHRpbl9h
YXJjaDY0X3Nxc2hsdV9uaGlfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cXNobHVzX25fczMyIChpbnQzMl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiAoaW50MzJfdCkgX19idWlsdGluX2FhcmNoNjRfc3FzaGx1X25zaV91c3MgKF9f
YSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNobHVkX25fczY0IChpbnQ2NF90
IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9zcXNobHVfbmRpX3VzcyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2
cXNocm4gKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaHJuX25fczE2IChpbnQxNng4X3QgX19hLCBj
b25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfc3FzaHJuX252OGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Zxc2hybl9uX3MzMiAoaW50MzJ4NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAoaW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXNocm5fbnY0c2kg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaHJuX25fczY0IChpbnQ2
NHgyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMngy
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc2hybl9udjJkaSAoX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cXNocm5fbl91MTYgKHVpbnQxNng4X3QgX19hLCBjb25zdCBpbnQg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hybl9udjho
aV91dXMgKCBfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNocm5fbl91
MzIgKHVpbnQzMng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hybl9udjRzaV91dXMgKCBfX2EsIF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cXNocm5fbl91NjQgKHVpbnQ2NHgyX3QgX19hLCBjb25zdCBp
bnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hybl9u
djJkaV91dXMgKCBfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hybmhfbl9z
MTYgKGludDE2X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChp
bnQ4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc2hybl9uaGkgKF9fYSwgX19iKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Zxc2hybnNfbl9zMzIgKGludDMyX3QgX19hLCBjb25zdCBpbnQgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXNo
cm5fbnNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXNocm5kX25fczY0
IChpbnQ2NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
MzJfdCkgX19idWlsdGluX2FhcmNoNjRfc3FzaHJuX25kaSAoX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnFzaHJuaF9uX3UxNiAodWludDE2X3QgX19hLCBjb25zdCBpbnQgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hybl9uaGlfdXVz
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaHJuc19uX3UzMiAodWlu
dDMyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3Vxc2hybl9uc2lfdXVzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnFzaHJuZF9uX3U2NCAodWludDY0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc2hybl9uZGlfdXVzIChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZxc2hydW4gKi8NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Zxc2hydW5fbl9zMTYgKGludDE2eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKHVpbnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfc3FzaHJ1bl9udjhoaSAo
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaHJ1bl9uX3MzMiAoaW50
MzJ4NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2
eDRfdCkgX19idWlsdGluX2FhcmNoNjRfc3FzaHJ1bl9udjRzaSAoX19hLCBfX2IpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzaHJ1bl9uX3M2NCAoaW50NjR4Ml90IF9fYSwgY29uc3Qg
aW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDMyeDJfdCkgX19idWlsdGluX2Fh
cmNoNjRfc3FzaHJ1bl9udjJkaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
cXNocnVuaF9uX3MxNiAoaW50MTZfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGludDhfdCkgX19idWlsdGluX2FhcmNoNjRfc3FzaHJ1bl9uaGkgKF9fYSwgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc2hydW5zX25fczMyIChpbnQzMl90IF9fYSwg
Y29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZfdCkgX19idWlsdGlu
X2FhcmNoNjRfc3FzaHJ1bl9uc2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Zxc2hydW5kX25fczY0IChpbnQ2NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiAoaW50MzJfdCkgX19idWlsdGluX2FhcmNoNjRfc3FzaHJ1bl9uZGkgKF9fYSwg
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdnFzdWIgKi8NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zx
c3ViYl9zOCAoaW50OF90IF9fYSwgaW50OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAo
aW50OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcXN1YnFpIChfX2EsIF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cXN1YmhfczE2IChpbnQxNl90IF9fYSwgaW50MTZfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKGludDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nxc3ViaGkgKF9f
YSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc3Vic19zMzIgKGludDMyX3QgX19h
LCBpbnQzMl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJfdCkgX19idWlsdGlu
X2FhcmNoNjRfc3FzdWJzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFz
dWJkX3M2NCAoaW50NjRfdCBfX2EsIGludDY0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3Nxc3ViZGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3Zxc3ViYl91OCAodWludDhfdCBfX2EsIHVpbnQ4X3QgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuICh1aW50OF90KSBfX2J1aWx0aW5fYWFyY2g2NF91cXN1YnFpX3V1dSAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zxc3ViaF91MTYgKHVpbnQxNl90IF9fYSwg
dWludDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZfdCkgX19idWlsdGlu
X2FhcmNoNjRfdXFzdWJoaV91dXUgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cXN1YnNfdTMyICh1aW50MzJfdCBfX2EsIHVpbnQzMl90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAodWludDMyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Vxc3Vic2lfdXV1IChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnFzdWJkX3U2NCAodWludDY0X3QgX19hLCB1
aW50NjRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXFz
dWJkaV91dXUgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdnF0YmwyICovDQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZxdGJsMl9zOCAoaW50OHgxNngyX3QgdGFiLCB1aW50OHg4X3QgaWR4
KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAg
X19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFpIChfX28sIHRhYi52YWxbMF0s
IDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19v
LCB0YWIudmFsWzFdLCAxKTsNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdGJsM3Y4
cWkgKF9fbywgKGludDh4OF90KWlkeCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJs
Ml91OCAodWludDh4MTZ4Ml90IHRhYiwgdWludDh4OF90IGlkeCkNCiAgICArew0KICAgICsgIF9f
YnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJj
aDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDApOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLCAoaW50OHgx
Nl90KXRhYi52YWxbMV0sIDEpOw0KICAgICsgIHJldHVybiAodWludDh4OF90KV9fYnVpbHRpbl9h
YXJjaDY0X3RibDN2OHFpIChfX28sIChpbnQ4eDhfdClpZHgpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cXRibDJfcDggKHBvbHk4eDE2eDJfdCB0YWIsIHVpbnQ4eDhfdCBpZHgpDQogICAg
K3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFs
WzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjE2cWkg
KF9fbywgKGludDh4MTZfdCl0YWIudmFsWzFdLCAxKTsNCiAgICArICByZXR1cm4gKHBvbHk4eDhf
dClfX2J1aWx0aW5fYWFyY2g2NF90YmwzdjhxaSAoX19vLCAoaW50OHg4X3QpaWR4KTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YmwycV9zOCAoaW50OHgxNngyX3QgdGFiLCB1aW50OHgx
Nl90IGlkeCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLCAoaW50
OHgxNl90KXRhYi52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3Nl
dF9xcmVnb2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMV0sIDEpOw0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fYWFyY2g2NF90YmwzdjE2cWkgKF9fbywgKGludDh4MTZfdClpZHgpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgx
Nl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YmwycV91OCAodWludDh4MTZ4Ml90IHRhYiwg
dWludDh4MTZfdCBpZHgpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29p
IF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9f
bywgKGludDh4MTZfdCl0YWIudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFy
Y2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzFdLCAxKTsNCiAg
ICArICByZXR1cm4gKHVpbnQ4eDE2X3QpX19idWlsdGluX2FhcmNoNjRfdGJsM3YxNnFpIChfX28s
IChpbnQ4eDE2X3QpaWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJsMnFfcDgg
KHBvbHk4eDE2eDJfdCB0YWIsIHVpbnQ4eDE2X3QgaWR4KQ0KICAgICt7DQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWdvaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFswXSwgMCk7DQogICAgKyAg
X19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFpIChfX28sIChpbnQ4eDE2X3Qp
dGFiLnZhbFsxXSwgMSk7DQogICAgKyAgcmV0dXJuIChwb2x5OHgxNl90KV9fYnVpbHRpbl9hYXJj
aDY0X3RibDN2MTZxaSAoX19vLCAoaW50OHgxNl90KWlkeCk7DQogICAgK30NCiAgICArDQogICAg
Ky8qIHZxdGJsMyAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXRibDNfczggKGludDh4MTZ4M190IHRh
YiwgdWludDh4OF90IGlkeCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
Y2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAo
X19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9h
YXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMV0sIDEpOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50
OHgxNl90KXRhYi52YWxbMl0sIDIpOw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9x
dGJsM3Y4cWkgKF9fbywgKGludDh4OF90KWlkeCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZxdGJsM191OCAodWludDh4MTZ4M190IHRhYiwgdWludDh4OF90IGlkeCkNCiAgICArew0KICAg
ICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRp
bl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDAp
Ow0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAo
aW50OHgxNl90KXRhYi52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMl0sIDIpOw0KICAgICsg
IHJldHVybiAodWludDh4OF90KV9fYnVpbHRpbl9hYXJjaDY0X3F0YmwzdjhxaSAoX19vLCAoaW50
OHg4X3QpaWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YmwzX3A4IChwb2x5OHgx
NngzX3QgdGFiLCB1aW50OHg4X3QgaWR4KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdj
aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFsx
XSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChf
X28sIChpbnQ4eDE2X3QpdGFiLnZhbFsyXSwgMik7DQogICAgKyAgcmV0dXJuIChwb2x5OHg4X3Qp
X19idWlsdGluX2FhcmNoNjRfcXRibDN2OHFpIChfX28sIChpbnQ4eDhfdClpZHgpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cXRibDNxX3M4IChpbnQ4eDE2eDNfdCB0YWIsIHVpbnQ4eDE2
X3QgaWR4KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQog
ICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4
eDE2X3QpdGFiLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0
X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFsxXSwgMSk7DQogICAgKyAgX19v
ID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFi
LnZhbFsyXSwgMik7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3F0YmwzdjE2cWkg
KF9fbywgKGludDh4MTZfdClpZHgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0Ymwz
cV91OCAodWludDh4MTZ4M190IHRhYiwgdWludDh4MTZfdCBpZHgpDQogICAgK3sNCiAgICArICBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFy
Y2g2NF9zZXRfcXJlZ2NpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzBdLCAwKTsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjE2cWkgKF9fbywgKGludDh4
MTZfdCl0YWIudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRf
cXJlZ2NpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzJdLCAyKTsNCiAgICArICByZXR1
cm4gKHVpbnQ4eDE2X3QpX19idWlsdGluX2FhcmNoNjRfcXRibDN2MTZxaSAoX19vLCAoaW50OHgx
Nl90KWlkeCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXRibDNxX3A4IChwb2x5OHgx
NngzX3QgdGFiLCB1aW50OHgxNl90IGlkeCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
Y2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxb
MV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAo
X19vLCAoaW50OHgxNl90KXRhYi52YWxbMl0sIDIpOw0KICAgICsgIHJldHVybiAocG9seTh4MTZf
dClfX2J1aWx0aW5fYWFyY2g2NF9xdGJsM3YxNnFpIChfX28sIChpbnQ4eDE2X3QpaWR4KTsNCiAg
ICArfQ0KICAgICsNCiAgICArLyogdnF0Ymw0ICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJsNF9z
OCAoaW50OHgxNng0X3QgdGFiLCB1aW50OHg4X3QgaWR4KQ0KICAgICt7DQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFswXSwgMCk7DQogICAgKyAg
X19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3Qp
dGFiLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4
aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFsz
XSwgMyk7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3F0Ymw0djhxaSAoX19vLCAo
aW50OHg4X3QpaWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0Ymw0X3U4ICh1aW50
OHgxNng0X3QgdGFiLCB1aW50OHg4X3QgaWR4KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2Fh
cmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZh
bFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFp
IChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFszXSwgMyk7
DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3QpX19idWlsdGluX2FhcmNoNjRfcXRibDR2OHFpIChf
X28sIChpbnQ4eDhfdClpZHgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXRibDRfcDgg
KHBvbHk4eDE2eDRfdCB0YWIsIHVpbnQ4eDhfdCBpZHgpDQogICAgK3sNCiAgICArICBfX2J1aWx0
aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9z
ZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzBdLCAwKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0
YWIudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hp
djE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzJdLCAyKTsNCiAgICArICBfX28gPSBfX2J1
aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzNd
LCAzKTsNCiAgICArICByZXR1cm4gKHBvbHk4eDhfdClfX2J1aWx0aW5fYWFyY2g2NF9xdGJsNHY4
cWkgKF9fbywgKGludDh4OF90KWlkeCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJs
NHFfczggKGludDh4MTZ4NF90IHRhYiwgdWludDh4MTZfdCBpZHgpDQogICAgK3sNCiAgICArICBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFy
Y2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzBdLCAwKTsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4
MTZfdCl0YWIudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRf
cXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzJdLCAyKTsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIu
dmFsWzNdLCAzKTsNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcXRibDR2MTZxaSAo
X19vLCAoaW50OHgxNl90KWlkeCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXRibDRx
X3U4ICh1aW50OHgxNng0X3QgdGFiLCB1aW50OHgxNl90IGlkeCkNCiAgICArew0KICAgICsgIF9f
YnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJj
aDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDApOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgx
Nl90KXRhYi52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9x
cmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMl0sIDIpOw0KICAgICsgIF9fbyA9
IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52
YWxbM10sIDMpOw0KICAgICsgIHJldHVybiAodWludDh4MTZfdClfX2J1aWx0aW5fYWFyY2g2NF9x
dGJsNHYxNnFpIChfX28sIChpbnQ4eDE2X3QpaWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZxdGJsNHFfcDggKHBvbHk4eDE2eDRfdCB0YWIsIHVpbnQ4eDE2X3QgaWR4KQ0KICAgICt7
DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFsw
XSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChf
X28sIChpbnQ4eDE2X3QpdGFiLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2Fh
cmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFsyXSwgMik7DQog
ICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4
eDE2X3QpdGFiLnZhbFszXSwgMyk7DQogICAgKyAgcmV0dXJuIChwb2x5OHgxNl90KV9fYnVpbHRp
bl9hYXJjaDY0X3F0Ymw0djE2cWkgKF9fbywgKGludDh4MTZfdClpZHgpOw0KICAgICt9DQogICAg
Kw0KICAgICsNCiAgICArLyogdnF0YngyICovDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YngyX3M4IChpbnQ4eDhf
dCByLCBpbnQ4eDE2eDJfdCB0YWIsIHVpbnQ4eDhfdCBpZHgpDQogICAgK3sNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywgdGFiLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFpIChfX28sIHRhYi52YWxbMV0sIDEpOw0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF90Yng0djhxaSAociwgX19vLCAoaW50OHg4X3Qp
aWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YngyX3U4ICh1aW50OHg4X3Qgciwg
dWludDh4MTZ4Ml90IHRhYiwgdWludDh4OF90IGlkeCkNCiAgICArew0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3Nl
dF9xcmVnb2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDApOw0KICAgICsgIF9f
byA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRh
Yi52YWxbMV0sIDEpOw0KICAgICsgIHJldHVybiAodWludDh4OF90KV9fYnVpbHRpbl9hYXJjaDY0
X3RieDR2OHFpICgoaW50OHg4X3QpciwgX19vLA0KICAgICsJCQkJCQkoaW50OHg4X3QpaWR4KTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YngyX3A4IChwb2x5OHg4X3QgciwgcG9seTh4
MTZ4Ml90IHRhYiwgdWludDh4OF90IGlkeCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
b2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxb
MV0sIDEpOw0KICAgICsgIHJldHVybiAocG9seTh4OF90KV9fYnVpbHRpbl9hYXJjaDY0X3RieDR2
OHFpICgoaW50OHg4X3QpciwgX19vLA0KICAgICsJCQkJCQkoaW50OHg4X3QpaWR4KTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YngycV9zOCAoaW50OHgxNl90IHIsIGludDh4MTZ4Ml90
IHRhYiwgdWludDh4MTZfdCBpZHgpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjE2
cWkgKF9fbywgdGFiLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWdvaXYxNnFpIChfX28sIHRhYi52YWxbMV0sIDEpOw0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF90Yng0djE2cWkgKHIsIF9fbywgKGludDh4MTZfdClpZHgpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YngycV91OCAodWludDh4MTZfdCByLCB1aW50OHgxNngy
X3QgdGFiLCB1aW50OHgxNl90IGlkeCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2
MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMV0s
IDEpOw0KICAgICsgIHJldHVybiAodWludDh4MTZfdClfX2J1aWx0aW5fYWFyY2g2NF90Yng0djE2
cWkgKChpbnQ4eDE2X3QpciwgX19vLA0KICAgICsJCQkJCQkgIChpbnQ4eDE2X3QpaWR4KTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJ4MnFfcDggKHBvbHk4eDE2X3QgciwgcG9seTh4
MTZ4Ml90IHRhYiwgdWludDh4MTZfdCBpZHgpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJl
Z29pdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFs
WzFdLCAxKTsNCiAgICArICByZXR1cm4gKHBvbHk4eDE2X3QpX19idWlsdGluX2FhcmNoNjRfdGJ4
NHYxNnFpICgoaW50OHgxNl90KXIsIF9fbywNCiAgICArCQkJCQkJICAoaW50OHgxNl90KWlkeCk7
DQogICAgK30NCiAgICArDQogICAgKy8qIHZxdGJ4MyAqLw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJ4M19zOCAo
aW50OHg4X3QgciwgaW50OHgxNngzX3QgdGFiLCB1aW50OHg4X3QgaWR4KQ0KICAgICt7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIHRhYi52YWxbMF0sIDApOw0KICAgICsgIF9f
byA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCB0YWIudmFsWzFdLCAx
KTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjE2cWkgKF9fbywg
dGFiLnZhbFsyXSwgMik7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3F0Yngzdjhx
aSAociwgX19vLCAoaW50OHg4X3QpaWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0
YngzX3U4ICh1aW50OHg4X3QgciwgdWludDh4MTZ4M190IHRhYiwgdWludDh4OF90IGlkeCkNCiAg
ICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9
IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52
YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZx
aSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRp
bl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMl0sIDIp
Ow0KICAgICsgIHJldHVybiAodWludDh4OF90KV9fYnVpbHRpbl9hYXJjaDY0X3F0YngzdjhxaSAo
KGludDh4OF90KXIsIF9fbywNCiAgICArCQkJCQkJIChpbnQ4eDhfdClpZHgpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cXRieDNfcDggKHBvbHk4eDhfdCByLCBwb2x5OHgxNngzX3QgdGFi
LCB1aW50OHg4X3QgaWR4KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9j
aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChf
X28sIChpbnQ4eDE2X3QpdGFiLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2Fh
cmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFsxXSwgMSk7DQog
ICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4
eDE2X3QpdGFiLnZhbFsyXSwgMik7DQogICAgKyAgcmV0dXJuIChwb2x5OHg4X3QpX19idWlsdGlu
X2FhcmNoNjRfcXRieDN2OHFpICgoaW50OHg4X3QpciwgX19vLA0KICAgICsJCQkJCQkgKGludDh4
OF90KWlkeCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJ4M3FfczggKGludDh4MTZf
dCByLCBpbnQ4eDE2eDNfdCB0YWIsIHVpbnQ4eDE2X3QgaWR4KQ0KICAgICt7DQogICAgKyAgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIHRhYi52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCB0YWIudmFsWzFdLCAxKTsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjE2cWkgKF9fbywgdGFiLnZh
bFsyXSwgMik7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3F0YngzdjE2cWkgKHIs
IF9fbywgKGludDh4MTZfdClpZHgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0Yngz
cV91OCAodWludDh4MTZfdCByLCB1aW50OHgxNngzX3QgdGFiLCB1aW50OHgxNl90IGlkeCkNCiAg
ICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9
IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52
YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZx
aSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRp
bl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMl0sIDIp
Ow0KICAgICsgIHJldHVybiAodWludDh4MTZfdClfX2J1aWx0aW5fYWFyY2g2NF9xdGJ4M3YxNnFp
ICgoaW50OHgxNl90KXIsIF9fbywNCiAgICArCQkJCQkJICAgKGludDh4MTZfdClpZHgpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHgxNl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0YngzcV9wOCAocG9seTh4MTZfdCByLCBwb2x5OHgx
NngzX3QgdGFiLCB1aW50OHgxNl90IGlkeCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
Y2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxb
MV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAo
X19vLCAoaW50OHgxNl90KXRhYi52YWxbMl0sIDIpOw0KICAgICsgIHJldHVybiAocG9seTh4MTZf
dClfX2J1aWx0aW5fYWFyY2g2NF9xdGJ4M3YxNnFpICgoaW50OHgxNl90KXIsIF9fbywNCiAgICAr
CQkJCQkJICAgKGludDh4MTZfdClpZHgpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2cXRieDQg
Ki8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0Yng0X3M4IChpbnQ4eDhfdCByLCBpbnQ4eDE2eDRfdCB0
YWIsIHVpbnQ4eDhfdCBpZHgpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1k
X3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkg
KF9fbywgdGFiLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0
X3FyZWd4aXYxNnFpIChfX28sIHRhYi52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRp
bl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCB0YWIudmFsWzJdLCAyKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgdGFiLnZhbFszXSwg
Myk7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3F0Yng0djhxaSAociwgX19vLCAo
aW50OHg4X3QpaWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnF0Yng0X3U4ICh1aW50
OHg4X3QgciwgdWludDh4MTZ4NF90IHRhYiwgdWludDh4OF90IGlkeCkNCiAgICArew0KICAgICsg
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9h
YXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMF0sIDApOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50
OHgxNl90KXRhYi52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3Nl
dF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KXRhYi52YWxbMl0sIDIpOw0KICAgICsgIF9f
byA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KXRh
Yi52YWxbM10sIDMpOw0KICAgICsgIHJldHVybiAodWludDh4OF90KV9fYnVpbHRpbl9hYXJjaDY0
X3F0Yng0djhxaSAoKGludDh4OF90KXIsIF9fbywNCiAgICArCQkJCQkJIChpbnQ4eDhfdClpZHgp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5
OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cXRieDRfcDggKHBvbHk4eDhfdCByLCBwb2x5
OHgxNng0X3QgdGFiLCB1aW50OHg4X3QgaWR4KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2Fh
cmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZh
bFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFp
IChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpdGFiLnZhbFszXSwgMyk7
DQogICAgKyAgcmV0dXJuIChwb2x5OHg4X3QpX19idWlsdGluX2FhcmNoNjRfcXRieDR2OHFpICgo
aW50OHg4X3QpciwgX19vLA0KICAgICsJCQkJCQkgKGludDh4OF90KWlkeCk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZxdGJ4NHFfczggKGludDh4MTZfdCByLCBpbnQ4eDE2eDRfdCB0YWIs
IHVpbnQ4eDE2X3QgaWR4KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94
aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChf
X28sIHRhYi52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9x
cmVneGl2MTZxaSAoX19vLCB0YWIudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgdGFiLnZhbFsyXSwgMik7DQogICAgKyAgX19v
ID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIHRhYi52YWxbM10sIDMp
Ow0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9xdGJ4NHYxNnFpIChyLCBfX28sIChp
bnQ4eDE2X3QpaWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJ4NHFfdTggKHVp
bnQ4eDE2X3QgciwgdWludDh4MTZ4NF90IHRhYiwgdWludDh4MTZfdCBpZHgpDQogICAgK3sNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0
aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzBdLCAw
KTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywg
KGludDh4MTZfdCl0YWIudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzJdLCAyKTsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZf
dCl0YWIudmFsWzNdLCAzKTsNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2X3QpX19idWlsdGluX2Fh
cmNoNjRfcXRieDR2MTZxaSAoKGludDh4MTZfdClyLCBfX28sDQogICAgKwkJCQkJCSAgIChpbnQ4
eDE2X3QpaWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZxdGJ4NHFfcDggKHBvbHk4
eDE2X3QgciwgcG9seTh4MTZ4NF90IHRhYiwgdWludDh4MTZfdCBpZHgpDQogICAgK3sNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzBdLCAwKTsN
CiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGlu
dDh4MTZfdCl0YWIudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9z
ZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0YWIudmFsWzJdLCAyKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCl0
YWIudmFsWzNdLCAzKTsNCiAgICArICByZXR1cm4gKHBvbHk4eDE2X3QpX19idWlsdGluX2FhcmNo
NjRfcXRieDR2MTZxaSAoKGludDh4MTZfdClyLCBfX28sDQogICAgKwkJCQkJCSAgIChpbnQ4eDE2
X3QpaWR4KTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdnJiaXQgICovDQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cmJpdF9wOCAocG9seTh4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAocG9s
eTh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9yYml0djhxaSAoKGludDh4OF90KSBfX2EpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZyYml0X3M4IChpbnQ4eDhfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmJpdHY4cWkgKF9fYSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyYml0X3U4ICh1aW50OHg4X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuICh1aW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3JiaXR2OHFpICgoaW50OHg4X3Qp
IF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmJpdHFfcDggKHBvbHk4eDE2X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2
NF9yYml0djE2cWkgKChpbnQ4eDE2X3QpX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnJiaXRxX3M4IChpbnQ4eDE2X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3JiaXR2MTZxaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zy
Yml0cV91OCAodWludDh4MTZfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3JiaXR2MTZxaSAoKGludDh4MTZfdCkgX19hKTsNCiAgICAr
fQ0KICAgICsNCiAgICArLyogdnJlY3BlICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWNwZV91
MzIgKHVpbnQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4Ml90KSBf
X2J1aWx0aW5fYWFyY2g2NF91cmVjcGV2MnNpICgoaW50MzJ4Ml90KSBfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJlY3BlcV91MzIgKHVpbnQzMng0X3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF91cmVjcGV2NHNpICgo
aW50MzJ4NF90KSBfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVjcGVzX2YzMiAo
ZmxvYXQzMl90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9m
cmVjcGVzZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlY3BlZF9mNjQgKGZs
b2F0NjRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZnJl
Y3BlZGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlY3BlX2YzMiAoZmxv
YXQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zy
ZWNwZXYyc2YgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlY3BlX2Y2NCAo
ZmxvYXQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDFfdCkgeyB2
cmVjcGVkX2Y2NCAodmdldF9sYW5lX2Y2NCAoX19hLCAwKSkgfTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVjcGVxX2YzMiAoZmxvYXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZyZWNwZXY0c2YgKF9fYSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJlY3BlcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mcmVjcGV2MmRmIChfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICsvKiB2cmVjcHMgICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVjcHNzX2YzMiAo
ZmxvYXQzMl90IF9fYSwgZmxvYXQzMl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9mcmVjcHNzZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cmVjcHNkX2Y2NCAoZmxvYXQ2NF90IF9fYSwgZmxvYXQ2NF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mcmVjcHNkZiAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWNwc19mMzIgKGZsb2F0MzJ4Ml90IF9fYSwgZmxv
YXQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zy
ZWNwc3Yyc2YgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVjcHNf
ZjY0IChmbG9hdDY0eDFfdCBfX2EsIGZsb2F0NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiAoZmxvYXQ2NHgxX3QpIHsgdnJlY3BzZF9mNjQgKHZnZXRfbGFuZV9mNjQgKF9fYSwgMCks
DQogICAgKwkJCQkgICAgICB2Z2V0X2xhbmVfZjY0IChfX2IsIDApKSB9Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZyZWNwc3FfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90
IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mcmVjcHN2NHNm
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlY3BzcV9mNjQgKGZs
b2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X2ZyZWNwc3YyZGYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArLyogdnJlY3B4ICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlY3B4c19mMzIgKGZsb2F0MzJf
dCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZnJlY3B4c2Yg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZWNweGRfZjY0IChmbG9hdDY0X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZyZWNweGRmIChf
X2EpOw0KICAgICt9DQogICAgKw0KICAgICsNCiAgICArLyogdnJldiAgKi8NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZyZXYxNl9wOCAocG9seTh4OF90IGEpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX3NodWZmbGUgKGEsICh1aW50OHg4X3QpIHsgMSwgMCwgMywgMiwgNSwgNCwgNywgNiB9
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmV2MTZfczggKGludDh4OF90IGEpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKGEsICh1aW50OHg4X3QpIHsgMSwg
MCwgMywgMiwgNSwgNCwgNywgNiB9KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjE2
X3U4ICh1aW50OHg4X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZs
ZSAoYSwgKHVpbnQ4eDhfdCkgeyAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2IH0pOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHgxNl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJldjE2cV9wOCAocG9seTh4MTZfdCBhKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChhLA0KICAgICsgICAgICAodWludDh4MTZfdCkg
eyAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2LCA5LCA4LCAxMSwgMTAsIDEzLCAxMiwgMTUsIDE0IH0p
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4
eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmV2MTZxX3M4IChpbnQ4eDE2X3QgYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwNCiAgICArICAgICAgKHVp
bnQ4eDE2X3QpIHsgMSwgMCwgMywgMiwgNSwgNCwgNywgNiwgOSwgOCwgMTEsIDEwLCAxMywgMTIs
IDE1LCAxNCB9KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZXYxNnFfdTggKHVpbnQ4
eDE2X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwNCiAg
ICArICAgICAgKHVpbnQ4eDE2X3QpIHsgMSwgMCwgMywgMiwgNSwgNCwgNywgNiwgOSwgOCwgMTEs
IDEwLCAxMywgMTIsIDE1LCAxNCB9KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjMy
X3A4IChwb2x5OHg4X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZs
ZSAoYSwgKHVpbnQ4eDhfdCkgeyAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0IH0pOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJldjMyX3AxNiAocG9seTE2eDRfdCBhKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChhLCAodWludDE2eDRfdCkgeyAxLCAwLCAzLCAy
IH0pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZXYzMl9zOCAoaW50OHg4X3QgYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwgKHVpbnQ4eDhfdCkgeyAz
LCAyLCAxLCAwLCA3LCA2LCA1LCA0IH0pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmV2
MzJfczE2IChpbnQxNng0X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1
ZmZsZSAoYSwgKHVpbnQxNng0X3QpIHsgMSwgMCwgMywgMiB9KTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnJldjMyX3U4ICh1aW50OHg4X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fc2h1ZmZsZSAoYSwgKHVpbnQ4eDhfdCkgeyAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0
IH0pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjMyX3UxNiAodWludDE2eDRfdCBh
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChhLCAodWludDE2eDRf
dCkgeyAxLCAwLCAzLCAyIH0pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBwb2x5OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjMycV9w
OCAocG9seTh4MTZfdCBhKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxl
IChhLA0KICAgICsgICAgICAodWludDh4MTZfdCkgeyAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAx
MSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyIH0pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJldjMycV9wMTYgKHBvbHkxNng4X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fc2h1ZmZsZSAoYSwgKHVpbnQxNng4X3QpIHsgMSwgMCwgMywgMiwgNSwgNCwgNywgNiB9
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjMycV9zOCAoaW50OHgxNl90IGEpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKGEsDQogICAgKyAgICAgICh1
aW50OHgxNl90KSB7IDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQsIDExLCAxMCwgOSwgOCwgMTUsIDE0
LCAxMywgMTIgfSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZXYzMnFfczE2IChpbnQx
Nng4X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwgKHVp
bnQxNng4X3QpIHsgMSwgMCwgMywgMiwgNSwgNCwgNywgNiB9KTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZyZXYzMnFfdTggKHVpbnQ4eDE2X3QgYSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwNCiAgICArICAgICAgKHVpbnQ4eDE2X3QpIHsgMywgMiwg
MSwgMCwgNywgNiwgNSwgNCwgMTEsIDEwLCA5LCA4LCAxNSwgMTQsIDEzLCAxMiB9KTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZyZXYzMnFfdTE2ICh1aW50MTZ4OF90IGEpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKGEsICh1aW50MTZ4OF90KSB7IDEsIDAs
IDMsIDIsIDUsIDQsIDcsIDYgfSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjY0
X2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9z
aHVmZmxlIChfX2EsICh1aW50MTZ4NF90KSB7IDMsIDIsIDEsIDAgfSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJldjY0X2YzMiAoZmxvYXQzMngyX3QgYSkNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwgKHVpbnQzMngyX3QpIHsgMSwgMCB9KTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjY0X3A4IChwb2x5OHg4X3QgYSkNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwgKHVpbnQ4eDhfdCkgeyA3LCA2LCA1
LCA0LCAzLCAyLCAxLCAwIH0pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBwb2x5MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjY0X3Ax
NiAocG9seTE2eDRfdCBhKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxl
IChhLCAodWludDE2eDRfdCkgeyAzLCAyLCAxLCAwIH0pOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZyZXY2NF9zOCAoaW50OHg4X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fc2h1ZmZsZSAoYSwgKHVpbnQ4eDhfdCkgeyA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwIH0pOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmV2NjRfczE2IChpbnQxNng0X3QgYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwgKHVpbnQxNng0X3QpIHsgMywg
MiwgMSwgMCB9KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjY0X3MzMiAoaW50MzJ4
Ml90IGEpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKGEsICh1aW50
MzJ4Ml90KSB7IDEsIDAgfSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZXY2NF91OCAo
dWludDh4OF90IGEpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKGEs
ICh1aW50OHg4X3QpIHsgNywgNiwgNSwgNCwgMywgMiwgMSwgMCB9KTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZyZXY2NF91MTYgKHVpbnQxNng0X3QgYSkNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwgKHVpbnQxNng0X3QpIHsgMywgMiwgMSwgMCB9KTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMy
eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZyZXY2NF91MzIgKHVpbnQzMngyX3QgYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwgKHVpbnQzMngyX3QpIHsg
MSwgMCB9KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmV2NjRxX2YxNiAoZmxvYXQx
Nng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2Es
ICh1aW50MTZ4OF90KSB7IDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQgfSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJldjY0cV9mMzIgKGZsb2F0MzJ4NF90IGEpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKGEsICh1aW50MzJ4NF90KSB7IDEsIDAsIDMsIDIg
fSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmV2NjRxX3A4IChwb2x5OHgxNl90IGEp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKGEsDQogICAgKyAgICAg
ICh1aW50OHgxNl90KSB7IDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwgMTMsIDEyLCAx
MSwgMTAsIDksIDggfSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHBvbHkxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmV2NjRxX3AxNiAo
cG9seTE2eDhfdCBhKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChh
LCAodWludDE2eDhfdCkgeyAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0IH0pOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cmV2NjRxX3M4IChpbnQ4eDE2X3QgYSkNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoYSwNCiAgICArICAgICAgKHVpbnQ4eDE2X3QpIHsgNywg
NiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCB9KTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjY0cV9zMTYgKGludDE2eDhfdCBhKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChhLCAodWludDE2eDhfdCkgeyAzLCAy
LCAxLCAwLCA3LCA2LCA1LCA0IH0pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmV2NjRx
X3MzMiAoaW50MzJ4NF90IGEpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKGEsICh1aW50MzJ4NF90KSB7IDEsIDAsIDMsIDIgfSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cmV2NjRxX3U4ICh1aW50OHgxNl90IGEpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX3NodWZmbGUgKGEsDQogICAgKyAgICAgICh1aW50OHgxNl90KSB7IDcsIDYsIDUs
IDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDggfSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cmV2NjRxX3UxNiAodWludDE2eDhfdCBhKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChhLCAodWludDE2eDhfdCkgeyAzLCAyLCAx
LCAwLCA3LCA2LCA1LCA0IH0pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJldjY0cV91
MzIgKHVpbnQzMng0X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZs
ZSAoYSwgKHVpbnQzMng0X3QpIHsgMSwgMCwgMywgMiB9KTsNCiAgICArfQ0KICAgICsNCiAgICAr
LyogdnJuZCAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs
b2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZF9mMzIgKGZsb2F0MzJ4Ml90IF9f
YSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9idHJ1bmN2MnNmIChf
X2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZybmRfZjY0IChmbG9hdDY0eDFfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdnNldF9sYW5lX2Y2NCAoX19idWlsdGluX3RydW5j
ICh2Z2V0X2xhbmVfZjY0IChfX2EsIDApKSwgX19hLCAwKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cm5kcV9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9idHJ1bmN2NHNmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZybmRxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2J0cnVuY3YyZGYgKF9fYSk7DQogICAgK30NCiAgICArDQog
ICAgKy8qIHZybmRhICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cm5kYV9mMzIgKGZsb2F0MzJ4
Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yb3VuZHYy
c2YgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZGFfZjY0IChmbG9hdDY0
eDFfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gdnNldF9sYW5lX2Y2NCAoX19idWlsdGlu
X3JvdW5kICh2Z2V0X2xhbmVfZjY0IChfX2EsIDApKSwgX19hLCAwKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cm5kYXFfZjMyIChmbG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcm91bmR2NHNmIChfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZybmRhcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yb3VuZHYyZGYgKF9fYSk7DQogICAgK30NCiAg
ICArDQogICAgKy8qIHZybmRpICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cm5kaV9mMzIgKGZs
b2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9u
ZWFyYnlpbnR2MnNmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZybmRpX2Y2
NCAoZmxvYXQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZzZXRfbGFuZV9mNjQg
KF9fYnVpbHRpbl9uZWFyYnlpbnQgKHZnZXRfbGFuZV9mNjQgKF9fYSwgMCkpLCBfX2EsIDApOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMy
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZybmRpcV9mMzIgKGZsb2F0MzJ4NF90IF9fYSkN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9uZWFyYnlpbnR2NHNmIChf
X2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZybmRpcV9mNjQgKGZsb2F0NjR4Ml90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9uZWFyYnlpbnR2
MmRmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2cm5kbSAgKi8NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnJuZG1fZjMyIChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfZmxvb3J2MnNmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZybmRtX2Y2NCAoZmxvYXQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIHZzZXRfbGFuZV9mNjQgKF9fYnVpbHRpbl9mbG9vciAodmdldF9sYW5lX2Y2NCAoX19hLCAw
KSksIF9fYSwgMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZG1xX2YzMiAoZmxv
YXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zs
b29ydjRzZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cm5kbXFfZjY0IChm
bG9hdDY0eDJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
Zmxvb3J2MmRmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2cm5kbiAgKi8NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJuZG5fZjMyIChmbG9hdDMyeDJfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZnJpbnRudjJzZiAoX19hKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2cm5kbl9mNjQgKGZsb2F0NjR4MV90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiAoZmxvYXQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9mcmludG5kZiAoX19h
WzBdKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZG5xX2YzMiAoZmxvYXQzMng0
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZyaW50bnY0
c2YgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZG5xX2Y2NCAoZmxvYXQ2
NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZyaW50
bnYyZGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZybmRwICAqLw0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cm5kcF9mMzIgKGZsb2F0MzJ4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jZWlsdjJzZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgxX3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cm5kcF9mNjQgKGZsb2F0NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJl
dHVybiB2c2V0X2xhbmVfZjY0IChfX2J1aWx0aW5fY2VpbCAodmdldF9sYW5lX2Y2NCAoX19hLCAw
KSksIF9fYSwgMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZHBxX2YzMiAoZmxv
YXQzMng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Nl
aWx2NHNmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZybmRwcV9mNjQgKGZs
b2F0NjR4Ml90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9j
ZWlsdjJkZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdnJuZHggICovDQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZybmR4X2YzMiAoZmxvYXQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JpbnR2MnNmIChfX2EpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDFfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZybmR4X2Y2NCAoZmxvYXQ2NHgxX3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIHZzZXRfbGFuZV9mNjQgKF9fYnVpbHRpbl9yaW50ICh2Z2V0X2xhbmVfZjY0IChfX2Es
IDApKSwgX19hLCAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cm5keHFfZjMyIChm
bG9hdDMyeDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
cmludHY0c2YgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZHhxX2Y2NCAo
ZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3JpbnR2MmRmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2cnNobCAqLw0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cnNobF9zOCAoaW50OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcnNobHY4cWkgKF9f
YSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzaGxfczE2IChpbnQxNng0X3Qg
X19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X3Nyc2hsdjRoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cnNobF9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfc3JzaGx2MnNpIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc2hsX3M2NCAoaW50NjR4MV90
IF9fYSwgaW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSB7
X19idWlsdGluX2FhcmNoNjRfc3JzaGxkaSAoX19hWzBdLCBfX2JbMF0pfTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJzaGxfdTggKHVpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cnNobHY4cWlfdXVzIChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNobF91MTYgKHVpbnQxNng0X3Qg
X19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X3Vyc2hsdjRoaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Zyc2hsX3UzMiAodWludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXJzaGx2MnNpX3V1cyAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzaGxfdTY0ICh1aW50NjR4MV90IF9fYSwgaW50NjR4
MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkge19fYnVpbHRpbl9h
YXJjaDY0X3Vyc2hsZGlfdXVzIChfX2FbMF0sIF9fYlswXSl9Ow0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cnNobHFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfc3JzaGx2MTZxaSAo
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNobHFfczE2IChpbnQxNng4
X3QgX19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3Qp
IF9fYnVpbHRpbl9hYXJjaDY0X3Nyc2hsdjhoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cnNobHFfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nyc2hsdjRz
aSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNobHFfczY0IChpbnQ2
NHgyX3QgX19hLCBpbnQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgy
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nyc2hsdjJkaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnJzaGxxX3U4ICh1aW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cnNobHYxNnFpX3V1cyAo
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzaGxxX3UxNiAodWludDE2
eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfdXJzaGx2OGhpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnJzaGxxX3UzMiAodWludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXJzaGx2NHNpX3V1cyAoX19hLCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzaGxxX3U2NCAodWludDY0eDJfdCBfX2Es
IGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
dXJzaGx2MmRpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzaGxk
X3M2NCAoaW50NjRfdCBfX2EsIGludDY0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X3Nyc2hsZGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cnNobGRfdTY0ICh1aW50NjRfdCBfX2EsIGludDY0X3QgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vyc2hsZGlfdXVzIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgKy8qIHZyc2hyICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc2hyX25fczgg
KGludDh4OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nyc2hyX252OHFpIChfX2EsIF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Zyc2hyX25fczE2IChpbnQxNng0X3QgX19hLCBjb25zdCBpbnQg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0
X3Nyc2hyX252NGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc2hy
X25fczMyIChpbnQzMngyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nyc2hyX252MnNpIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0
eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc2hyX25fczY0IChpbnQ2NHgxX3QgX19hLCBj
b25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgxX3QpIHtfX2J1aWx0
aW5fYWFyY2g2NF9zcnNocl9uZGkgKF9fYVswXSwgX19iKX07DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3Zyc2hyX25fdTggKHVpbnQ4eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXJzaHJfbnY4cWlfdXVzIChfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNocl9uX3UxNiAodWludDE2eDRfdCBf
X2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfdXJzaHJfbnY0aGlfdXVzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cnNocl9uX3UzMiAodWludDMyeDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXJzaHJfbnYyc2lfdXVzIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2
NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNocl9uX3U2NCAodWludDY0eDFfdCBfX2Es
IGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIHtfX2J1
aWx0aW5fYWFyY2g2NF91cnNocl9uZGlfdXVzIChfX2FbMF0sIF9fYil9Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cnNocnFfbl9zOCAoaW50OHgxNl90IF9fYSwgY29uc3QgaW50IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcnNo
cl9udjE2cWkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzaHJxX25f
czE2IChpbnQxNng4X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nyc2hyX252OGhpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc2hycV9uX3MzMiAoaW50MzJ4NF90IF9fYSwgY29u
c3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4NF90KSBfX2J1aWx0aW5f
YWFyY2g2NF9zcnNocl9udjRzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2cnNocnFfbl9zNjQgKGludDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGludDY0eDJfdCkgX19idWlsdGluX2FhcmNoNjRfc3JzaHJfbnYyZGkgKF9f
YSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc2hycV9uX3U4ICh1aW50OHgx
Nl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF91cnNocl9udjE2cWlfdXVzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cnNocnFfbl91MTYgKHVpbnQxNng4X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vyc2hyX252OGhpX3V1cyAoX19h
LCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzaHJxX25fdTMyICh1aW50MzJ4
NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF91cnNocl9udjRzaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3Zyc2hycV9uX3U2NCAodWludDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXJzaHJfbnYyZGlfdXVzIChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNocmRfbl9zNjQgKGludDY0X3QgX19h
LCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3Nyc2hyX25kaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc2hyZF9u
X3U2NCAodWludDY0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3Vyc2hyX25kaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArLyogdnJzcXJ0ZS4gICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDMyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNxcnRlc19mMzIg
KGZsb2F0MzJfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
cnNxcnRlc2YgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGZsb2F0NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc3FydGVkX2Y2NCAo
ZmxvYXQ2NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9y
c3FydGVkZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNxcnRlX2YzMiAo
ZmxvYXQzMngyX3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3JzcXJ0ZXYyc2YgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzcXJ0ZV9m
NjQgKGZsb2F0NjR4MV90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiAoZmxvYXQ2NHgxX3Qp
IHt2cnNxcnRlZF9mNjQgKHZnZXRfbGFuZV9mNjQgKF9fYSwgMCkpfTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cnNxcnRlcV9mMzIgKGZsb2F0MzJ4NF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yc3FydGV2NHNmIChfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Zyc3FydGVxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JzcXJ0ZXYyZGYgKF9fYSk7DQogICAg
K30NCiAgICArDQogICAgKy8qIHZyc3FydHMuICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzcXJ0
c3NfZjMyIChmbG9hdDMyX3QgX19hLCBmbG9hdDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JzcXJ0c3NmIChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3Zyc3FydHNkX2Y2NCAoZmxvYXQ2NF90IF9fYSwgZmxvYXQ2NF90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yc3FydHNkZiAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc3FydHNfZjMyIChmbG9hdDMyeDJf
dCBfX2EsIGZsb2F0MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9yc3FydHN2MnNmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4MV90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJzcXJ0c19mNjQgKGZsb2F0NjR4MV90IF9fYSwgZmxvYXQ2NHgxX3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDFfdCkge3Zyc3FydHNkX2Y2NCAodmdldF9sYW5lX2Y2
NCAoX19hLCAwKSwNCiAgICArCQkJCSAgICAgIHZnZXRfbGFuZV9mNjQgKF9fYiwgMCkpfTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNxcnRzcV9mMzIgKGZsb2F0MzJ4NF90IF9fYSwg
ZmxvYXQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3JzcXJ0c3Y0c2YgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNx
cnRzcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JzcXJ0c3YyZGYgKF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArLyogdnJzcmEgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzcmFfbl9zOCAo
aW50OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zcnNyYV9udjhxaSAoX19hLCBf
X2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc3JhX25fczE2IChpbnQxNng0
X3QgX19hLCBpbnQxNng0X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Nyc3JhX252NGhpIChfX2EsIF9fYiwg
X19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzcmFfbl9zMzIgKGludDMyeDJfdCBf
X2EsIGludDMyeDJfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4g
KGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfc3JzcmFfbnYyc2kgKF9fYSwgX19iLCBfX2Mp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2
NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNyYV9uX3M2NCAoaW50NjR4MV90IF9fYSwg
aW50NjR4MV90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
NjR4MV90KSB7X19idWlsdGluX2FhcmNoNjRfc3JzcmFfbmRpIChfX2FbMF0sIF9fYlswXSwgX19j
KX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc3JhX25fdTggKHVpbnQ4eDhfdCBfX2Es
IHVpbnQ4eDhfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfdXJzcmFfbnY4cWlfdXV1cyAoX19hLCBfX2IsIF9fYyk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2cnNyYV9uX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0
X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X3Vyc3JhX252NGhpX3V1dXMgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnJzcmFfbl91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYiwg
Y29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91
cnNyYV9udjJzaV91dXVzIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Zyc3JhX25fdTY0ICh1aW50NjR4MV90IF9fYSwgdWludDY0eDFfdCBfX2IsIGNvbnN0IGlu
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFy
Y2g2NF91cnNyYV9uZGlfdXV1cyAoX19hWzBdLCBfX2JbMF0sIF9fYyl9Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cnNyYXFfbl9zOCAoaW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYiwg
Y29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHgxNl90KSBfX2J1aWx0
aW5fYWFyY2g2NF9zcnNyYV9udjE2cWkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cnNyYXFfbl9zMTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IsIGNv
bnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfc3JzcmFfbnY4aGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cnNyYXFfbl9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IsIGNvbnN0
IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRfdCkgX19idWlsdGluX2Fh
cmNoNjRfc3JzcmFfbnY0c2kgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2cnNyYXFfbl9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2IsIGNvbnN0IGlu
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDJfdCkgX19idWlsdGluX2FhcmNo
NjRfc3JzcmFfbnYyZGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnJzcmFxX25fdTggKHVpbnQ4eDE2X3QgX19hLCB1aW50OHgxNl90IF9fYiwgY29uc3QgaW50
IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cnNyYV9udjE2
cWlfdXV1cyAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNy
YXFfbl91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYiwgY29uc3QgaW50IF9fYykN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91cnNyYV9udjhoaV91dXVz
IChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zyc3JhcV9uX3Uz
MiAodWludDMyeDRfdCBfX2EsIHVpbnQzMng0X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vyc3JhX252NHNpX3V1dXMgKF9fYSwg
X19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzcmFxX25fdTY0ICh1aW50
NjR4Ml90IF9fYSwgdWludDY0eDJfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXJzcmFfbnYyZGlfdXV1cyAoX19hLCBfX2IsIF9f
Yyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNyYWRfbl9zNjQgKGludDY0X3QgX19hLCBp
bnQ2NF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9zcnNyYV9uZGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3Zyc3JhZF9uX3U2NCAodWludDY0X3QgX19hLCB1aW50NjRfdCBfX2IsIGNvbnN0IGlu
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXJzcmFfbmRp
X3V1dXMgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICsjcHJhZ21hIEdDQyBw
dXNoX29wdGlvbnMNCiAgICArI3ByYWdtYSBHQ0MgdGFyZ2V0ICgiK25vdGhpbmcrY3J5cHRvIikN
CiAgICArDQogICAgKy8qIHZzaGExICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGExY3FfdTMy
ICh1aW50MzJ4NF90IGhhc2hfYWJjZCwgdWludDMyX3QgaGFzaF9lLCB1aW50MzJ4NF90IHdrKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NyeXB0b19zaGExY3Y0c2lf
dXV1dSAoaGFzaF9hYmNkLCBoYXNoX2UsIHdrKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzaGExbXFfdTMyICh1aW50MzJ4NF90IGhhc2hfYWJjZCwgdWludDMyX3QgaGFzaF9lLCB1aW50
MzJ4NF90IHdrKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NyeXB0
b19zaGExbXY0c2lfdXV1dSAoaGFzaF9hYmNkLCBoYXNoX2UsIHdrKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZzaGExcHFfdTMyICh1aW50MzJ4NF90IGhhc2hfYWJjZCwgdWludDMyX3Qg
aGFzaF9lLCB1aW50MzJ4NF90IHdrKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X2NyeXB0b19zaGExcHY0c2lfdXV1dSAoaGFzaF9hYmNkLCBoYXNoX2UsIHdrKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hhMWhfdTMyICh1aW50MzJfdCBoYXNoX2UpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY3J5cHRvX3NoYTFoc2lfdXUgKGhh
c2hfZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hhMXN1MHFfdTMyICh1aW50MzJ4
NF90IHcwXzMsIHVpbnQzMng0X3QgdzRfNywgdWludDMyeDRfdCB3OF8xMSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jcnlwdG9fc2hhMXN1MHY0c2lfdXV1dSAodzBf
MywgdzRfNywgdzhfMTEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNoYTFzdTFxX3Uz
MiAodWludDMyeDRfdCB0dzBfMywgdWludDMyeDRfdCB3MTJfMTUpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY3J5cHRvX3NoYTFzdTF2NHNpX3V1dSAodHcwXzMsIHcx
Ml8xNSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hhMjU2aHFfdTMyICh1aW50MzJ4
NF90IGhhc2hfYWJjZCwgdWludDMyeDRfdCBoYXNoX2VmZ2gsIHVpbnQzMng0X3Qgd2spDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY3J5cHRvX3NoYTI1Nmh2NHNpX3V1
dXUgKGhhc2hfYWJjZCwgaGFzaF9lZmdoLCB3ayk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2c2hhMjU2aDJxX3UzMiAodWludDMyeDRfdCBoYXNoX2VmZ2gsIHVpbnQzMng0X3QgaGFzaF9h
YmNkLCB1aW50MzJ4NF90IHdrKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X2NyeXB0b19zaGEyNTZoMnY0c2lfdXV1dSAoaGFzaF9lZmdoLCBoYXNoX2FiY2QsIHdrKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMy
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGEyNTZzdTBxX3UzMiAodWludDMyeDRfdCB3
MF8zLCB1aW50MzJ4NF90IHc0XzcpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfY3J5cHRvX3NoYTI1NnN1MHY0c2lfdXV1ICh3MF8zLCB3NF83KTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZzaGEyNTZzdTFxX3UzMiAodWludDMyeDRfdCB0dzBfMywgdWludDMy
eDRfdCB3OF8xMSwgdWludDMyeDRfdCB3MTJfMTUpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfY3J5cHRvX3NoYTI1NnN1MXY0c2lfdXV1dSAodHcwXzMsIHc4XzExLCB3
MTJfMTUpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBwb2x5MTI4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVsbF9wNjQgKHBvbHk2NF90IGEs
IHBvbHk2NF90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4NCiAgICArICAgIF9fYnVpbHRpbl9h
YXJjaDY0X2NyeXB0b19wbXVsbGRpX3BwcCAoYSwgYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxMjhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZtdWxsX2hpZ2hfcDY0IChwb2x5NjR4Ml90IGEsIHBvbHk2NHgyX3QgYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jcnlwdG9fcG11bGx2MmRpX3BwcCAoYSwg
Yik7DQogICAgK30NCiAgICArDQogICAgKyNwcmFnbWEgR0NDIHBvcF9vcHRpb25zDQogICAgKw0K
ICAgICsvKiB2c2hsICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxfbl9zOCAoaW50OHg4X3QgX19h
LCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19idWls
dGluX2FhcmNoNjRfYXNobHY4cWkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnNobF9uX3MxNiAoaW50MTZ4NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiAoaW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9hc2hsdjRoaSAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hsX25fczMyIChpbnQzMngyX3QgX19h
LCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMngyX3QpIF9fYnVp
bHRpbl9hYXJjaDY0X2FzaGx2MnNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZzaGxfbl9zNjQgKGludDY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKGludDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X2FzaGxkaSAoX19hWzBd
LCBfX2IpfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNobF9uX3U4ICh1aW50OHg4X3Qg
X19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2FzaGx2OHFpICgoaW50OHg4X3QpIF9fYSwgX19iKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZzaGxfbl91MTYgKHVpbnQxNng0X3QgX19hLCBjb25zdCBpbnQg
X19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2
NF9hc2hsdjRoaSAoKGludDE2eDRfdCkgX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnNobF9uX3UzMiAodWludDMyeDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FzaGx2MnNpICgo
aW50MzJ4Ml90KSBfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hsX25f
dTY0ICh1aW50NjR4MV90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X2FzaGxkaSAoKGludDY0X3QpIF9fYVsw
XSwgX19iKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxxX25fczggKGludDh4MTZf
dCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4MTZfdCkg
X19idWlsdGluX2FhcmNoNjRfYXNobHYxNnFpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZzaGxxX25fczE2IChpbnQxNng4X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FzaGx2OGhp
IChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxxX25fczMyIChpbnQz
Mng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQzMng0
X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FzaGx2NHNpIChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZzaGxxX25fczY0IChpbnQ2NHgyX3QgX19hLCBjb25zdCBpbnQgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FzaGx2
MmRpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hscV9uX3U4ICh1
aW50OHgxNl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWlu
dDh4MTZfdCkgX19idWlsdGluX2FhcmNoNjRfYXNobHYxNnFpICgoaW50OHgxNl90KSBfX2EsIF9f
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hscV9uX3UxNiAodWludDE2eDhfdCBf
X2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQxNng4X3QpIF9f
YnVpbHRpbl9hYXJjaDY0X2FzaGx2OGhpICgoaW50MTZ4OF90KSBfX2EsIF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2c2hscV9uX3UzMiAodWludDMyeDRfdCBfX2EsIGNvbnN0IGlu
dCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJj
aDY0X2FzaGx2NHNpICgoaW50MzJ4NF90KSBfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2c2hscV9uX3U2NCAodWludDY0eDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FzaGx2MmRp
ICgoaW50NjR4Ml90KSBfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hsZF9u
X3M2NCAoaW50NjRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfYXNobGRpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnNobGRfbl91NjQgKHVpbnQ2NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiAodWludDY0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FzaGxkaSAoX19hLCBf
X2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxfczggKGludDh4OF90IF9fYSwgaW50
OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NzaGx2
OHFpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxfczE2IChpbnQx
Nng0X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3NzaGx2NGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzaGxfczMyIChpbnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NzaGx2MnNpIChfX2EsIF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZzaGxfczY0IChpbnQ2NHgxX3QgX19hLCBpbnQ2NHgxX3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9zc2hs
ZGkgKF9fYVswXSwgX19iWzBdKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxfdTgg
KHVpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF91c2hsdjhxaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZzaGxfdTE2ICh1aW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91c2hsdjRoaV91dXMgKF9fYSwgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxfdTMyICh1aW50MzJ4Ml90IF9fYSwg
aW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91
c2hsdjJzaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxf
dTY0ICh1aW50NjR4MV90IF9fYSwgaW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X3VzaGxkaV91dXMgKF9fYVswXSwgX19i
WzBdKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxxX3M4IChpbnQ4eDE2X3QgX19h
LCBpbnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3NzaGx2MTZxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hscV9z
MTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfc3NobHY4aGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnNobHFfczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NzaGx2NHNpIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxxX3M2NCAoaW50NjR4Ml90IF9fYSwgaW50NjR4
Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zc2hsdjJk
aSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNobHFfdTggKHVpbnQ4
eDE2X3QgX19hLCBpbnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3VzaGx2MTZxaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZzaGxxX3UxNiAodWludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXNobHY4aGlfdXVzIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQz
Mng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hscV91MzIgKHVpbnQzMng0X3QgX19hLCBp
bnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vz
aGx2NHNpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNobHFf
dTY0ICh1aW50NjR4Ml90IF9fYSwgaW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF91c2hsdjJkaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZzaGxkX3M2NCAoaW50NjRfdCBfX2EsIGludDY0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NzaGxkaSAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZzaGxkX3U2NCAodWludDY0X3QgX19hLCB1aW50NjRfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXNobGRpX3V1cyAo
X19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hsbF9oaWdoX25fczggKGlu
dDh4MTZfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfc3NobGwyX252MTZxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2c2hsbF9oaWdoX25fczE2IChpbnQxNng4X3QgX19hLCBjb25zdCBpbnQgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NzaGxsMl9udjhoaSAoX19h
LCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hsbF9oaWdoX25fczMyIChpbnQz
Mng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X3NzaGxsMl9udjRzaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnNobGxfaGlnaF9uX3U4ICh1aW50OHgxNl90IF9fYSwgY29uc3QgaW50IF9fYikNCiAg
ICArew0KICAgICsgIHJldHVybiAodWludDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfdXNobGwy
X252MTZxaSAoKGludDh4MTZfdCkgX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnNobGxfaGlnaF9uX3UxNiAodWludDE2eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VzaGxsMl9u
djhoaSAoKGludDE2eDhfdCkgX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnNobGxfaGlnaF9uX3UzMiAodWludDMyeDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3VzaGxsMl9udjRz
aSAoKGludDMyeDRfdCkgX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hs
bF9uX3M4IChpbnQ4eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfc3NobGxfbnY4cWkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnNobGxfbl9zMTYgKGludDE2eDRfdCBfX2EsIGNvbnN0IGludCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3NobGxfbnY0aGkgKF9f
YSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNobGxfbl9zMzIgKGludDMyeDJf
dCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc3NobGxfbnYyc2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzaGxsX25fdTggKHVpbnQ4eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXNobGxfbnY4cWlfdXVzIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hsbF9uX3UxNiAodWludDE2eDRfdCBfX2EsIGNv
bnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXNo
bGxfbnY0aGlfdXVzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hs
bF9uX3UzMiAodWludDMyeDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXNobGxfbnYyc2lfdXVzIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgKy8qIHZzaHIgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNocl9uX3M4IChp
bnQ4eDhfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4
OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9hc2hydjhxaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2c2hyX25fczE2IChpbnQxNng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FzaHJ2
NGhpIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaHJfbl9zMzIgKGlu
dDMyeDJfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMy
eDJfdCkgX19idWlsdGluX2FhcmNoNjRfYXNocnYyc2kgKF9fYSwgX19iKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4MV90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnNocl9uX3M2NCAoaW50NjR4MV90IF9fYSwgY29uc3QgaW50IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4MV90KSB7X19idWlsdGluX2FhcmNoNjRfYXNo
cl9zaW1kZGkgKF9fYVswXSwgX19iKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzaHJf
bl91OCAodWludDh4OF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biAodWludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9sc2hydjhxaSAoKGludDh4OF90KSBfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hyX25fdTE2ICh1aW50MTZ4NF90
IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkg
X19idWlsdGluX2FhcmNoNjRfbHNocnY0aGkgKChpbnQxNng0X3QpIF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZzaHJfbl91MzIgKHVpbnQzMngyX3QgX19hLCBjb25zdCBp
bnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFy
Y2g2NF9sc2hydjJzaSAoKGludDMyeDJfdCkgX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnNocl9uX3U2NCAodWludDY0eDFfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9sc2hyX3Np
bWRkaV91dXMgKCBfX2FbMF0sIF9fYil9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hy
cV9uX3M4IChpbnQ4eDE2X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2FzaHJ2MTZxaSAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hycV9uX3MxNiAoaW50MTZ4OF90IF9fYSwgY29u
c3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5f
YWFyY2g2NF9hc2hydjhoaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
c2hycV9uX3MzMiAoaW50MzJ4NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiAoaW50MzJ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9hc2hydjRzaSAoX19hLCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2
NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2hycV9uX3M2NCAoaW50NjR4Ml90IF9fYSwg
Y29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4Ml90KSBfX2J1aWx0
aW5fYWFyY2g2NF9hc2hydjJkaSAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnNocnFfbl91OCAodWludDh4MTZfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2xzaHJ2MTZxaSAoKGlu
dDh4MTZfdCkgX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNocnFfbl91
MTYgKHVpbnQxNng4X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9sc2hydjhoaSAoKGludDE2eDhfdCkgX19h
LCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNocnFfbl91MzIgKHVpbnQzMng0
X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NF90
KSBfX2J1aWx0aW5fYWFyY2g2NF9sc2hydjRzaSAoKGludDMyeDRfdCkgX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNocnFfbl91NjQgKHVpbnQ2NHgyX3QgX19hLCBjb25z
dCBpbnQgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4Ml90KSBfX2J1aWx0aW5f
YWFyY2g2NF9sc2hydjJkaSAoKGludDY0eDJfdCkgX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnNocmRfbl9zNjQgKGludDY0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2FzaHJfc2ltZGRpIChfX2EsIF9fYik7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNocmRfbl91NjQgKHVpbnQ2NF90IF9fYSwgY29u
c3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sc2hy
X3NpbWRkaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArLyogdnNsaSAqLw0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2c2xpX25fczggKGludDh4OF90IF9fYSwgaW50OHg4X3QgX19iLCBj
b25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDhfdCkgX19idWlsdGlu
X2FhcmNoNjRfc3NsaV9udjhxaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZzbGlfbl9zMTYgKGludDE2eDRfdCBfX2EsIGludDE2eDRfdCBfX2IsIGNvbnN0IGlu
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNo
NjRfc3NsaV9udjRoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzbGlfbl9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IsIGNvbnN0IGludCBfX2Mp
DQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDJfdCkgX19idWlsdGluX2FhcmNoNjRfc3Ns
aV9udjJzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzbGlf
bl9zNjQgKGludDY0eDFfdCBfX2EsIGludDY0eDFfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAg
K3sNCiAgICArICByZXR1cm4gKGludDY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X3NzbGlfbmRp
IChfX2FbMF0sIF9fYlswXSwgX19jKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzbGlf
bl91OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91c2xpX252OHFpX3V1dXMgKF9fYSwg
X19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNsaV9uX3UxNiAodWludDE2
eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VzbGlfbnY0aGlfdXV1cyAoX19hLCBfX2IsIF9fYyk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQz
MngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2xpX25fdTMyICh1aW50MzJ4Ml90IF9fYSwg
dWludDMyeDJfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19i
dWlsdGluX2FhcmNoNjRfdXNsaV9udjJzaV91dXVzIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZzbGlfbl91NjQgKHVpbnQ2NHgxX3QgX19hLCB1aW50NjR4MV90
IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAodWludDY0eDFfdCkg
e19fYnVpbHRpbl9hYXJjaDY0X3VzbGlfbmRpX3V1dXMgKF9fYVswXSwgX19iWzBdLCBfX2MpfTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTY0
eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzbGlfbl9wNjQgKHBvbHk2NHgxX3QgX19hLCBw
b2x5NjR4MV90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAocG9s
eTY0eDFfdCkge19fYnVpbHRpbl9hYXJjaDY0X3NzbGlfbmRpX3BwcHMgKF9fYVswXSwgX19iWzBd
LCBfX2MpfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNsaXFfbl9zOCAoaW50OHgxNl90
IF9fYSwgaW50OHgxNl90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVy
biAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zc2xpX252MTZxaSAoX19hLCBfX2IsIF9f
Yyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGlu
dDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzbGlxX25fczE2IChpbnQxNng4X3QgX19h
LCBpbnQxNng4X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChp
bnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NzbGlfbnY4aGkgKF9fYSwgX19iLCBfX2MpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2xpcV9uX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50
MzJ4NF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4
NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zc2xpX252NHNpIChfX2EsIF9fYiwgX19jKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnNsaXFfbl9zNjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJf
dCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDY0eDJfdCkg
X19idWlsdGluX2FhcmNoNjRfc3NsaV9udjJkaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2c2xpcV9uX3U4ICh1aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBf
X2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfdXNsaV9udjE2cWlfdXV1cyAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2c2xpcV9uX3UxNiAodWludDE2eDhfdCBfX2EsIHVpbnQxNng4X3QgX19iLCBjb25z
dCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VzbGlf
bnY4aGlfdXV1cyAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
c2xpcV9uX3UzMiAodWludDMyeDRfdCBfX2EsIHVpbnQzMng0X3QgX19iLCBjb25zdCBpbnQgX19j
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VzbGlfbnY0c2lfdXV1
cyAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2xpcV9uX3U2
NCAodWludDY0eDJfdCBfX2EsIHVpbnQ2NHgyX3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VzbGlfbnYyZGlfdXV1cyAoX19hLCBf
X2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHBvbHk2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2xpcV9uX3A2NCAocG9seTY0
eDJfdCBfX2EsIHBvbHk2NHgyX3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NzbGlfbnYyZGlfcHBwcyAoX19hLCBfX2IsIF9fYyk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c2xpZF9uX3M2NCAoaW50NjRfdCBfX2EsIGludDY0
X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X3NzbGlfbmRpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2c2xpZF9uX3U2NCAodWludDY0X3QgX19hLCB1aW50NjRfdCBfX2IsIGNvbnN0IGludCBfX2Mp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXNsaV9uZGlfdXV1cyAo
X19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZzcWFkZCAqLw0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnNxYWRkX3U4ICh1aW50OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdXNxYWRkdjhxaV91dXMgKF9fYSwg
X19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcWFkZF91MTYgKHVpbnQxNng0X3Qg
X19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X3VzcWFkZHY0aGlfdXVzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2c3FhZGRfdTMyICh1aW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91c3FhZGR2MnNpX3V1cyAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4
MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNxYWRkX3U2NCAodWludDY0eDFfdCBfX2EsIGlu
dDY0eDFfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIHtfX2J1aWx0
aW5fYWFyY2g2NF91c3FhZGRkaV91dXMgKF9fYVswXSwgX19iWzBdKX07DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2c3FhZGRxX3U4ICh1aW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91c3FhZGR2MTZxaV91dXMg
KF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcWFkZHFfdTE2ICh1aW50
MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF91c3FhZGR2OGhpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnNxYWRkcV91MzIgKHVpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VzcWFkZHY0c2lfdXVzIChfX2Es
IF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3FhZGRxX3U2NCAodWludDY0eDJf
dCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfdXNxYWRkdjJkaV91dXMgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzcWFkZGJfdTggKHVpbnQ4X3QgX19hLCBpbnQ4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VzcWFkZHFpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZzcWFkZGhfdTE2ICh1aW50MTZfdCBfX2EsIGludDE2X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VzcWFkZGhpX3V1cyAoX19h
LCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcWFkZHNfdTMyICh1aW50MzJfdCBf
X2EsIGludDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3VzcWFkZHNpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcWFk
ZGRfdTY0ICh1aW50NjRfdCBfX2EsIGludDY0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9hYXJjaDY0X3VzcWFkZGRpX3V1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAg
Kw0KICAgICsvKiB2c3FydCAqLw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcXJ0X2YzMiAoZmxvYXQzMngyX3Qg
YSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJ0djJzZiAoYSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0
MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNxcnRxX2YzMiAoZmxvYXQzMng0X3QgYSkN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJ0djRzZiAoYSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4
MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNxcnRfZjY0IChmbG9hdDY0eDFfdCBhKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChmbG9hdDY0eDFfdCkgeyBfX2J1aWx0aW5fYWFyY2g2NF9zcXJ0
ZGYgKGFbMF0pIH07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNxcnRxX2Y2NCAoZmxv
YXQ2NHgyX3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJ0
djJkZiAoYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZzcmEgKi8NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnNyYV9uX3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYiwgY29uc3QgaW50IF9fYykN
CiAgICArew0KICAgICsgIHJldHVybiAoaW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NzcmFf
bnY4cWkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3JhX25f
czE2IChpbnQxNng0X3QgX19hLCBpbnQxNng0X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIChpbnQxNng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NzcmFfbnY0aGkg
KF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3JhX25fczMyIChp
bnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIChpbnQzMngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NzcmFfbnYyc2kgKF9fYSwg
X19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3JhX25fczY0IChpbnQ2NHgx
X3QgX19hLCBpbnQ2NHgxX3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIChpbnQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9zc3JhX25kaSAoX19hWzBdLCBfX2Jb
MF0sIF9fYyl9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3JhX25fdTggKHVpbnQ4eDhf
dCBfX2EsIHVpbnQ4eDhfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfdXNyYV9udjhxaV91dXVzIChfX2EsIF9fYiwgX19jKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcmFfbl91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50
MTZ4NF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF91c3JhX252NGhpX3V1dXMgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnNyYV9uX3UzMiAodWludDMyeDJfdCBfX2EsIHVpbnQzMngyX3QgX19i
LCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3VzcmFfbnYyc2lfdXV1cyAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2c3JhX25fdTY0ICh1aW50NjR4MV90IF9fYSwgdWludDY0eDFfdCBfX2IsIGNvbnN0IGlu
dCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFy
Y2g2NF91c3JhX25kaV91dXVzIChfX2FbMF0sIF9fYlswXSwgX19jKX07DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZzcmFxX25fczggKGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2IsIGNv
bnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4MTZfdCkgX19idWlsdGlu
X2FhcmNoNjRfc3NyYV9udjE2cWkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2c3JhcV9uX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYiwgY29uc3Qg
aW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MTZ4OF90KSBfX2J1aWx0aW5fYWFy
Y2g2NF9zc3JhX252OGhpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnNyYXFfbl9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IsIGNvbnN0IGludCBf
X2MpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDRfdCkgX19idWlsdGluX2FhcmNoNjRf
c3NyYV9udjRzaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zz
cmFxX25fczY0IChpbnQ2NHgyX3QgX19hLCBpbnQ2NHgyX3QgX19iLCBjb25zdCBpbnQgX19jKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NzcmFf
bnYyZGkgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNyYXFf
bl91OCAodWludDh4MTZfdCBfX2EsIHVpbnQ4eDE2X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VzcmFfbnYxNnFpX3V1dXMgKF9f
YSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNyYXFfbl91MTYgKHVp
bnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91c3JhX252OGhpX3V1dXMgKF9fYSwgX19iLCBf
X2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNyYXFfbl91MzIgKHVpbnQzMng0X3Qg
X19hLCB1aW50MzJ4NF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF91c3JhX252NHNpX3V1dXMgKF9fYSwgX19iLCBfX2MpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNyYXFfbl91NjQgKHVpbnQ2NHgyX3QgX19hLCB1aW50
NjR4Ml90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF91c3JhX252MmRpX3V1dXMgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnNyYWRfbl9zNjQgKGludDY0X3QgX19hLCBpbnQ2NF90IF9fYiwgY29uc3Qg
aW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zc3JhX25k
aSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNyYWRfbl91NjQg
KHVpbnQ2NF90IF9fYSwgdWludDY0X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3VzcmFfbmRpX3V1dXMgKF9fYSwgX19iLCBfX2Mp
Ow0KICAgICt9DQogICAgKw0KICAgICsvKiB2c3JpICovDQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zzcmlf
bl9zOCAoaW50OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGludDh4OF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zc3JpX252OHFpIChf
X2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNyaV9uX3MxNiAoaW50
MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsg
IHJldHVybiAoaW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9zc3JpX252NGhpIChfX2EsIF9f
YiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNyaV9uX3MzMiAoaW50MzJ4Ml90
IF9fYSwgaW50MzJ4Ml90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVy
biAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9zc3JpX252MnNpIChfX2EsIF9fYiwgX19j
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNyaV9uX3M2NCAoaW50NjR4MV90IF9fYSwg
aW50NjR4MV90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiAoaW50
NjR4MV90KSB7X19idWlsdGluX2FhcmNoNjRfc3NyaV9uZGkgKF9fYVswXSwgX19iWzBdLCBfX2Mp
fTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNyaV9uX3U4ICh1aW50OHg4X3QgX19hLCB1
aW50OHg4X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3VzcmlfbnY4cWlfdXV1cyAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2c3JpX25fdTE2ICh1aW50MTZ4NF90IF9fYSwgdWludDE2eDRfdCBf
X2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfdXNyaV9udjRoaV91dXVzIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3Zzcmlfbl91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYiwgY29uc3Qg
aW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91c3JpX252
MnNpX3V1dXMgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNy
aV9uX3U2NCAodWludDY0eDFfdCBfX2EsIHVpbnQ2NHgxX3QgX19iLCBjb25zdCBpbnQgX19jKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50NjR4MV90KSB7X19idWlsdGluX2FhcmNoNjRfdXNy
aV9uZGlfdXV1cyAoX19hWzBdLCBfX2JbMF0sIF9fYyl9Ow0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2c3JpcV9uX3M4IChpbnQ4eDE2X3QgX19hLCBpbnQ4eDE2X3QgX19iLCBjb25zdCBpbnQg
X19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0
X3NzcmlfbnYxNnFpIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnNyaXFfbl9zMTYgKGludDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IsIGNvbnN0IGludCBfX2Mp
DQogICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDhfdCkgX19idWlsdGluX2FhcmNoNjRfc3Ny
aV9udjhoaSAoX19hLCBfX2IsIF9fYyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zzcmlx
X25fczMyIChpbnQzMng0X3QgX19hLCBpbnQzMng0X3QgX19iLCBjb25zdCBpbnQgX19jKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIChpbnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3NzcmlfbnY0
c2kgKF9fYSwgX19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3JpcV9uX3M2
NCAoaW50NjR4Ml90IF9fYSwgaW50NjR4Ml90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0K
ICAgICsgIHJldHVybiAoaW50NjR4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9zc3JpX252MmRpIChf
X2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcmlxX25fdTggKHVp
bnQ4eDE2X3QgX19hLCB1aW50OHgxNl90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91c3JpX252MTZxaV91dXVzIChfX2EsIF9fYiwg
X19jKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcmlxX25fdTE2ICh1aW50MTZ4OF90
IF9fYSwgdWludDE2eDhfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfdXNyaV9udjhoaV91dXVzIChfX2EsIF9fYiwgX19jKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcmlxX25fdTMyICh1aW50MzJ4NF90IF9fYSwgdWlu
dDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWls
dGluX2FhcmNoNjRfdXNyaV9udjRzaV91dXVzIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZzcmlxX25fdTY0ICh1aW50NjR4Ml90IF9fYSwgdWludDY0eDJfdCBf
X2IsIGNvbnN0IGludCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfdXNyaV9udjJkaV91dXVzIChfX2EsIF9fYiwgX19jKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZzcmlkX25fczY0IChpbnQ2NF90IF9fYSwgaW50NjRfdCBfX2IsIGNvbnN0IGludCBfX2Mp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc3NyaV9uZGkgKF9fYSwg
X19iLCBfX2MpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50NjRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcmlkX25fdTY0ICh1aW50NjRf
dCBfX2EsIHVpbnQ2NF90IF9fYiwgY29uc3QgaW50IF9fYykNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF91c3JpX25kaV91dXVzIChfX2EsIF9fYiwgX19jKTsNCiAgICAr
fQ0KICAgICsNCiAgICArLyogdnN0MSAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFfZjE2IChmbG9hdDE2
X3QgKl9fYSwgZmxvYXQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc3QxdjRoZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0MV9mMzIgKGZs
b2F0MzJfdCAqYSwgZmxvYXQzMngyX3QgYikNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3N0MXYyc2YgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NmICopIGEsIGIpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnN0MV9mNjQgKGZsb2F0NjRfdCAqYSwgZmxvYXQ2NHgxX3QgYikNCiAg
ICArew0KICAgICsgICphID0gYlswXTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFfcDggKHBv
bHk4X3QgKmEsIHBvbHk4eDhfdCBiKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c3QxdjhxaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgYSwNCiAgICArCQkJICAgICAo
aW50OHg4X3QpIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0MV9wMTYgKHBvbHkxNl90ICph
LCBwb2x5MTZ4NF90IGIpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDF2NGhp
ICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBhLA0KICAgICsJCQkgICAgIChpbnQxNng0
X3QpIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0MV9wNjQgKHBvbHk2NF90ICphLCBwb2x5
NjR4MV90IGIpDQogICAgK3sNCiAgICArICAqYSA9IGJbMF07DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2c3QxX3M4IChpbnQ4X3QgKmEsIGludDh4OF90IGIpDQogICAgK3sNCiAgICArICBfX2J1aWx0
aW5fYWFyY2g2NF9zdDF2OHFpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBhLCBiKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFfczE2IChpbnQxNl90ICphLCBpbnQxNng0X3QgYikN
CiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MXY0aGkgKChfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX2hpICopIGEsIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0MV9zMzIgKGlu
dDMyX3QgKmEsIGludDMyeDJfdCBiKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c3QxdjJzaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfc2kgKikgYSwgYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2c3QxX3M2NCAoaW50NjRfdCAqYSwgaW50NjR4MV90IGIpDQogICAgK3sNCiAg
ICArICAqYSA9IGJbMF07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxX3U4ICh1aW50OF90ICph
LCB1aW50OHg4X3QgYikNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MXY4cWkg
KChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIGEsDQogICAgKwkJCSAgICAgKGludDh4OF90
KSBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFfdTE2ICh1aW50MTZfdCAqYSwgdWludDE2
eDRfdCBiKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QxdjRoaSAoKF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgYSwNCiAgICArCQkJICAgICAoaW50MTZ4NF90KSBiKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFfdTMyICh1aW50MzJfdCAqYSwgdWludDMyeDJfdCBi
KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QxdjJzaSAoKF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfc2kgKikgYSwNCiAgICArCQkJICAgICAoaW50MzJ4Ml90KSBiKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZzdDFfdTY0ICh1aW50NjRfdCAqYSwgdWludDY0eDFfdCBiKQ0KICAg
ICt7DQogICAgKyAgKmEgPSBiWzBdOw0KICAgICt9DQogICAgKw0KICAgICsvKiB2c3QxcSAqLw0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZzdDFxX2YxNiAoZmxvYXQxNl90ICpfX2EsIGZsb2F0MTZ4OF90IF9fYikN
CiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MXY4aGYgKF9fYSwgX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZzdDFxX2YzMiAoZmxvYXQzMl90ICphLCBmbG9hdDMyeDRfdCBi
KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QxdjRzZiAoKF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfc2YgKikgYSwgYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxcV9mNjQg
KGZsb2F0NjRfdCAqYSwgZmxvYXQ2NHgyX3QgYikNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9h
YXJjaDY0X3N0MXYyZGYgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RmICopIGEsIGIpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnN0MXFfcDggKHBvbHk4X3QgKmEsIHBvbHk4eDE2X3QgYikNCiAg
ICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MXYxNnFpICgoX19idWlsdGluX2FhcmNo
NjRfc2ltZF9xaSAqKSBhLA0KICAgICsJCQkgICAgICAoaW50OHgxNl90KSBiKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZzdDFxX3AxNiAocG9seTE2X3QgKmEsIHBvbHkxNng4X3QgYikNCiAgICAr
ew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MXY4aGkgKChfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX2hpICopIGEsDQogICAgKwkJCSAgICAgKGludDE2eDhfdCkgYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2c3QxcV9wNjQgKHBvbHk2NF90ICphLCBwb2x5NjR4Ml90IGIpDQogICAgK3sNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDF2MmRpX3NwICgoX19idWlsdGluX2FhcmNoNjRfc2lt
ZF9kaSAqKSBhLA0KICAgICsJCQkJKHBvbHk2NHgyX3QpIGIpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnN0MXFfczggKGludDhfdCAqYSwgaW50OHgxNl90IGIpDQogICAgK3sNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zdDF2MTZxaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgYSwg
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZv
aWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxcV9zMTYgKGludDE2X3QgKmEsIGludDE2eDhf
dCBiKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QxdjhoaSAoKF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfaGkgKikgYSwgYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxcV9z
MzIgKGludDMyX3QgKmEsIGludDMyeDRfdCBiKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2Fh
cmNoNjRfc3QxdjRzaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfc2kgKikgYSwgYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2c3QxcV9zNjQgKGludDY0X3QgKmEsIGludDY0eDJfdCBiKQ0KICAg
ICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QxdjJkaSAoKF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfZGkgKikgYSwgYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxcV91OCAodWludDhf
dCAqYSwgdWludDh4MTZfdCBiKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3Qx
djE2cWkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIGEsDQogICAgKwkJCSAgICAgIChp
bnQ4eDE2X3QpIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0MXFfdTE2ICh1aW50MTZfdCAq
YSwgdWludDE2eDhfdCBiKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3Qxdjho
aSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgYSwNCiAgICArCQkJICAgICAoaW50MTZ4
OF90KSBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFxX3UzMiAodWludDMyX3QgKmEsIHVp
bnQzMng0X3QgYikNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MXY0c2kgKChf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIGEsDQogICAgKwkJCSAgICAgKGludDMyeDRfdCkg
Yik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZv
aWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxcV91NjQgKHVpbnQ2NF90ICphLCB1aW50NjR4
Ml90IGIpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDF2MmRpICgoX19idWls
dGluX2FhcmNoNjRfc2ltZF9kaSAqKSBhLA0KICAgICsJCQkgICAgIChpbnQ2NHgyX3QpIGIpOw0K
ICAgICt9DQogICAgKw0KICAgICsvKiB2c3QxX2xhbmUgKi8NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxX2xh
bmVfZjE2IChmbG9hdDE2X3QgKl9fYSwgZmxvYXQxNng0X3QgX19iLCBjb25zdCBpbnQgX19sYW5l
KQ0KICAgICt7DQogICAgKyAgKl9fYSA9IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9f
bGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxX2xhbmVfZjMyIChmbG9hdDMyX3QgKl9f
YSwgZmxvYXQzMngyX3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgKl9f
YSA9IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2c3QxX2xhbmVfZjY0IChmbG9hdDY0X3QgKl9fYSwgZmxvYXQ2NHgxX3QgX19iLCBj
b25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgKl9fYSA9IF9fYWFyY2g2NF92Z2V0X2xh
bmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxX2xhbmVfcDgg
KHBvbHk4X3QgKl9fYSwgcG9seTh4OF90IF9fYiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0K
ICAgICsgICpfX2EgPSBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnN0MV9sYW5lX3AxNiAocG9seTE2X3QgKl9fYSwgcG9seTE2eDRf
dCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICAqX19hID0gX19hYXJjaDY0
X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFf
bGFuZV9wNjQgKHBvbHk2NF90ICpfX2EsIHBvbHk2NHgxX3QgX19iLCBjb25zdCBpbnQgX19sYW5l
KQ0KICAgICt7DQogICAgKyAgKl9fYSA9IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9f
bGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxX2xhbmVfczggKGludDhfdCAqX19hLCBp
bnQ4eDhfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICAqX19hID0gX19h
YXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzdDFfbGFuZV9zMTYgKGludDE2X3QgKl9fYSwgaW50MTZ4NF90IF9fYiwgY29uc3QgaW50IF9f
bGFuZSkNCiAgICArew0KICAgICsgICpfX2EgPSBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19i
LCBfX2xhbmUpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0MV9sYW5lX3MzMiAoaW50MzJfdCAq
X19hLCBpbnQzMngyX3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgKl9f
YSA9IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2c3QxX2xhbmVfczY0IChpbnQ2NF90ICpfX2EsIGludDY0eDFfdCBfX2IsIGNvbnN0
IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICAqX19hID0gX19hYXJjaDY0X3ZnZXRfbGFuZV9h
bnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFfbGFuZV91OCAodWlu
dDhfdCAqX19hLCB1aW50OHg4X3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAg
KyAgKl9fYSA9IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2c3QxX2xhbmVfdTE2ICh1aW50MTZfdCAqX19hLCB1aW50MTZ4NF90IF9f
YiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgICpfX2EgPSBfX2FhcmNoNjRfdmdl
dF9sYW5lX2FueSAoX19iLCBfX2xhbmUpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0MV9sYW5l
X3UzMiAodWludDMyX3QgKl9fYSwgdWludDMyeDJfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQog
ICAgK3sNCiAgICArICAqX19hID0gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5l
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9p
ZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFfbGFuZV91NjQgKHVpbnQ2NF90ICpfX2EsIHVp
bnQ2NHgxX3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgKl9fYSA9IF9f
YWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAg
Ky8qIHZzdDFxX2xhbmUgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxcV9sYW5lX2YxNiAoZmxvYXQxNl90
ICpfX2EsIGZsb2F0MTZ4OF90IF9fYiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsg
ICpfX2EgPSBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnN0MXFfbGFuZV9mMzIgKGZsb2F0MzJfdCAqX19hLCBmbG9hdDMyeDRfdCBf
X2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICAqX19hID0gX19hYXJjaDY0X3Zn
ZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFxX2xh
bmVfZjY0IChmbG9hdDY0X3QgKl9fYSwgZmxvYXQ2NHgyX3QgX19iLCBjb25zdCBpbnQgX19sYW5l
KQ0KICAgICt7DQogICAgKyAgKl9fYSA9IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9f
bGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxcV9sYW5lX3A4IChwb2x5OF90ICpfX2Es
IHBvbHk4eDE2X3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgKl9fYSA9
IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2c3QxcV9sYW5lX3AxNiAocG9seTE2X3QgKl9fYSwgcG9seTE2eDhfdCBfX2IsIGNvbnN0
IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICAqX19hID0gX19hYXJjaDY0X3ZnZXRfbGFuZV9h
bnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFxX2xhbmVfcDY0IChw
b2x5NjRfdCAqX19hLCBwb2x5NjR4Ml90IF9fYiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0K
ICAgICsgICpfX2EgPSBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnN0MXFfbGFuZV9zOCAoaW50OF90ICpfX2EsIGludDh4MTZfdCBf
X2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICAqX19hID0gX19hYXJjaDY0X3Zn
ZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFxX2xh
bmVfczE2IChpbnQxNl90ICpfX2EsIGludDE2eDhfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQog
ICAgK3sNCiAgICArICAqX19hID0gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5l
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9p
ZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFxX2xhbmVfczMyIChpbnQzMl90ICpfX2EsIGlu
dDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICAqX19hID0gX19h
YXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzdDFxX2xhbmVfczY0IChpbnQ2NF90ICpfX2EsIGludDY0eDJfdCBfX2IsIGNvbnN0IGludCBf
X2xhbmUpDQogICAgK3sNCiAgICArICAqX19hID0gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9f
YiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDFxX2xhbmVfdTggKHVpbnQ4X3Qg
Kl9fYSwgdWludDh4MTZfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICAq
X19hID0gX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZzdDFxX2xhbmVfdTE2ICh1aW50MTZfdCAqX19hLCB1aW50MTZ4OF90IF9fYiwg
Y29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgICpfX2EgPSBfX2FhcmNoNjRfdmdldF9s
YW5lX2FueSAoX19iLCBfX2xhbmUpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0MXFfbGFuZV91
MzIgKHVpbnQzMl90ICpfX2EsIHVpbnQzMng0X3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAg
ICt7DQogICAgKyAgKl9fYSA9IF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QxcV9sYW5lX3U2NCAodWludDY0X3QgKl9fYSwgdWlu
dDY0eDJfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICAqX19hID0gX19h
YXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKTsNCiAgICArfQ0KICAgICsNCiAgICAr
LyogdnN0biAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9p
ZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDJfczY0IChpbnQ2NF90ICogX19hLCBpbnQ2NHgx
eDJfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsN
CiAgICArICBpbnQ2NHgyeDJfdCB0ZW1wOw0KICAgICsgIHRlbXAudmFsWzBdID0gdmNvbWJpbmVf
czY0ICh2YWwudmFsWzBdLCB2Y3JlYXRlX3M2NCAoX19BQVJDSDY0X0lOVDY0X0MgKDApKSk7DQog
ICAgKyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV9zNjQgKHZhbC52YWxbMV0sIHZjcmVhdGVfczY0
IChfX0FBUkNINjRfSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ29pdjJkaSAoX19vLCAoaW50NjR4Ml90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAg
KyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYyZGkgKF9fbywgKGludDY0eDJf
dCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MmRpICgoX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2c3QyX3U2NCAodWludDY0X3QgKiBfX2EsIHVpbnQ2NHgxeDJfdCB2YWwpDQogICAgK3sNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICB1aW50NjR4MngyX3Qg
dGVtcDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3U2NCAodmFsLnZhbFswXSwgdmNy
ZWF0ZV91NjQgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9
IHZjb21iaW5lX3U2NCAodmFsLnZhbFsxXSwgdmNyZWF0ZV91NjQgKF9fQUFSQ0g2NF9VSU5UNjRf
QyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjJkaSAo
X19vLCAoaW50NjR4Ml90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfc2V0X3FyZWdvaXYyZGkgKF9fbywgKGludDY0eDJfdCkgdGVtcC52YWxbMV0sIDEp
Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MmRpICgoX19idWlsdGluX2FhcmNoNjRfc2lt
ZF9kaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QyX2Y2NCAoZmxvYXQ2
NF90ICogX19hLCBmbG9hdDY0eDF4Ml90IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIGZsb2F0NjR4MngyX3QgdGVtcDsNCiAgICArICB0
ZW1wLnZhbFswXSA9IHZjb21iaW5lX2Y2NCAodmFsLnZhbFswXSwgdmNyZWF0ZV9mNjQgKF9fQUFS
Q0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX2Y2NCAo
dmFsLnZhbFsxXSwgdmNyZWF0ZV9mNjQgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjJkZiAoX19vLCAoZmxvYXQ2NHgy
X3QpIHRlbXAudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRf
cXJlZ29pdjJkZiAoX19vLCAoZmxvYXQ2NHgyX3QpIHRlbXAudmFsWzFdLCAxKTsNCiAgICArICBf
X2J1aWx0aW5fYWFyY2g2NF9zdDJkZiAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGYgKikgX19h
LCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0Ml9zOCAoaW50OF90ICogX19hLCBpbnQ4
eDh4Ml90IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19v
Ow0KICAgICsgIGludDh4MTZ4Ml90IHRlbXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmlu
ZV9zOCAodmFsLnZhbFswXSwgdmNyZWF0ZV9zOCAoX19BQVJDSDY0X0lOVDY0X0MgKDApKSk7DQog
ICAgKyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV9zOCAodmFsLnZhbFsxXSwgdmNyZWF0ZV9zOCAo
X19BQVJDSDY0X0lOVDY0X0MgKDApKSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWdvaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpIHRlbXAudmFsWzBdLCAwKTsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywgKGludDh4MTZf
dCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MnY4cWkgKChf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZzdDJfcDggKHBvbHk4X3QgKiBfX2EsIHBvbHk4eDh4Ml90IHZhbCkNCiAgICArew0KICAg
ICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIHBvbHk4eDE2eDJfdCB0
ZW1wOw0KICAgICsgIHRlbXAudmFsWzBdID0gdmNvbWJpbmVfcDggKHZhbC52YWxbMF0sIHZjcmVh
dGVfcDggKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZj
b21iaW5lX3A4ICh2YWwudmFsWzFdLCB2Y3JlYXRlX3A4IChfX0FBUkNINjRfVUlOVDY0X0MgKDAp
KSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFpIChfX28s
IChpbnQ4eDE2X3QpIHRlbXAudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFy
Y2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdGVtcC52YWxbMV0sIDEpOw0K
ICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MnY4cWkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1k
X3FpICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDJfczE2IChpbnQxNl90
ICogX19hLCBpbnQxNng0eDJfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX29pIF9fbzsNCiAgICArICBpbnQxNng4eDJfdCB0ZW1wOw0KICAgICsgIHRlbXAudmFs
WzBdID0gdmNvbWJpbmVfczE2ICh2YWwudmFsWzBdLCB2Y3JlYXRlX3MxNiAoX19BQVJDSDY0X0lO
VDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV9zMTYgKHZhbC52YWxb
MV0sIHZjcmVhdGVfczE2IChfX0FBUkNINjRfSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjhoaSAoX19vLCAoaW50MTZ4OF90KSB0ZW1wLnZh
bFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXY4aGkg
KF9fbywgKGludDE2eDhfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3N0MnY0aGkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSwgX19vKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZzdDJfcDE2IChwb2x5MTZfdCAqIF9fYSwgcG9seTE2eDR4Ml90
IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAg
ICsgIHBvbHkxNng4eDJfdCB0ZW1wOw0KICAgICsgIHRlbXAudmFsWzBdID0gdmNvbWJpbmVfcDE2
ICh2YWwudmFsWzBdLCB2Y3JlYXRlX3AxNiAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAg
ICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfcDE2ICh2YWwudmFsWzFdLCB2Y3JlYXRlX3AxNiAo
X19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X3NldF9xcmVnb2l2OGhpIChfX28sIChpbnQxNng4X3QpIHRlbXAudmFsWzBdLCAwKTsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjhoaSAoX19vLCAoaW50MTZ4OF90
KSB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QydjRoaSAoKF9f
YnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnN0Ml9zMzIgKGludDMyX3QgKiBfX2EsIGludDMyeDJ4Ml90IHZhbCkNCiAgICArew0KICAg
ICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsgIGludDMyeDR4Ml90IHRl
bXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV9zMzIgKHZhbC52YWxbMF0sIHZjcmVh
dGVfczMyIChfX0FBUkNINjRfSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZj
b21iaW5lX3MzMiAodmFsLnZhbFsxXSwgdmNyZWF0ZV9zMzIgKF9fQUFSQ0g2NF9JTlQ2NF9DICgw
KSkpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2NHNpIChfX28s
IChpbnQzMng0X3QpIHRlbXAudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFy
Y2g2NF9zZXRfcXJlZ29pdjRzaSAoX19vLCAoaW50MzJ4NF90KSB0ZW1wLnZhbFsxXSwgMSk7DQog
ICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QydjJzaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
c2kgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0Ml91OCAodWludDhfdCAq
IF9fYSwgdWludDh4OHgyX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c2ltZF9vaSBfX287DQogICAgKyAgdWludDh4MTZ4Ml90IHRlbXA7DQogICAgKyAgdGVtcC52YWxb
MF0gPSB2Y29tYmluZV91OCAodmFsLnZhbFswXSwgdmNyZWF0ZV91OCAoX19BQVJDSDY0X1VJTlQ2
NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfdTggKHZhbC52YWxbMV0s
IHZjcmVhdGVfdTggKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1
aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdGVtcC52YWxb
MF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAo
X19vLCAoaW50OHgxNl90KSB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc3QydjhxaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19hLCBfX28pOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnN0Ml91MTYgKHVpbnQxNl90ICogX19hLCB1aW50MTZ4NHgyX3Qg
dmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAg
KyAgdWludDE2eDh4Ml90IHRlbXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV91MTYg
KHZhbC52YWxbMF0sIHZjcmVhdGVfdTE2IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAg
KyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV91MTYgKHZhbC52YWxbMV0sIHZjcmVhdGVfdTE2IChf
X0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWdvaXY4aGkgKF9fbywgKGludDE2eDhfdCkgdGVtcC52YWxbMF0sIDApOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2OGhpIChfX28sIChpbnQxNng4X3Qp
IHRlbXAudmFsWzFdLCAxKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDJ2NGhpICgoX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2c3QyX3UzMiAodWludDMyX3QgKiBfX2EsIHVpbnQzMngyeDJfdCB2YWwpDQogICAgK3sNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICB1aW50MzJ4NHgyX3Qg
dGVtcDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3UzMiAodmFsLnZhbFswXSwgdmNy
ZWF0ZV91MzIgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9
IHZjb21iaW5lX3UzMiAodmFsLnZhbFsxXSwgdmNyZWF0ZV91MzIgKF9fQUFSQ0g2NF9VSU5UNjRf
QyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjRzaSAo
X19vLCAoaW50MzJ4NF90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGlu
X2FhcmNoNjRfc2V0X3FyZWdvaXY0c2kgKF9fbywgKGludDMyeDRfdCkgdGVtcC52YWxbMV0sIDEp
Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MnYyc2kgKChfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX3NpICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDJfZjE2IChmbG9h
dDE2X3QgKiBfX2EsIGZsb2F0MTZ4NHgyX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgZmxvYXQxNng4eDJfdCB0ZW1wOw0KICAgICsg
IHRlbXAudmFsWzBdID0gdmNvbWJpbmVfZjE2ICh2YWwudmFsWzBdLCB2Y3JlYXRlX2YxNiAoX19B
QVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfZjE2
ICh2YWwudmFsWzFdLCB2Y3JlYXRlX2YxNiAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2OGhmIChfX28sIHRlbXAudmFs
WzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjhoZiAo
X19vLCB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QydjRoZiAo
X19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0Ml9mMzIgKGZsb2F0MzJfdCAqIF9f
YSwgZmxvYXQzMngyeDJfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX29pIF9fbzsNCiAgICArICBmbG9hdDMyeDR4Ml90IHRlbXA7DQogICAgKyAgdGVtcC52YWxb
MF0gPSB2Y29tYmluZV9mMzIgKHZhbC52YWxbMF0sIHZjcmVhdGVfZjMyIChfX0FBUkNINjRfVUlO
VDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV9mMzIgKHZhbC52YWxb
MV0sIHZjcmVhdGVfZjMyIChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXY0c2YgKF9fbywgKGZsb2F0MzJ4NF90KSB0ZW1w
LnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXY0
c2YgKF9fbywgKGZsb2F0MzJ4NF90KSB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc3QydjJzZiAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfc2YgKikgX19hLCBfX28p
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lk
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0Ml9wNjQgKHBvbHk2NF90ICogX19hLCBwb2x5NjR4
MXgyX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287
DQogICAgKyAgcG9seTY0eDJ4Ml90IHRlbXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmlu
ZV9wNjQgKHZhbC52YWxbMF0sIHZjcmVhdGVfcDY0IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7
DQogICAgKyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV9wNjQgKHZhbC52YWxbMV0sIHZjcmVhdGVf
cDY0IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2Fh
cmNoNjRfc2V0X3FyZWdvaXYyZGlfc3NwcyAoX19vLA0KICAgICsJCQkJCSAgICAgICAocG9seTY0
eDJfdCkgdGVtcC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3Nl
dF9xcmVnb2l2MmRpX3NzcHMgKF9fbywNCiAgICArCQkJCQkgICAgICAgKHBvbHk2NHgyX3QpIHRl
bXAudmFsWzFdLCAxKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDJkaSAoKF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfZGkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0
MnFfczggKGludDhfdCAqIF9fYSwgaW50OHgxNngyX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfc2V0X3FyZWdvaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpIHZhbC52YWxbMF0sIDApOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLCAoaW50OHgx
Nl90KSB2YWwudmFsWzFdLCAxKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDJ2MTZxaSAo
KF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnN0MnFfcDggKHBvbHk4X3QgKiBfX2EsIHBvbHk4eDE2eDJfdCB2YWwpDQogICAgK3sN
CiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1
aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdmFsLnZhbFsw
XSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFpIChf
X28sIChpbnQ4eDE2X3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3N0MnYxNnFpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EsIF9fbyk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2c3QycV9zMTYgKGludDE2X3QgKiBfX2EsIGludDE2eDh4Ml90IHZh
bCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2OGhpIChfX28sIChpbnQxNng4X3Qp
IHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
b2l2OGhpIChfX28sIChpbnQxNng4X3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3N0MnY4aGkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSwgX19v
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9p
ZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDJxX3AxNiAocG9seTE2X3QgKiBfX2EsIHBvbHkx
Nng4eDJfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9f
bzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjhoaSAoX19vLCAo
aW50MTZ4OF90KSB2YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ29pdjhoaSAoX19vLCAoaW50MTZ4OF90KSB2YWwudmFsWzFdLCAxKTsNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zdDJ2OGhpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAq
KSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QycV9zMzIgKGludDMyX3QgKiBf
X2EsIGludDMyeDR4Ml90IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3Np
bWRfb2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2NHNp
IChfX28sIChpbnQzMng0X3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRp
bl9hYXJjaDY0X3NldF9xcmVnb2l2NHNpIChfX28sIChpbnQzMng0X3QpIHZhbC52YWxbMV0sIDEp
Ow0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MnY0c2kgKChfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX3NpICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDJxX3M2NCAoaW50
NjRfdCAqIF9fYSwgaW50NjR4MngyX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2Fh
cmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWdvaXYyZGkgKF9fbywgKGludDY0eDJfdCkgdmFsLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYyZGkgKF9fbywgKGludDY0eDJfdCkgdmFsLnZh
bFsxXSwgMSk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QydjJkaSAoKF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfZGkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0MnFf
dTggKHVpbnQ4X3QgKiBfX2EsIHVpbnQ4eDE2eDJfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdmFsLnZhbFswXSwgMCk7DQogICAg
KyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFpIChfX28sIChpbnQ4eDE2
X3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0MnYxNnFpICgo
X19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2c3QycV91MTYgKHVpbnQxNl90ICogX19hLCB1aW50MTZ4OHgyX3QgdmFsKQ0KICAgICt7
DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXY4aGkgKF9fbywgKGludDE2eDhfdCkgdmFsLnZhbFsw
XSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXY4aGkgKF9f
bywgKGludDE2eDhfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c3QydjhoaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgX19hLCBfX28pOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnN0MnFfdTMyICh1aW50MzJfdCAqIF9fYSwgdWludDMyeDR4Ml90IHZh
bCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2NHNpIChfX28sIChpbnQzMng0X3Qp
IHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
b2l2NHNpIChfX28sIChpbnQzMng0X3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3N0MnY0c2kgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSwgX19v
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9p
ZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDJxX3U2NCAodWludDY0X3QgKiBfX2EsIHVpbnQ2
NHgyeDJfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9f
bzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjJkaSAoX19vLCAo
aW50NjR4Ml90KSB2YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ29pdjJkaSAoX19vLCAoaW50NjR4Ml90KSB2YWwudmFsWzFdLCAxKTsNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zdDJ2MmRpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9kaSAq
KSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QycV9mMTYgKGZsb2F0MTZfdCAq
IF9fYSwgZmxvYXQxNng4eDJfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29p
djhoZiAoX19vLCB2YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ29pdjhoZiAoX19vLCB2YWwudmFsWzFdLCAxKTsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zdDJ2OGhmIChfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QycV9m
MzIgKGZsb2F0MzJfdCAqIF9fYSwgZmxvYXQzMng0eDJfdCB2YWwpDQogICAgK3sNCiAgICArICBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFy
Y2g2NF9zZXRfcXJlZ29pdjRzZiAoX19vLCAoZmxvYXQzMng0X3QpIHZhbC52YWxbMF0sIDApOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2NHNmIChfX28sIChmbG9h
dDMyeDRfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QydjRz
ZiAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfc2YgKikgX19hLCBfX28pOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnN0MnFfZjY0IChmbG9hdDY0X3QgKiBfX2EsIGZsb2F0NjR4MngyX3QgdmFsKQ0K
ICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgX19v
ID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYyZGYgKF9fbywgKGZsb2F0NjR4Ml90KSB2
YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29p
djJkZiAoX19vLCAoZmxvYXQ2NHgyX3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3N0MnYyZGYgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RmICopIF9fYSwgX19v
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9p
ZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDJxX3A2NCAocG9seTY0X3QgKiBfX2EsIHBvbHk2
NHgyeDJfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9f
bzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjJkaV9zc3BzIChf
X28sDQogICAgKwkJCQkJICAgICAgIChwb2x5NjR4Ml90KSB2YWwudmFsWzBdLCAwKTsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjJkaV9zc3BzIChfX28sDQogICAg
KwkJCQkJICAgICAgIChwb2x5NjR4Ml90KSB2YWwudmFsWzFdLCAxKTsNCiAgICArICBfX2J1aWx0
aW5fYWFyY2g2NF9zdDJ2MmRpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EsIF9f
byk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZv
aWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QzX3M2NCAoaW50NjRfdCAqIF9fYSwgaW50NjR4
MXgzX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287
DQogICAgKyAgaW50NjR4MngzX3QgdGVtcDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5l
X3M2NCAodmFsLnZhbFswXSwgdmNyZWF0ZV9zNjQgKF9fQUFSQ0g2NF9JTlQ2NF9DICgwKSkpOw0K
ICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfczY0ICh2YWwudmFsWzFdLCB2Y3JlYXRlX3M2
NCAoX19BQVJDSDY0X0lOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMl0gPSB2Y29tYmlu
ZV9zNjQgKHZhbC52YWxbMl0sIHZjcmVhdGVfczY0IChfX0FBUkNINjRfSU5UNjRfQyAoMCkpKTsN
CiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjJkaSAoX19vLCAoaW50
NjR4Ml90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWdjaXYyZGkgKF9fbywgKGludDY0eDJfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MmRpIChfX28sIChpbnQ2NHgyX3Qp
IHRlbXAudmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDNkaSAoKF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnN0M191NjQgKHVpbnQ2NF90ICogX19hLCB1aW50NjR4MXgzX3QgdmFsKQ0KICAgICt7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgdWludDY0eDJ4M190IHRl
bXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV91NjQgKHZhbC52YWxbMF0sIHZjcmVh
dGVfdTY0IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMV0gPSB2
Y29tYmluZV91NjQgKHZhbC52YWxbMV0sIHZjcmVhdGVfdTY0IChfX0FBUkNINjRfVUlOVDY0X0Mg
KDApKSk7DQogICAgKyAgdGVtcC52YWxbMl0gPSB2Y29tYmluZV91NjQgKHZhbC52YWxbMl0sIHZj
cmVhdGVfdTY0IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgX19vID0gX19idWls
dGluX2FhcmNoNjRfc2V0X3FyZWdjaXYyZGkgKF9fbywgKGludDY0eDJfdCkgdGVtcC52YWxbMF0s
IDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MmRpIChfX28s
IChpbnQ2NHgyX3QpIHRlbXAudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFy
Y2g2NF9zZXRfcXJlZ2NpdjJkaSAoX19vLCAoaW50NjR4Ml90KSB0ZW1wLnZhbFsyXSwgMik7DQog
ICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QzZGkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2Rp
ICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDNfZjY0IChmbG9hdDY0X3Qg
KiBfX2EsIGZsb2F0NjR4MXgzX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc2ltZF9jaSBfX287DQogICAgKyAgZmxvYXQ2NHgyeDNfdCB0ZW1wOw0KICAgICsgIHRlbXAu
dmFsWzBdID0gdmNvbWJpbmVfZjY0ICh2YWwudmFsWzBdLCB2Y3JlYXRlX2Y2NCAoX19BQVJDSDY0
X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfZjY0ICh2YWwu
dmFsWzFdLCB2Y3JlYXRlX2Y2NCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIHRl
bXAudmFsWzJdID0gdmNvbWJpbmVfZjY0ICh2YWwudmFsWzJdLCB2Y3JlYXRlX2Y2NCAoX19BQVJD
SDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9x
cmVnY2l2MmRmIChfX28sIChmbG9hdDY0eDJfdCkgdGVtcC52YWxbMF0sIDApOw0KICAgICsgIF9f
byA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MmRmIChfX28sIChmbG9hdDY0eDJfdCkg
dGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
Y2l2MmRmIChfX28sIChmbG9hdDY0eDJfdCkgdGVtcC52YWxbMl0sIDIpOw0KICAgICsgIF9fYnVp
bHRpbl9hYXJjaDY0X3N0M2RmICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9kZiAqKSBfX2EsIF9f
byk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZv
aWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QzX3M4IChpbnQ4X3QgKiBfX2EsIGludDh4OHgz
X3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQog
ICAgKyAgaW50OHgxNngzX3QgdGVtcDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3M4
ICh2YWwudmFsWzBdLCB2Y3JlYXRlX3M4IChfX0FBUkNINjRfSU5UNjRfQyAoMCkpKTsNCiAgICAr
ICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX3M4ICh2YWwudmFsWzFdLCB2Y3JlYXRlX3M4IChfX0FB
UkNINjRfSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsyXSA9IHZjb21iaW5lX3M4ICh2
YWwudmFsWzJdLCB2Y3JlYXRlX3M4IChfX0FBUkNINjRfSU5UNjRfQyAoMCkpKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjE2cWkgKF9fbywgKGludDh4MTZfdCkg
dGVtcC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
Y2l2MTZxaSAoX19vLCAoaW50OHgxNl90KSB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpIHRlbXAu
dmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDN2OHFpICgoX19idWlsdGlu
X2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3Qz
X3A4IChwb2x5OF90ICogX19hLCBwb2x5OHg4eDNfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBwb2x5OHgxNngzX3QgdGVtcDsNCiAg
ICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3A4ICh2YWwudmFsWzBdLCB2Y3JlYXRlX3A4IChf
X0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV9w
OCAodmFsLnZhbFsxXSwgdmNyZWF0ZV9wOCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAg
ICsgIHRlbXAudmFsWzJdID0gdmNvbWJpbmVfcDggKHZhbC52YWxbMl0sIHZjcmVhdGVfcDggKF9f
QUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9z
ZXRfcXJlZ2NpdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdGVtcC52YWxbMF0sIDApOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90
KSB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWdjaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpIHRlbXAudmFsWzJdLCAyKTsNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zdDN2OHFpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2Es
IF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QzX3MxNiAoaW50MTZfdCAqIF9fYSwgaW50
MTZ4NHgzX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBf
X287DQogICAgKyAgaW50MTZ4OHgzX3QgdGVtcDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21i
aW5lX3MxNiAodmFsLnZhbFswXSwgdmNyZWF0ZV9zMTYgKF9fQUFSQ0g2NF9JTlQ2NF9DICgwKSkp
Ow0KICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfczE2ICh2YWwudmFsWzFdLCB2Y3JlYXRl
X3MxNiAoX19BQVJDSDY0X0lOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMl0gPSB2Y29t
YmluZV9zMTYgKHZhbC52YWxbMl0sIHZjcmVhdGVfczE2IChfX0FBUkNINjRfSU5UNjRfQyAoMCkp
KTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjhoaSAoX19vLCAo
aW50MTZ4OF90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfc2V0X3FyZWdjaXY4aGkgKF9fbywgKGludDE2eDhfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2OGhpIChfX28sIChpbnQxNng4
X3QpIHRlbXAudmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDN2NGhpICgo
X19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2c3QzX3AxNiAocG9seTE2X3QgKiBfX2EsIHBvbHkxNng0eDNfdCB2YWwpDQogICAgK3sN
CiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBwb2x5MTZ4OHgz
X3QgdGVtcDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3AxNiAodmFsLnZhbFswXSwg
dmNyZWF0ZV9wMTYgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsx
XSA9IHZjb21iaW5lX3AxNiAodmFsLnZhbFsxXSwgdmNyZWF0ZV9wMTYgKF9fQUFSQ0g2NF9VSU5U
NjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsyXSA9IHZjb21iaW5lX3AxNiAodmFsLnZhbFsy
XSwgdmNyZWF0ZV9wMTYgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjhoaSAoX19vLCAoaW50MTZ4OF90KSB0ZW1wLnZh
bFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY4aGkg
KF9fbywgKGludDE2eDhfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRp
bl9hYXJjaDY0X3NldF9xcmVnY2l2OGhpIChfX28sIChpbnQxNng4X3QpIHRlbXAudmFsWzJdLCAy
KTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDN2NGhpICgoX19idWlsdGluX2FhcmNoNjRf
c2ltZF9oaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QzX3MzMiAoaW50
MzJfdCAqIF9fYSwgaW50MzJ4MngzX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2Fh
cmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgaW50MzJ4NHgzX3QgdGVtcDsNCiAgICArICB0ZW1w
LnZhbFswXSA9IHZjb21iaW5lX3MzMiAodmFsLnZhbFswXSwgdmNyZWF0ZV9zMzIgKF9fQUFSQ0g2
NF9JTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfczMyICh2YWwu
dmFsWzFdLCB2Y3JlYXRlX3MzMiAoX19BQVJDSDY0X0lOVDY0X0MgKDApKSk7DQogICAgKyAgdGVt
cC52YWxbMl0gPSB2Y29tYmluZV9zMzIgKHZhbC52YWxbMl0sIHZjcmVhdGVfczMyIChfX0FBUkNI
NjRfSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJl
Z2NpdjRzaSAoX19vLCAoaW50MzJ4NF90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY0c2kgKF9fbywgKGludDMyeDRfdCkgdGVtcC52
YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2NHNp
IChfX28sIChpbnQzMng0X3QpIHRlbXAudmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFy
Y2g2NF9zdDN2MnNpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAqKSBfX2EsIF9fbyk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2c3QzX3U4ICh1aW50OF90ICogX19hLCB1aW50OHg4eDNfdCB2
YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICAr
ICB1aW50OHgxNngzX3QgdGVtcDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3U4ICh2
YWwudmFsWzBdLCB2Y3JlYXRlX3U4IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAg
dGVtcC52YWxbMV0gPSB2Y29tYmluZV91OCAodmFsLnZhbFsxXSwgdmNyZWF0ZV91OCAoX19BQVJD
SDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzJdID0gdmNvbWJpbmVfdTggKHZh
bC52YWxbMl0sIHZjcmVhdGVfdTggKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjE2cWkgKF9fbywgKGludDh4MTZfdCkg
dGVtcC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
Y2l2MTZxaSAoX19vLCAoaW50OHgxNl90KSB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpIHRlbXAu
dmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDN2OHFpICgoX19idWlsdGlu
X2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3Qz
X3UxNiAodWludDE2X3QgKiBfX2EsIHVpbnQxNng0eDNfdCB2YWwpDQogICAgK3sNCiAgICArICBf
X2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICB1aW50MTZ4OHgzX3QgdGVtcDsN
CiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3UxNiAodmFsLnZhbFswXSwgdmNyZWF0ZV91
MTYgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZjb21i
aW5lX3UxNiAodmFsLnZhbFsxXSwgdmNyZWF0ZV91MTYgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkp
KTsNCiAgICArICB0ZW1wLnZhbFsyXSA9IHZjb21iaW5lX3UxNiAodmFsLnZhbFsyXSwgdmNyZWF0
ZV91MTYgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9zZXRfcXJlZ2NpdjhoaSAoX19vLCAoaW50MTZ4OF90KSB0ZW1wLnZhbFswXSwgMCk7
DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY4aGkgKF9fbywgKGlu
dDE2eDhfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X3NldF9xcmVnY2l2OGhpIChfX28sIChpbnQxNng4X3QpIHRlbXAudmFsWzJdLCAyKTsNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zdDN2NGhpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAq
KSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QzX3UzMiAodWludDMyX3QgKiBf
X2EsIHVpbnQzMngyeDNfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX2NpIF9fbzsNCiAgICArICB1aW50MzJ4NHgzX3QgdGVtcDsNCiAgICArICB0ZW1wLnZhbFsw
XSA9IHZjb21iaW5lX3UzMiAodmFsLnZhbFswXSwgdmNyZWF0ZV91MzIgKF9fQUFSQ0g2NF9VSU5U
NjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX3UzMiAodmFsLnZhbFsx
XSwgdmNyZWF0ZV91MzIgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZh
bFsyXSA9IHZjb21iaW5lX3UzMiAodmFsLnZhbFsyXSwgdmNyZWF0ZV91MzIgKF9fQUFSQ0g2NF9V
SU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2Np
djRzaSAoX19vLCAoaW50MzJ4NF90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY0c2kgKF9fbywgKGludDMyeDRfdCkgdGVtcC52YWxb
MV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2NHNpIChf
X28sIChpbnQzMng0X3QpIHRlbXAudmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2
NF9zdDN2MnNpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9zaSAqKSBfX2EsIF9fbyk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2c3QzX2YxNiAoZmxvYXQxNl90ICogX19hLCBmbG9hdDE2eDR4M190
IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAg
ICsgIGZsb2F0MTZ4OHgzX3QgdGVtcDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX2Yx
NiAodmFsLnZhbFswXSwgdmNyZWF0ZV9mMTYgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAg
ICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX2YxNiAodmFsLnZhbFsxXSwgdmNyZWF0ZV9mMTYg
KF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsyXSA9IHZjb21iaW5l
X2YxNiAodmFsLnZhbFsyXSwgdmNyZWF0ZV9mMTYgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsN
CiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjhoZiAoX19vLCAoZmxv
YXQxNng4X3QpIHRlbXAudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ2NpdjhoZiAoX19vLCAoZmxvYXQxNng4X3QpIHRlbXAudmFsWzFdLCAxKTsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjhoZiAoX19vLCAoZmxvYXQx
Nng4X3QpIHRlbXAudmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDN2NGhm
ICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9oZiAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2c3QzX2YzMiAoZmxvYXQzMl90ICogX19hLCBmbG9hdDMyeDJ4M190IHZhbCkNCiAg
ICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0KICAgICsgIGZsb2F0
MzJ4NHgzX3QgdGVtcDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX2YzMiAodmFsLnZh
bFswXSwgdmNyZWF0ZV9mMzIgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1w
LnZhbFsxXSA9IHZjb21iaW5lX2YzMiAodmFsLnZhbFsxXSwgdmNyZWF0ZV9mMzIgKF9fQUFSQ0g2
NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsyXSA9IHZjb21iaW5lX2YzMiAodmFs
LnZhbFsyXSwgdmNyZWF0ZV9mMzIgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjRzZiAoX19vLCAoZmxvYXQzMng0X3Qp
IHRlbXAudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJl
Z2NpdjRzZiAoX19vLCAoZmxvYXQzMng0X3QpIHRlbXAudmFsWzFdLCAxKTsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjRzZiAoX19vLCAoZmxvYXQzMng0X3QpIHRl
bXAudmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDN2MnNmICgoX19idWls
dGluX2FhcmNoNjRfc2ltZF9zZiAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
c3QzX3A2NCAocG9seTY0X3QgKiBfX2EsIHBvbHk2NHgxeDNfdCB2YWwpDQogICAgK3sNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBwb2x5NjR4MngzX3QgdGVt
cDsNCiAgICArICB0ZW1wLnZhbFswXSA9IHZjb21iaW5lX3A2NCAodmFsLnZhbFswXSwgdmNyZWF0
ZV9wNjQgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZj
b21iaW5lX3A2NCAodmFsLnZhbFsxXSwgdmNyZWF0ZV9wNjQgKF9fQUFSQ0g2NF9VSU5UNjRfQyAo
MCkpKTsNCiAgICArICB0ZW1wLnZhbFsyXSA9IHZjb21iaW5lX3A2NCAodmFsLnZhbFsyXSwgdmNy
ZWF0ZV9wNjQgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0
aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjJkaV9zc3BzIChfX28sDQogICAgKwkJCQkJICAgICAgIChw
b2x5NjR4Ml90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfc2V0X3FyZWdjaXYyZGlfc3NwcyAoX19vLA0KICAgICsJCQkJCSAgICAgICAocG9seTY0eDJf
dCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9x
cmVnY2l2MmRpX3NzcHMgKF9fbywNCiAgICArCQkJCQkgICAgICAgKHBvbHk2NHgyX3QpIHRlbXAu
dmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDNkaSAoKF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfZGkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0M3Ff
czggKGludDhfdCAqIF9fYSwgaW50OHgxNngzX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4eDE2X3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90
KSB2YWwudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJl
Z2NpdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdmFsLnZhbFsyXSwgMik7DQogICAgKyAgX19idWls
dGluX2FhcmNoNjRfc3QzdjE2cWkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSwg
X19vKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDNxX3A4IChwb2x5OF90ICogX19hLCBwb2x5
OHgxNngzX3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBf
X287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28s
IChpbnQ4eDE2X3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJj
aDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50OHgxNl90KSB2YWwudmFsWzFdLCAxKTsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjE2cWkgKF9fbywgKGludDh4
MTZfdCkgdmFsLnZhbFsyXSwgMik7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QzdjE2cWkg
KChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZzdDNxX3MxNiAoaW50MTZfdCAqIF9fYSwgaW50MTZ4OHgzX3QgdmFsKQ0KICAgICt7
DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY4aGkgKF9fbywgKGludDE2eDhfdCkgdmFsLnZhbFsw
XSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY4aGkgKF9f
bywgKGludDE2eDhfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2Fh
cmNoNjRfc2V0X3FyZWdjaXY4aGkgKF9fbywgKGludDE2eDhfdCkgdmFsLnZhbFsyXSwgMik7DQog
ICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QzdjhoaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRf
aGkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0M3FfcDE2IChwb2x5MTZf
dCAqIF9fYSwgcG9seTE2eDh4M190IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
Y2l2OGhpIChfX28sIChpbnQxNng4X3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9f
YnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2OGhpIChfX28sIChpbnQxNng4X3QpIHZhbC52YWxb
MV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2OGhpIChf
X28sIChpbnQxNng4X3QpIHZhbC52YWxbMl0sIDIpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3N0M3Y4aGkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSwgX19vKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZzdDNxX3MzMiAoaW50MzJfdCAqIF9fYSwgaW50MzJ4NHgzX3QgdmFs
KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAg
X19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY0c2kgKF9fbywgKGludDMyeDRfdCkg
dmFsLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdj
aXY0c2kgKF9fbywgKGludDMyeDRfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY0c2kgKF9fbywgKGludDMyeDRfdCkgdmFsLnZhbFsy
XSwgMik7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QzdjRzaSAoKF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfc2kgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0M3FfczY0
IChpbnQ2NF90ICogX19hLCBpbnQ2NHgyeDNfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0
aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9z
ZXRfcXJlZ2NpdjJkaSAoX19vLCAoaW50NjR4Ml90KSB2YWwudmFsWzBdLCAwKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjJkaSAoX19vLCAoaW50NjR4Ml90KSB2
YWwudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2Np
djJkaSAoX19vLCAoaW50NjR4Ml90KSB2YWwudmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zdDN2MmRpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EsIF9fbyk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QzcV91OCAodWludDhfdCAqIF9fYSwgdWludDh4MTZ4
M190IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfY2kgX19vOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2MTZxaSAoX19vLCAoaW50
OHgxNl90KSB2YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9z
ZXRfcXJlZ2NpdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAg
X19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYxNnFpIChfX28sIChpbnQ4eDE2X3Qp
IHZhbC52YWxbMl0sIDIpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0M3YxNnFpICgoX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2c3QzcV91MTYgKHVpbnQxNl90ICogX19hLCB1aW50MTZ4OHgzX3QgdmFsKQ0KICAgICt7DQog
ICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWls
dGluX2FhcmNoNjRfc2V0X3FyZWdjaXY4aGkgKF9fbywgKGludDE2eDhfdCkgdmFsLnZhbFswXSwg
MCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY4aGkgKF9fbywg
KGludDE2eDhfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfc2V0X3FyZWdjaXY4aGkgKF9fbywgKGludDE2eDhfdCkgdmFsLnZhbFsyXSwgMik7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc3QzdjhoaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkg
KikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0M3FfdTMyICh1aW50MzJfdCAq
IF9fYSwgdWludDMyeDR4M190IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3NpbWRfY2kgX19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2
NHNpIChfX28sIChpbnQzMng0X3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2NHNpIChfX28sIChpbnQzMng0X3QpIHZhbC52YWxbMV0s
IDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2NHNpIChfX28s
IChpbnQzMng0X3QpIHZhbC52YWxbMl0sIDIpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0
M3Y0c2kgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSwgX19vKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZzdDNxX3U2NCAodWludDY0X3QgKiBfX2EsIHVpbnQ2NHgyeDNfdCB2YWwp
DQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjJkaSAoX19vLCAoaW50NjR4Ml90KSB2
YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2Np
djJkaSAoX19vLCAoaW50NjR4Ml90KSB2YWwudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1
aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjJkaSAoX19vLCAoaW50NjR4Ml90KSB2YWwudmFsWzJd
LCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDN2MmRpICgoX19idWlsdGluX2FhcmNo
NjRfc2ltZF9kaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QzcV9mMTYg
KGZsb2F0MTZfdCAqIF9fYSwgZmxvYXQxNng4eDNfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ2NpdjhoZiAoX19vLCAoZmxvYXQxNng4X3QpIHZhbC52YWxbMF0sIDApOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2OGhmIChfX28sIChmbG9hdDE2
eDhfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0
X3FyZWdjaXY4aGYgKF9fbywgKGZsb2F0MTZ4OF90KSB2YWwudmFsWzJdLCAyKTsNCiAgICArICBf
X2J1aWx0aW5fYWFyY2g2NF9zdDN2OGhmICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9oZiAqKSBf
X2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3QzcV9mMzIgKGZsb2F0MzJfdCAqIF9f
YSwgZmxvYXQzMng0eDNfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX2NpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjRz
ZiAoX19vLCAoZmxvYXQzMng0X3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X3NldF9xcmVnY2l2NHNmIChfX28sIChmbG9hdDMyeDRfdCkgdmFsLnZhbFsx
XSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXY0c2YgKF9f
bywgKGZsb2F0MzJ4NF90KSB2YWwudmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2
NF9zdDN2NHNmICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9zZiAqKSBfX2EsIF9fbyk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2c3QzcV9mNjQgKGZsb2F0NjRfdCAqIF9fYSwgZmxvYXQ2NHgyeDNf
dCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2NpIF9fbzsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ2NpdjJkZiAoX19vLCAoZmxvYXQ2
NHgyX3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3Nl
dF9xcmVnY2l2MmRmIChfX28sIChmbG9hdDY0eDJfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAg
X19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdjaXYyZGYgKF9fbywgKGZsb2F0NjR4Ml90
KSB2YWwudmFsWzJdLCAyKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDN2MmRmICgoX19i
dWlsdGluX2FhcmNoNjRfc2ltZF9kZiAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2c3QzcV9wNjQgKHBvbHk2NF90ICogX19hLCBwb2x5NjR4MngzX3QgdmFsKQ0KICAgICt7DQog
ICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF9jaSBfX287DQogICAgKyAgX19vID0gX19idWls
dGluX2FhcmNoNjRfc2V0X3FyZWdjaXYyZGlfc3NwcyAoX19vLA0KICAgICsJCQkJCSAgICAgICAo
cG9seTY0eDJfdCkgdmFsLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfc2V0X3FyZWdjaXYyZGlfc3NwcyAoX19vLA0KICAgICsJCQkJCSAgICAgICAocG9seTY0eDJf
dCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWdjaXYyZGlfc3NwcyAoX19vLA0KICAgICsJCQkJCSAgICAgICAocG9seTY0eDJfdCkgdmFsLnZh
bFsyXSwgMik7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3QzdjJkaSAoKF9fYnVpbHRpbl9h
YXJjaDY0X3NpbWRfZGkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0NF9z
NjQgKGludDY0X3QgKiBfX2EsIGludDY0eDF4NF90IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIGludDY0eDJ4NF90IHRlbXA7DQogICAg
KyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV9zNjQgKHZhbC52YWxbMF0sIHZjcmVhdGVfczY0IChf
X0FBUkNINjRfSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX3M2
NCAodmFsLnZhbFsxXSwgdmNyZWF0ZV9zNjQgKF9fQUFSQ0g2NF9JTlQ2NF9DICgwKSkpOw0KICAg
ICsgIHRlbXAudmFsWzJdID0gdmNvbWJpbmVfczY0ICh2YWwudmFsWzJdLCB2Y3JlYXRlX3M2NCAo
X19BQVJDSDY0X0lOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbM10gPSB2Y29tYmluZV9z
NjQgKHZhbC52YWxbM10sIHZjcmVhdGVfczY0IChfX0FBUkNINjRfSU5UNjRfQyAoMCkpKTsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjJkaSAoX19vLCAoaW50NjR4
Ml90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0
X3FyZWd4aXYyZGkgKF9fbywgKGludDY0eDJfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9f
byA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MmRpIChfX28sIChpbnQ2NHgyX3QpIHRl
bXAudmFsWzJdLCAyKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hp
djJkaSAoX19vLCAoaW50NjR4Ml90KSB0ZW1wLnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc3Q0ZGkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSwgX19vKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDRfdTY0ICh1aW50NjRfdCAqIF9fYSwgdWludDY0eDF4
NF90IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0K
ICAgICsgIHVpbnQ2NHgyeDRfdCB0ZW1wOw0KICAgICsgIHRlbXAudmFsWzBdID0gdmNvbWJpbmVf
dTY0ICh2YWwudmFsWzBdLCB2Y3JlYXRlX3U2NCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0K
ICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfdTY0ICh2YWwudmFsWzFdLCB2Y3JlYXRlX3U2
NCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzJdID0gdmNvbWJp
bmVfdTY0ICh2YWwudmFsWzJdLCB2Y3JlYXRlX3U2NCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkp
Ow0KICAgICsgIHRlbXAudmFsWzNdID0gdmNvbWJpbmVfdTY0ICh2YWwudmFsWzNdLCB2Y3JlYXRl
X3U2NCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9h
YXJjaDY0X3NldF9xcmVneGl2MmRpIChfX28sIChpbnQ2NHgyX3QpIHRlbXAudmFsWzBdLCAwKTsN
CiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjJkaSAoX19vLCAoaW50
NjR4Ml90KSB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWd4aXYyZGkgKF9fbywgKGludDY0eDJfdCkgdGVtcC52YWxbMl0sIDIpOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MmRpIChfX28sIChpbnQ2NHgyX3Qp
IHRlbXAudmFsWzNdLCAzKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDRkaSAoKF9fYnVp
bHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnN0NF9mNjQgKGZsb2F0NjRfdCAqIF9fYSwgZmxvYXQ2NHgxeDRfdCB2YWwpDQogICAgK3sNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBmbG9hdDY0eDJ4NF90
IHRlbXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV9mNjQgKHZhbC52YWxbMF0sIHZj
cmVhdGVfZjY0IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMV0g
PSB2Y29tYmluZV9mNjQgKHZhbC52YWxbMV0sIHZjcmVhdGVfZjY0IChfX0FBUkNINjRfVUlOVDY0
X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMl0gPSB2Y29tYmluZV9mNjQgKHZhbC52YWxbMl0s
IHZjcmVhdGVfZjY0IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxb
M10gPSB2Y29tYmluZV9mNjQgKHZhbC52YWxbM10sIHZjcmVhdGVfZjY0IChfX0FBUkNINjRfVUlO
VDY0X0MgKDApKSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYy
ZGYgKF9fbywgKGZsb2F0NjR4Ml90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYyZGYgKF9fbywgKGZsb2F0NjR4Ml90KSB0ZW1wLnZh
bFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYyZGYg
KF9fbywgKGZsb2F0NjR4Ml90KSB0ZW1wLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0gX19idWls
dGluX2FhcmNoNjRfc2V0X3FyZWd4aXYyZGYgKF9fbywgKGZsb2F0NjR4Ml90KSB0ZW1wLnZhbFsz
XSwgMyk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3Q0ZGYgKChfX2J1aWx0aW5fYWFyY2g2
NF9zaW1kX2RmICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDRfczggKGlu
dDhfdCAqIF9fYSwgaW50OHg4eDRfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFy
Y2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBpbnQ4eDE2eDRfdCB0ZW1wOw0KICAgICsgIHRlbXAu
dmFsWzBdID0gdmNvbWJpbmVfczggKHZhbC52YWxbMF0sIHZjcmVhdGVfczggKF9fQUFSQ0g2NF9J
TlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJpbmVfczggKHZhbC52YWxb
MV0sIHZjcmVhdGVfczggKF9fQUFSQ0g2NF9JTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFs
WzJdID0gdmNvbWJpbmVfczggKHZhbC52YWxbMl0sIHZjcmVhdGVfczggKF9fQUFSQ0g2NF9JTlQ2
NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzNdID0gdmNvbWJpbmVfczggKHZhbC52YWxbM10s
IHZjcmVhdGVfczggKF9fQUFSQ0g2NF9JTlQ2NF9DICgwKSkpOw0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KSB0ZW1wLnZhbFsw
XSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChf
X28sIChpbnQ4eDE2X3QpIHRlbXAudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdGVtcC52YWxbMl0sIDIp
Ow0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAo
aW50OHgxNl90KSB0ZW1wLnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3Q0
djhxaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfcWkgKikgX19hLCBfX28pOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnN0NF9wOCAocG9seThfdCAqIF9fYSwgcG9seTh4OHg0X3QgdmFsKQ0KICAg
ICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgcG9seTh4
MTZ4NF90IHRlbXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV9wOCAodmFsLnZhbFsw
XSwgdmNyZWF0ZV9wOCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFs
WzFdID0gdmNvbWJpbmVfcDggKHZhbC52YWxbMV0sIHZjcmVhdGVfcDggKF9fQUFSQ0g2NF9VSU5U
NjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsyXSA9IHZjb21iaW5lX3A4ICh2YWwudmFsWzJd
LCB2Y3JlYXRlX3A4IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxb
M10gPSB2Y29tYmluZV9wOCAodmFsLnZhbFszXSwgdmNyZWF0ZV9wOCAoX19BQVJDSDY0X1VJTlQ2
NF9DICgwKSkpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZx
aSAoX19vLCAoaW50OHgxNl90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWls
dGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpIHRlbXAudmFsWzFd
LCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9f
bywgKGludDh4MTZfdCkgdGVtcC52YWxbMl0sIDIpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9h
YXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KSB0ZW1wLnZhbFszXSwgMyk7
DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3Q0djhxaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3Np
bWRfcWkgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0NF9zMTYgKGludDE2
X3QgKiBfX2EsIGludDE2eDR4NF90IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3NpbWRfeGkgX19vOw0KICAgICsgIGludDE2eDh4NF90IHRlbXA7DQogICAgKyAgdGVtcC52
YWxbMF0gPSB2Y29tYmluZV9zMTYgKHZhbC52YWxbMF0sIHZjcmVhdGVfczE2IChfX0FBUkNINjRf
SU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX3MxNiAodmFsLnZh
bFsxXSwgdmNyZWF0ZV9zMTYgKF9fQUFSQ0g2NF9JTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAu
dmFsWzJdID0gdmNvbWJpbmVfczE2ICh2YWwudmFsWzJdLCB2Y3JlYXRlX3MxNiAoX19BQVJDSDY0
X0lOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbM10gPSB2Y29tYmluZV9zMTYgKHZhbC52
YWxbM10sIHZjcmVhdGVfczE2IChfX0FBUkNINjRfSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjhoaSAoX19vLCAoaW50MTZ4OF90KSB0ZW1w
LnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY4
aGkgKF9fbywgKGludDE2eDhfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X3NldF9xcmVneGl2OGhpIChfX28sIChpbnQxNng4X3QpIHRlbXAudmFsWzJd
LCAyKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjhoaSAoX19v
LCAoaW50MTZ4OF90KSB0ZW1wLnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c3Q0djRoaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGkgKikgX19hLCBfX28pOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnN0NF9wMTYgKHBvbHkxNl90ICogX19hLCBwb2x5MTZ4NHg0X3QgdmFs
KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAg
cG9seTE2eDh4NF90IHRlbXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV9wMTYgKHZh
bC52YWxbMF0sIHZjcmVhdGVfcDE2IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAg
dGVtcC52YWxbMV0gPSB2Y29tYmluZV9wMTYgKHZhbC52YWxbMV0sIHZjcmVhdGVfcDE2IChfX0FB
UkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMl0gPSB2Y29tYmluZV9wMTYg
KHZhbC52YWxbMl0sIHZjcmVhdGVfcDE2IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAg
KyAgdGVtcC52YWxbM10gPSB2Y29tYmluZV9wMTYgKHZhbC52YWxbM10sIHZjcmVhdGVfcDE2IChf
X0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWd4aXY4aGkgKF9fbywgKGludDE2eDhfdCkgdGVtcC52YWxbMF0sIDApOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2OGhpIChfX28sIChpbnQxNng4X3Qp
IHRlbXAudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJl
Z3hpdjhoaSAoX19vLCAoaW50MTZ4OF90KSB0ZW1wLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY4aGkgKF9fbywgKGludDE2eDhfdCkgdGVtcC52
YWxbM10sIDMpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0NHY0aGkgKChfX2J1aWx0aW5f
YWFyY2g2NF9zaW1kX2hpICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDRf
czMyIChpbnQzMl90ICogX19hLCBpbnQzMngyeDRfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBpbnQzMng0eDRfdCB0ZW1wOw0KICAg
ICsgIHRlbXAudmFsWzBdID0gdmNvbWJpbmVfczMyICh2YWwudmFsWzBdLCB2Y3JlYXRlX3MzMiAo
X19BQVJDSDY0X0lOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV9z
MzIgKHZhbC52YWxbMV0sIHZjcmVhdGVfczMyIChfX0FBUkNINjRfSU5UNjRfQyAoMCkpKTsNCiAg
ICArICB0ZW1wLnZhbFsyXSA9IHZjb21iaW5lX3MzMiAodmFsLnZhbFsyXSwgdmNyZWF0ZV9zMzIg
KF9fQUFSQ0g2NF9JTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzNdID0gdmNvbWJpbmVf
czMyICh2YWwudmFsWzNdLCB2Y3JlYXRlX3MzMiAoX19BQVJDSDY0X0lOVDY0X0MgKDApKSk7DQog
ICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY0c2kgKF9fbywgKGludDMy
eDRfdCkgdGVtcC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3Nl
dF9xcmVneGl2NHNpIChfX28sIChpbnQzMng0X3QpIHRlbXAudmFsWzFdLCAxKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjRzaSAoX19vLCAoaW50MzJ4NF90KSB0
ZW1wLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4
aXY0c2kgKF9fbywgKGludDMyeDRfdCkgdGVtcC52YWxbM10sIDMpOw0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3N0NHYyc2kgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSwgX19v
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9p
ZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDRfdTggKHVpbnQ4X3QgKiBfX2EsIHVpbnQ4eDh4
NF90IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0K
ICAgICsgIHVpbnQ4eDE2eDRfdCB0ZW1wOw0KICAgICsgIHRlbXAudmFsWzBdID0gdmNvbWJpbmVf
dTggKHZhbC52YWxbMF0sIHZjcmVhdGVfdTggKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAg
ICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX3U4ICh2YWwudmFsWzFdLCB2Y3JlYXRlX3U4IChf
X0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMl0gPSB2Y29tYmluZV91
OCAodmFsLnZhbFsyXSwgdmNyZWF0ZV91OCAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAg
ICsgIHRlbXAudmFsWzNdID0gdmNvbWJpbmVfdTggKHZhbC52YWxbM10sIHZjcmVhdGVfdTggKF9f
QUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9z
ZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdGVtcC52YWxbMF0sIDApOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90
KSB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpIHRlbXAudmFsWzJdLCAyKTsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdGVt
cC52YWxbM10sIDMpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0NHY4cWkgKChfX2J1aWx0
aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zz
dDRfdTE2ICh1aW50MTZfdCAqIF9fYSwgdWludDE2eDR4NF90IHZhbCkNCiAgICArew0KICAgICsg
IF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAgICsgIHVpbnQxNng4eDRfdCB0ZW1w
Ow0KICAgICsgIHRlbXAudmFsWzBdID0gdmNvbWJpbmVfdTE2ICh2YWwudmFsWzBdLCB2Y3JlYXRl
X3UxNiAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzFdID0gdmNv
bWJpbmVfdTE2ICh2YWwudmFsWzFdLCB2Y3JlYXRlX3UxNiAoX19BQVJDSDY0X1VJTlQ2NF9DICgw
KSkpOw0KICAgICsgIHRlbXAudmFsWzJdID0gdmNvbWJpbmVfdTE2ICh2YWwudmFsWzJdLCB2Y3Jl
YXRlX3UxNiAoX19BQVJDSDY0X1VJTlQ2NF9DICgwKSkpOw0KICAgICsgIHRlbXAudmFsWzNdID0g
dmNvbWJpbmVfdTE2ICh2YWwudmFsWzNdLCB2Y3JlYXRlX3UxNiAoX19BQVJDSDY0X1VJTlQ2NF9D
ICgwKSkpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2OGhpIChf
X28sIChpbnQxNng4X3QpIHRlbXAudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9zZXRfcXJlZ3hpdjhoaSAoX19vLCAoaW50MTZ4OF90KSB0ZW1wLnZhbFsxXSwgMSk7
DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY4aGkgKF9fbywgKGlu
dDE2eDhfdCkgdGVtcC52YWxbMl0sIDIpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X3NldF9xcmVneGl2OGhpIChfX28sIChpbnQxNng4X3QpIHRlbXAudmFsWzNdLCAzKTsNCiAgICAr
ICBfX2J1aWx0aW5fYWFyY2g2NF9zdDR2NGhpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAq
KSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3Q0X3UzMiAodWludDMyX3QgKiBf
X2EsIHVpbnQzMngyeDRfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9z
aW1kX3hpIF9fbzsNCiAgICArICB1aW50MzJ4NHg0X3QgdGVtcDsNCiAgICArICB0ZW1wLnZhbFsw
XSA9IHZjb21iaW5lX3UzMiAodmFsLnZhbFswXSwgdmNyZWF0ZV91MzIgKF9fQUFSQ0g2NF9VSU5U
NjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX3UzMiAodmFsLnZhbFsx
XSwgdmNyZWF0ZV91MzIgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZh
bFsyXSA9IHZjb21iaW5lX3UzMiAodmFsLnZhbFsyXSwgdmNyZWF0ZV91MzIgKF9fQUFSQ0g2NF9V
SU5UNjRfQyAoMCkpKTsNCiAgICArICB0ZW1wLnZhbFszXSA9IHZjb21iaW5lX3UzMiAodmFsLnZh
bFszXSwgdmNyZWF0ZV91MzIgKF9fQUFSQ0g2NF9VSU5UNjRfQyAoMCkpKTsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjRzaSAoX19vLCAoaW50MzJ4NF90KSB0ZW1w
LnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY0
c2kgKF9fbywgKGludDMyeDRfdCkgdGVtcC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X3NldF9xcmVneGl2NHNpIChfX28sIChpbnQzMng0X3QpIHRlbXAudmFsWzJd
LCAyKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjRzaSAoX19v
LCAoaW50MzJ4NF90KSB0ZW1wLnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c3Q0djJzaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfc2kgKikgX19hLCBfX28pOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnN0NF9mMTYgKGZsb2F0MTZfdCAqIF9fYSwgZmxvYXQxNng0eDRfdCB2
YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICAr
ICBmbG9hdDE2eDh4NF90IHRlbXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV9mMTYg
KHZhbC52YWxbMF0sIHZjcmVhdGVfZjE2IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAg
KyAgdGVtcC52YWxbMV0gPSB2Y29tYmluZV9mMTYgKHZhbC52YWxbMV0sIHZjcmVhdGVfZjE2IChf
X0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMl0gPSB2Y29tYmluZV9m
MTYgKHZhbC52YWxbMl0sIHZjcmVhdGVfZjE2IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQog
ICAgKyAgdGVtcC52YWxbM10gPSB2Y29tYmluZV9mMTYgKHZhbC52YWxbM10sIHZjcmVhdGVfZjE2
IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNo
NjRfc2V0X3FyZWd4aXY4aGYgKF9fbywgKGZsb2F0MTZ4OF90KSB0ZW1wLnZhbFswXSwgMCk7DQog
ICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY4aGYgKF9fbywgKGZsb2F0
MTZ4OF90KSB0ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWd4aXY4aGYgKF9fbywgKGZsb2F0MTZ4OF90KSB0ZW1wLnZhbFsyXSwgMik7DQogICAg
KyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY4aGYgKF9fbywgKGZsb2F0MTZ4
OF90KSB0ZW1wLnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3Q0djRoZiAo
KF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGYgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnN0NF9mMzIgKGZsb2F0MzJfdCAqIF9fYSwgZmxvYXQzMngyeDRfdCB2YWwpDQogICAg
K3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBmbG9hdDMy
eDR4NF90IHRlbXA7DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV9mMzIgKHZhbC52YWxb
MF0sIHZjcmVhdGVfZjMyIChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52
YWxbMV0gPSB2Y29tYmluZV9mMzIgKHZhbC52YWxbMV0sIHZjcmVhdGVfZjMyIChfX0FBUkNINjRf
VUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMl0gPSB2Y29tYmluZV9mMzIgKHZhbC52
YWxbMl0sIHZjcmVhdGVfZjMyIChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVt
cC52YWxbM10gPSB2Y29tYmluZV9mMzIgKHZhbC52YWxbM10sIHZjcmVhdGVfZjMyIChfX0FBUkNI
NjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWd4aXY0c2YgKF9fbywgKGZsb2F0MzJ4NF90KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19v
ID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY0c2YgKF9fbywgKGZsb2F0MzJ4NF90KSB0
ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4
aXY0c2YgKF9fbywgKGZsb2F0MzJ4NF90KSB0ZW1wLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY0c2YgKF9fbywgKGZsb2F0MzJ4NF90KSB0ZW1w
LnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc3Q0djJzZiAoKF9fYnVpbHRp
bl9hYXJjaDY0X3NpbWRfc2YgKikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0
NF9wNjQgKHBvbHk2NF90ICogX19hLCBwb2x5NjR4MXg0X3QgdmFsKQ0KICAgICt7DQogICAgKyAg
X19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAgcG9seTY0eDJ4NF90IHRlbXA7
DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV9wNjQgKHZhbC52YWxbMF0sIHZjcmVhdGVf
cDY0IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbMV0gPSB2Y29t
YmluZV9wNjQgKHZhbC52YWxbMV0sIHZjcmVhdGVfcDY0IChfX0FBUkNINjRfVUlOVDY0X0MgKDAp
KSk7DQogICAgKyAgdGVtcC52YWxbMl0gPSB2Y29tYmluZV9wNjQgKHZhbC52YWxbMl0sIHZjcmVh
dGVfcDY0IChfX0FBUkNINjRfVUlOVDY0X0MgKDApKSk7DQogICAgKyAgdGVtcC52YWxbM10gPSB2
Y29tYmluZV9wNjQgKHZhbC52YWxbM10sIHZjcmVhdGVfcDY0IChfX0FBUkNINjRfVUlOVDY0X0Mg
KDApKSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYyZGlfc3Nw
cyAoX19vLA0KICAgICsJCQkJCSAgICAgICAocG9seTY0eDJfdCkgdGVtcC52YWxbMF0sIDApOw0K
ICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MmRpX3NzcHMgKF9fbywN
CiAgICArCQkJCQkgICAgICAgKHBvbHk2NHgyX3QpIHRlbXAudmFsWzFdLCAxKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjJkaV9zc3BzIChfX28sDQogICAgKwkJ
CQkJICAgICAgIChwb2x5NjR4Ml90KSB0ZW1wLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0gX19i
dWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYyZGlfc3NwcyAoX19vLA0KICAgICsJCQkJCSAgICAg
ICAocG9seTY0eDJfdCkgdGVtcC52YWxbM10sIDMpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0
X3N0NGRpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9kaSAqKSBfX2EsIF9fbyk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2c3Q0cV9zOCAoaW50OF90ICogX19hLCBpbnQ4eDE2eDRfdCB2YWwpDQog
ICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdmFs
LnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYx
NnFpIChfX28sIChpbnQ4eDE2X3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVp
bHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KSB2YWwudmFsWzJd
LCAyKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9f
bywgKGludDh4MTZfdCkgdmFsLnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRf
c3Q0djE2cWkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSwgX19vKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3ZzdDRxX3A4IChwb2x5OF90ICogX19hLCBwb2x5OHgxNng0X3QgdmFs
KQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAgKyAg
X19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3Qp
IHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
eGl2MTZxaSAoX19vLCAoaW50OHgxNl90KSB2YWwudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZfdCkgdmFsLnZh
bFsyXSwgMik7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYxNnFp
IChfX28sIChpbnQ4eDE2X3QpIHZhbC52YWxbM10sIDMpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3N0NHYxNnFpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9xaSAqKSBfX2EsIF9fbyk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2c3Q0cV9zMTYgKGludDE2X3QgKiBfX2EsIGludDE2eDh4NF90
IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2OGhpIChfX28sIChpbnQxNng4
X3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9x
cmVneGl2OGhpIChfX28sIChpbnQxNng4X3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9
IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2OGhpIChfX28sIChpbnQxNng4X3QpIHZhbC52
YWxbMl0sIDIpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2OGhp
IChfX28sIChpbnQxNng4X3QpIHZhbC52YWxbM10sIDMpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3N0NHY4aGkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2hpICopIF9fYSwgX19vKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZzdDRxX3AxNiAocG9seTE2X3QgKiBfX2EsIHBvbHkxNng4eDRf
dCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAg
ICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjhoaSAoX19vLCAoaW50MTZ4
OF90KSB2YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRf
cXJlZ3hpdjhoaSAoX19vLCAoaW50MTZ4OF90KSB2YWwudmFsWzFdLCAxKTsNCiAgICArICBfX28g
PSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjhoaSAoX19vLCAoaW50MTZ4OF90KSB2YWwu
dmFsWzJdLCAyKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjho
aSAoX19vLCAoaW50MTZ4OF90KSB2YWwudmFsWzNdLCAzKTsNCiAgICArICBfX2J1aWx0aW5fYWFy
Y2g2NF9zdDR2OGhpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EsIF9fbyk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2c3Q0cV9zMzIgKGludDMyX3QgKiBfX2EsIGludDMyeDR4NF90
IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19vOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2NHNpIChfX28sIChpbnQzMng0
X3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9x
cmVneGl2NHNpIChfX28sIChpbnQzMng0X3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9
IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2NHNpIChfX28sIChpbnQzMng0X3QpIHZhbC52
YWxbMl0sIDIpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2NHNp
IChfX28sIChpbnQzMng0X3QpIHZhbC52YWxbM10sIDMpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJj
aDY0X3N0NHY0c2kgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3NpICopIF9fYSwgX19vKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZzdDRxX3M2NCAoaW50NjRfdCAqIF9fYSwgaW50NjR4Mng0X3Qg
dmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287DQogICAg
KyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYyZGkgKF9fbywgKGludDY0eDJf
dCkgdmFsLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWd4aXYyZGkgKF9fbywgKGludDY0eDJfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0g
X19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYyZGkgKF9fbywgKGludDY0eDJfdCkgdmFsLnZh
bFsyXSwgMik7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXYyZGkg
KF9fbywgKGludDY0eDJfdCkgdmFsLnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc3Q0djJkaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfZGkgKikgX19hLCBfX28pOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lkDQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnN0NHFfdTggKHVpbnQ4X3QgKiBfX2EsIHVpbnQ4eDE2eDRfdCB2
YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICAr
ICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2cWkgKF9fbywgKGludDh4MTZf
dCkgdmFsLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWd4aXYxNnFpIChfX28sIChpbnQ4eDE2X3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9
IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MTZxaSAoX19vLCAoaW50OHgxNl90KSB2YWwu
dmFsWzJdLCAyKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjE2
cWkgKF9fbywgKGludDh4MTZfdCkgdmFsLnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGluX2Fh
cmNoNjRfc3Q0djE2cWkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3FpICopIF9fYSwgX19vKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDRxX3UxNiAodWludDE2X3QgKiBfX2EsIHVpbnQxNng4
eDRfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsN
CiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjhoaSAoX19vLCAoaW50
MTZ4OF90KSB2YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9z
ZXRfcXJlZ3hpdjhoaSAoX19vLCAoaW50MTZ4OF90KSB2YWwudmFsWzFdLCAxKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjhoaSAoX19vLCAoaW50MTZ4OF90KSB2
YWwudmFsWzJdLCAyKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hp
djhoaSAoX19vLCAoaW50MTZ4OF90KSB2YWwudmFsWzNdLCAzKTsNCiAgICArICBfX2J1aWx0aW5f
YWFyY2g2NF9zdDR2OGhpICgoX19idWlsdGluX2FhcmNoNjRfc2ltZF9oaSAqKSBfX2EsIF9fbyk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHZvaWQN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2c3Q0cV91MzIgKHVpbnQzMl90ICogX19hLCB1aW50MzJ4
NHg0X3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNoNjRfc2ltZF94aSBfX287
DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY0c2kgKF9fbywgKGlu
dDMyeDRfdCkgdmFsLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRf
c2V0X3FyZWd4aXY0c2kgKF9fbywgKGludDMyeDRfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAg
X19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4aXY0c2kgKF9fbywgKGludDMyeDRfdCkg
dmFsLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4
aXY0c2kgKF9fbywgKGludDMyeDRfdCkgdmFsLnZhbFszXSwgMyk7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc3Q0djRzaSAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfc2kgKikgX19hLCBfX28p
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB2b2lk
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0NHFfdTY0ICh1aW50NjRfdCAqIF9fYSwgdWludDY0
eDJ4NF90IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkgX19v
Ow0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MmRpIChfX28sIChp
bnQ2NHgyX3QpIHZhbC52YWxbMF0sIDApOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X3NldF9xcmVneGl2MmRpIChfX28sIChpbnQ2NHgyX3QpIHZhbC52YWxbMV0sIDEpOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MmRpIChfX28sIChpbnQ2NHgyX3Qp
IHZhbC52YWxbMl0sIDIpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVn
eGl2MmRpIChfX28sIChpbnQ2NHgyX3QpIHZhbC52YWxbM10sIDMpOw0KICAgICsgIF9fYnVpbHRp
bl9hYXJjaDY0X3N0NHYyZGkgKChfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX2RpICopIF9fYSwgX19v
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9p
ZA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzdDRxX2YxNiAoZmxvYXQxNl90ICogX19hLCBmbG9h
dDE2eDh4NF90IHZhbCkNCiAgICArew0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfeGkg
X19vOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2OGhmIChfX28s
IChmbG9hdDE2eDhfdCkgdmFsLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2Fh
cmNoNjRfc2V0X3FyZWd4aXY4aGYgKF9fbywgKGZsb2F0MTZ4OF90KSB2YWwudmFsWzFdLCAxKTsN
CiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjhoZiAoX19vLCAoZmxv
YXQxNng4X3QpIHZhbC52YWxbMl0sIDIpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0
X3NldF9xcmVneGl2OGhmIChfX28sIChmbG9hdDE2eDhfdCkgdmFsLnZhbFszXSwgMyk7DQogICAg
KyAgX19idWlsdGluX2FhcmNoNjRfc3Q0djhoZiAoKF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfaGYg
KikgX19hLCBfX28pOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB2b2lkDQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN0NHFfZjMyIChmbG9hdDMyX3Qg
KiBfX2EsIGZsb2F0MzJ4NHg0X3QgdmFsKQ0KICAgICt7DQogICAgKyAgX19idWlsdGluX2FhcmNo
NjRfc2ltZF94aSBfX287DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWd4
aXY0c2YgKF9fbywgKGZsb2F0MzJ4NF90KSB2YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBf
X2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjRzZiAoX19vLCAoZmxvYXQzMng0X3QpIHZhbC52
YWxbMV0sIDEpOw0KICAgICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2NHNm
IChfX28sIChmbG9hdDMyeDRfdCkgdmFsLnZhbFsyXSwgMik7DQogICAgKyAgX19vID0gX19idWls
dGluX2FhcmNoNjRfc2V0X3FyZWd4aXY0c2YgKF9fbywgKGZsb2F0MzJ4NF90KSB2YWwudmFsWzNd
LCAzKTsNCiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDR2NHNmICgoX19idWlsdGluX2FhcmNo
NjRfc2ltZF9zZiAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHZvaWQNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2c3Q0cV9mNjQg
KGZsb2F0NjRfdCAqIF9fYSwgZmxvYXQ2NHgyeDRfdCB2YWwpDQogICAgK3sNCiAgICArICBfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ3hpdjJkZiAoX19vLCAoZmxvYXQ2NHgyX3QpIHZhbC52YWxbMF0sIDApOw0KICAg
ICsgIF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVneGl2MmRmIChfX28sIChmbG9hdDY0
eDJfdCkgdmFsLnZhbFsxXSwgMSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0
X3FyZWd4aXYyZGYgKF9fbywgKGZsb2F0NjR4Ml90KSB2YWwudmFsWzJdLCAyKTsNCiAgICArICBf
X28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjJkZiAoX19vLCAoZmxvYXQ2NHgyX3Qp
IHZhbC52YWxbM10sIDMpOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3N0NHYyZGYgKChfX2J1
aWx0aW5fYWFyY2g2NF9zaW1kX2RmICopIF9fYSwgX19vKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdm9pZA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZzdDRxX3A2NCAocG9seTY0X3QgKiBfX2EsIHBvbHk2NHgyeDRfdCB2YWwpDQogICAgK3sNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX3hpIF9fbzsNCiAgICArICBfX28gPSBfX2J1aWx0
aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjJkaV9zc3BzIChfX28sDQogICAgKwkJCQkJICAgICAgIChw
b2x5NjR4Ml90KSB2YWwudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2
NF9zZXRfcXJlZ3hpdjJkaV9zc3BzIChfX28sDQogICAgKwkJCQkJICAgICAgIChwb2x5NjR4Ml90
KSB2YWwudmFsWzFdLCAxKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJl
Z3hpdjJkaV9zc3BzIChfX28sDQogICAgKwkJCQkJICAgICAgIChwb2x5NjR4Ml90KSB2YWwudmFs
WzJdLCAyKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5fYWFyY2g2NF9zZXRfcXJlZ3hpdjJkaV9z
c3BzIChfX28sDQogICAgKwkJCQkJICAgICAgIChwb2x5NjR4Ml90KSB2YWwudmFsWzNdLCAzKTsN
CiAgICArICBfX2J1aWx0aW5fYWFyY2g2NF9zdDR2MmRpICgoX19idWlsdGluX2FhcmNoNjRfc2lt
ZF9kaSAqKSBfX2EsIF9fbyk7DQogICAgK30NCiAgICArDQogICAgKy8qIHZzdWIgKi8NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDY0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2c3ViZF9zNjQgKGludDY0X3QgX19hLCBpbnQ2NF90IF9fYikNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2EgLSBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1YmRf
dTY0ICh1aW50NjRfdCBfX2EsIHVpbnQ2NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2EgLSBfX2I7DQogICAgK30NCiAgICArDQogICAgKy8qIHZ0YngxICAqLw0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2dGJ4MV9zOCAoaW50OHg4X3QgX19yLCBpbnQ4eDhfdCBfX3RhYiwgaW50OHg4X3QgX19p
ZHgpDQogICAgK3sNCiAgICArICB1aW50OHg4X3QgX19tYXNrID0gdmNsdF91OCAodnJlaW50ZXJw
cmV0X3U4X3M4IChfX2lkeCksDQogICAgKwkJCSAgICAgIHZtb3Zfbl91OCAoOCkpOw0KICAgICsg
IGludDh4OF90IF9fdGJsID0gdnRibDFfczggKF9fdGFiLCBfX2lkeCk7DQogICAgKw0KICAgICsg
IHJldHVybiB2YnNsX3M4IChfX21hc2ssIF9fdGJsLCBfX3IpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2dGJ4MV91OCAodWludDh4OF90IF9fciwgdWludDh4OF90IF9fdGFiLCB1aW50OHg4
X3QgX19pZHgpDQogICAgK3sNCiAgICArICB1aW50OHg4X3QgX19tYXNrID0gdmNsdF91OCAoX19p
ZHgsIHZtb3Zfbl91OCAoOCkpOw0KICAgICsgIHVpbnQ4eDhfdCBfX3RibCA9IHZ0YmwxX3U4IChf
X3RhYiwgX19pZHgpOw0KICAgICsNCiAgICArICByZXR1cm4gdmJzbF91OCAoX19tYXNrLCBfX3Ri
bCwgX19yKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgcG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRieDFfcDggKHBvbHk4eDhfdCBf
X3IsIHBvbHk4eDhfdCBfX3RhYiwgdWludDh4OF90IF9faWR4KQ0KICAgICt7DQogICAgKyAgdWlu
dDh4OF90IF9fbWFzayA9IHZjbHRfdTggKF9faWR4LCB2bW92X25fdTggKDgpKTsNCiAgICArICBw
b2x5OHg4X3QgX190YmwgPSB2dGJsMV9wOCAoX190YWIsIF9faWR4KTsNCiAgICArDQogICAgKyAg
cmV0dXJuIHZic2xfcDggKF9fbWFzaywgX190YmwsIF9fcik7DQogICAgK30NCiAgICArDQogICAg
Ky8qIHZ0YngzICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dGJ4M19zOCAoaW50OHg4X3QgX19yLCBp
bnQ4eDh4M190IF9fdGFiLCBpbnQ4eDhfdCBfX2lkeCkNCiAgICArew0KICAgICsgIHVpbnQ4eDhf
dCBfX21hc2sgPSB2Y2x0X3U4ICh2cmVpbnRlcnByZXRfdThfczggKF9faWR4KSwNCiAgICArCQkJ
ICAgICAgdm1vdl9uX3U4ICgyNCkpOw0KICAgICsgIGludDh4OF90IF9fdGJsID0gdnRibDNfczgg
KF9fdGFiLCBfX2lkeCk7DQogICAgKw0KICAgICsgIHJldHVybiB2YnNsX3M4IChfX21hc2ssIF9f
dGJsLCBfX3IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dGJ4M191OCAodWludDh4OF90
IF9fciwgdWludDh4OHgzX3QgX190YWIsIHVpbnQ4eDhfdCBfX2lkeCkNCiAgICArew0KICAgICsg
IHVpbnQ4eDhfdCBfX21hc2sgPSB2Y2x0X3U4IChfX2lkeCwgdm1vdl9uX3U4ICgyNCkpOw0KICAg
ICsgIHVpbnQ4eDhfdCBfX3RibCA9IHZ0YmwzX3U4IChfX3RhYiwgX19pZHgpOw0KICAgICsNCiAg
ICArICByZXR1cm4gdmJzbF91OCAoX19tYXNrLCBfX3RibCwgX19yKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnRieDNfcDggKHBvbHk4eDhfdCBfX3IsIHBvbHk4eDh4M190IF9fdGFiLCB1
aW50OHg4X3QgX19pZHgpDQogICAgK3sNCiAgICArICB1aW50OHg4X3QgX19tYXNrID0gdmNsdF91
OCAoX19pZHgsIHZtb3Zfbl91OCAoMjQpKTsNCiAgICArICBwb2x5OHg4X3QgX190YmwgPSB2dGJs
M19wOCAoX190YWIsIF9faWR4KTsNCiAgICArDQogICAgKyAgcmV0dXJuIHZic2xfcDggKF9fbWFz
aywgX190YmwsIF9fcik7DQogICAgK30NCiAgICArDQogICAgKy8qIHZ0Yng0ICAqLw0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2dGJ4NF9zOCAoaW50OHg4X3QgX19yLCBpbnQ4eDh4NF90IF9fdGFiLCBpbnQ4
eDhfdCBfX2lkeCkNCiAgICArew0KICAgICsgIGludDh4OF90IHJlc3VsdDsNCiAgICArICBpbnQ4
eDE2eDJfdCB0ZW1wOw0KICAgICsgIF9fYnVpbHRpbl9hYXJjaDY0X3NpbWRfb2kgX19vOw0KICAg
ICsgIHRlbXAudmFsWzBdID0gdmNvbWJpbmVfczggKF9fdGFiLnZhbFswXSwgX190YWIudmFsWzFd
KTsNCiAgICArICB0ZW1wLnZhbFsxXSA9IHZjb21iaW5lX3M4IChfX3RhYi52YWxbMl0sIF9fdGFi
LnZhbFszXSk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3FyZWdvaXYxNnFp
IChfX28sDQogICAgKwkJCQkJICAgKGludDh4MTZfdCkgdGVtcC52YWxbMF0sIDApOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLA0KICAgICsJCQkJ
CSAgIChpbnQ4eDE2X3QpIHRlbXAudmFsWzFdLCAxKTsNCiAgICArICByZXN1bHQgPSBfX2J1aWx0
aW5fYWFyY2g2NF90Yng0djhxaSAoX19yLCBfX28sIF9faWR4KTsNCiAgICArICByZXR1cm4gcmVz
dWx0Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dGJ4NF91OCAodWludDh4OF90IF9fciwg
dWludDh4OHg0X3QgX190YWIsIHVpbnQ4eDhfdCBfX2lkeCkNCiAgICArew0KICAgICsgIHVpbnQ4
eDhfdCByZXN1bHQ7DQogICAgKyAgdWludDh4MTZ4Ml90IHRlbXA7DQogICAgKyAgX19idWlsdGlu
X2FhcmNoNjRfc2ltZF9vaSBfX287DQogICAgKyAgdGVtcC52YWxbMF0gPSB2Y29tYmluZV91OCAo
X190YWIudmFsWzBdLCBfX3RhYi52YWxbMV0pOw0KICAgICsgIHRlbXAudmFsWzFdID0gdmNvbWJp
bmVfdTggKF9fdGFiLnZhbFsyXSwgX190YWIudmFsWzNdKTsNCiAgICArICBfX28gPSBfX2J1aWx0
aW5fYWFyY2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywNCiAgICArCQkJCQkgICAoaW50OHgxNl90
KSB0ZW1wLnZhbFswXSwgMCk7DQogICAgKyAgX19vID0gX19idWlsdGluX2FhcmNoNjRfc2V0X3Fy
ZWdvaXYxNnFpIChfX28sDQogICAgKwkJCQkJICAgKGludDh4MTZfdCkgdGVtcC52YWxbMV0sIDEp
Ow0KICAgICsgIHJlc3VsdCA9ICh1aW50OHg4X3QpX19idWlsdGluX2FhcmNoNjRfdGJ4NHY4cWkg
KChpbnQ4eDhfdClfX3IsIF9fbywNCiAgICArCQkJCQkJICAoaW50OHg4X3QpX19pZHgpOw0KICAg
ICsgIHJldHVybiByZXN1bHQ7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0Yng0X3A4IChw
b2x5OHg4X3QgX19yLCBwb2x5OHg4eDRfdCBfX3RhYiwgdWludDh4OF90IF9faWR4KQ0KICAgICt7
DQogICAgKyAgcG9seTh4OF90IHJlc3VsdDsNCiAgICArICBwb2x5OHgxNngyX3QgdGVtcDsNCiAg
ICArICBfX2J1aWx0aW5fYWFyY2g2NF9zaW1kX29pIF9fbzsNCiAgICArICB0ZW1wLnZhbFswXSA9
IHZjb21iaW5lX3A4IChfX3RhYi52YWxbMF0sIF9fdGFiLnZhbFsxXSk7DQogICAgKyAgdGVtcC52
YWxbMV0gPSB2Y29tYmluZV9wOCAoX190YWIudmFsWzJdLCBfX3RhYi52YWxbM10pOw0KICAgICsg
IF9fbyA9IF9fYnVpbHRpbl9hYXJjaDY0X3NldF9xcmVnb2l2MTZxaSAoX19vLA0KICAgICsJCQkJ
CSAgIChpbnQ4eDE2X3QpIHRlbXAudmFsWzBdLCAwKTsNCiAgICArICBfX28gPSBfX2J1aWx0aW5f
YWFyY2g2NF9zZXRfcXJlZ29pdjE2cWkgKF9fbywNCiAgICArCQkJCQkgICAoaW50OHgxNl90KSB0
ZW1wLnZhbFsxXSwgMSk7DQogICAgKyAgcmVzdWx0ID0gKHBvbHk4eDhfdClfX2J1aWx0aW5fYWFy
Y2g2NF90Yng0djhxaSAoKGludDh4OF90KV9fciwgX19vLA0KICAgICsJCQkJCQkgIChpbnQ4eDhf
dClfX2lkeCk7DQogICAgKyAgcmV0dXJuIHJlc3VsdDsNCiAgICArfQ0KICAgICsNCiAgICArLyog
dnRybiAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMV9mMTYgKGZsb2F0MTZ4NF90IF9fYSwg
ZmxvYXQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHs1LCAx
LCA3LCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChf
X2EsIF9fYiwgKHVpbnQxNng0X3QpIHswLCA0LCAyLCA2fSk7DQogICAgKyNlbmRpZg0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3Z0cm4xX2YzMiAoZmxvYXQzMngyX3QgX19hLCBmbG9hdDMy
eDJfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1
cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDJfdCkgezMsIDF9KTsNCiAg
ICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWlu
dDMyeDJfdCkgezAsIDJ9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Z0cm4xX3A4IChwb2x5OHg4X3QgX19hLCBwb2x5OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyNp
ZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2Es
IF9fYiwgKHVpbnQ4eDhfdCkgezksIDEsIDExLCAzLCAxMywgNSwgMTUsIDd9KTsNCiAgICArI2Vs
c2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90
KSB7MCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNH0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Z0cm4xX3AxNiAocG9seTE2eDRfdCBfX2EsIHBvbHkxNng0X3QgX19i
KQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHs1LCAxLCA3LCAzfSk7DQogICAg
KyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQx
Nng0X3QpIHswLCA0LCAyLCA2fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Z0cm4xX3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9fYikNCiAgICArew0KICAgICsj
aWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19h
LCBfX2IsICh1aW50OHg4X3QpIHs5LCAxLCAxMSwgMywgMTMsIDUsIDE1LCA3fSk7DQogICAgKyNl
bHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDhf
dCkgezAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTR9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Z0cm4xX3MxNiAoaW50MTZ4NF90IF9fYSwgaW50MTZ4NF90IF9fYikN
CiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4NF90KSB7NSwgMSwgNywgM30pOw0KICAgICsj
ZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4
NF90KSB7MCwgNCwgMiwgNn0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnRybjFfczMyIChpbnQzMngyX3QgX19hLCBpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAg
KyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChf
X2EsIF9fYiwgKHVpbnQzMngyX3QpIHszLCAxfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMngyX3QpIHswLCAyfSk7DQogICAg
KyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSB1aW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMV91OCAodWludDh4OF90IF9f
YSwgdWludDh4OF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHg4X3QpIHs5LCAx
LCAxMSwgMywgMTMsIDUsIDE1LCA3fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDhfdCkgezAsIDgsIDIsIDEwLCA0LCAxMiwg
NiwgMTR9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMV91
MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4NF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYg
X19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2Is
ICh1aW50MTZ4NF90KSB7NSwgMSwgNywgM30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4NF90KSB7MCwgNCwgMiwgNn0pOw0K
ICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0cm4xX3UzMiAodWludDMy
eDJfdCBfX2EsIHVpbnQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRF
Ql9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMngy
X3QpIHszLCAxfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxl
IChfX2EsIF9fYiwgKHVpbnQzMngyX3QpIHswLCAyfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Z0cm4xcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4
X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng4X3QpIHs5LCAxLCAxMSwgMywg
MTMsIDUsIDE1LCA3fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVm
ZmxlIChfX2EsIF9fYiwgKHVpbnQxNng4X3QpIHswLCA4LCAyLCAxMCwgNCwgMTIsIDYsIDE0fSk7
DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0cm4xcV9mMzIgKGZs
b2F0MzJ4NF90IF9fYSwgZmxvYXQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FB
UkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVp
bnQzMng0X3QpIHs1LCAxLCA3LCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMng0X3QpIHswLCA0LCAyLCA2fSk7DQogICAg
KyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0cm4xcV9mNjQgKGZsb2F0NjR4
Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRF
Ql9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ2NHgy
X3QpIHszLCAxfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxl
IChfX2EsIF9fYiwgKHVpbnQ2NHgyX3QpIHswLCAyfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHgxNl90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnRybjFxX3A4IChwb2x5OHgxNl90IF9fYSwgcG9seTh4MTZfdCBf
X2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19i
dWlsdGluX3NodWZmbGUgKF9fYSwgX19iLA0KICAgICsgICAgICAodWludDh4MTZfdCkgezE3LCAx
LCAxOSwgMywgMjEsIDUsIDIzLCA3LCAyNSwgOSwgMjcsIDExLCAyOSwgMTMsIDMxLCAxNX0pOw0K
ICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsDQog
ICAgKyAgICAgICh1aW50OHgxNl90KSB7MCwgMTYsIDIsIDE4LCA0LCAyMCwgNiwgMjIsIDgsIDI0
LCAxMCwgMjYsIDEyLCAyOCwgMTQsIDMwfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnRybjFxX3AxNiAocG9seTE2eDhfdCBfX2EsIHBvbHkxNng4X3QgX19iKQ0K
ICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng4X3QpIHs5LCAxLCAxMSwgMywgMTMsIDUsIDE1
LCA3fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2Es
IF9fYiwgKHVpbnQxNng4X3QpIHswLCA4LCAyLCAxMCwgNCwgMTIsIDYsIDE0fSk7DQogICAgKyNl
bmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMXFfczggKGludDh4MTZfdCBfX2Es
IGludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICAr
ICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLA0KICAgICsgICAgICAodWludDh4
MTZfdCkgezE3LCAxLCAxOSwgMywgMjEsIDUsIDIzLCA3LCAyNSwgOSwgMjcsIDExLCAyOSwgMTMs
IDMxLCAxNX0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAo
X19hLCBfX2IsDQogICAgKyAgICAgICh1aW50OHgxNl90KSB7MCwgMTYsIDIsIDE4LCA0LCAyMCwg
NiwgMjIsIDgsIDI0LCAxMCwgMjYsIDEyLCAyOCwgMTQsIDMwfSk7DQogICAgKyNlbmRpZg0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMXFfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4
X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng4X3QpIHs5LCAxLCAxMSwgMywg
MTMsIDUsIDE1LCA3fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVm
ZmxlIChfX2EsIF9fYiwgKHVpbnQxNng4X3QpIHswLCA4LCAyLCAxMCwgNCwgMTIsIDYsIDE0fSk7
DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMXFfczMyIChpbnQz
Mng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRF
Ql9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMng0
X3QpIHs1LCAxLCA3LCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9z
aHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMng0X3QpIHswLCA0LCAyLCA2fSk7DQogICAgKyNlbmRp
Zg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2
NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMXFfczY0IChpbnQ2NHgyX3QgX19hLCBp
bnQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ2NHgyX3QpIHszLCAxfSk7
DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwg
KHVpbnQ2NHgyX3QpIHswLCAyfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnRybjFxX3U4ICh1aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sN
CiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKF9fYSwgX19iLA0KICAgICsgICAgICAodWludDh4MTZfdCkgezE3LCAxLCAxOSwgMywgMjEs
IDUsIDIzLCA3LCAyNSwgOSwgMjcsIDExLCAyOSwgMTMsIDMxLCAxNX0pOw0KICAgICsjZWxzZQ0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsDQogICAgKyAgICAgICh1
aW50OHgxNl90KSB7MCwgMTYsIDIsIDE4LCA0LCAyMCwgNiwgMjIsIDgsIDI0LCAxMCwgMjYsIDEy
LCAyOCwgMTQsIDMwfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnRybjFxX3UxNiAodWludDE2eDhfdCBfX2EsIHVpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAg
KyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChf
X2EsIF9fYiwgKHVpbnQxNng4X3QpIHs5LCAxLCAxMSwgMywgMTMsIDUsIDE1LCA3fSk7DQogICAg
KyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQx
Nng4X3QpIHswLCA4LCAyLCAxMCwgNCwgMTIsIDYsIDE0fSk7DQogICAgKyNlbmRpZg0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybjFxX3UzMiAodWludDMyeDRfdCBfX2EsIHVpbnQzMng0
X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMng0X3QpIHs1LCAxLCA3LCAzfSk7
DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwg
KHVpbnQzMng0X3QpIHswLCA0LCAyLCA2fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnRybjFxX3U2NCAodWludDY0eDJfdCBfX2EsIHVpbnQ2NHgyX3QgX19iKQ0K
ICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ2NHgyX3QpIHszLCAxfSk7DQogICAgKyNlbHNlDQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ2NHgyX3QpIHsw
LCAyfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0cm4yX2Yx
NiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVm
IF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19i
LCAodWludDE2eDRfdCkgezQsIDAsIDYsIDJ9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4g
X19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezEsIDUsIDMsIDd9KTsN
CiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybjJfZjMyIChmbG9h
dDMyeDJfdCBfX2EsIGZsb2F0MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJD
SDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50
MzJ4Ml90KSB7MiwgMH0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1
ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4Ml90KSB7MSwgM30pOw0KICAgICsjZW5kaWYNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybjJfcDggKHBvbHk4eDhfdCBfX2EsIHBvbHk4eDhfdCBf
X2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19i
dWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90KSB7OCwgMCwgMTAsIDIsIDEyLCA0
LCAxNCwgNn0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAo
X19hLCBfX2IsICh1aW50OHg4X3QpIHsxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1fSk7DQogICAg
KyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBwb2x5MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybjJfcDE2IChwb2x5MTZ4NF90
IF9fYSwgcG9seTE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18N
CiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkg
ezQsIDAsIDYsIDJ9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezEsIDUsIDMsIDd9KTsNCiAgICArI2VuZGlmDQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybjJfczggKGludDh4OF90IF9fYSwgaW50OHg4X3Qg
X19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDhfdCkgezgsIDAsIDEwLCAyLCAxMiwg
NCwgMTQsIDZ9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUg
KF9fYSwgX19iLCAodWludDh4OF90KSB7MSwgOSwgMywgMTEsIDUsIDEzLCA3LCAxNX0pOw0KICAg
ICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybjJfczE2IChpbnQxNng0X3Qg
X19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHs0
LCAwLCA2LCAyfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxl
IChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHsxLCA1LCAzLCA3fSk7DQogICAgKyNlbmRpZg0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMl9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJf
dCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4g
X19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDJfdCkgezIsIDB9KTsNCiAgICAr
I2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMy
eDJfdCkgezEsIDN9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0
cm4yX3U4ICh1aW50OHg4X3QgX19hLCB1aW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRl
ZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9f
YiwgKHVpbnQ4eDhfdCkgezgsIDAsIDEwLCAyLCAxMiwgNCwgMTQsIDZ9KTsNCiAgICArI2Vsc2UN
CiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90KSB7
MSwgOSwgMywgMTEsIDUsIDEzLCA3LCAxNX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3Z0cm4yX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0K
ICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHs0LCAwLCA2LCAyfSk7DQogICAgKyNl
bHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0
X3QpIHsxLCA1LCAzLCA3fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnRybjJfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBfX2IpDQogICAgK3sNCiAg
ICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUg
KF9fYSwgX19iLCAodWludDMyeDJfdCkgezIsIDB9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1
cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDJfdCkgezEsIDN9KTsNCiAg
ICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybjJxX2YxNiAoZmxvYXQx
Nng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2
NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2
eDhfdCkgezgsIDAsIDEwLCAyLCAxMiwgNCwgMTQsIDZ9KTsNCiAgICArI2Vsc2UNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezEsIDksIDMs
IDExLCA1LCAxMywgNywgMTV9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnRybjJxX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IpDQogICAg
K3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3No
dWZmbGUgKF9fYSwgX19iLCAodWludDMyeDRfdCkgezQsIDAsIDYsIDJ9KTsNCiAgICArI2Vsc2UN
CiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDRfdCkg
ezEsIDUsIDMsIDd9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnRybjJxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9hdDY0eDJfdCBfX2IpDQogICAgK3sNCiAg
ICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUg
KF9fYSwgX19iLCAodWludDY0eDJfdCkgezIsIDB9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1
cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDY0eDJfdCkgezEsIDN9KTsNCiAg
ICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMnFfcDggKHBvbHk4eDE2
X3QgX19hLCBwb2x5OHgxNl90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJf
Xw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsDQogICAgKyAgICAg
ICh1aW50OHgxNl90KSB7MTYsIDAsIDE4LCAyLCAyMCwgNCwgMjIsIDYsIDI0LCA4LCAyNiwgMTAs
IDI4LCAxMiwgMzAsIDE0fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9z
aHVmZmxlIChfX2EsIF9fYiwNCiAgICArICAgICAgKHVpbnQ4eDE2X3QpIHsxLCAxNywgMywgMTks
IDUsIDIxLCA3LCAyMywgOSwgMjUsIDExLCAyNywgMTMsIDI5LCAxNSwgMzF9KTsNCiAgICArI2Vu
ZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHkxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMnFfcDE2IChwb2x5MTZ4OF90IF9f
YSwgcG9seTE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAg
ICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezgs
IDAsIDEwLCAyLCAxMiwgNCwgMTQsIDZ9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19i
dWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezEsIDksIDMsIDExLCA1LCAx
MywgNywgMTV9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0cm4y
cV9zOCAoaW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYg
X19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2Is
DQogICAgKyAgICAgICh1aW50OHgxNl90KSB7MTYsIDAsIDE4LCAyLCAyMCwgNCwgMjIsIDYsIDI0
LCA4LCAyNiwgMTAsIDI4LCAxMiwgMzAsIDE0fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwNCiAgICArICAgICAgKHVpbnQ4eDE2X3QpIHsx
LCAxNywgMywgMTksIDUsIDIxLCA3LCAyMywgOSwgMjUsIDExLCAyNywgMTMsIDI5LCAxNSwgMzF9
KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0cm4ycV9zMTYgKGlu
dDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2
NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2
eDhfdCkgezgsIDAsIDEwLCAyLCAxMiwgNCwgMTQsIDZ9KTsNCiAgICArI2Vsc2UNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezEsIDksIDMs
IDExLCA1LCAxMywgNywgMTV9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Z0cm4ycV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAg
ICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUg
KF9fYSwgX19iLCAodWludDMyeDRfdCkgezQsIDAsIDYsIDJ9KTsNCiAgICArI2Vsc2UNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDRfdCkgezEsIDUs
IDMsIDd9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0cm4ycV9z
NjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9f
QUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAo
dWludDY0eDJfdCkgezIsIDB9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGlu
X3NodWZmbGUgKF9fYSwgX19iLCAodWludDY0eDJfdCkgezEsIDN9KTsNCiAgICArI2VuZGlmDQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMnFfdTggKHVpbnQ4eDE2X3QgX19hLCB1aW50
OHgxNl90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsDQogICAgKyAgICAgICh1aW50OHgxNl90
KSB7MTYsIDAsIDE4LCAyLCAyMCwgNCwgMjIsIDYsIDI0LCA4LCAyNiwgMTAsIDI4LCAxMiwgMzAs
IDE0fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2Es
IF9fYiwNCiAgICArICAgICAgKHVpbnQ4eDE2X3QpIHsxLCAxNywgMywgMTksIDUsIDIxLCA3LCAy
MywgOSwgMjUsIDExLCAyNywgMTMsIDI5LCAxNSwgMzF9KTsNCiAgICArI2VuZGlmDQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2dHJuMnFfdTE2ICh1aW50MTZ4OF90IF9fYSwgdWludDE2eDhf
dCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4g
X19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezgsIDAsIDEwLCAyLCAx
MiwgNCwgMTQsIDZ9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezEsIDksIDMsIDExLCA1LCAxMywgNywgMTV9KTsN
CiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMnFfdTMyICh1aW50
MzJ4NF90IF9fYSwgdWludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2
NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMy
eDRfdCkgezQsIDAsIDYsIDJ9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGlu
X3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDRfdCkgezEsIDUsIDMsIDd9KTsNCiAgICArI2Vu
ZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuMnFfdTY0ICh1aW50NjR4Ml90IF9f
YSwgdWludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAg
ICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDY0eDJfdCkgezIs
IDB9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwg
X19iLCAodWludDY0eDJfdCkgezEsIDN9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NHgyX3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2dHJuX2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MTZ4NHgyX3QpIHt2dHJuMV9mMTYgKF9fYSwg
X19iKSwgdnRybjJfZjE2IChfX2EsIF9fYil9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJ4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnRybl9mMzIgKGZsb2F0MzJ4Ml90IGEsIGZsb2F0MzJ4Ml90IGIpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gKGZsb2F0MzJ4MngyX3QpIHt2dHJuMV9mMzIgKGEsIGIpLCB2dHJuMl9mMzIgKGEs
IGIpfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
cG9seTh4OHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuX3A4IChwb2x5OHg4X3QgYSwg
cG9seTh4OF90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk4eDh4Ml90KSB7dnRybjFf
cDggKGEsIGIpLCB2dHJuMl9wOCAoYSwgYil9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2dHJuX3AxNiAocG9seTE2eDRfdCBhLCBwb2x5MTZ4NF90IGIpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHBvbHkxNng0eDJfdCkge3Z0cm4xX3AxNiAoYSwgYiksIHZ0cm4yX3AxNiAoYSwgYil9
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4
eDh4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybl9zOCAoaW50OHg4X3QgYSwgaW50OHg4
X3QgYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50OHg4eDJfdCkge3Z0cm4xX3M4IChhLCBi
KSwgdnRybjJfczggKGEsIGIpfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MTZ4NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJuX3Mx
NiAoaW50MTZ4NF90IGEsIGludDE2eDRfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIChpbnQx
Nng0eDJfdCkge3Z0cm4xX3MxNiAoYSwgYiksIHZ0cm4yX3MxNiAoYSwgYil9Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyeDJfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Z0cm5fczMyIChpbnQzMngyX3QgYSwgaW50MzJ4Ml90IGIpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKGludDMyeDJ4Ml90KSB7dnRybjFfczMyIChhLCBiKSwgdnRy
bjJfczMyIChhLCBiKX07DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIHVpbnQ4eDh4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybl91OCAodWlu
dDh4OF90IGEsIHVpbnQ4eDhfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50OHg4eDJf
dCkge3Z0cm4xX3U4IChhLCBiKSwgdnRybjJfdTggKGEsIGIpfTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnRybl91MTYgKHVpbnQxNng0X3QgYSwgdWludDE2eDRfdCBiKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuICh1aW50MTZ4NHgyX3QpIHt2dHJuMV91MTYgKGEsIGIpLCB2dHJuMl91
MTYgKGEsIGIpfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRybl91MzIgKHVpbnQz
MngyX3QgYSwgdWludDMyeDJfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4Mngy
X3QpIHt2dHJuMV91MzIgKGEsIGIpLCB2dHJuMl91MzIgKGEsIGIpfTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4eDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Z0cm5xX2YxNiAoZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBf
X2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKGZsb2F0MTZ4OHgyX3QpIHt2dHJuMXFfZjE2IChf
X2EsIF9fYiksIHZ0cm4ycV9mMTYgKF9fYSwgX19iKX07DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NHgyX3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2dHJucV9mMzIgKGZsb2F0MzJ4NF90IGEsIGZsb2F0MzJ4NF90IGIpDQogICAgK3sN
CiAgICArICByZXR1cm4gKGZsb2F0MzJ4NHgyX3QpIHt2dHJuMXFfZjMyIChhLCBiKSwgdnRybjJx
X2YzMiAoYSwgYil9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBwb2x5OHgxNngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJucV9wOCAocG9s
eTh4MTZfdCBhLCBwb2x5OHgxNl90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gKHBvbHk4eDE2
eDJfdCkge3Z0cm4xcV9wOCAoYSwgYiksIHZ0cm4ycV9wOCAoYSwgYil9Ow0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5MTZ4OHgyX3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2dHJucV9wMTYgKHBvbHkxNng4X3QgYSwgcG9seTE2eDhfdCBiKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIChwb2x5MTZ4OHgyX3QpIHt2dHJuMXFfcDE2IChhLCBiKSwg
dnRybjJxX3AxNiAoYSwgYil9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQ4eDE2eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0cm5xX3M4
IChpbnQ4eDE2X3QgYSwgaW50OHgxNl90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gKGludDh4
MTZ4Ml90KSB7dnRybjFxX3M4IChhLCBiKSwgdnRybjJxX3M4IChhLCBiKX07DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDh4Ml90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnRybnFfczE2IChpbnQxNng4X3QgYSwgaW50MTZ4OF90IGIpDQog
ICAgK3sNCiAgICArICByZXR1cm4gKGludDE2eDh4Ml90KSB7dnRybjFxX3MxNiAoYSwgYiksIHZ0
cm4ycV9zMTYgKGEsIGIpfTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50MzJ4NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJucV9zMzIg
KGludDMyeDRfdCBhLCBpbnQzMng0X3QgYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50MzJ4
NHgyX3QpIHt2dHJuMXFfczMyIChhLCBiKSwgdnRybjJxX3MzMiAoYSwgYil9Ow0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNngyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2dHJucV91OCAodWludDh4MTZfdCBhLCB1aW50OHgxNl90IGIp
DQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQ4eDE2eDJfdCkge3Z0cm4xcV91OCAoYSwgYiks
IHZ0cm4ycV91OCAoYSwgYil9Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4OHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJucV91
MTYgKHVpbnQxNng4X3QgYSwgdWludDE2eDhfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1
aW50MTZ4OHgyX3QpIHt2dHJuMXFfdTE2IChhLCBiKSwgdnRybjJxX3UxNiAoYSwgYil9Ow0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NHgy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHJucV91MzIgKHVpbnQzMng0X3QgYSwgdWludDMy
eDRfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50MzJ4NHgyX3QpIHt2dHJuMXFfdTMy
IChhLCBiKSwgdnRybjJxX3UzMiAoYSwgYil9Ow0KICAgICt9DQogICAgKw0KICAgICsvKiB2dHN0
ICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2dHN0X3M4IChpbnQ4eDhfdCBfX2EsIGludDh4OF90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4OF90KSAoKF9fYSAmIF9fYikgIT0gMCk7
DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHN0X3MxNiAoaW50MTZ4NF90IF9fYSwgaW50
MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDE2eDRfdCkgKChfX2EgJiBf
X2IpICE9IDApOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRzdF9zMzIgKGludDMyeDJf
dCBfX2EsIGludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gKHVpbnQzMngyX3Qp
ICgoX19hICYgX19iKSAhPSAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDY0eDFfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0c3RfczY0
IChpbnQ2NHgxX3QgX19hLCBpbnQ2NHgxX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1
aW50NjR4MV90KSAoKF9fYSAmIF9fYikgIT0gX19BQVJDSDY0X0lOVDY0X0MgKDApKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnRzdF91OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9f
YikNCiAgICArew0KICAgICsgIHJldHVybiAoKF9fYSAmIF9fYikgIT0gMCk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2dHN0X3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuICgoX19hICYgX19iKSAhPSAwKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Z0c3RfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gKChfX2EgJiBfX2IpICE9IDApOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4MV90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnRzdF91NjQgKHVpbnQ2NHgxX3QgX19hLCB1aW50NjR4MV90IF9fYikN
CiAgICArew0KICAgICsgIHJldHVybiAoKF9fYSAmIF9fYikgIT0gX19BQVJDSDY0X1VJTlQ2NF9D
ICgwKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHN0cV9zOCAoaW50OHgxNl90IF9f
YSwgaW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAodWludDh4MTZfdCkgKChf
X2EgJiBfX2IpICE9IDApOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnRzdHFfczE2IChp
bnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICh1aW50
MTZ4OF90KSAoKF9fYSAmIF9fYikgIT0gMCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
dHN0cV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gKHVpbnQzMng0X3QpICgoX19hICYgX19iKSAhPSAwKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3Z0c3RxX3M2NCAoaW50NjR4Ml90IF9fYSwgaW50NjR4Ml90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiAodWludDY0eDJfdCkgKChfX2EgJiBfX2IpICE9IF9fQUFSQ0g2NF9J
TlQ2NF9DICgwKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQ4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dHN0cV91OCAodWludDh4
MTZfdCBfX2EsIHVpbnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICgoX19hICYg
X19iKSAhPSAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0c3RxX3UxNiAodWludDE2
eDhfdCBfX2EsIHVpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICgoX19hICYg
X19iKSAhPSAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0c3RxX3UzMiAodWludDMy
eDRfdCBfX2EsIHVpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICgoX19hICYg
X19iKSAhPSAwKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z0c3RxX3U2NCAodWludDY0
eDJfdCBfX2EsIHVpbnQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuICgoX19hICYg
X19iKSAhPSBfX0FBUkNINjRfVUlOVDY0X0MgKDApKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2dHN0ZF9zNjQgKGludDY0X3QgX19hLCBpbnQ2NF90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiAoX19hICYgX19iKSA/IC0xbGwgOiAwbGw7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnRzdGRfdTY0ICh1aW50NjRfdCBfX2EsIHVpbnQ2NF90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiAoX19hICYgX19iKSA/IC0xbGwgOiAwbGw7DQogICAgK30NCiAgICArDQogICAgKy8qIHZ1
cWFkZCAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXFhZGRfczggKGludDh4OF90IF9fYSwgdWludDh4
OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zdXFhZGR2
OHFpX3NzdSAoX19hLCAgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnVxYWRkX3Mx
NiAoaW50MTZ4NF90IF9fYSwgdWludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfc3VxYWRkdjRoaV9zc3UgKF9fYSwgIF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtf
X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm
aWNpYWxfXykpDQogICAgK3Z1cWFkZF9zMzIgKGludDMyeDJfdCBfX2EsIHVpbnQzMngyX3QgX19i
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3N1cWFkZHYyc2lfc3N1
IChfX2EsICBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQ2NHgxX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXFhZGRfczY0IChpbnQ2
NHgxX3QgX19hLCB1aW50NjR4MV90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiAoaW50NjR4
MV90KSB7X19idWlsdGluX2FhcmNoNjRfc3VxYWRkZGlfc3N1IChfX2FbMF0sIF9fYlswXSl9Ow0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXFhZGRxX3M4IChpbnQ4eDE2X3QgX19hLCB1aW50
OHgxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zdXFh
ZGR2MTZxaV9zc3UgKF9fYSwgIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1cWFk
ZHFfczE2IChpbnQxNng4X3QgX19hLCB1aW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zdXFhZGR2OGhpX3NzdSAoX19hLCAgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnVxYWRkcV9zMzIgKGludDMyeDRfdCBfX2EsIHVpbnQzMng0
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3N1cWFkZHY0
c2lfc3N1IChfX2EsICBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBpbnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXFhZGRxX3M2
NCAoaW50NjR4Ml90IF9fYSwgdWludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfc3VxYWRkdjJkaV9zc3UgKF9fYSwgIF9fYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3Z1cWFkZGJfczggKGludDhfdCBfX2EsIHVpbnQ4X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3N1cWFkZHFpX3NzdSAoX19hLCAgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50
MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1cWFkZGhfczE2IChpbnQxNl90IF9fYSwgdWlu
dDE2X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3N1cWFk
ZGhpX3NzdSAoX19hLCAgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MzJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1cWFkZHNfczMy
IChpbnQzMl90IF9fYSwgdWludDMyX3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X3N1cWFkZHNpX3NzdSAoX19hLCAgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3Z1cWFkZGRfczY0IChpbnQ2NF90IF9fYSwgdWludDY0X3QgX19iKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3N1cWFkZGRpX3NzdSAoX19hLCAgX19iKTsN
CiAgICArfQ0KICAgICsNCiAgICArI2RlZmluZSBfX0RFRklOVEVSTEVBVkUob3AsIHJldHR5cGUs
IGludHlwZSwgZnVuY3N1ZmZpeCwgUSkgCQlcDQogICAgKyAgX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgcmV0dHlwZQkJCQkJXA0KICAgICsgIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkgXA0KICAgICsgIHYgIyMg
b3AgIyMgUSAjIyBfICMjIGZ1bmNzdWZmaXggKGludHlwZSBhLCBpbnR5cGUgYikJCQlcDQogICAg
KyAgewkJCQkJCQkJCVwNCiAgICArICAgIHJldHVybiAocmV0dHlwZSkge3YgIyMgb3AgIyMgMSAj
IyBRICMjIF8gIyMgZnVuY3N1ZmZpeCAoYSwgYiksCVwNCiAgICArCQkgICAgICB2ICMjIG9wICMj
IDIgIyMgUSAjIyBfICMjIGZ1bmNzdWZmaXggKGEsIGIpfTsJXA0KICAgICsgIH0NCiAgICArDQog
ICAgKyNkZWZpbmUgX19JTlRFUkxFQVZFX0xJU1Qob3ApCQkJCQlcDQogICAgKyAgX19ERUZJTlRF
UkxFQVZFIChvcCwgZmxvYXQxNng0eDJfdCwgZmxvYXQxNng0X3QsIGYxNiwpCVwNCiAgICArICBf
X0RFRklOVEVSTEVBVkUgKG9wLCBmbG9hdDMyeDJ4Ml90LCBmbG9hdDMyeDJfdCwgZjMyLCkJXA0K
ICAgICsgIF9fREVGSU5URVJMRUFWRSAob3AsIHBvbHk4eDh4Ml90LCBwb2x5OHg4X3QsIHA4LCkJ
CVwNCiAgICArICBfX0RFRklOVEVSTEVBVkUgKG9wLCBwb2x5MTZ4NHgyX3QsIHBvbHkxNng0X3Qs
IHAxNiwpCQlcDQogICAgKyAgX19ERUZJTlRFUkxFQVZFIChvcCwgaW50OHg4eDJfdCwgaW50OHg4
X3QsIHM4LCkJCVwNCiAgICArICBfX0RFRklOVEVSTEVBVkUgKG9wLCBpbnQxNng0eDJfdCwgaW50
MTZ4NF90LCBzMTYsKQkJXA0KICAgICsgIF9fREVGSU5URVJMRUFWRSAob3AsIGludDMyeDJ4Ml90
LCBpbnQzMngyX3QsIHMzMiwpCQlcDQogICAgKyAgX19ERUZJTlRFUkxFQVZFIChvcCwgdWludDh4
OHgyX3QsIHVpbnQ4eDhfdCwgdTgsKQkJXA0KICAgICsgIF9fREVGSU5URVJMRUFWRSAob3AsIHVp
bnQxNng0eDJfdCwgdWludDE2eDRfdCwgdTE2LCkJCVwNCiAgICArICBfX0RFRklOVEVSTEVBVkUg
KG9wLCB1aW50MzJ4MngyX3QsIHVpbnQzMngyX3QsIHUzMiwpCQlcDQogICAgKyAgX19ERUZJTlRF
UkxFQVZFIChvcCwgZmxvYXQxNng4eDJfdCwgZmxvYXQxNng4X3QsIGYxNiwgcSkJXA0KICAgICsg
IF9fREVGSU5URVJMRUFWRSAob3AsIGZsb2F0MzJ4NHgyX3QsIGZsb2F0MzJ4NF90LCBmMzIsIHEp
CVwNCiAgICArICBfX0RFRklOVEVSTEVBVkUgKG9wLCBwb2x5OHgxNngyX3QsIHBvbHk4eDE2X3Qs
IHA4LCBxKQkJXA0KICAgICsgIF9fREVGSU5URVJMRUFWRSAob3AsIHBvbHkxNng4eDJfdCwgcG9s
eTE2eDhfdCwgcDE2LCBxKQlcDQogICAgKyAgX19ERUZJTlRFUkxFQVZFIChvcCwgaW50OHgxNngy
X3QsIGludDh4MTZfdCwgczgsIHEpCQlcDQogICAgKyAgX19ERUZJTlRFUkxFQVZFIChvcCwgaW50
MTZ4OHgyX3QsIGludDE2eDhfdCwgczE2LCBxKQkJXA0KICAgICsgIF9fREVGSU5URVJMRUFWRSAo
b3AsIGludDMyeDR4Ml90LCBpbnQzMng0X3QsIHMzMiwgcSkJCVwNCiAgICArICBfX0RFRklOVEVS
TEVBVkUgKG9wLCB1aW50OHgxNngyX3QsIHVpbnQ4eDE2X3QsIHU4LCBxKQkJXA0KICAgICsgIF9f
REVGSU5URVJMRUFWRSAob3AsIHVpbnQxNng4eDJfdCwgdWludDE2eDhfdCwgdTE2LCBxKQlcDQog
ICAgKyAgX19ERUZJTlRFUkxFQVZFIChvcCwgdWludDMyeDR4Ml90LCB1aW50MzJ4NF90LCB1MzIs
IHEpDQogICAgKw0KICAgICsvKiB2dXpwICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1enAxX2Yx
NiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVm
IF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19i
LCAodWludDE2eDRfdCkgezUsIDcsIDEsIDN9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4g
X19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezAsIDIsIDQsIDZ9KTsN
CiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnV6cDFfZjMyIChmbG9h
dDMyeDJfdCBfX2EsIGZsb2F0MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJD
SDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50
MzJ4Ml90KSB7MywgMX0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1
ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4Ml90KSB7MCwgMn0pOw0KICAgICsjZW5kaWYNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnV6cDFfcDggKHBvbHk4eDhfdCBfX2EsIHBvbHk4eDhfdCBf
X2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19i
dWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90KSB7OSwgMTEsIDEzLCAxNSwgMSwg
MywgNSwgN30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAo
X19hLCBfX2IsICh1aW50OHg4X3QpIHswLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0fSk7DQogICAg
KyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBwb2x5MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnV6cDFfcDE2IChwb2x5MTZ4NF90
IF9fYSwgcG9seTE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18N
CiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkg
ezUsIDcsIDEsIDN9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezAsIDIsIDQsIDZ9KTsNCiAgICArI2VuZGlmDQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDh4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnV6cDFfczggKGludDh4OF90IF9fYSwgaW50OHg4X3Qg
X19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDhfdCkgezksIDExLCAxMywgMTUsIDEs
IDMsIDUsIDd9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUg
KF9fYSwgX19iLCAodWludDh4OF90KSB7MCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNH0pOw0KICAg
ICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnV6cDFfczE2IChpbnQxNng0X3Qg
X19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHs1
LCA3LCAxLCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxl
IChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHswLCAyLCA0LCA2fSk7DQogICAgKyNlbmRpZg0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMV9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJf
dCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4g
X19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDJfdCkgezMsIDF9KTsNCiAgICAr
I2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMy
eDJfdCkgezAsIDJ9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1
enAxX3U4ICh1aW50OHg4X3QgX19hLCB1aW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRl
ZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9f
YiwgKHVpbnQ4eDhfdCkgezksIDExLCAxMywgMTUsIDEsIDMsIDUsIDd9KTsNCiAgICArI2Vsc2UN
CiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90KSB7
MCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNH0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3Z1enAxX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQxNng0X3QgX19iKQ0K
ICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHs1LCA3LCAxLCAzfSk7DQogICAgKyNl
bHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0
X3QpIHswLCAyLCA0LCA2fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnV6cDFfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBfX2IpDQogICAgK3sNCiAg
ICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUg
KF9fYSwgX19iLCAodWludDMyeDJfdCkgezMsIDF9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1
cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDJfdCkgezAsIDJ9KTsNCiAg
ICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnV6cDFxX2YxNiAoZmxvYXQx
Nng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2
NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2
eDhfdCkgezksIDExLCAxMywgMTUsIDEsIDMsIDUsIDd9KTsNCiAgICArI2Vsc2UNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezAsIDIsIDQs
IDYsIDgsIDEwLCAxMiwgMTR9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnV6cDFxX2YzMiAoZmxvYXQzMng0X3QgX19hLCBmbG9hdDMyeDRfdCBfX2IpDQogICAg
K3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3No
dWZmbGUgKF9fYSwgX19iLCAodWludDMyeDRfdCkgezUsIDcsIDEsIDN9KTsNCiAgICArI2Vsc2UN
CiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDRfdCkg
ezAsIDIsIDQsIDZ9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnV6cDFxX2Y2NCAoZmxvYXQ2NHgyX3QgX19hLCBmbG9hdDY0eDJfdCBfX2IpDQogICAgK3sNCiAg
ICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUg
KF9fYSwgX19iLCAodWludDY0eDJfdCkgezMsIDF9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1
cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDY0eDJfdCkgezAsIDJ9KTsNCiAg
ICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHBvbHk4eDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMXFfcDggKHBvbHk4eDE2
X3QgX19hLCBwb2x5OHgxNl90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJf
Xw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHgxNl90
KQ0KICAgICsgICAgICB7MTcsIDE5LCAyMSwgMjMsIDI1LCAyNywgMjksIDMxLCAxLCAzLCA1LCA3
LCA5LCAxMSwgMTMsIDE1fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9z
aHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDE2X3QpDQogICAgKyAgICAgIHswLCAyLCA0LCA2LCA4
LCAxMCwgMTIsIDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzB9KTsNCiAgICArI2Vu
ZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBv
bHkxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMXFfcDE2IChwb2x5MTZ4OF90IF9f
YSwgcG9seTE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAg
ICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezks
IDExLCAxMywgMTUsIDEsIDMsIDUsIDd9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19i
dWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezAsIDIsIDQsIDYsIDgsIDEw
LCAxMiwgMTR9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1enAx
cV9zOCAoaW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYg
X19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2Is
DQogICAgKyAgICAgICh1aW50OHgxNl90KSB7MTcsIDE5LCAyMSwgMjMsIDI1LCAyNywgMjksIDMx
LCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwNCiAgICArICAgICAgKHVpbnQ4eDE2X3QpIHsw
LCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzB9
KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1enAxcV9zMTYgKGlu
dDE2eDhfdCBfX2EsIGludDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2
NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2
eDhfdCkgezksIDExLCAxMywgMTUsIDEsIDMsIDUsIDd9KTsNCiAgICArI2Vsc2UNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezAsIDIsIDQs
IDYsIDgsIDEwLCAxMiwgMTR9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Z1enAxcV9zMzIgKGludDMyeDRfdCBfX2EsIGludDMyeDRfdCBfX2IpDQogICAgK3sNCiAg
ICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUg
KF9fYSwgX19iLCAodWludDMyeDRfdCkgezUsIDcsIDEsIDN9KTsNCiAgICArI2Vsc2UNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDRfdCkgezAsIDIs
IDQsIDZ9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1enAxcV9z
NjQgKGludDY0eDJfdCBfX2EsIGludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9f
QUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAo
dWludDY0eDJfdCkgezMsIDF9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGlu
X3NodWZmbGUgKF9fYSwgX19iLCAodWludDY0eDJfdCkgezAsIDJ9KTsNCiAgICArI2VuZGlmDQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMXFfdTggKHVpbnQ4eDE2X3QgX19hLCB1aW50
OHgxNl90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsDQogICAgKyAgICAgICh1aW50OHgxNl90
KSB7MTcsIDE5LCAyMSwgMjMsIDI1LCAyNywgMjksIDMxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMs
IDE1fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2Es
IF9fYiwNCiAgICArICAgICAgKHVpbnQ4eDE2X3QpIHswLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0
LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzB9KTsNCiAgICArI2VuZGlmDQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2dXpwMXFfdTE2ICh1aW50MTZ4OF90IF9fYSwgdWludDE2eDhf
dCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4g
X19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezksIDExLCAxMywgMTUs
IDEsIDMsIDUsIDd9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKF9fYSwgX19iLCAodWludDE2eDhfdCkgezAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTR9KTsN
CiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMXFfdTMyICh1aW50
MzJ4NF90IF9fYSwgdWludDMyeDRfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2
NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMy
eDRfdCkgezUsIDcsIDEsIDN9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGlu
X3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDRfdCkgezAsIDIsIDQsIDZ9KTsNCiAgICArI2Vu
ZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVp
bnQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMXFfdTY0ICh1aW50NjR4Ml90IF9f
YSwgdWludDY0eDJfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAg
ICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDY0eDJfdCkgezMs
IDF9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwg
X19iLCAodWludDY0eDJfdCkgezAsIDJ9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnV6cDJfZjE2IChmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYikN
CiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4NF90KSB7NCwgNiwgMCwgMn0pOw0KICAgICsj
ZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4
NF90KSB7MSwgMywgNSwgN30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2dXpwMl9mMzIgKGZsb2F0MzJ4Ml90IF9fYSwgZmxvYXQzMngyX3QgX19iKQ0KICAgICt7
DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVm
ZmxlIChfX2EsIF9fYiwgKHVpbnQzMngyX3QpIHsyLCAwfSk7DQogICAgKyNlbHNlDQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMngyX3QpIHsxLCAzfSk7
DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMl9wOCAocG9seTh4
OF90IF9fYSwgcG9seTh4OF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJf
Xw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHg4X3Qp
IHs4LCAxMCwgMTIsIDE0LCAwLCAyLCA0LCA2fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDhfdCkgezEsIDMsIDUsIDcsIDks
IDExLCAxMywgMTV9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
dXpwMl9wMTYgKHBvbHkxNng0X3QgX19hLCBwb2x5MTZ4NF90IF9fYikNCiAgICArew0KICAgICsj
aWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19h
LCBfX2IsICh1aW50MTZ4NF90KSB7NCwgNiwgMCwgMn0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4NF90KSB7MSwgMywgNSwg
N30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMl9zOCAoaW50
OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVC
X18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90
KSB7OCwgMTAsIDEyLCAxNCwgMCwgMiwgNCwgNn0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHg4X3QpIHsxLCAzLCA1LCA3LCA5
LCAxMSwgMTMsIDE1fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
dXpwMl9zMTYgKGludDE2eDRfdCBfX2EsIGludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArI2lm
ZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwg
X19iLCAodWludDE2eDRfdCkgezQsIDYsIDAsIDJ9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1
cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezEsIDMsIDUsIDd9
KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1enAyX3MzMiAoaW50
MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0
RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4
Ml90KSB7MiwgMH0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZs
ZSAoX19hLCBfX2IsICh1aW50MzJ4Ml90KSB7MSwgM30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnV6cDJfdTggKHVpbnQ4eDhfdCBfX2EsIHVpbnQ4eDhfdCBfX2Ip
DQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWls
dGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90KSB7OCwgMTAsIDEyLCAxNCwgMCwgMiwg
NCwgNn0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19h
LCBfX2IsICh1aW50OHg4X3QpIHsxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1fSk7DQogICAgKyNl
bmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnV6cDJfdTE2ICh1aW50MTZ4NF90IF9f
YSwgdWludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAg
ICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezQs
IDYsIDAsIDJ9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUg
KF9fYSwgX19iLCAodWludDE2eDRfdCkgezEsIDMsIDUsIDd9KTsNCiAgICArI2VuZGlmDQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMl91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4
Ml90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4Ml90KSB7MiwgMH0pOw0KICAg
ICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50
MzJ4Ml90KSB7MSwgM30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2dXpwMnFfZjE2IChmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYikNCiAgICArew0K
ICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZs
ZSAoX19hLCBfX2IsICh1aW50MTZ4OF90KSB7OCwgMTAsIDEyLCAxNCwgMCwgMiwgNCwgNn0pOw0K
ICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1
aW50MTZ4OF90KSB7MSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNX0pOw0KICAgICsjZW5kaWYNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2dXpwMnFfZjMyIChmbG9hdDMyeDRfdCBfX2EsIGZs
b2F0MzJ4NF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4NF90KSB7NCwgNiwg
MCwgMn0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19h
LCBfX2IsICh1aW50MzJ4NF90KSB7MSwgMywgNSwgN30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQ2NHgyX3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2dXpwMnFfZjY0IChmbG9hdDY0eDJfdCBfX2EsIGZsb2F0NjR4
Ml90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50NjR4Ml90KSB7MiwgMH0pOw0KICAg
ICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50
NjR4Ml90KSB7MSwgM30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Z1enAycV9wOCAocG9seTh4MTZfdCBfX2EsIHBvbHk4eDE2X3QgX19iKQ0KICAgICt7DQogICAg
KyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChf
X2EsIF9fYiwNCiAgICArICAgICAgKHVpbnQ4eDE2X3QpIHsxNiwgMTgsIDIwLCAyMiwgMjQsIDI2
LCAyOCwgMzAsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTR9KTsNCiAgICArI2Vsc2UNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLA0KICAgICsgICAgICAodWludDh4
MTZfdCkgezEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUsIDE3LCAxOSwgMjEsIDIzLCAyNSwgMjcs
IDI5LCAzMX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1enAy
cV9wMTYgKHBvbHkxNng4X3QgX19hLCBwb2x5MTZ4OF90IF9fYikNCiAgICArew0KICAgICsjaWZk
ZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBf
X2IsICh1aW50MTZ4OF90KSB7OCwgMTAsIDEyLCAxNCwgMCwgMiwgNCwgNn0pOw0KICAgICsjZWxz
ZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4OF90
KSB7MSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnV6cDJxX3M4IChpbnQ4eDE2X3QgX19hLCBpbnQ4eDE2X3QgX19iKQ0K
ICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9zaHVmZmxlIChfX2EsIF9fYiwNCiAgICArICAgICAgKHVpbnQ4eDE2X3QpIHsxNiwgMTgsIDIw
LCAyMiwgMjQsIDI2LCAyOCwgMzAsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTR9KTsNCiAgICAr
I2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLA0KICAgICsg
ICAgICAodWludDh4MTZfdCkgezEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUsIDE3LCAxOSwgMjEs
IDIzLCAyNSwgMjcsIDI5LCAzMX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnV6cDJxX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0K
ICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZs
ZSAoX19hLCBfX2IsICh1aW50MTZ4OF90KSB7OCwgMTAsIDEyLCAxNCwgMCwgMiwgNCwgNn0pOw0K
ICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1
aW50MTZ4OF90KSB7MSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNX0pOw0KICAgICsjZW5kaWYNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnV6cDJxX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50MzJ4
NF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4NF90KSB7NCwgNiwgMCwgMn0p
Ow0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2Is
ICh1aW50MzJ4NF90KSB7MSwgMywgNSwgN30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdnV6cDJxX3M2NCAoaW50NjR4Ml90IF9fYSwgaW50NjR4Ml90IF9fYikNCiAg
ICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
c2h1ZmZsZSAoX19hLCBfX2IsICh1aW50NjR4Ml90KSB7MiwgMH0pOw0KICAgICsjZWxzZQ0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50NjR4Ml90KSB7MSwg
M30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1enAycV91OCAo
dWludDh4MTZfdCBfX2EsIHVpbnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FB
UkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVp
bnQ4eDE2X3QpDQogICAgKyAgICAgIHsxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzAsIDAs
IDIsIDQsIDYsIDgsIDEwLCAxMiwgMTR9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19i
dWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4MTZfdCkNCiAgICArICAgICAgezEsIDMs
IDUsIDcsIDksIDExLCAxMywgMTUsIDE3LCAxOSwgMjEsIDIzLCAyNSwgMjcsIDI5LCAzMX0pOw0K
ICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1enAycV91MTYgKHVpbnQx
Nng4X3QgX19hLCB1aW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0
RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4
OF90KSB7OCwgMTAsIDEyLCAxNCwgMCwgMiwgNCwgNn0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4OF90KSB7MSwgMywgNSwg
NywgOSwgMTEsIDEzLCAxNX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Z1enAycV91MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9fYikNCiAgICArew0K
ICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZs
ZSAoX19hLCBfX2IsICh1aW50MzJ4NF90KSB7NCwgNiwgMCwgMn0pOw0KICAgICsjZWxzZQ0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4NF90KSB7MSwg
MywgNSwgN30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z1enAy
cV91NjQgKHVpbnQ2NHgyX3QgX19hLCB1aW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsjaWZk
ZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBf
X2IsICh1aW50NjR4Ml90KSB7MiwgMH0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50NjR4Ml90KSB7MSwgM30pOw0KICAgICsjZW5k
aWYNCiAgICArfQ0KICAgICsNCiAgICArX19JTlRFUkxFQVZFX0xJU1QgKHV6cCkNCiAgICArDQog
ICAgKy8qIHZ6aXAgKi8NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDFfZjE2IChmbG9hdDE2eDRf
dCBfX2EsIGZsb2F0MTZ4NF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJf
Xw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4NF90
KSB7NiwgMiwgNywgM30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1
ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4NF90KSB7MCwgNCwgMSwgNX0pOw0KICAgICsjZW5kaWYN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQz
MngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMV9mMzIgKGZsb2F0MzJ4Ml90IF9fYSwg
ZmxvYXQzMngyX3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMngyX3QpIHszLCAx
fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9f
YiwgKHVpbnQzMngyX3QpIHswLCAyfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2emlwMV9wOCAocG9seTh4OF90IF9fYSwgcG9seTh4OF90IF9fYikNCiAgICArew0K
ICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZs
ZSAoX19hLCBfX2IsICh1aW50OHg4X3QpIHsxMiwgNCwgMTMsIDUsIDE0LCA2LCAxNSwgN30pOw0K
ICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1
aW50OHg4X3QpIHswLCA4LCAxLCA5LCAyLCAxMCwgMywgMTF9KTsNCiAgICArI2VuZGlmDQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHkxNng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMV9wMTYgKHBvbHkxNng0X3QgX19hLCBwb2x5MTZ4
NF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4NF90KSB7NiwgMiwgNywgM30p
Ow0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2Is
ICh1aW50MTZ4NF90KSB7MCwgNCwgMSwgNX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2emlwMV9zOCAoaW50OHg4X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAgK3sN
CiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKF9fYSwgX19iLCAodWludDh4OF90KSB7MTIsIDQsIDEzLCA1LCAxNCwgNiwgMTUsIDd9KTsN
CiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAo
dWludDh4OF90KSB7MCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExfSk7DQogICAgKyNlbmRpZg0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMV9zMTYgKGludDE2eDRfdCBfX2EsIGludDE2eDRf
dCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4g
X19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezYsIDIsIDcsIDN9KTsN
CiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAo
dWludDE2eDRfdCkgezAsIDQsIDEsIDV9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3Z6aXAxX3MzMiAoaW50MzJ4Ml90IF9fYSwgaW50MzJ4Ml90IF9fYikNCiAgICAr
ew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1
ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4Ml90KSB7MywgMX0pOw0KICAgICsjZWxzZQ0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4Ml90KSB7MCwgMn0p
Ow0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgdWludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDFfdTggKHVpbnQ4
eDhfdCBfX2EsIHVpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVC
X18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90
KSB7MTIsIDQsIDEzLCA1LCAxNCwgNiwgMTUsIDd9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1
cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90KSB7MCwgOCwgMSwgOSwg
MiwgMTAsIDMsIDExfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnppcDFfdTE2ICh1aW50MTZ4NF90IF9fYSwgdWludDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICAr
I2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9f
YSwgX19iLCAodWludDE2eDRfdCkgezYsIDIsIDcsIDN9KTsNCiAgICArI2Vsc2UNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezAsIDQsIDEs
IDV9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMV91MzIg
KHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19B
QVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1
aW50MzJ4Ml90KSB7MywgMX0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
c2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4Ml90KSB7MCwgMn0pOw0KICAgICsjZW5kaWYNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMXFfZjE2IChmbG9hdDE2eDhfdCBfX2EsIGZs
b2F0MTZ4OF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsDQogICAgKwkJCSAgICAodWludDE2
eDhfdCkgezEyLCA0LCAxMywgNSwgMTQsIDYsIDE1LCA3fSk7DQogICAgKyNlbHNlDQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwNCiAgICArCQkJICAgICh1aW50MTZ4
OF90KSB7MCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Z6aXAxcV9mMzIgKGZsb2F0MzJ4NF90IF9fYSwgZmxvYXQzMng0
X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJu
IF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMng0X3QpIHs2LCAyLCA3LCAzfSk7
DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwg
KHVpbnQzMng0X3QpIHswLCA0LCAxLCA1fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDY0eDJfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3Z6aXAxcV9mNjQgKGZsb2F0NjR4Ml90IF9fYSwgZmxvYXQ2NHgyX3QgX19i
KQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ2NHgyX3QpIHszLCAxfSk7DQogICAgKyNlbHNl
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ2NHgyX3Qp
IHswLCAyfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBwb2x5OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDFx
X3A4IChwb2x5OHgxNl90IF9fYSwgcG9seTh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVm
IF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19i
LCAodWludDh4MTZfdCkNCiAgICArICAgICAgezI0LCA4LCAyNSwgOSwgMjYsIDEwLCAyNywgMTEs
IDI4LCAxMiwgMjksIDEzLCAzMCwgMTQsIDMxLCAxNX0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHgxNl90KQ0KICAgICsgICAg
ICB7MCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQsIDIwLCA1LCAyMSwgNiwgMjIsIDcsIDIz
fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBwb2x5MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDFxX3AxNiAo
cG9seTE2eDhfdCBfX2EsIHBvbHkxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FB
UkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVp
bnQxNng4X3QpDQogICAgKyAgICAgIHsxMiwgNCwgMTMsIDUsIDE0LCA2LCAxNSwgN30pOw0KICAg
ICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50
MTZ4OF90KSB7MCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExfSk7DQogICAgKyNlbmRpZg0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2emlwMXFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBf
X2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19i
dWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4MTZfdCkNCiAgICArICAgICAgezI0LCA4
LCAyNSwgOSwgMjYsIDEwLCAyNywgMTEsIDI4LCAxMiwgMjksIDEzLCAzMCwgMTQsIDMxLCAxNX0p
Ow0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2Is
ICh1aW50OHgxNl90KQ0KICAgICsgICAgICB7MCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQs
IDIwLCA1LCAyMSwgNiwgMjIsIDcsIDIzfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2emlwMXFfczE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iKQ0KICAg
ICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9z
aHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng4X3QpDQogICAgKyAgICAgIHsxMiwgNCwgMTMsIDUs
IDE0LCA2LCAxNSwgN30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1
ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4OF90KSB7MCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExfSk7
DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMXFfczMyIChpbnQz
Mng0X3QgX19hLCBpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRF
Ql9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMng0
X3QpIHs2LCAyLCA3LCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9z
aHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMng0X3QpIHswLCA0LCAxLCA1fSk7DQogICAgKyNlbmRp
Zg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ2
NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMXFfczY0IChpbnQ2NHgyX3QgX19hLCBp
bnQ2NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ2NHgyX3QpIHszLCAxfSk7
DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwg
KHVpbnQ2NHgyX3QpIHswLCAyfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdnppcDFxX3U4ICh1aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sN
CiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKF9fYSwgX19iLCAodWludDh4MTZfdCkNCiAgICArICAgICAgezI0LCA4LCAyNSwgOSwgMjYs
IDEwLCAyNywgMTEsIDI4LCAxMiwgMjksIDEzLCAzMCwgMTQsIDMxLCAxNX0pOw0KICAgICsjZWxz
ZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHgxNl90
KQ0KICAgICsgICAgICB7MCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQsIDIwLCA1LCAyMSwg
NiwgMjIsIDcsIDIzfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChf
X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICAr
dnppcDFxX3UxNiAodWludDE2eDhfdCBfX2EsIHVpbnQxNng4X3QgX19iKQ0KICAgICt7DQogICAg
KyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChf
X2EsIF9fYiwgKHVpbnQxNng4X3QpDQogICAgKyAgICAgIHsxMiwgNCwgMTMsIDUsIDE0LCA2LCAx
NSwgN30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19h
LCBfX2IsICh1aW50MTZ4OF90KSB7MCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExfSk7DQogICAgKyNl
bmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1
aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDFxX3UzMiAodWludDMyeDRfdCBf
X2EsIHVpbnQzMng0X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQzMng0X3QpIHs2
LCAyLCA3LCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxl
IChfX2EsIF9fYiwgKHVpbnQzMng0X3QpIHswLCA0LCAxLCA1fSk7DQogICAgKyNlbmRpZg0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50NjR4Ml90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDFxX3U2NCAodWludDY0eDJfdCBfX2EsIHVpbnQ2
NHgyX3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ2NHgyX3QpIHszLCAxfSk7DQog
ICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVp
bnQ2NHgyX3QpIHswLCAyfSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3Z6aXAyX2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpDQogICAgK3sN
CiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZm
bGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezQsIDAsIDUsIDF9KTsNCiAgICArI2Vsc2UNCiAg
ICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezIs
IDYsIDMsIDd9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnpp
cDJfZjMyIChmbG9hdDMyeDJfdCBfX2EsIGZsb2F0MzJ4Ml90IF9fYikNCiAgICArew0KICAgICsj
aWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19h
LCBfX2IsICh1aW50MzJ4Ml90KSB7MiwgMH0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4Ml90KSB7MSwgM30pOw0KICAgICsj
ZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
cG9seTh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDJfcDggKHBvbHk4eDhfdCBfX2Es
IHBvbHk4eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICAr
ICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4OF90KSB7OCwgMCwg
OSwgMSwgMTAsIDIsIDExLCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDhfdCkgezQsIDEyLCA1LCAxMywgNiwgMTQsIDcs
IDE1fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBwb2x5MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDJfcDE2
IChwb2x5MTZ4NF90IF9fYSwgcG9seTE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9f
QUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAo
dWludDE2eDRfdCkgezQsIDAsIDUsIDF9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19i
dWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDE2eDRfdCkgezIsIDYsIDMsIDd9KTsNCiAg
ICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGludDh4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDJfczggKGludDh4OF90IF9f
YSwgaW50OHg4X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDhfdCkgezgsIDAs
IDksIDEsIDEwLCAyLCAxMSwgM30pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50OHg4X3QpIHs0LCAxMiwgNSwgMTMsIDYsIDE0LCA3
LCAxNX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDJfczE2
IChpbnQxNng0X3QgX19hLCBpbnQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FB
UkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVp
bnQxNng0X3QpIHs0LCAwLCA1LCAxfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHsyLCA2LCAzLCA3fSk7DQogICAg
KyNlbmRpZg0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMl9zMzIgKGludDMyeDJfdCBf
X2EsIGludDMyeDJfdCBfX2IpDQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAg
ICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDJfdCkgezIs
IDB9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwg
X19iLCAodWludDMyeDJfdCkgezEsIDN9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQog
ICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3Z6aXAyX3U4ICh1aW50OHg4X3QgX19hLCB1aW50OHg4X3QgX19iKQ0KICAgICt7
DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVm
ZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDhfdCkgezgsIDAsIDksIDEsIDEwLCAyLCAxMSwgM30pOw0K
ICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1
aW50OHg4X3QpIHs0LCAxMiwgNSwgMTMsIDYsIDE0LCA3LCAxNX0pOw0KICAgICsjZW5kaWYNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z6aXAyX3UxNiAodWludDE2eDRfdCBfX2EsIHVpbnQx
Nng0X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng0X3QpIHs0LCAwLCA1LCAx
fSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9f
YiwgKHVpbnQxNng0X3QpIHsyLCA2LCAzLCA3fSk7DQogICAgKyNlbmRpZg0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdnppcDJfdTMyICh1aW50MzJ4Ml90IF9fYSwgdWludDMyeDJfdCBfX2Ip
DQogICAgK3sNCiAgICArI2lmZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWls
dGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDJfdCkgezIsIDB9KTsNCiAgICArI2Vsc2UN
CiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWludDMyeDJfdCkg
ezEsIDN9KTsNCiAgICArI2VuZGlmDQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDJx
X2YxNiAoZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArI2lm
ZGVmIF9fQUFSQ0g2NEVCX18NCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwg
X19iLA0KICAgICsJCQkgICAgKHVpbnQxNng4X3QpIHs4LCAwLCA5LCAxLCAxMCwgMiwgMTEsIDN9
KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19i
LA0KICAgICsJCQkgICAgKHVpbnQxNng4X3QpIHs0LCAxMiwgNSwgMTMsIDYsIDE0LCA3LCAxNX0p
Ow0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMnFfZjMyIChm
bG9hdDMyeDRfdCBfX2EsIGZsb2F0MzJ4NF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19B
QVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1
aW50MzJ4NF90KSB7NCwgMCwgNSwgMX0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4NF90KSB7MiwgNiwgMywgN30pOw0KICAg
ICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQ2NHgyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2emlwMnFfZjY0IChmbG9hdDY0
eDJfdCBfX2EsIGZsb2F0NjR4Ml90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0
RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50NjR4
Ml90KSB7MiwgMH0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZs
ZSAoX19hLCBfX2IsICh1aW50NjR4Ml90KSB7MSwgM30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4MTZfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3Z6aXAycV9wOCAocG9seTh4MTZfdCBfX2EsIHBvbHk4eDE2X3Qg
X19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDE2X3QpDQogICAgKyAgICAgIHsxNiwg
MCwgMTcsIDEsIDE4LCAyLCAxOSwgMywgMjAsIDQsIDIxLCA1LCAyMiwgNiwgMjMsIDd9KTsNCiAg
ICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9fYSwgX19iLCAodWlu
dDh4MTZfdCkNCiAgICArICAgICAgezgsIDI0LCA5LCAyNSwgMTAsIDI2LCAxMSwgMjcsIDEyLCAy
OCwgMTMsIDI5LCAxNCwgMzAsIDE1LCAzMX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3Z6aXAycV9wMTYgKHBvbHkxNng4X3QgX19hLCBwb2x5MTZ4OF90IF9fYikN
CiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4OF90KSB7OCwgMCwgOSwgMSwgMTAsIDIsIDEx
LCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2Es
IF9fYiwgKHVpbnQxNng4X3QpDQogICAgKyAgICAgIHs0LCAxMiwgNSwgMTMsIDYsIDE0LCA3LCAx
NX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgaW50OHgxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDJxX3M4IChp
bnQ4eDE2X3QgX19hLCBpbnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNI
NjRFQl9fDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4
eDE2X3QpDQogICAgKyAgICAgIHsxNiwgMCwgMTcsIDEsIDE4LCAyLCAxOSwgMywgMjAsIDQsIDIx
LCA1LCAyMiwgNiwgMjMsIDd9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGlu
X3NodWZmbGUgKF9fYSwgX19iLCAodWludDh4MTZfdCkNCiAgICArICAgICAgezgsIDI0LCA5LCAy
NSwgMTAsIDI2LCAxMSwgMjcsIDEyLCAyOCwgMTMsIDI5LCAxNCwgMzAsIDE1LCAzMX0pOw0KICAg
ICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgaW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnppcDJxX3MxNiAoaW50MTZ4OF90
IF9fYSwgaW50MTZ4OF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4OF90KSB7
OCwgMCwgOSwgMSwgMTAsIDIsIDExLCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng4X3QpDQogICAgKyAgICAgIHs0LCAx
MiwgNSwgMTMsIDYsIDE0LCA3LCAxNX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdnppcDJxX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9fYikNCiAgICAr
ew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1
ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4NF90KSB7NCwgMCwgNSwgMX0pOw0KICAgICsjZWxzZQ0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4NF90KSB7
MiwgNiwgMywgN30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgaW50NjR4Ml90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnpp
cDJxX3M2NCAoaW50NjR4Ml90IF9fYSwgaW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsjaWZk
ZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBf
X2IsICh1aW50NjR4Ml90KSB7MiwgMH0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50NjR4Ml90KSB7MSwgM30pOw0KICAgICsjZW5k
aWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDh4MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z6aXAycV91OCAodWludDh4MTZfdCBfX2Es
IHVpbnQ4eDE2X3QgX19iKQ0KICAgICt7DQogICAgKyNpZmRlZiBfX0FBUkNINjRFQl9fDQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxlIChfX2EsIF9fYiwgKHVpbnQ4eDE2X3QpDQogICAg
KyAgICAgIHsxNiwgMCwgMTcsIDEsIDE4LCAyLCAxOSwgMywgMjAsIDQsIDIxLCA1LCAyMiwgNiwg
MjMsIDd9KTsNCiAgICArI2Vsc2UNCiAgICArICByZXR1cm4gX19idWlsdGluX3NodWZmbGUgKF9f
YSwgX19iLCAodWludDh4MTZfdCkNCiAgICArICAgICAgezgsIDI0LCA5LCAyNSwgMTAsIDI2LCAx
MSwgMjcsIDEyLCAyOCwgMTMsIDI5LCAxNCwgMzAsIDE1LCAzMX0pOw0KICAgICsjZW5kaWYNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z6aXAycV91MTYgKHVpbnQxNng4X3QgX19hLCB1aW50
MTZ4OF90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJl
dHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MTZ4OF90KSB7OCwgMCwgOSwg
MSwgMTAsIDIsIDExLCAzfSk7DQogICAgKyNlbHNlDQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9z
aHVmZmxlIChfX2EsIF9fYiwgKHVpbnQxNng4X3QpDQogICAgKyAgICAgIHs0LCAxMiwgNSwgMTMs
IDYsIDE0LCA3LCAxNX0pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Z6aXAycV91MzIgKHVpbnQzMng0X3QgX19hLCB1aW50MzJ4NF90IF9fYikNCiAgICArew0KICAg
ICsjaWZkZWYgX19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAo
X19hLCBfX2IsICh1aW50MzJ4NF90KSB7NCwgMCwgNSwgMX0pOw0KICAgICsjZWxzZQ0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50MzJ4NF90KSB7MiwgNiwg
MywgN30pOw0KICAgICsjZW5kaWYNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgdWludDY0eDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Z6aXAycV91
NjQgKHVpbnQ2NHgyX3QgX19hLCB1aW50NjR4Ml90IF9fYikNCiAgICArew0KICAgICsjaWZkZWYg
X19BQVJDSDY0RUJfXw0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZSAoX19hLCBfX2Is
ICh1aW50NjR4Ml90KSB7MiwgMH0pOw0KICAgICsjZWxzZQ0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fc2h1ZmZsZSAoX19hLCBfX2IsICh1aW50NjR4Ml90KSB7MSwgM30pOw0KICAgICsjZW5kaWYN
CiAgICArfQ0KICAgICsNCiAgICArX19JTlRFUkxFQVZFX0xJU1QgKHppcCkNCiAgICArDQogICAg
KyN1bmRlZiBfX0lOVEVSTEVBVkVfTElTVA0KICAgICsjdW5kZWYgX19ERUZJTlRFUkxFQVZFDQog
ICAgKw0KICAgICsvKiBFbmQgb2Ygb3B0aW1hbCBpbXBsZW1lbnRhdGlvbnMgaW4gYXBwcm92ZWQg
b3JkZXIuICAqLw0KICAgICsNCiAgICArI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMNCiAgICArDQog
ICAgKy8qIEFSTXY4LjItQSBGUDE2IGludHJpbnNpY3MuICAqLw0KICAgICsNCiAgICArI2luY2x1
ZGUgImFybV9mcDE2LmgiDQogICAgKw0KICAgICsjcHJhZ21hIEdDQyBwdXNoX29wdGlvbnMNCiAg
ICArI3ByYWdtYSBHQ0MgdGFyZ2V0ICgiYXJjaD1hcm12OC4yLWErZnAxNiIpDQogICAgKw0KICAg
ICsvKiBBUk12OC4yLUEgRlAxNiBvbmUgb3BlcmFuZCB2ZWN0b3IgaW50cmluc2ljcy4gICovDQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZhYnNfZjE2IChmbG9hdDE2eDRfdCBfX2EpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfYWJzdjRoZiAoX19hKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2YWJzcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9hYnN2OGhmIChfX2EpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmNlcXpfZjE2IChmbG9hdDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY21lcXY0aGZfdXNzIChfX2EsIHZkdXBfbl9mMTYg
KDAuMGYpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXF6cV9mMTYgKGZsb2F0MTZ4
OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jbWVxdjho
Zl91c3MgKF9fYSwgdmR1cHFfbl9mMTYgKDAuMGYpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZjZ2V6X2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X2NtZ2V2NGhmX3VzcyAoX19hLCB2ZHVwX25fZjE2ICgwLjBmKSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlenFfZjE2IChmbG9hdDE2eDhfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY21nZXY4aGZfdXNzIChfX2Es
IHZkdXBxX25fZjE2ICgwLjBmKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2d0el9m
MTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9jbWd0djRoZl91c3MgKF9fYSwgdmR1cF9uX2YxNiAoMC4wZikpOw0KICAgICt9DQogICAg
Kw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmNndHpxX2YxNiAoZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NtZ3R2OGhmX3VzcyAoX19hLCB2ZHVwcV9uX2Yx
NiAoMC4wZikpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNsZXpfZjE2IChmbG9hdDE2
eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY21sZXY0
aGZfdXNzIChfX2EsIHZkdXBfbl9mMTYgKDAuMGYpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZjbGV6cV9mMTYgKGZsb2F0MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9jbWxldjhoZl91c3MgKF9fYSwgdmR1cHFfbl9mMTYgKDAuMGYpKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2
eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbHR6X2YxNiAoZmxvYXQxNng0X3QgX19hKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NtbHR2NGhmX3VzcyAoX19h
LCB2ZHVwX25fZjE2ICgwLjBmKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x0enFf
ZjE2IChmbG9hdDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfY21sdHY4aGZfdXNzIChfX2EsIHZkdXBxX25fZjE2ICgwLjBmKSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdmN2dF9mMTZfczE2IChpbnQxNng0X3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zsb2F0djRoaXY0aGYgKF9fYSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHFfZjE2X3MxNiAoaW50MTZ4OF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbG9hdHY4aGl2OGhmIChfX2Ep
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRfZjE2X3UxNiAodWludDE2eDRfdCBf
X2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZmxvYXR1bnN2NGhp
djRoZiAoKGludDE2eDRfdCkgX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0
cV9mMTZfdTE2ICh1aW50MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0
aW5fYWFyY2g2NF9mbG9hdHVuc3Y4aGl2OGhmICgoaW50MTZ4OF90KSBfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Y3Z0X3MxNl9mMTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0K
ICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sYnRydW5jdjRoZnY0aGkgKF9fYSk7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRxX3MxNl9mMTYgKGZsb2F0MTZ4OF90IF9fYSkN
CiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sYnRydW5jdjhoZnY4aGkg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0X3UxNl9mMTYgKGZsb2F0MTZ4
NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sYnRydW5j
dXY0aGZ2NGhpX3VzIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHFfdTE2
X2YxNiAoZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X2xidHJ1bmN1djhoZnY4aGlfdXMgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZjdnRhX3MxNl9mMTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9scm91bmR2NGhmdjRoaSAoX19hKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmN2dGFxX3MxNl9mMTYgKGZsb2F0MTZ4OF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9scm91bmR2OGhmdjhoaSAoX19hKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRhX3UxNl9mMTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9scm91bmR1djRoZnY0aGlfdXMg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0YXFfdTE2X2YxNiAoZmxvYXQx
Nng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xyb3Vu
ZHV2OGhmdjhoaV91cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgaW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dG1fczE2
X2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X2xmbG9vcnY0aGZ2NGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y3Z0bXFfczE2X2YxNiAoZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9f
YnVpbHRpbl9hYXJjaDY0X2xmbG9vcnY4aGZ2OGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmli
dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f
KSkNCiAgICArdmN2dG1fdTE2X2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAg
cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2xmbG9vcnV2NGhmdjRoaV91cyAoX19hKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRtcV91MTZfZjE2IChmbG9hdDE2eDhfdCBfX2EpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZsb29ydXY4aGZ2OGhpX3Vz
IChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0bl9zMTZfZjE2IChmbG9hdDE2
eDRfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGZyaW50
bnY0aGZ2NGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0bnFfczE2X2Yx
NiAoZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X2xmcmludG52OGhmdjhoaSAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zj
dnRuX3UxNl9mMTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9sZnJpbnRudXY0aGZ2NGhpX3VzIChfX2EpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0
cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lh
bF9fKSkNCiAgICArdmN2dG5xX3UxNl9mMTYgKGZsb2F0MTZ4OF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sZnJpbnRudXY4aGZ2OGhpX3VzIChfX2EpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y3Z0cF9zMTZfZjE2IChmbG9hdDE2eDRfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbGNlaWx2NGhmdjRoaSAo
X19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHBxX3MxNl9mMTYgKGZsb2F0MTZ4
OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9sY2VpbHY4
aGZ2OGhpIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHBfdTE2X2YxNiAo
ZmxvYXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X2xjZWlsdXY0aGZ2NGhpX3VzIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2
dHBxX3UxNl9mMTYgKGZsb2F0MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9sY2VpbHV2OGhmdjhoaV91cyAoX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bmVnX2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIC1fX2E7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg
X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm5lZ3FfZjE2IChmbG9hdDE2
eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gLV9fYTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2cmVjcGVfZjE2IChmbG9hdDE2eDRfdCBfX2EpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZnJlY3BldjRoZiAoX19hKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2cmVjcGVxX2YxNiAoZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZyZWNwZXY4aGYgKF9fYSk7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnJuZF9mMTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9idHJ1bmN2NGhmIChfX2EpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZybmRxX2YxNiAoZmxvYXQxNng4X3QgX19hKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2J0cnVuY3Y4aGYgKF9fYSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZGFfZjE2IChmbG9hdDE2eDRfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcm91bmR2NGhmIChfX2EpOw0KICAgICt9
DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZybmRhcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSkNCiAgICAr
ew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yb3VuZHY4aGYgKF9fYSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZGlfZjE2IChmbG9hdDE2eDRfdCBfX2EpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbmVhcmJ5aW50djRoZiAoX19hKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQx
Nng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cm5kaXFfZjE2IChmbG9hdDE2eDhfdCBfX2Ep
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfbmVhcmJ5aW50djhoZiAo
X19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cm5kbV9mMTYgKGZsb2F0MTZ4NF90
IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbG9vcnY0aGYg
KF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJuZG1xX2YxNiAoZmxvYXQxNng4
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Zsb29ydjho
ZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cm5kbl9mMTYgKGZsb2F0MTZ4
NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mcmludG52
NGhmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZybmRucV9mMTYgKGZsb2F0
MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mcmlu
dG52OGhmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZybmRwX2YxNiAoZmxv
YXQxNng0X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2Nl
aWx2NGhmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZybmRwcV9mMTYgKGZs
b2F0MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9j
ZWlsdjhoZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cm5keF9mMTYgKGZs
b2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9y
aW50djRoZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cm5keHFfZjE2IChm
bG9hdDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
cmludHY4aGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzcXJ0ZV9mMTYg
KGZsb2F0MTZ4NF90IGEpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
cnNxcnRldjRoZiAoYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnJzcXJ0ZXFfZjE2
IChmbG9hdDE2eDhfdCBhKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X3JzcXJ0ZXY4aGYgKGEpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZzcXJ0X2YxNiAo
ZmxvYXQxNng0X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9z
cXJ0djRoZiAoYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnNxcnRxX2YxNiAoZmxv
YXQxNng4X3QgYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zcXJ0
djhoZiAoYSk7DQogICAgK30NCiAgICArDQogICAgKy8qIEFSTXY4LjItQSBGUDE2IHR3byBvcGVy
YW5kcyB2ZWN0b3IgaW50cmluc2ljcy4gICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhZGRfZjE2
IChmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVy
biBfX2EgKyBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFkZHFfZjE2IChmbG9h
dDE2eDhfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2Eg
KyBfX2I7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmFiZF9mMTYgKGZsb2F0MTZ4NF90
IGEsIGZsb2F0MTZ4NF90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfZmFiZHY0aGYgKGEsIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZhYmRxX2Yx
NiAoZmxvYXQxNng4X3QgYSwgZmxvYXQxNng4X3QgYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9mYWJkdjhoZiAoYSwgYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y2FnZV9mMTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZhY2dldjRoZl91c3MgKF9fYSwgX19i
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu
dDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjYWdlcV9mMTYgKGZsb2F0MTZ4OF90IF9f
YSwgZmxvYXQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X2ZhY2dldjhoZl91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRl
bnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZjYWd0X2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZmFjZ3R2NGhmX3VzcyAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4
OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNhZ3RxX2YxNiAoZmxvYXQxNng4X3QgX19hLCBm
bG9hdDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
ZmFjZ3R2OGhmX3VzcyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNh
bGVfZjE2IChmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mYWNsZXY0aGZfdXNzIChfX2EsIF9fYik7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QN
CiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg
X19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2FsZXFfZjE2IChmbG9hdDE2eDhfdCBfX2EsIGZsb2F0
MTZ4OF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mYWNs
ZXY4aGZfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2FsdF9m
MTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0
dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZhY2x0djRoZl91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZjYWx0cV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZhY2x0djho
Zl91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjZXFfZjE2IChm
bG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9jbWVxdjRoZl91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZjZXFxX2YxNiAoZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY21lcXY4aGZfdXNzIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2dlX2YxNiAoZmxvYXQxNng0
X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGlu
X2FhcmNoNjRfY21nZXY0aGZfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVf
XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0K
ICAgICt2Y2dlcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2NtZ2V2OGhmX3VzcyAoX19hLCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50
MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNndF9mMTYgKGZsb2F0MTZ4NF90IF9fYSwg
ZmxvYXQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0
X2NtZ3R2NGhmX3VzcyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmNn
dHFfZjE2IChmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jbWd0djhoZl91c3MgKF9fYSwgX19iKTsNCiAgICAr
fQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2eDRfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZjbGVfZjE2IChmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4
NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9jbWxldjRo
Zl91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgdWludDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjbGVxX2YxNiAo
ZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfY21sZXY4aGZfdXNzIChfX2EsIF9fYik7DQogICAgK30NCiAgICAr
DQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2Y2x0X2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfY21sdHY0aGZfdXNzIChf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Y2x0cV9mMTYgKGZsb2F0MTZ4
OF90IF9fYSwgZmxvYXQxNng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X2NtbHR2OGhmX3VzcyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtf
X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZjdnRfbl9mMTZfczE2IChpbnQxNng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NjdnRmdjRoaSAoX19hLCBfX2Ip
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRxX25fZjE2X3MxNiAoaW50MTZ4OF90
IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9zY3Z0ZnY4aGkgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y3Z0X25fZjE2X3UxNiAodWludDE2eDRfdCBfX2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAg
ICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdWN2dGZ2NGhpX3N1cyAoX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZjdnRxX25fZjE2X3UxNiAodWludDE2eDhfdCBf
X2EsIGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNo
NjRfdWN2dGZ2OGhpX3N1cyAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Y3Z0X25fczE2X2YxNiAoZmxvYXQxNng0X3QgX19hLCBjb25zdCBpbnQgX19iKQ0KICAgICt7DQog
ICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZjdnR6c3Y0aGYgKF9fYSwgX19iKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHFfbl9zMTZfZjE2IChmbG9hdDE2eDhfdCBfX2Es
IGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
ZmN2dHpzdjhoZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSB1aW50MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dF9u
X3UxNl9mMTYgKGZsb2F0MTZ4NF90IF9fYSwgY29uc3QgaW50IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mY3Z0enV2NGhmX3VzcyAoX19hLCBfX2IpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmN2dHFfbl91MTZfZjE2IChmbG9hdDE2eDhfdCBfX2Es
IGNvbnN0IGludCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
ZmN2dHp1djhoZl91c3MgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNp
b25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
ZGl2X2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19hIC8gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4
dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZkaXZxX2Yx
NiAoZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19hIC8gX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5l
X18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXhfZjE2IChmbG9h
dDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9zbWF4X25hbnY0aGYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bWF4cV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NtYXhfbmFudjhoZiAoX19h
LCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu
ZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9f
Z251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtYXhubV9mMTYgKGZsb2F0MTZ4
NF90IF9fYSwgZmxvYXQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRp
bl9hYXJjaDY0X2ZtYXh2NGhmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdm1heG5tcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtYXh2OGhmIChfX2EsIF9fYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbl9mMTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxv
YXQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nt
aW5fbmFudjRoZiAoX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdh
eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW5x
X2YxNiAoZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21pbl9uYW52OGhmIChfX2EsIF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbm5tX2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2
eDRfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm1pbnY0
aGYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4g
X19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu
ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWlubm1xX2YxNiAo
ZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4g
X19idWlsdGluX2FhcmNoNjRfZm1pbnY4aGYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bXVsX2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpDQog
ICAgK3sNCiAgICArICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9f
ICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQog
ICAgK3ZtdWxxX2YxNiAoZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19hICogX19iOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
dWx4X2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm11bHh2NGhmIChfX2EsIF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHhxX2YxNiAoZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2
eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm11bHh2
OGhmIChfX2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJu
IF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp
bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBhZGRfZjE2IChm
bG9hdDE2eDRfdCBhLCBmbG9hdDE2eDRfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVp
bHRpbl9hYXJjaDY0X2ZhZGRwdjRoZiAoYSwgYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18g
KChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAg
ICArdnBhZGRxX2YxNiAoZmxvYXQxNng4X3QgYSwgZmxvYXQxNng4X3QgYikNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mYWRkcHY4aGYgKGEsIGIpOw0KICAgICt9DQog
ICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZwbWF4X2YxNiAoZmxvYXQxNng0X3QgYSwgZmxvYXQxNng0X3Qg
YikNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zbWF4X25hbnB2NGhm
IChhLCBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cG1heHFfZjE2IChmbG9hdDE2
eDhfdCBhLCBmbG9hdDE2eDhfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9h
YXJjaDY0X3NtYXhfbmFucHY4aGYgKGEsIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZwbWF4bm1fZjE2IChmbG9hdDE2eDRfdCBhLCBmbG9hdDE2eDRfdCBiKQ0KICAgICt7DQogICAg
KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NtYXhwdjRoZiAoYSwgYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnBtYXhubXFfZjE2IChmbG9hdDE2eDhfdCBhLCBmbG9hdDE2eDhf
dCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3NtYXhwdjhoZiAo
YSwgYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l
IGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnBtaW5fZjE2IChmbG9hdDE2eDRf
dCBhLCBmbG9hdDE2eDRfdCBiKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJj
aDY0X3NtaW5fbmFucHY0aGYgKGEsIGIpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zw
bWlucV9mMTYgKGZsb2F0MTZ4OF90IGEsIGZsb2F0MTZ4OF90IGIpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21pbl9uYW5wdjhoZiAoYSwgYik7DQogICAgK30NCiAg
ICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAg
K19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0
aWZpY2lhbF9fKSkNCiAgICArdnBtaW5ubV9mMTYgKGZsb2F0MTZ4NF90IGEsIGZsb2F0MTZ4NF90
IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc21pbnB2NGhmIChh
LCBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cG1pbm5tcV9mMTYgKGZsb2F0MTZ4
OF90IGEsIGZsb2F0MTZ4OF90IGIpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc21pbnB2OGhmIChhLCBiKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cmVj
cHNfZjE2IChmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYikNCiAgICArew0KICAgICsg
IHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mcmVjcHN2NGhmIChfX2EsIF9fYik7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQog
ICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f
YXJ0aWZpY2lhbF9fKSkNCiAgICArdnJlY3BzcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQx
Nng4X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZyZWNw
c3Y4aGYgKF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRl
cm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu
bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2cnNxcnRzX2Yx
NiAoZmxvYXQxNng0X3QgYSwgZmxvYXQxNng0X3QgYikNCiAgICArew0KICAgICsgIHJldHVybiBf
X2J1aWx0aW5fYWFyY2g2NF9yc3FydHN2NGhmIChhLCBiKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1
dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18p
KQ0KICAgICt2cnNxcnRzcV9mMTYgKGZsb2F0MTZ4OF90IGEsIGZsb2F0MTZ4OF90IGIpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcnNxcnRzdjhoZiAoYSwgYik7DQog
ICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4
NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdnN1Yl9mMTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxv
YXQxNng0X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAtIF9fYjsNCiAgICArfQ0K
ICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2c3VicV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4
X3QgX19iKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAtIF9fYjsNCiAgICArfQ0KICAgICsN
CiAgICArLyogQVJNdjguMi1BIEZQMTYgdGhyZWUgb3BlcmFuZHMgdmVjdG9yIGludHJpbnNpY3Mu
ICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1hX2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9h
dDE2eDRfdCBfX2IsIGZsb2F0MTZ4NF90IF9fYykNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1
aWx0aW5fYWFyY2g2NF9mbWF2NGhmIChfX2IsIF9fYywgX19hKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2Zm1hcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iLCBm
bG9hdDE2eDhfdCBfX2MpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
Zm1hdjhoZiAoX19iLCBfX2MsIF9fYSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fs
d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmZt
c19mMTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iLCBmbG9hdDE2eDRfdCBfX2Mp
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm5tYXY0aGYgKF9fYiwg
X19jLCBfX2EpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu
bGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbXNxX2YxNiAoZmxvYXQx
Nng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IsIGZsb2F0MTZ4OF90IF9fYykNCiAgICArew0KICAg
ICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbm1hdjhoZiAoX19iLCBfX2MsIF9fYSk7DQog
ICAgK30NCiAgICArDQogICAgKy8qIEFSTXY4LjItQSBGUDE2IGxhbmUgdmVjdG9yIGludHJpbnNp
Y3MuICAqLw0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQx
Nl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l
X18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmZtYWhfbGFuZV9mMTYgKGZsb2F0MTZfdCBfX2Es
IGZsb2F0MTZfdCBfX2IsDQogICAgKwkJZmxvYXQxNng0X3QgX19jLCBjb25zdCBpbnQgX19sYW5l
KQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZmbWFoX2YxNiAoX19hLCBfX2IsIF9fYWFyY2g2NF92
Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVu
c2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9f
YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2
Zm1haF9sYW5lcV9mMTYgKGZsb2F0MTZfdCBfX2EsIGZsb2F0MTZfdCBfX2IsDQogICAgKwkJIGZs
b2F0MTZ4OF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiB2
Zm1haF9mMTYgKF9fYSwgX19iLCBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xhbmUp
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1hX2xhbmVfZjE2IChmbG9hdDE2eDRf
dCBfX2EsIGZsb2F0MTZ4NF90IF9fYiwNCiAgICArCSAgICAgICBmbG9hdDE2eDRfdCBfX2MsIGNv
bnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gdmZtYV9mMTYgKF9fYSwgX19i
LCBfX2FhcmNoNjRfdmR1cF9sYW5lX2YxNiAoX19jLCBfX2xhbmUpKTsNCiAgICArfQ0KICAgICsN
CiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19h
dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj
aWFsX18pKQ0KICAgICt2Zm1hcV9sYW5lX2YxNiAoZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhf
dCBfX2IsDQogICAgKwkJZmxvYXQxNng0X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIHZmbWFxX2YxNiAoX19hLCBfX2IsIF9fYWFyY2g2NF92ZHVwcV9sYW5l
X2YxNiAoX19jLCBfX2xhbmUpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBl
eHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1hX2xh
bmVxX2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IsDQogICAgKwkJZmxvYXQx
Nng4X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZmbWFf
ZjE2IChfX2EsIF9fYiwgX19hYXJjaDY0X3ZkdXBfbGFuZXFfZjE2IChfX2MsIF9fbGFuZSkpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2
eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu
ZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbWFxX2xhbmVxX2YxNiAoZmxvYXQxNng4X3Qg
X19hLCBmbG9hdDE2eDhfdCBfX2IsDQogICAgKwkJIGZsb2F0MTZ4OF90IF9fYywgY29uc3QgaW50
IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiB2Zm1hcV9mMTYgKF9fYSwgX19iLCBfX2Fh
cmNoNjRfdmR1cHFfbGFuZXFfZjE2IChfX2MsIF9fbGFuZSkpOw0KICAgICt9DQogICAgKw0KICAg
ICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJp
YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf
XykpDQogICAgK3ZmbWFfbl9mMTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iLCBm
bG9hdDE2X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZmbWFfZjE2IChfX2EsIF9fYiwg
dmR1cF9uX2YxNiAoX19jKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0
ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19p
bmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmZtYXFfbl9m
MTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iLCBmbG9hdDE2X3QgX19jKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIHZmbWFxX2YxNiAoX19hLCBfX2IsIHZkdXBxX25fZjE2IChfX2Mp
KTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv
YXQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s
aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmZtc2hfbGFuZV9mMTYgKGZsb2F0MTZfdCBf
X2EsIGZsb2F0MTZfdCBfX2IsDQogICAgKwkJZmxvYXQxNng0X3QgX19jLCBjb25zdCBpbnQgX19s
YW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZmbXNoX2YxNiAoX19hLCBfX2IsIF9fYWFyY2g2
NF92Z2V0X2xhbmVfYW55IChfX2MsIF9fbGFuZSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2Zm1zaF9sYW5lcV9mMTYgKGZsb2F0MTZfdCBfX2EsIGZsb2F0MTZfdCBfX2IsDQogICAgKwkJ
IGZsb2F0MTZ4OF90IF9fYywgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVy
biB2Zm1zaF9mMTYgKF9fYSwgX19iLCBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19jLCBfX2xh
bmUpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du
dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1zX2xhbmVfZjE2IChmbG9hdDE2
eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYiwNCiAgICArCSAgICAgICBmbG9hdDE2eDRfdCBfX2Ms
IGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4gdmZtc19mMTYgKF9fYSwg
X19iLCBfX2FhcmNoNjRfdmR1cF9sYW5lX2YxNiAoX19jLCBfX2xhbmUpKTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICAr
X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp
ZmljaWFsX18pKQ0KICAgICt2Zm1zcV9sYW5lX2YxNiAoZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2
eDhfdCBfX2IsDQogICAgKwkJZmxvYXQxNng0X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAg
ICt7DQogICAgKyAgcmV0dXJuIHZmbXNxX2YxNiAoX19hLCBfX2IsIF9fYWFyY2g2NF92ZHVwcV9s
YW5lX2YxNiAoX19jLCBfX2xhbmUpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2Zm1z
X2xhbmVxX2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IsDQogICAgKwkJZmxv
YXQxNng4X3QgX19jLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZm
bXNfZjE2IChfX2EsIF9fYiwgX19hYXJjaDY0X3ZkdXBfbGFuZXFfZjE2IChfX2MsIF9fbGFuZSkp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZmbXNxX2xhbmVxX2YxNiAoZmxvYXQxNng4
X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IsDQogICAgKwkJIGZsb2F0MTZ4OF90IF9fYywgY29uc3Qg
aW50IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiB2Zm1zcV9mMTYgKF9fYSwgX19iLCBf
X2FhcmNoNjRfdmR1cHFfbGFuZXFfZjE2IChfX2MsIF9fbGFuZSkpOw0KICAgICt9DQogICAgKw0K
ICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0
dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp
YWxfXykpDQogICAgK3ZmbXNfbl9mMTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19i
LCBmbG9hdDE2X3QgX19jKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZmbXNfZjE2IChfX2EsIF9f
YiwgdmR1cF9uX2YxNiAoX19jKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmZtc3Ff
bl9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iLCBmbG9hdDE2X3QgX19jKQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIHZmbXNxX2YxNiAoX19hLCBfX2IsIHZkdXBxX25fZjE2IChf
X2MpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
ZmxvYXQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVf
aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bGhfbGFuZV9mMTYgKGZsb2F0MTZf
dCBfX2EsIGZsb2F0MTZ4NF90IF9fYiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICArew0KICAgICsg
IHJldHVybiBfX2EgKiBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUpOw0KICAg
ICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRf
dA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9f
LCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxfbGFuZV9mMTYgKGZsb2F0MTZ4NF90IF9fYSwg
ZmxvYXQxNng0X3QgX19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJu
IHZtdWxfZjE2IChfX2EsIHZkdXBfbl9mMTYgKF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2Is
IF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f
LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVscV9sYW5lX2YxNiAo
ZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAg
K3sNCiAgICArICByZXR1cm4gdm11bHFfZjE2IChfX2EsIHZkdXBxX25fZjE2IChfX2FhcmNoNjRf
dmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUpKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3ZtdWxoX2xhbmVxX2YxNiAoZmxvYXQxNl90IF9fYSwgZmxvYXQxNng4X3QgX19iLCBjb25zdCBp
bnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYSAqIF9fYWFyY2g2NF92Z2V0X2xh
bmVfYW55IChfX2IsIF9fbGFuZSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bF9s
YW5lcV9mMTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng4X3QgX19iLCBjb25zdCBpbnQgX19s
YW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZtdWxfZjE2IChfX2EsIHZkdXBfbl9mMTYgKF9f
YWFyY2g2NF92Z2V0X2xhbmVfYW55IChfX2IsIF9fbGFuZSkpKTsNCiAgICArfQ0KICAgICsNCiAg
ICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRy
aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs
X18pKQ0KICAgICt2bXVscV9sYW5lcV9mMTYgKGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3Qg
X19iLCBjb25zdCBpbnQgX19sYW5lKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIHZtdWxxX2YxNiAo
X19hLCB2ZHVwcV9uX2YxNiAoX19hYXJjaDY0X3ZnZXRfbGFuZV9hbnkgKF9fYiwgX19sYW5lKSkp
Ow0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h
dDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWxfbl9mMTYgKGZsb2F0MTZ4NF90IF9f
YSwgZmxvYXQxNl90IF9fYikNCiAgICArew0KICAgICsgIHJldHVybiB2bXVsX2xhbmVfZjE2IChf
X2EsIHZkdXBfbl9mMTYgKF9fYiksIDApOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lv
bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19h
bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zt
dWxxX25fZjE2IChmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZfdCBfX2IpDQogICAgK3sNCiAgICAr
ICByZXR1cm4gdm11bHFfbGFuZXFfZjE2IChfX2EsIHZkdXBxX25fZjE2IChfX2IpLCAwKTsNCiAg
ICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNl90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHhoX2xhbmVfZjE2IChmbG9hdDE2X3QgX19hLCBm
bG9hdDE2eDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICByZXR1cm4g
dm11bHhoX2YxNiAoX19hLCBfX2FhcmNoNjRfdmdldF9sYW5lX2FueSAoX19iLCBfX2xhbmUpKTsN
CiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQx
Nng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp
bmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVseF9sYW5lX2YxNiAoZmxvYXQxNng0X3Qg
X19hLCBmbG9hdDE2eDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gdm11bHhfZjE2IChfX2EsIF9fYWFyY2g2NF92ZHVwX2xhbmVfZjE2IChfX2IsIF9fbGFu
ZSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBm
bG9hdDE2eDhfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251
X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWx4cV9sYW5lX2YxNiAoZmxvYXQx
Nng4X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUpDQogICAgK3sNCiAg
ICArICByZXR1cm4gdm11bHhxX2YxNiAoX19hLCBfX2FhcmNoNjRfdmR1cHFfbGFuZV9mMTYgKF9f
YiwgX19sYW5lKSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9f
aW5saW5lIGZsb2F0MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWx4aF9sYW5lcV9mMTYg
KGZsb2F0MTZfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYiwgY29uc3QgaW50IF9fbGFuZSkNCiAgICAr
ew0KICAgICsgIHJldHVybiB2bXVseGhfZjE2IChfX2EsIF9fYWFyY2g2NF92Z2V0X2xhbmVfYW55
IChfX2IsIF9fbGFuZSkpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVy
biBfX2lubGluZSBmbG9hdDE2eDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s
aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtdWx4X2xhbmVx
X2YxNiAoZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IsIGNvbnN0IGludCBfX2xhbmUp
DQogICAgK3sNCiAgICArICByZXR1cm4gdm11bHhfZjE2IChfX2EsIF9fYWFyY2g2NF92ZHVwX2xh
bmVxX2YxNiAoX19iLCBfX2xhbmUpKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNng4X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bXVs
eHFfbGFuZXFfZjE2IChmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYiwgY29uc3QgaW50
IF9fbGFuZSkNCiAgICArew0KICAgICsgIHJldHVybiB2bXVseHFfZjE2IChfX2EsIF9fYWFyY2g2
NF92ZHVwcV9sYW5lcV9mMTYgKF9fYiwgX19sYW5lKSk7DQogICAgK30NCiAgICArDQogICAgK19f
ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4NF90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdm11bHhfbl9mMTYgKGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNl90IF9fYikNCiAgICAr
ew0KICAgICsgIHJldHVybiB2bXVseF9mMTYgKF9fYSwgdmR1cF9uX2YxNiAoX19iKSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZ4OF90
DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s
IF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm11bHhxX25fZjE2IChmbG9hdDE2eDhfdCBfX2EsIGZs
b2F0MTZfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gdm11bHhxX2YxNiAoX19hLCB2ZHVw
cV9uX2YxNiAoX19iKSk7DQogICAgK30NCiAgICArDQogICAgKy8qIEFSTXY4LjItQSBGUDE2IHJl
ZHVjdGlvbiB2ZWN0b3IgaW50cmluc2ljcy4gICovDQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9f
IGV4dGVybiBfX2lubGluZSBmbG9hdDE2X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz
X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2bWF4dl9m
MTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9yZWR1Y19zbWF4X25hbl9zY2FsX3Y0aGYgKF9fYSk7DQogICAgK30NCiAgICArDQogICAg
K19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3ZtYXh2cV9mMTYgKGZsb2F0MTZ4OF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVy
biBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19zbWF4X25hbl9zY2FsX3Y4aGYgKF9fYSk7DQogICAg
K30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZfdA0K
ICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf
X2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW52X2YxNiAoZmxvYXQxNng0X3QgX19hKQ0KICAgICt7
DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3NtaW5fbmFuX3NjYWxfdjRo
ZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp
bmUgZmxvYXQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n
bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1pbnZxX2YxNiAoZmxvYXQxNng4
X3QgX19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3Nt
aW5fbmFuX3NjYWxfdjhoZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25f
XyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNl90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5
c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdm1heG5t
dl9mMTYgKGZsb2F0MTZ4NF90IF9fYSkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5f
YWFyY2g2NF9yZWR1Y19zbWF4X3NjYWxfdjRoZiAoX19hKTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQxNl90DQogICAgK19fYXR0cmlidXRl
X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkN
CiAgICArdm1heG5tdnFfZjE2IChmbG9hdDE2eDhfdCBfX2EpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfc21heF9zY2FsX3Y4aGYgKF9fYSk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MTZfdA0KICAg
ICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy
dGlmaWNpYWxfXykpDQogICAgK3ZtaW5ubXZfZjE2IChmbG9hdDE2eDRfdCBfX2EpDQogICAgK3sN
CiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfc21pbl9zY2FsX3Y0aGYgKF9f
YSk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs
b2F0MTZfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu
bGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3ZtaW5ubXZxX2YxNiAoZmxvYXQxNng4X3Qg
X19hKQ0KICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3NtaW5f
c2NhbF92OGhmIChfX2EpOw0KICAgICt9DQogICAgKw0KICAgICsjcHJhZ21hIEdDQyBwb3Bfb3B0
aW9ucw0KICAgICsNCiAgICArLyogQWR2U0lNRCBEb3QgUHJvZHVjdCBpbnRyaW5zaWNzLiAgKi8N
CiAgICArDQogICAgKyNwcmFnbWEgR0NDIHB1c2hfb3B0aW9ucw0KICAgICsjcHJhZ21hIEdDQyB0
YXJnZXQgKCJhcmNoPWFybXY4LjItYStkb3Rwcm9kIikNCiAgICArDQogICAgK19fZXh0ZW5zaW9u
X18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3
YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZG90
X3UzMiAodWludDMyeDJfdCBfX3IsIHVpbnQ4eDhfdCBfX2EsIHVpbnQ4eDhfdCBfX2IpDQogICAg
K3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdWRvdHY4cWlfdXV1dSAoX19yLCBf
X2EsIF9fYik7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s
aW5lIHVpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBf
X2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZG90cV91MzIgKHVpbnQzMng0
X3QgX19yLCB1aW50OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2IpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdWRvdHYxNnFpX3V1dXUgKF9fciwgX19hLCBfX2IpOw0K
ICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMngy
X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf
XywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZG90X3MzMiAoaW50MzJ4Ml90IF9fciwgaW50OHg4
X3QgX19hLCBpbnQ4eDhfdCBfX2IpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2Fh
cmNoNjRfc2RvdHY4cWkgKF9fciwgX19hLCBfX2IpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4
dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAo
KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAg
ICt2ZG90cV9zMzIgKGludDMyeDRfdCBfX3IsIGludDh4MTZfdCBfX2EsIGludDh4MTZfdCBfX2Ip
DQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc2RvdHYxNnFpIChfX3Is
IF9fYSwgX19iKTsNCiAgICArfQ0KICAgICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19p
bmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s
IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zkb3RfbGFuZV91MzIgKHVp
bnQzMngyX3QgX19yLCB1aW50OHg4X3QgX19hLCB1aW50OHg4X3QgX19iLCBjb25zdCBpbnQgX19p
bmRleCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF91ZG90X2xhbmV2
OHFpX3V1dXVzIChfX3IsIF9fYSwgX19iLCBfX2luZGV4KTsNCiAgICArfQ0KICAgICsNCiAgICAr
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0
ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp
DQogICAgK3Zkb3RfbGFuZXFfdTMyICh1aW50MzJ4Ml90IF9fciwgdWludDh4OF90IF9fYSwgdWlu
dDh4MTZfdCBfX2IsDQogICAgKwkJY29uc3QgaW50IF9faW5kZXgpDQogICAgK3sNCiAgICArICBy
ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdWRvdF9sYW5lcXY4cWlfdXV1dXMgKF9fciwgX19hLCBf
X2IsIF9faW5kZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBf
X2lubGluZSB1aW50MzJ4NF90DQogICAgK19fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVf
XywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkNCiAgICArdmRvdHFfbGFuZV91MzIg
KHVpbnQzMng0X3QgX19yLCB1aW50OHgxNl90IF9fYSwgdWludDh4OF90IF9fYiwNCiAgICArCQlj
b25zdCBpbnQgX19pbmRleCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2
NF91ZG90X2xhbmV2MTZxaV91dXV1cyAoX19yLCBfX2EsIF9fYiwgX19pbmRleCk7DQogICAgK30N
CiAgICArDQogICAgK19fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMng0X3QNCiAg
ICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h
cnRpZmljaWFsX18pKQ0KICAgICt2ZG90cV9sYW5lcV91MzIgKHVpbnQzMng0X3QgX19yLCB1aW50
OHgxNl90IF9fYSwgdWludDh4MTZfdCBfX2IsDQogICAgKwkJIGNvbnN0IGludCBfX2luZGV4KQ0K
ICAgICt7DQogICAgKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Vkb3RfbGFuZXF2MTZxaV91
dXV1cyAoX19yLCBfX2EsIF9fYiwgX19pbmRleCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0
ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDJfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgo
X19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAg
K3Zkb3RfbGFuZV9zMzIgKGludDMyeDJfdCBfX3IsIGludDh4OF90IF9fYSwgaW50OHg4X3QgX19i
LCBjb25zdCBpbnQgX19pbmRleCkNCiAgICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFy
Y2g2NF9zZG90X2xhbmV2OHFpIChfX3IsIF9fYSwgX19iLCBfX2luZGV4KTsNCiAgICArfQ0KICAg
ICsNCiAgICArX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90DQogICAgK19f
YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp
Y2lhbF9fKSkNCiAgICArdmRvdF9sYW5lcV9zMzIgKGludDMyeDJfdCBfX3IsIGludDh4OF90IF9f
YSwgaW50OHgxNl90IF9fYiwgY29uc3QgaW50IF9faW5kZXgpDQogICAgK3sNCiAgICArICByZXR1
cm4gX19idWlsdGluX2FhcmNoNjRfc2RvdF9sYW5lcXY4cWkgKF9fciwgX19hLCBfX2IsIF9faW5k
ZXgpOw0KICAgICt9DQogICAgKw0KICAgICtfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBp
bnQzMng0X3QNCiAgICArX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p
bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQ0KICAgICt2ZG90cV9sYW5lX3MzMiAoaW50MzJ4NF90
IF9fciwgaW50OHgxNl90IF9fYSwgaW50OHg4X3QgX19iLCBjb25zdCBpbnQgX19pbmRleCkNCiAg
ICArew0KICAgICsgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zZG90X2xhbmV2MTZxaSAoX19y
LCBfX2EsIF9fYiwgX19pbmRleCk7DQogICAgK30NCiAgICArDQogICAgK19fZXh0ZW5zaW9uX18g
ZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdA0KICAgICtfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf
aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpDQogICAgK3Zkb3RxX2xh
bmVxX3MzMiAoaW50MzJ4NF90IF9fciwgaW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYiwgY29u
c3QgaW50IF9faW5kZXgpDQogICAgK3sNCiAgICArICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf
c2RvdF9sYW5lcXYxNnFpIChfX3IsIF9fYSwgX19iLCBfX2luZGV4KTsNCiAgICArfQ0KICAgICsj
cHJhZ21hIEdDQyBwb3Bfb3B0aW9ucw0KICAgICsNCiAgICArI3VuZGVmIF9fYWFyY2g2NF92Z2V0
X2xhbmVfYW55DQogICAgKw0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBfbGFuZV9hbnkNCiAg
ICArI3VuZGVmIF9fYWFyY2g2NF92ZHVwX2xhbmVfZjE2DQogICAgKyN1bmRlZiBfX2FhcmNoNjRf
dmR1cF9sYW5lX2YzMg0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBfbGFuZV9mNjQNCiAgICAr
I3VuZGVmIF9fYWFyY2g2NF92ZHVwX2xhbmVfcDgNCiAgICArI3VuZGVmIF9fYWFyY2g2NF92ZHVw
X2xhbmVfcDE2DQogICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cF9sYW5lX3M4DQogICAgKyN1bmRl
ZiBfX2FhcmNoNjRfdmR1cF9sYW5lX3MxNg0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBfbGFu
ZV9zMzINCiAgICArI3VuZGVmIF9fYWFyY2g2NF92ZHVwX2xhbmVfczY0DQogICAgKyN1bmRlZiBf
X2FhcmNoNjRfdmR1cF9sYW5lX3U4DQogICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cF9sYW5lX3Ux
Ng0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBfbGFuZV91MzINCiAgICArI3VuZGVmIF9fYWFy
Y2g2NF92ZHVwX2xhbmVfdTY0DQogICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cF9sYW5lcV9mMTYN
CiAgICArI3VuZGVmIF9fYWFyY2g2NF92ZHVwX2xhbmVxX2YzMg0KICAgICsjdW5kZWYgX19hYXJj
aDY0X3ZkdXBfbGFuZXFfZjY0DQogICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cF9sYW5lcV9wOA0K
ICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBfbGFuZXFfcDE2DQogICAgKyN1bmRlZiBfX2FhcmNo
NjRfdmR1cF9sYW5lcV9zOA0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBfbGFuZXFfczE2DQog
ICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cF9sYW5lcV9zMzINCiAgICArI3VuZGVmIF9fYWFyY2g2
NF92ZHVwX2xhbmVxX3M2NA0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBfbGFuZXFfdTgNCiAg
ICArI3VuZGVmIF9fYWFyY2g2NF92ZHVwX2xhbmVxX3UxNg0KICAgICsjdW5kZWYgX19hYXJjaDY0
X3ZkdXBfbGFuZXFfdTMyDQogICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cF9sYW5lcV91NjQNCiAg
ICArI3VuZGVmIF9fYWFyY2g2NF92ZHVwcV9sYW5lX2YxNg0KICAgICsjdW5kZWYgX19hYXJjaDY0
X3ZkdXBxX2xhbmVfZjMyDQogICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cHFfbGFuZV9mNjQNCiAg
ICArI3VuZGVmIF9fYWFyY2g2NF92ZHVwcV9sYW5lX3A4DQogICAgKyN1bmRlZiBfX2FhcmNoNjRf
dmR1cHFfbGFuZV9wMTYNCiAgICArI3VuZGVmIF9fYWFyY2g2NF92ZHVwcV9sYW5lX3M4DQogICAg
KyN1bmRlZiBfX2FhcmNoNjRfdmR1cHFfbGFuZV9zMTYNCiAgICArI3VuZGVmIF9fYWFyY2g2NF92
ZHVwcV9sYW5lX3MzMg0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBxX2xhbmVfczY0DQogICAg
KyN1bmRlZiBfX2FhcmNoNjRfdmR1cHFfbGFuZV91OA0KICAgICsjdW5kZWYgX19hYXJjaDY0X3Zk
dXBxX2xhbmVfdTE2DQogICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cHFfbGFuZV91MzINCiAgICAr
I3VuZGVmIF9fYWFyY2g2NF92ZHVwcV9sYW5lX3U2NA0KICAgICsjdW5kZWYgX19hYXJjaDY0X3Zk
dXBxX2xhbmVxX2YxNg0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBxX2xhbmVxX2YzMg0KICAg
ICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBxX2xhbmVxX2Y2NA0KICAgICsjdW5kZWYgX19hYXJjaDY0
X3ZkdXBxX2xhbmVxX3A4DQogICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cHFfbGFuZXFfcDE2DQog
ICAgKyN1bmRlZiBfX2FhcmNoNjRfdmR1cHFfbGFuZXFfczgNCiAgICArI3VuZGVmIF9fYWFyY2g2
NF92ZHVwcV9sYW5lcV9zMTYNCiAgICArI3VuZGVmIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV9zMzIN
CiAgICArI3VuZGVmIF9fYWFyY2g2NF92ZHVwcV9sYW5lcV9zNjQNCiAgICArI3VuZGVmIF9fYWFy
Y2g2NF92ZHVwcV9sYW5lcV91OA0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBxX2xhbmVxX3Ux
Ng0KICAgICsjdW5kZWYgX19hYXJjaDY0X3ZkdXBxX2xhbmVxX3UzMg0KICAgICsjdW5kZWYgX19h
YXJjaDY0X3ZkdXBxX2xhbmVxX3U2NA0KICAgICsNCiAgICArI2VuZGlmDQogICAgLS0gDQogICAg
Mi4yMC4xDQogICAgDQogICAgDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0
aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 13:48:20 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 13:48:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j58fA-0003Ny-II; Fri, 21 Feb 2020 13:48:16 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=R2s4=4J=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j58f9-0003Nt-MT
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 13:48:15 +0000
X-Inumbo-ID: ce43b5b0-54b0-11ea-8664-12813bfff9fa
Received: from queen.nlehd.de (unknown [195.37.154.80])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTP
 id ce43b5b0-54b0-11ea-8664-12813bfff9fa;
 Fri, 21 Feb 2020 13:48:14 +0000 (UTC)
Received: from c408.ant-net (c408.ant-net [192.168.0.168])
 by queen.nlehd.de (Postfix) with ESMTP id 946F4401C4;
 Fri, 21 Feb 2020 14:48:13 +0100 (CET)
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
To: minios-devel@lists.xen.org
Date: Fri, 21 Feb 2020 14:48:11 +0100
Message-Id: <20200221134811.26325-1-simon.kuenzer@neclab.eu>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT/redis PATCH] Update dependency to
 lib/posix-sysinfo
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: felipe.huici@neclab.eu, Simon Kuenzer <simon.kuenzer@neclab.eu>,
 sharan.santhanam@neclab.eu
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

V2l0aGluIHRoZSBVbmlrcmFmdCByZXBvc2l0b3J5LCBVS1NZU0lORk8gZ290IHJlbmFtZWQgdG8g
TElCUE9TSVhfU1lTSU5GTy4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1
ZW56ZXJAbmVjbGFiLmV1PgotLS0KIENvbmZpZy51ayB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx
IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL0NvbmZpZy51ayBiL0Nv
bmZpZy51awppbmRleCBmMzFlMTRhLi45MjliNzM0IDEwMDY0NAotLS0gYS9Db25maWcudWsKKysr
IGIvQ29uZmlnLnVrCkBAIC0xNCw3ICsxNCw3IEBAIGNvbmZpZyBMSUJSRURJU19DT01NT04KIAlz
ZWxlY3QgTElCTkVXTElCQ19XQU5UX0lPX0M5OV9GT1JNQVRTIGlmIExJQk5FV0xJQkMKIAlzZWxl
Y3QgTElCTkVXTElCQ19MSU5VWF9FUlJOT19FWFRFTlNJT05TIGlmIExJQk5FV0xJQkMKIAlzZWxl
Y3QgTElCUFRIUkVBRF9FTUJFRERFRAotCXNlbGVjdCBVS1NZU0lORk8KKwlzZWxlY3QgTElCUE9T
SVhfU1lTSU5GTwogCXNlbGVjdCBMSUJQT1NJWF9MSUJETAogCXNlbGVjdCBMSUJMV0lQCiAJc2Vs
ZWN0IExXSVBfSVBWNgotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFu
L2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 13:55:09 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 13:55:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j58lp-0004RA-60; Fri, 21 Feb 2020 13:55:09 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=DcUR=4J=neclab.eu=sharan.santhanam@srs-us1.protection.inumbo.net>)
 id 1j58ln-0004R1-UX
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 13:55:07 +0000
X-Inumbo-ID: c3ab7358-54b1-11ea-8667-12813bfff9fa
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id c3ab7358-54b1-11ea-8667-12813bfff9fa;
 Fri, 21 Feb 2020 13:55:06 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 75BCA103AEE;
 Fri, 21 Feb 2020 14:55:05 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ecOz0My3B6id; Fri, 21 Feb 2020 14:55:05 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 53B5B102442
 for <minios-devel@lists.xen.org>; Fri, 21 Feb 2020 14:55:05 +0100 (CET)
Received: from [10.1.2.10] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 21 Feb
 2020 14:55:05 +0100
To: Simon Kuenzer <simon.kuenzer@neclab.eu>, <minios-devel@lists.xen.org>
References: <20200221134811.26325-1-simon.kuenzer@neclab.eu>
From: Sharan Santhanam <sharan.santhanam@neclab.eu>
Message-ID: <3d300985-287e-a497-1220-30203488ca02@neclab.eu>
Date: Fri, 21 Feb 2020 14:55:04 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <20200221134811.26325-1-simon.kuenzer@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/redis PATCH] Update dependency to
 lib/posix-sysinfo
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: felipe.huici@neclab.eu
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmV2aWV3ZWQtYnk6IFNoYXJhbiBTYW50aGFuYW0gPHNoYXJhbi5zYW50aGFuYW1AbmVjbGFiLmV1
PgoKT24gMi8yMS8yMCAyOjQ4IFBNLCBTaW1vbiBLdWVuemVyIHdyb3RlOgo+IFdpdGhpbiB0aGUg
VW5pa3JhZnQgcmVwb3NpdG9yeSwgVUtTWVNJTkZPIGdvdCByZW5hbWVkIHRvIExJQlBPU0lYX1NZ
U0lORk8uCj4KPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVyQG5l
Y2xhYi5ldT4KPiAtLS0KPiAgIENvbmZpZy51ayB8IDIgKy0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAx
IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL0NvbmZpZy51ayBi
L0NvbmZpZy51awo+IGluZGV4IGYzMWUxNGEuLjkyOWI3MzQgMTAwNjQ0Cj4gLS0tIGEvQ29uZmln
LnVrCj4gKysrIGIvQ29uZmlnLnVrCj4gQEAgLTE0LDcgKzE0LDcgQEAgY29uZmlnIExJQlJFRElT
X0NPTU1PTgo+ICAgCXNlbGVjdCBMSUJORVdMSUJDX1dBTlRfSU9fQzk5X0ZPUk1BVFMgaWYgTElC
TkVXTElCQwo+ICAgCXNlbGVjdCBMSUJORVdMSUJDX0xJTlVYX0VSUk5PX0VYVEVOU0lPTlMgaWYg
TElCTkVXTElCQwo+ICAgCXNlbGVjdCBMSUJQVEhSRUFEX0VNQkVEREVECj4gLQlzZWxlY3QgVUtT
WVNJTkZPCj4gKwlzZWxlY3QgTElCUE9TSVhfU1lTSU5GTwo+ICAgCXNlbGVjdCBMSUJQT1NJWF9M
SUJETAo+ICAgCXNlbGVjdCBMSUJMV0lQCj4gICAJc2VsZWN0IExXSVBfSVBWNgoKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxp
bmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 16:25:54 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 16:25:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5B7g-00083L-Sq; Fri, 21 Feb 2020 16:25:52 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=DcUR=4J=neclab.eu=sharan.santhanam@srs-us1.protection.inumbo.net>)
 id 1j5B7g-000831-99
 for minios-devel@lists.xenproject.org; Fri, 21 Feb 2020 16:25:52 +0000
X-Inumbo-ID: 983276a8-54c6-11ea-ade5-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 983276a8-54c6-11ea-ade5-bc764e2007e4;
 Fri, 21 Feb 2020 16:24:12 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id DB202F2017;
 Fri, 21 Feb 2020 17:24:11 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id FAVER77InWiR; Fri, 21 Feb 2020 17:24:11 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id A8E3AF2016
 for <minios-devel@lists.xenproject.org>; Fri, 21 Feb 2020 17:24:09 +0100 (CET)
Received: from [10.1.2.10] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 21 Feb
 2020 17:24:09 +0100
To: <minios-devel@lists.xenproject.org>
References: <20191128074011.11091-1-jianyong.wu@arm.com>
 <20191128074011.11091-2-jianyong.wu@arm.com>
From: Sharan Santhanam <sharan.santhanam@neclab.eu>
Message-ID: <c544c2c6-63aa-bd7f-4908-082e95ea6e5e@neclab.eu>
Date: Fri, 21 Feb 2020 17:24:09 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <20191128074011.11091-2-jianyong.wu@arm.com>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [RFC PATCH v2 1/2] enable rtc pl031 for arm
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGVsbG8gSmlheW9uZyBXdSwKClRoZXJlIGlzIGEgY2hlY2twYXRjaCBlcnJvci4KClBsZWFzZSBm
aW5kIHRoZSBjb21tZW50cyBpbmxpbmU6CgpUaGFua3MgJiBSZWdhcmRzClNoYXJhbgoKT24gMTEv
MjgvMTkgODo0MCBBTSwgSmlhbnlvbmcgV3Ugd3JvdGU6Cj4gQ3VycmVudGx5LCBhcyBydGMgaXMg
bm90IGVuYWJsZWQgaW4gYXJtLCB3YWxsIHRpbWUgY2FuJ3QgYmUKPiBvZmZlcmVkIGN1cnJlY3Rs
eS4KPiBwbDAzMSBpcyBjaG9zZW4gYXMgdGhlIHJ0YyBkZXZpY2UgZm9yIGFybS4KPiBOZWFybHkg
YWxsIG9mIHRoZSBmdW5jdGlvbiB0aGUgZGV2aWNlIG9mZmVycyBoYXMgYmVlbiBpbXBsZW1lbnRl
ZC4KPiAtLS0KPiAgIHBsYXQvQ29uZmlnLnVrICAgICAgICAgICAgfCAgIDcgKysKPiAgIHBsYXQv
Y29tbW9uL2FybS9ydGMuYyAgICAgfCAxNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysKPiAgIHBsYXQvY29tbW9uL2luY2x1ZGUvcnRjLmggfCAgNDggKysrKysrKysrKysr
Kwo+ICAgcGxhdC9rdm0vTWFrZWZpbGUudWsgICAgICB8ICAgMSArCj4gICBwbGF0L2t2bS9hcm0v
c2V0dXAuYyAgICAgIHwgICA2ICsrCj4gICA1IGZpbGVzIGNoYW5nZWQsIDIwNiBpbnNlcnRpb25z
KCspCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgcGxhdC9jb21tb24vYXJtL3J0Yy5jCj4gICBjcmVh
dGUgbW9kZSAxMDA2NDQgcGxhdC9jb21tb24vaW5jbHVkZS9ydGMuaApJdCB3b3VsZCBiZSBiZXR0
ZXIgdG8gY3JlYXRlIGl0IGFzIGEgZHJpdmVyIHBsYXQvZHJpdmVyL3J0YyBpbnN0ZWFkIG9mIApw
bGF0L2NvbW1vbi4gV2Ugc2hvdWxkIGFsc28gYWRkIGl0IGFzIHNlcGFyYXRlIGxpYnJhcnkgYXMg
d2UgZGlkIGZvciBnaWMgCmFuZCBvZncuCgoKPgo+IGRpZmYgLS1naXQgYS9wbGF0L0NvbmZpZy51
ayBiL3BsYXQvQ29uZmlnLnVrCj4gaW5kZXggMGViNWExMC4uZWU3OGNlMSAxMDA2NDQKPiAtLS0g
YS9wbGF0L0NvbmZpZy51awo+ICsrKyBiL3BsYXQvQ29uZmlnLnVrCj4gQEAgLTIxLDMgKzIxLDEw
IEBAIGNvbmZpZyBIWgo+ICAgCWhlbHAKPiAgIAkJQ29uZmlndXJlIHRoZSB0aW1lciBpbnRlcnJ1
cHQgZnJlcXVlbmN5Lgo+ICAgCQlPbmx5IGNoYW5nZSB0aGlzIGlmIHlvdSBrbm93IHdoYXQgeW91
J3JlIGRvaW5nLgo+ICsKPiArY29uZmlnIFJUQ19QTDAzMQo+ICsJYm9vbCAiZW5hYmxlIHJ0YyBw
bDAzMSIKPiArCWRlZmF1bHQgbgo+ICsJZGVwZW5kcyBvbiBBUkNIX0FSTV82NAo+ICsJaGVscAo+
ICsJCXBsMDMxIGlzIHJ0YyBkZXZpY2UgZm9yIGFybS4gRXF1aXB0IHJ0YyB3aWxsIGxldCB5b3Ug
Z2V0IHdhbGwgdGltZS4KVGhpcyBjb25maWd1cmF0aW9uIHNob3VsZCBtb3ZlIGludG8gdGhlIHBs
YXQva3ZtLgo+IGRpZmYgLS1naXQgYS9wbGF0L2NvbW1vbi9hcm0vcnRjLmMgYi9wbGF0L2NvbW1v
bi9hcm0vcnRjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjY0Njk1
YzkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvcGxhdC9jb21tb24vYXJtL3J0Yy5jCj4gQEAgLTAs
MCArMSwxNDQgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZSAq
Lwo+ICsvKgo+ICsgKiBBdXRob3JzOiBXZWkgQ2hlbiA8V2VpLkNoZW5AYXJtLmNvbT4KPiArICog
ICAgICAgICAgSmlhbnlvbmcgV3UgPEppYW55b25nLld1QGFybS5jb20+Cj4gKyAqCj4gKyAqIENv
cHlyaWdodCAoYykgMjAxOCwgQXJtIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KPiArICoKPiAr
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Cj4gKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwo+ICsgKiBhcmUgbWV0Ogo+ICsgKgo+ICsgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAo+ICsgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCj4gKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cj4gKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKPiArICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KPiArICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUg
Y29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwo+ICsgKiAgICBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQo+ICsgKiAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgo+ICsgKgo+ICsgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKPiArICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQo+ICsgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQo+ICsgKiBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFCj4g
KyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKPiArICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKPiArICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCj4g
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCj4gKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCj4gKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFCj4gKyAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgo+ICsgKgo+ICsgKiBUSElT
IEhFQURFUiBNQVkgTk9UIEJFIEVYVFJBQ1RFRCBPUiBNT0RJRklFRCBJTiBBTlkgV0FZLgpDYW4g
eW91IGNvbnNpZGVyIHJlbW92aW5nIHRoZSAiVEhJUyBIRUFERVIgTUFZIE5PVCBCRSBFWFRSQUNU
RUQgT1IgCk1PRElGSUVEIElOIEFOWSBXQVkuIiBmcm9tIHRoZSBsaWNlbnNlLiBTZWVtcyBpbmNv
bXBhdGlibGUgd2l0aCB0aGUgQlNEIApsaWNlbnNlLgo+ICsgKi8KPiArI2luY2x1ZGUgPHN0cmlu
Zy5oPgo+ICsjaW5jbHVkZSA8bGliZmR0Lmg+Cj4gKyNpbmNsdWRlIDx1ay9hc3NlcnQuaD4KPiAr
I2luY2x1ZGUgPHVrL2Vzc2VudGlhbHMuaD4KPiArI2luY2x1ZGUgPHVrL3ByaW50Lmg+Cj4gKyNp
bmNsdWRlIDxhcm0vY3B1Lmg+Cj4gKyNpbmNsdWRlIDxvZncvZmR0Lmg+Cj4gKyNpbmNsdWRlIDxz
dGRpby5oPgo+ICsKPiArc3RhdGljIHVpbnQ2NF90IHJ0Y19iYXNlX2FkZHI7Cj4gK3VpbnQzMl90
IHJ0Y19ib290X3NlY29uZHM7Cj4gKwo+ICsvKiBEZWZpbmUgb2Zmc2V0IG9mIFJUQyByZWdpc3Rl
cnMgKi8KPiArI2RlZmluZSBSVENfUkVHX0RSCTAKPiArI2RlZmluZSBSVENfUkVHX01SCTB4NAo+
ICsjZGVmaW5lIFJUQ19SRUdfTFIJMHg4Cj4gKyNkZWZpbmUgUlRDX1JFR19DUgkweGMKPiArI2Rl
ZmluZSBSVENfUkVHX0lNU0MJMHgxMAo+ICsjZGVmaW5lIFJUQ19SRUdfUklTCTB4MTQKPiArI2Rl
ZmluZSBSVENfUkVHX01JUwkweDE4Cj4gKyNkZWZpbmUgUlRDX1JFR19JQ1IJMHgxYwogwqAgRm9y
IHRoZXNlIHJlZ2lzdGVyIG1hcCB0aGUgZG9jdW1lbnRbMV0gZGVzY3JpYmUgdGhlc2UgcmVnaXN0
ZXIgYXMgClJUQ0RSLiBJdAogwqAgaXMgYmV0dGVyIHRvIHVzZXIgc2ltaWxhciBuYW1pbmcgc2No
ZW1lLiBNYXliZSB3ZSBhbHNvIHB1dCBpdCBpbnRvIGEgCnNlcGFyYXRlCiDCoCBoZWFkZXIgZm9y
IHRoZSByZWdpc3RlciBtYXAuCj4gKwo+ICsjZGVmaW5lIFJUQ19SRUcocikJKHZvaWQgKikocnRj
X2Jhc2VfYWRkciArIChyKSkKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICpydGNfZGV2aWNlX2xp
c3RbXSA9IHsKPiArCSJhcm0scGwwMzEiLAo+ICt9Owo+ICsKPiArc3RhdGljIHVpbnQzMl90IHJ0
Y19yZWFkKHZvaWQpCgoxLiDCoCB3aHkgbm90IGRlZmluZSB0aGUgcmVhZCByZWdpc3RlciBiYXNl
ZCBvbiBgc3RydWN0IHJ0Y190aW1lYCBiYXNlZCAKWzJdIG9yIGV2ZW4gdXNlIHRoZSBzdHJ1Y3Qg
dGltZXNwZWMgZnJvbSB0aW1lLmggWzNdLiBJIHByZWZlciB1c2luZyB0aGUgCnNlY29uZCBvcHRp
b24uCgoyLsKgIEl0IG1pZ2h0IGJlIHdpc2UgdG8gcnRjIGRldmljZSByZWZlcmVuY2UsIHRvIHRo
ZSBwdWJsaWMgcmVmZXJlbmNlIApsaWtlIHJlYWQsIHdyaXRlIGFuZCBhbGFybS4gRnJvbSB0aGUg
dXNlciBhcHBsaWNhdGlvbiBwZXJzcGVjdGl2ZSB3ZSAKbWlnaHQgc2VsZWN0IHRoZSB0eXBlIG9m
IHRoZSBydGMgaW50ZXJmYWNlIGFuZCB0aGUgdW5kZXJseWluZyBkcml2ZXIgCndvdWxkIGJlIGNh
bGxlZC4KCj4gK3sKPiArCXJldHVybiBpb3JlZ19yZWFkMzIoUlRDX1JFRyhSVENfUkVHX0RSKSk7
Cj4gK30KPiArCj4gKy8qCj4gKyAqIHNldCBydGMgbWF0Y2ggcmVnaXN0ZXIgY29tcGFyaW5nIHdp
dGggY291bnRlcgo+ICsgKiB2YWx1ZSB0byBnZW5lcmF0IGEgaW50ZXJydXB0Cj4gKyAqLwo+ICt2
b2lkIHJ0Y19zZXRfbWF0Y2godWludDMyX3QgYWxhbSkKcy9hbGFtL2FsYXJtCj4gK3sKPiArCWlv
cmVnX3dyaXRlMzIoUlRDX1JFRyhSVENfUkVHX01SKSwgYWxhbSk7Cj4gK30KPiArCj4gK3ZvaWQg
cnRjX3VwZGF0ZSh1aW50MzJfdCB2YWwpCj4gK3sKPiArCWlvcmVnX3dyaXRlMzIoUlRDX1JFRyhS
VENfUkVHX0xSKSwgdmFsKTsKPiArfQo+ICsKPiArdm9pZCBydGNfZW5hYmxlKHZvaWQpCj4gK3sK
PiArCWlvcmVnX3dyaXRlMzIoUlRDX1JFRyhSVENfUkVHX0NSKSwgMSk7Ckluc3RlYWQgb2YgMSB1
c2UgYSBtYWNybyBgUlRDX1NUQVJUYAo+ICt9Cj4gKwo+ICsvKiByZXR1cm4gcnRjIHN0YXR1cywg
MSBkZW5vdGVzIGVuYWJsZSBhbmQgMCBkZW5vdGVzIGRpc2FibGUgKi8KPiArdWludDMyX3QgcnRj
X2dldF9zdGF0dXModm9pZCkKPiArewo+ICsJdWludDMyX3QgdmFsOwo+ICsKPiArCXZhbCA9IGlv
cmVnX3JlYWQzMihSVENfUkVHKFJUQ19SRUdfQ1IpKTsKPiArCXZhbCAmPSAweDE7Ckluc3RlYWQg
b2YgMHgxLCBpdCBpcyBiZXR0ZXIgdG8gdXNlIG1hY3JvIGxpa2UgUlRDX0VOQUJMRV9NQVNLCj4g
KwlyZXR1cm4gdmFsOwo+ICt9Cj4gKwo+ICsvKiBtYXNrIGFsYW0gKi8Kcy9hbGFtL2FsYXJtCj4g
K3ZvaWQgcnRjX21hc2tfaW50cih2b2lkKQogwqAgSWYgSSBlbmFibGUgdGhlIGludGVycnVwdCB3
aGljaCBoYW5kbGVyIGhhbmRsZXMgdGhpcyBpbnRlcnJ1cHQ/IApTaG91bGRuJ3QgaGFuZGxlciBh
bHNvIGJlIHBhcnQgb2YgdGhpc8KgIGltcGxlbWVudGF0aW9uLiBJZiB0aGUgaW50ZXJydXB0IApp
cyBuZWVkIHRvIHNldHVwIHRoZSBhbGFybSB3ZSBtaWdodCBhbHNvIG1ha2UgaXQgbW9kdWxlIGxv
Y2FsIGZ1bmN0aW9uIAppbnN0ZWFkIG9mIGV4cG9zaW5nIGl0Lgo+ICt7Cj4gKwlpb3JlZ193cml0
ZTMyKFJUQ19SRUcoUlRDX1JFR19JTVNDKSwgMSk7CkRvIHdlIGV4cGVjdCB0aGUgdXNlciB0byBt
YWtlIHR3byBjYWxsIHRvIG1hdGNoIHRoZSB0aW1lIGFuZCBlbmFibGUKdGhlIGludGVycnVwdCBz
ZXBhcmF0ZWx5IG9yIGNhbiB3ZSBjb21iaW5lIGl0IGludG8gYSBzaW5nbGUgQVBJIG9mCnNldHRp
bmcgdGhlIGFsYXJtPwo+ICt9Cj4gKwo+ICsvKiBjbGVhciBhbGFtIG1hc2sgKi8KIMKgcy9hbGFt
L2FsYXJtCj4gK3ZvaWQgcnRjX3VubWFza19pbnRyKHZvaWQpCj4gK3sKPiArCWlvcmVnX3dyaXRl
MzIoUlRDX1JFRyhSVENfUkVHX0lNU0MpLCAwKTsKPiArfQo+ICsKPiArLyogcmV0dXJuIHRoZSBy
YXcgc3RhdGUgb2YgcnRjIGludGVycnVwdCBiZWZvcmUgbWFza2luZyovCj4gK3VpbnQzMl90IHJ0
Y19nZXRfaW50cl9yYXdfc3RhdGUodm9pZCkKPiArewo+ICsJcmV0dXJuIGlvcmVnX3JlYWQzMihS
VENfUkVHKFJUQ19SRUdfUklTKSk7Cj4gK30KPiArCj4gKy8qIHJldHVybiBpbnRlcnJ1cHQgc3Rh
dGUgYWZ0ZXIgaW50ZXJydXB0IG1hc2tpbmcgKi8KPiArdWludDMyX3QgcnRjX2dldF9pbnRyX3N0
YXRlKHZvaWQpCj4gK3sKPiArCXJldHVybiBpb3JlZ19yZWFkMzIoUlRDX1JFRyhSVENfUkVHX01J
UykpOwo+ICt9Cj4gKwo+ICt2b2lkIHJ0Y19jbGVhcl9pbnRyKHZvaWQpCj4gK3sKPiArCWlvcmVn
X3dyaXRlMzIoUlRDX1JFRyhSVENfUkVHX0lDUiksIDEpOwo+ICt9Cj4gKwo+ICt2b2lkIF9kdGJf
aW5pdF9ydGModm9pZCAqZHRiKQo+ICt7Cj4gKwl1aW50NjRfdCBzaXplOwo+ICsJaW50IGZkdF9y
dGMsIHJldDsKPiArCj4gKwl1a19wcl9pbmZvKCJQcm9iaW5nIFJUQy4uLlxuIik7Cj4gKwlmZHRf
cnRjID0gZmR0X25vZGVfb2Zmc2V0X2J5X2NvbXBhdGlibGVfbGlzdChkdGIsIC0xLCBydGNfZGV2
aWNlX2xpc3QpOwo+ICsJaWYgKGZkdF9ydGMgPCAwKQo+ICsJCVVLX0NSQVNIKCJDb3VsZCBub3Qg
ZmluZCBydGMgZGV2aWNlIVxuIik7CkRvIHdlIGhhdmUgdG8gY3Jhc2ggaGVyZT8KPiArCj4gKwly
ZXQgPSBmZHRfZ2V0X2FkZHJlc3MoZHRiLCBmZHRfcnRjLCAwLCAmcnRjX2Jhc2VfYWRkciwgJnNp
emUpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJVUtfQ1JBU0goIkNvdWxkIG5vdCBnZXQgcnRjIGFk
ZHJlc3NcbiIpOwpEbyB3ZSBoYXZlIHRvIGNyYXNoIGhlcmU/CgoKPiArCj4gKwkvKiBSZWNvcmQg
dGhlIGJvb3Qgc2Vjb25kcyAqLwo+ICsJcnRjX2Jvb3Rfc2Vjb25kcyA9IHJ0Y19yZWFkKCk7CiDC
oFNob3VsZCB3ZSBub3QgZW5hYmxlIHRoZSBkZXZpY2UgYmVmb3JlIHJlYWRpbmcgZnJvbSB0aGUg
ZGV2Cj4gKwo+ICsJdWtfcHJfaW5mbygiRm91bmQgUlRDIG9uOiAlbHVcbiIsIHJ0Y19iYXNlX2Fk
ZHIpOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL3BsYXQvY29tbW9uL2luY2x1ZGUvcnRjLmggYi9wbGF0
L2NvbW1vbi9pbmNsdWRlL3J0Yy5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAw
MDAwLi4yMGExYjIyCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3BsYXQvY29tbW9uL2luY2x1ZGUv
cnRjLmgKPiBAQCAtMCwwICsxLDQ4IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC
U0QtMy1DbGF1c2UgKi8KPiArLyoKPiArICogQXV0aG9yczogV2VpIENoZW4gPFdlaS5DaGVuQGFy
bS5jb20+Cj4gKyAqICAgICAgICAgIEppYW55b25nIFd1IDxKaWFueW9uZy5XdUBhcm0uY29tPgo+
ICsgKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTksIEFybSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCj4gKyAqCj4gKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAo+ICsgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKPiArICogYXJlIG1ldDoK
PiArICoKPiArICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKPiArICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgo+ICsgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAo+ICsg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCj4gKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCj4gKyAqIDMuIE5laXRoZXIgdGhl
IG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKPiArICog
ICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KPiArICogICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KPiArICoKPiArICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCj4g
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKPiArICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKPiArICogQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRS
SUJVVE9SUyBCRQo+ICsgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCj4gKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCj4gKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwo+ICsgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgo+ICsgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQo+ICsg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRQo+ICsgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KPiAr
ICoKPiArICogVEhJUyBIRUFERVIgTUFZIE5PVCBCRSBFWFRSQUNURUQgT1IgTU9ESUZJRUQgSU4g
QU5ZIFdBWS4KPiArICovCj4gKwo+ICsjaWZuZGVmIF9fUExBVF9DTU5fQVJNX1JUQ19IX18KPiAr
I2RlZmluZSBfX1BMQVRfQ01OX0FSTV9SVENfSF9fCj4gKwo+ICsjaWZkZWYgQ09ORklHX1JUQ19Q
TDAzMQo+ICsKPiArI2luY2x1ZGUgPHN0ZGludC5oPgo+ICsKPiArZXh0ZXJuIHVpbnQzMl90IHJ0
Y19ib290X3NlY29uZHM7Cj4gKwo+ICtpbnQgX2R0Yl9pbml0X3J0Yyh2b2lkICpkdGIpOwo+ICsK
PiArI2VuZGlmCj4gKyNlbmRpZiAvL19fUExBVF9DTU5fQVJNX0dJQ1YyX0hfXwo+IGRpZmYgLS1n
aXQgYS9wbGF0L2t2bS9NYWtlZmlsZS51ayBiL3BsYXQva3ZtL01ha2VmaWxlLnVrCj4gaW5kZXgg
YzkwMGQ0NS4uOGM3ZWMzNyAxMDA2NDQKPiAtLS0gYS9wbGF0L2t2bS9NYWtlZmlsZS51awo+ICsr
KyBiL3BsYXQva3ZtL01ha2VmaWxlLnVrCj4gQEAgLTc0LDYgKzc0LDcgQEAgZW5kaWYKPiAgIGlm
ZXEgKCQoZmluZHN0cmluZyB5LCQoQ09ORklHX0tWTV9LRVJORUxfU0VSSUFMX0NPTlNPTEUpICQo
Q09ORklHX0tWTV9ERUJVR19TRVJJQUxfQ09OU09MRSkpLHkpCj4gICBMSUJLVk1QTEFUX1NSQ1Mt
JChDT05GSUdfQVJDSF9BUk1fNjQpICs9ICQoVUtfUExBVF9DT01NT05fQkFTRSkvYXJtL3BsMDEx
LmN8Y29tbW9uCj4gICBlbmRpZgo+ICtMSUJLVk1QTEFUX1NSQ1MtJChDT05GSUdfUlRDX1BMMDMx
KSArPSAkKFVLX1BMQVRfQ09NTU9OX0JBU0UpL2FybS9ydGMuY3xjb21tb24KPiAgIExJQktWTVBM
QVRfU1JDUy0kKENPTkZJR19BUkNIX0FSTV82NCkgKz0gJChVS19QTEFUX0NPTU1PTl9CQVNFKS9h
cm0vY3B1X25hdGl2ZS5jfGNvbW1vbgo+ICAgTElCS1ZNUExBVF9TUkNTLSQoQ09ORklHX0FSQ0hf
QVJNXzY0KSArPSAkKFVLX1BMQVRfQ09NTU9OX0JBU0UpL2FybS9jYWNoZTY0LlN8Y29tbW9uCj4g
ICBMSUJLVk1QTEFUX1NSQ1MtJChDT05GSUdfQVJDSF9BUk1fNjQpICs9ICQoVUtfUExBVF9DT01N
T05fQkFTRSkvYXJtL3BzY2lfYXJtNjQuU3xjb21tb24KPiBkaWZmIC0tZ2l0IGEvcGxhdC9rdm0v
YXJtL3NldHVwLmMgYi9wbGF0L2t2bS9hcm0vc2V0dXAuYwo+IGluZGV4IDMwNDY2NDYuLjcyNWE3
NGUgMTAwNjQ0Cj4gLS0tIGEvcGxhdC9rdm0vYXJtL3NldHVwLmMKPiArKysgYi9wbGF0L2t2bS9h
cm0vc2V0dXAuYwo+IEBAIC0yMCw2ICsyMCw3IEBACj4gICAgKi8KPiAgICNpbmNsdWRlIDx1ay9j
b25maWcuaD4KPiAgICNpbmNsdWRlIDxsaWJmZHQuaD4KPiArI2luY2x1ZGUgPHJ0Yy5oPgo+ICAg
I2luY2x1ZGUgPHNlY3Rpb25zLmg+Cj4gICAjaW5jbHVkZSA8a3ZtL2NvbnNvbGUuaD4KPiAgICNp
bmNsdWRlIDxrdm0vY29uZmlnLmg+Cj4gQEAgLTIyMSw2ICsyMjIsMTEgQEAgdm9pZCBfbGlia3Zt
cGxhdF9zdGFydCh2b2lkICpkdGJfcG9pbnRlcikKPiAgIAkvKiBJbml0aWFsaXplIG1lbW9yeSBm
cm9tIERUQiAqLwo+ICAgCV9pbml0X2R0Yl9tZW0oKTsKPiAgIAo+ICsjaWZkZWYgQ09ORklHX1JU
Q19QTDAzMQo+ICsJLyogSW5pdGlhbGl6ZSBydGMgKi8KPiArCV9kdGJfaW5pdF9ydGMoZHRiX3Bv
aW50ZXIpOwo+ICsjZW5kaWYKPiArCj4gICAJLyogSW5pdGlhbGl6ZSBpbnRlcnJ1cHQgY29udHJv
bGxlciAqLwo+ICAgCWludGN0cmxfaW5pdCgpOwo+ICAgCgoKWzFdIApodHRwOi8vaW5mb2NlbnRl
ci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuZGRpMDIyNGMvcmVhbF90aW1lX2Nsb2Nr
X3BsMDMxX3IxcDNfdGVjaG5pY2FsX3JlZmVyZW5jZV9tYW51YWxfRERJMDIyNEMucGRmCgpbMl1o
dHRwczovL2xpbnV4LmRpZS5uZXQvbWFuLzQvcnRjCgpbM10gaHR0cHM6Ly9wdWJzLm9wZW5ncm91
cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Jhc2VkZWZzL3RpbWUuaC5odG1sCgpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFp
bGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 19:42:23 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 19:42:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5EBp-0004Wm-2B; Fri, 21 Feb 2020 19:42:21 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=8MKW=4J=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j5EBn-0004Wh-Ts
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 19:42:19 +0000
X-Inumbo-ID: 445d59fa-54e2-11ea-bc8e-bc764e2007e4
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 445d59fa-54e2-11ea-bc8e-bc764e2007e4;
 Fri, 21 Feb 2020 19:42:18 +0000 (UTC)
Received: from x4d0ca2a9.dyn.telefonica.de ([77.12.162.169]
 helo=nderjung.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j5EBj-000QcC-1f; Fri, 21 Feb 2020 19:42:17 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 21 Feb 2020 20:42:05 +0100
Message-Id: <20200221194205.84016-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT PATCH] doc: Update kraft documentation
 with new flags and tutorials.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBk
b2MvZ3VpZGVzL2tyYWZ0LnJzdCB8IDcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL2tyYWZ0LnJzdCBiL2RvYy9ndWlkZXMva3Jh
ZnQucnN0CmluZGV4IGI2YzI2OTYuLjYwODdlN2MgMTAwNjQ0Ci0tLSBhL2RvYy9ndWlkZXMva3Jh
ZnQucnN0CisrKyBiL2RvYy9ndWlkZXMva3JhZnQucnN0CkBAIC0xNzYsNiArMTc2LDcgQEAgUXVp
Y2sgVW5pa3JhZnQgcHJvamVjdCBjcmVhdGlvbgogICAgIC1QLCAtLXBhdXNlZCAgICAgICAgICAg
ICAgICAgICBSdW4gdGhlIGFwcGxpY2F0aW9uIGluIHBhdXNlZCBzdGF0ZS4KICAgICAtZywgLS1n
ZGIgSU5URUdFUiAgICAgICAgICAgICAgUnVuIGEgR0RCIHNlcnZlciBmb3IgdGhlIGd1ZXN0IG9u
IHNwZWNpZmllZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LgorICAg
IC1kLCAtLWRiZyAgICAgICAgICAgICAgICAgICAgICBVc2UgdW5zdHJpcGVkIHVuaWtlcm5lbC4K
ICAgICAtbiwgLS12aXJ0aW8tbmljIFRFWFQgICAgICAgICAgQXR0YWNoIGEgTkFULWVkIHZpcnRp
by1OSUMgdG8gdGhlIGd1ZXN0LgogICAgIC1iLCAtLWJyaWRnZSBURVhUICAgICAgICAgICAgICBB
dHRhY2ggYSBOQVQtZWQgdmlydGlvLU5JQyBhbiBleGlzdGluZwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmlkZ2UuCkBAIC0yMjgsNiArMjI5LDcgQEAgQ29uZmlndXJpbmcg
YSBVbmlrcmFmdCBhcHBsaWNhdGlvbgogICBPcHRpb25zOgogICAgIC1wLCAtLXBsYXQgW2xpbnV4
dXxrdm18eGVuXSAgICBUYXJnZXQgcGxhdGZvcm0uCiAgICAgLW0sIC0tYXJjaCBbeDg2XzY0fGFy
bXxhcm02NF0gIFRhcmdldCBhcmNoaXRlY3R1cmUuCisgICAgLUYsIC0tZm9yY2UgICAgICAgICAg
ICAgICAgICAgIEZvcmNlIHdyaXRpbmcgbmV3IGNvbmZpZ3VyYXRpb24uCiAgICAgLWssIC0tbWVu
dWNvbmZpZyAgICAgICAgICAgICAgIFVzZSBVbmlrcmFmdCdzIG5jdXJzZXMgS2NvbmZpZyBlZGl0
b3IuCiAgICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhpcyBtZXNzYWdl
IGFuZCBleGl0LgogCkBAIC0yNjMsNiArMjY1LDcgQEAgUnVubmluZyBhIFVuaWtyYWZ0IGFwcGxp
Y2F0aW9uCiAgICAgLVgsIC0tYmFja2dyb3VuZCAgICAgICAgICAgICAgIFJ1biBpbiBiYWNrZ3Jv
dW5kLgogICAgIC1QLCAtLXBhdXNlZCAgICAgICAgICAgICAgICAgICBSdW4gdGhlIGFwcGxpY2F0
aW9uIGluIHBhdXNlZCBzdGF0ZS4KICAgICAtZywgLS1nZGIgSU5URUdFUiAgICAgICAgICAgICAg
UnVuIGEgR0RCIHNlcnZlciBmb3IgdGhlIGd1ZXN0IGF0IFBPUlQuCisgICAgLWQsIC0tZGJnICAg
ICAgICAgICAgICAgICAgICAgIFVzZSB1bnN0cmlwZWQgdW5pa2VybmVsLgogICAgIC1uLCAtLXZp
cnRpby1uaWMgVEVYVCAgICAgICAgICBBdHRhY2ggYSBOQVQtZWQgdmlydGlvLU5JQyB0byB0aGUg
Z3Vlc3QuCiAgICAgLWIsIC0tYnJpZGdlIFRFWFQgICAgICAgICAgICAgIEF0dGFjaCBhIE5BVC1l
ZCB2aXJ0aW8tTklDIGFuIGV4aXN0aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyaWRnZS4KQEAgLTI3MiwxMyArMjc1LDYgQEAgUnVubmluZyBhIFVuaWtyYWZ0IGFwcGxp
Y2F0aW9uCiAgICAgLU0sIC0tbWVtb3J5IElOVEVHRVIgICAgICAgICAgIEFzc2lnbiBNQiBtZW1v
cnkgdG8gdGhlIGd1ZXN0LgogICAgIC1zLCAtLWNwdS1zb2NrZXRzIElOVEVHRVIgICAgICBOdW1i
ZXIgb2YgZ3Vlc3QgQ1BVIHNvY2tldHMuCiAgICAgLWMsIC0tY3B1LWNvcmVzIElOVEVHRVIgICAg
ICAgIE51bWJlciBvZiBndWVzdCBjb3JlcyBwZXIgc29ja2V0LgotICAgIC0td2l0aC1kbnNtYXNx
ICAgICAgICAgICAgICAgICBTdGFydCBhIERuc21hc3Egc2VydmVyLgotICAgIC0taXAtcmFuZ2Ug
VEVYVCAgICAgICAgICAgICAgICBTZXQgdGhlIElQIHJhbmdlIGZvciBEbnNtYXNxLiAgW2RlZmF1
bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3Mi44OC4wLjEsMTcyLjg4
LjAuMjU0XQotICAgIC0taXAtbmV0bWFzayBURVhUICAgICAgICAgICAgICBTZXQgdGhlIG5ldG1h
c2sgZm9yIERuc21hc3EuICBbZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjU1LjI1NS4wLjBdCi0gICAgLS1pcC1sZWFzZS10aW1lIFRFWFQgICAgICAgICAgIFNl
dCB0aGUgSVAgbGVhc2UgdGltZSBmb3IgRG5zbWFzcS4gIFtkZWZhdWx0OgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMmhdCiAgICAgLWgsIC0taGVscCAgICAgICAgICAgICAg
ICAgICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0LgogCiAuLiBfYWR2YW5jZWRfdXNhZ2U6
CkBAIC0zMTIsNCArMzA4LDYzIEBAIGNvcmUgc291cmNlIGNvZGUgYW5kIGFsbCBsaWJyYXJ5IHBv
b2xzLiAgVGhpcyBpcyBzZXQgdXNpbmcgdGhlIGZvbGxvd2luZzoKIHwgYGBVS19BUFBTYGAgICAg
ICAgICAgICB8IGBgJFVLX1dPUktESVIvYXBwc2BgICAgICB8IEFwcGxpY2F0aW9ucyBhbmQgdGVt
cGxhdGVzLiAgICAgICAgICAgICAgIHwKICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSsKIHwgYGBLUkFGVENPTkZgYCAgICAgICAgICB8IGBgfi8ua3JhZnRyY2BgICAgICAg
ICAgICB8IFRoZSBsb2NhdGlvbiBvZiBrcmFmdCdzIHByZWZlcmVuY2VzIGZpbGUuIHwKLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisKK1dvcmtm
bG93IHdoZW4gd29ya2luZyBvbiBVbmlrcmFmdCBpbnRlcm5hbHMgCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0R1cmluZyBwaGFzZXMgb2YgZGV2ZWxvcG1l
bnQgd2hpY2ggcmVxdWlyZSBtb2RpZnlpbmcgdGhlIFVuaWtyYWZ0IGNvcmUgc291cmNlCitjb2Rl
IG9yIGFuIGF1eGlsaWFyeSBsaWJyYXJ5IGZvciB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uLCBgYGty
YWZ0YGAncyBydW50aW1lCitjYW4gYmUgYWx0ZXJlZCB0byBmYWNpbGl0YXRlIHZhcnlpbmcgZGV2
ZWxvcGVyIHJlcXVpcmVtZW50cy4KKworSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCBib3RoIHRo
ZSBVbmlrcmFmdCBjb3JlIHNvdXJjZSBjb2RlIGFuZCBhbiBhZGRpdGlvbmFsCitsaWJyYXJ5LCBg
YG15bGliYGAsIGhhdmUgYXJlIHV0aWxpemVkIGZvciBhbiBhcHBsaWNhdGlvbi4gICBIb3dldmVy
LCB0aGVpcgorc291cmNlIGhhcyBiZWVuIG1vZGlmaWVkIGFuZCBwb2ludCB0byBleHRlcm5hbCBs
b2NhdGlvbnMuICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UKK2FyZSBkb2luZyBsb2NhbCBkZXZlbG9w
bWVudCBvciB3aXNoIHRvIHdvcmsgd2l0aCBwcml2YXRlIHJlcG9zaXRvcmllczoKKworOjoKKwor
ICBzcGVjaWZpY2F0aW9uOiAnMC40JworCisgIHVuaWtyYWZ0OiBmaWxlOi8vL2hvbWUvZGV2ZWxv
cGVyL3JlcG9zL3VuaWtyYWZ0L3VuaWtyYWZ0QDNhODE1MGQKKworICBsaWJyYXJpZXM6CisgICAg
bXlsaWI6CisgICAgICB2ZXJzaW9uOiBkZXZlbC9uZXctZmVhdHVyZQorICAgICAgc291cmNlOiBn
aXQ6Ly9naXQuZXhhbXBsZS5jb20vbGliLW15bGliCisKKworVGhlIGBga3JhZnRgYCB0b29sIHdv
cmtzIHdpdGggdGhlc2UgcmVtb3RlIGFuZCBsb2NhbCBHaXQgcmVwb3NpdG9yaWVzIGluIG9yZGVy
Cit0byBoYW5kbGUgdmVyc2lvbiBjb250cm9sLiAgSG93ZXZlciwgd2VuIHVzaW5nIHRoZSBgYGty
YWZ0YGAgdG9vbCBpdHNlbGYgaW4KK2R1cmluZyB0aGUgYGBjb25maWd1cmVgYCBhbmQgYGBidWls
ZGBgIHN0ZXBzLCBpdCBpcyBoYW5keSB0byBzdG9wIGl0IGl0IGZyb20KK2F1dG9tYXRpY2FsbHkg
cnVubmluZyBgYGdpdCBjaGVja291dGBgIG9uIHRoZXNlIHJlcG9zaXRvcmllcy4gIFRoaXMgaXMK
K3BhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiB0aGUgc291cmNlIHRyZWUgb2YgdGhlIFVuaWtyYWZ0
IGNvcmUgb3IgYW55IG90aGVyCitsaWJyYXJ5IGhhcyBhIGRpcnR5IHdvcmtpbmcgdHJlZS4KKwor
VG8gaWdub3JlIHdhcm5pbmdzIGFuZCBwcm9jZWVkIHdpdGggYSBjb21tYW5kLCB1c2UgdGhlIGds
b2JhbCBmbGFnIGBgLUNgYDoKKworOjoKKworICBrcmFmdCAtQ3YgY29uZmlndXJlCisKK1RvIHBy
ZXZlbnQgYGBrcmFmdGBgIGZyb20gY2hlY2tpbmcgb3V0IHJlcG9zaXRvcmllcyBlbnRpcmVseSwg
dXNlIHRoZSBnbG9iYWwKK2ZsYWcgYGAtWGBgOgorCis6OgorCisgIGtyYWZ0IC1YdiBidWlsZAor
CitEZWJ1Z2dpbmcgVW5pa3JhZnQgYXBwbGljYXRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK1J1bm5pbmcgYW5kIGRlYnVnZ2luZyB1bmlrZXJuZWxzIGNhbiBiZSBhY2Nv
bXBsaXNoZWQgbGFyZ2VseSB3aXRoIHRoZSB1c2Ugb2YKK2BnZGIgPGh0dHBzOi8vd3d3LmdudS5v
cmcvc29mdHdhcmUvZ2RiLz5gXy4gIFVuaWtyYWZ0IHdpbGwgYnVpbGQgYW4gdW4tc3RyaXBwZWQK
K2JpbmFyeSB3aXRoIGRlYnVnZ2luZyBmZWF0dXJlcyBlbmFibGVkLiAgVGhpcyBjYW4gYmUgdG9n
Z2xlZCB3aXRoIHRoZQorYGAtZHwtLWRiZ2BgIGZsYWcgb24gYGBrcmFmdCBydW5gYC4gIFRvIHN0
YXJ0IGdkYiBpdHNlbGYsIGluY2x1ZGUgdGhlCitgYC1nfC0tZ2RiIFBPUlRgYCBmbGFnIGR1cmlu
ZyB0aGUgc2FtZSBydW4gc3RhZ2UuICBBZGRpdGlvbmFsbHksIGl0IGlzIG9mdGVuCit1c2VmdWwg
dG8gc3RhcnQgdGhlIGd1ZXN0IGluIGEgcGF1c2VkIHN0YWdlLCBhY2NvbXBsaXNoZWQgd2l0aCB0
aGUKK2BgLVB8LS1wYXVzZWRgYCBmbGFnOgorCis6OgorCisgIGtyYWZ0IHJ1biAtcCBrdm0gLS1n
ZGIgNDEyMyAtLWRiZwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLS0gCjIuMjQuMQoKCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZl
bCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 19:55:27 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 19:55:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5EOU-0005ar-VW; Fri, 21 Feb 2020 19:55:26 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=8MKW=4J=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j5EOT-0005aa-R4
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 19:55:25 +0000
X-Inumbo-ID: 19377f6a-54e4-11ea-86e8-12813bfff9fa
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 19377f6a-54e4-11ea-86e8-12813bfff9fa;
 Fri, 21 Feb 2020 19:55:24 +0000 (UTC)
Received: from x4d0ca2a9.dyn.telefonica.de ([77.12.162.169]
 helo=nderjung.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j5EOP-000STH-32; Fri, 21 Feb 2020 19:55:23 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 21 Feb 2020 20:55:17 +0100
Message-Id: <20200221195517.92812-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-HELLOWORLD] doc: Update kraft up
 documentation.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBS
RUFETUUubWQgfCA4ICsrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA1
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1JFQURNRS5tZCBiL1JFQURNRS5tZAppbmRleCAx
ZWNlNjU2Li4yMDI1MDVmIDEwMDY0NAotLS0gYS9SRUFETUUubWQKKysrIGIvUkVBRE1FLm1kCkBA
IC0yLDExICsyLDkgQEAKIAogVG8gYnVpbGQgYW5kIHJ1biB0aGlzIGFwcGxpY2F0aW9uIHBsZWFz
ZSB1c2UgdGhlIGBrcmFmdGAgc2NyaXB0OgogCi0gICAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHVi
LmNvbS91bmlrcmFmdC9rcmFmdAotICAgIGNkIGtyYWZ0Ci0gICAgcHl0aG9uIHNldHVwLnB5IGlu
c3RhbGwKLSAgICBrcmFmdCBsaXN0Ci0gICAga3JhZnQgdXAgLXAgW3BsYXRmb3JtXSAtbSBbYXJj
aGl0ZWN0dXJlXSBbYXBwIG5hbWVdCisgICAgcGlwMyBpbnN0YWxsIGdpdCtodHRwczovL2dpdGh1
Yi5jb20vdW5pa3JhZnQva3JhZnQuZ2l0CisgICAgbWtkaXIgbXktZmlyc3QtdW5pa2VybmVsICYm
IGNkIG15LWZpcnN0LXVuaWtlcm5lbAorICAgIGtyYWZ0IHVwIC1wIFBMQVRGT1JNIC1tIEFSQ0hJ
VEVDVFVSRSBoZWxsb3dvcmxkCiAKIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGBrcmFmdGAg
dHlwZSBgYGBrcmFmdCAtaGBgYCBvciByZWFkIHRoZQogW2RvY3VtZW50YXRpb25dKGh0dHA6Ly9k
b2NzLnVuaWtyYWZ0Lm9yZykuCi0tIAoyLjI0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 19:58:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 19:58:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5ERU-0005lJ-8p; Fri, 21 Feb 2020 19:58:32 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=R2s4=4J=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j5ERT-0005lD-CU
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 19:58:31 +0000
X-Inumbo-ID: 8791fd64-54e4-11ea-ade5-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 8791fd64-54e4-11ea-ade5-bc764e2007e4;
 Fri, 21 Feb 2020 19:58:29 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id E3331103BF7;
 Fri, 21 Feb 2020 20:58:28 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 9ciqLuC3-ZuT; Fri, 21 Feb 2020 20:58:28 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id BE77F103AEE;
 Fri, 21 Feb 2020 20:58:28 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 21 Feb
 2020 20:58:28 +0100
To: Alexander Jung <a.jung@lancs.ac.uk>, <minios-devel@lists.xen.org>
References: <20200221195517.92812-1-a.jung@lancs.ac.uk>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <c740c13f-1528-a99b-939c-47ae0f7cda3d@neclab.eu>
Date: Fri, 21 Feb 2020 20:58:27 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200221195517.92812-1-a.jung@lancs.ac.uk>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/APP-HELLOWORLD] doc: Update kraft up
 documentation.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJA
bmVjbGFiLmV1PgoKT24gMjEuMDIuMjAgMjA6NTUsIEFsZXhhbmRlciBKdW5nIHdyb3RlOgo+IFNp
Z25lZC1vZmYtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+Cj4gLS0tCj4g
ICBSRUFETUUubWQgfCA4ICsrKy0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z
KCspLCA1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9SRUFETUUubWQgYi9SRUFETUUu
bWQKPiBpbmRleCAxZWNlNjU2Li4yMDI1MDVmIDEwMDY0NAo+IC0tLSBhL1JFQURNRS5tZAo+ICsr
KyBiL1JFQURNRS5tZAo+IEBAIC0yLDExICsyLDkgQEAKPiAgIAo+ICAgVG8gYnVpbGQgYW5kIHJ1
biB0aGlzIGFwcGxpY2F0aW9uIHBsZWFzZSB1c2UgdGhlIGBrcmFmdGAgc2NyaXB0Ogo+ICAgCj4g
LSAgICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L2tyYWZ0Cj4gLSAgICBj
ZCBrcmFmdAo+IC0gICAgcHl0aG9uIHNldHVwLnB5IGluc3RhbGwKPiAtICAgIGtyYWZ0IGxpc3QK
PiAtICAgIGtyYWZ0IHVwIC1wIFtwbGF0Zm9ybV0gLW0gW2FyY2hpdGVjdHVyZV0gW2FwcCBuYW1l
XQo+ICsgICAgcGlwMyBpbnN0YWxsIGdpdCtodHRwczovL2dpdGh1Yi5jb20vdW5pa3JhZnQva3Jh
ZnQuZ2l0Cj4gKyAgICBta2RpciBteS1maXJzdC11bmlrZXJuZWwgJiYgY2QgbXktZmlyc3QtdW5p
a2VybmVsCj4gKyAgICBrcmFmdCB1cCAtcCBQTEFURk9STSAtbSBBUkNISVRFQ1RVUkUgaGVsbG93
b3JsZAo+ICAgCj4gICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBga3JhZnRgIHR5cGUgYGBg
a3JhZnQgLWhgYGAgb3IgcmVhZCB0aGUKPiAgIFtkb2N1bWVudGF0aW9uXShodHRwOi8vZG9jcy51
bmlrcmFmdC5vcmcpLgo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv
L21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 19:58:51 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 19:58:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5ERn-0005mL-BD; Fri, 21 Feb 2020 19:58:51 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=R2s4=4J=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j5ERm-0005mD-1c
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 19:58:50 +0000
X-Inumbo-ID: 92b9539a-54e4-11ea-86e8-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 92b9539a-54e4-11ea-86e8-12813bfff9fa;
 Fri, 21 Feb 2020 19:58:48 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 8D0CCF2017;
 Fri, 21 Feb 2020 20:58:47 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Qavz5wFEXkyh; Fri, 21 Feb 2020 20:58:47 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 51409F2016;
 Fri, 21 Feb 2020 20:58:43 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 21 Feb
 2020 20:58:42 +0100
To: Alexander Jung <a.jung@lancs.ac.uk>, <minios-devel@lists.xen.org>
References: <20200221194205.84016-1-a.jung@lancs.ac.uk>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <5ebb7766-5802-52d1-3389-775773ad6ae0@neclab.eu>
Date: Fri, 21 Feb 2020 20:58:41 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200221194205.84016-1-a.jung@lancs.ac.uk>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT PATCH] doc: Update kraft documentation
 with new flags and tutorials.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

R3JlYXQsIHRoYW5rcyEKClJldmlld2VkLWJ5OiBTaW1vbiBLdWVuemVyIDxzaW1vbi5rdWVuemVy
QG5lY2xhYi5ldT4KCk9uIDIxLjAyLjIwIDIwOjQyLCBBbGV4YW5kZXIgSnVuZyB3cm90ZToKPiBT
aWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgSnVuZyA8YS5qdW5nQGxhbmNzLmFjLnVrPgo+IC0tLQo+
ICAgZG9jL2d1aWRlcy9rcmFmdC5yc3QgfCA3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKystLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDgg
ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMva3JhZnQucnN0IGIvZG9j
L2d1aWRlcy9rcmFmdC5yc3QKPiBpbmRleCBiNmMyNjk2Li42MDg3ZTdjIDEwMDY0NAo+IC0tLSBh
L2RvYy9ndWlkZXMva3JhZnQucnN0Cj4gKysrIGIvZG9jL2d1aWRlcy9rcmFmdC5yc3QKPiBAQCAt
MTc2LDYgKzE3Niw3IEBAIFF1aWNrIFVuaWtyYWZ0IHByb2plY3QgY3JlYXRpb24KPiAgICAgICAt
UCwgLS1wYXVzZWQgICAgICAgICAgICAgICAgICAgUnVuIHRoZSBhcHBsaWNhdGlvbiBpbiBwYXVz
ZWQgc3RhdGUuCj4gICAgICAgLWcsIC0tZ2RiIElOVEVHRVIgICAgICAgICAgICAgIFJ1biBhIEdE
QiBzZXJ2ZXIgZm9yIHRoZSBndWVzdCBvbiBzcGVjaWZpZWQKPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcG9ydC4KPiArICAgIC1kLCAtLWRiZyAgICAgICAgICAgICAgICAg
ICAgICBVc2UgdW5zdHJpcGVkIHVuaWtlcm5lbC4KPiAgICAgICAtbiwgLS12aXJ0aW8tbmljIFRF
WFQgICAgICAgICAgQXR0YWNoIGEgTkFULWVkIHZpcnRpby1OSUMgdG8gdGhlIGd1ZXN0Lgo+ICAg
ICAgIC1iLCAtLWJyaWRnZSBURVhUICAgICAgICAgICAgICBBdHRhY2ggYSBOQVQtZWQgdmlydGlv
LU5JQyBhbiBleGlzdGluZwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmlkZ2UuCj4gQEAgLTIyOCw2ICsyMjksNyBAQCBDb25maWd1cmluZyBhIFVuaWtyYWZ0IGFwcGxp
Y2F0aW9uCj4gICAgIE9wdGlvbnM6Cj4gICAgICAgLXAsIC0tcGxhdCBbbGludXh1fGt2bXx4ZW5d
ICAgIFRhcmdldCBwbGF0Zm9ybS4KPiAgICAgICAtbSwgLS1hcmNoIFt4ODZfNjR8YXJtfGFybTY0
XSAgVGFyZ2V0IGFyY2hpdGVjdHVyZS4KPiArICAgIC1GLCAtLWZvcmNlICAgICAgICAgICAgICAg
ICAgICBGb3JjZSB3cml0aW5nIG5ldyBjb25maWd1cmF0aW9uLgo+ICAgICAgIC1rLCAtLW1lbnVj
b25maWcgICAgICAgICAgICAgICBVc2UgVW5pa3JhZnQncyBuY3Vyc2VzIEtjb25maWcgZWRpdG9y
Lgo+ICAgICAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICBTaG93IHRoaXMgbWVzc2Fn
ZSBhbmQgZXhpdC4KPiAgIAo+IEBAIC0yNjMsNiArMjY1LDcgQEAgUnVubmluZyBhIFVuaWtyYWZ0
IGFwcGxpY2F0aW9uCj4gICAgICAgLVgsIC0tYmFja2dyb3VuZCAgICAgICAgICAgICAgIFJ1biBp
biBiYWNrZ3JvdW5kLgo+ICAgICAgIC1QLCAtLXBhdXNlZCAgICAgICAgICAgICAgICAgICBSdW4g
dGhlIGFwcGxpY2F0aW9uIGluIHBhdXNlZCBzdGF0ZS4KPiAgICAgICAtZywgLS1nZGIgSU5URUdF
UiAgICAgICAgICAgICAgUnVuIGEgR0RCIHNlcnZlciBmb3IgdGhlIGd1ZXN0IGF0IFBPUlQuCj4g
KyAgICAtZCwgLS1kYmcgICAgICAgICAgICAgICAgICAgICAgVXNlIHVuc3RyaXBlZCB1bmlrZXJu
ZWwuCj4gICAgICAgLW4sIC0tdmlydGlvLW5pYyBURVhUICAgICAgICAgIEF0dGFjaCBhIE5BVC1l
ZCB2aXJ0aW8tTklDIHRvIHRoZSBndWVzdC4KPiAgICAgICAtYiwgLS1icmlkZ2UgVEVYVCAgICAg
ICAgICAgICAgQXR0YWNoIGEgTkFULWVkIHZpcnRpby1OSUMgYW4gZXhpc3RpbmcKPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJpZGdlLgo+IEBAIC0yNzIsMTMgKzI3NSw2
IEBAIFJ1bm5pbmcgYSBVbmlrcmFmdCBhcHBsaWNhdGlvbgo+ICAgICAgIC1NLCAtLW1lbW9yeSBJ
TlRFR0VSICAgICAgICAgICBBc3NpZ24gTUIgbWVtb3J5IHRvIHRoZSBndWVzdC4KPiAgICAgICAt
cywgLS1jcHUtc29ja2V0cyBJTlRFR0VSICAgICAgTnVtYmVyIG9mIGd1ZXN0IENQVSBzb2NrZXRz
Lgo+ICAgICAgIC1jLCAtLWNwdS1jb3JlcyBJTlRFR0VSICAgICAgICBOdW1iZXIgb2YgZ3Vlc3Qg
Y29yZXMgcGVyIHNvY2tldC4KPiAtICAgIC0td2l0aC1kbnNtYXNxICAgICAgICAgICAgICAgICBT
dGFydCBhIERuc21hc3Egc2VydmVyLgo+IC0gICAgLS1pcC1yYW5nZSBURVhUICAgICAgICAgICAg
ICAgIFNldCB0aGUgSVAgcmFuZ2UgZm9yIERuc21hc3EuICBbZGVmYXVsdDoKPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNzIuODguMC4xLDE3Mi44OC4wLjI1NF0KPiAtICAg
IC0taXAtbmV0bWFzayBURVhUICAgICAgICAgICAgICBTZXQgdGhlIG5ldG1hc2sgZm9yIERuc21h
c3EuICBbZGVmYXVsdDoKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUu
MjU1LjAuMF0KPiAtICAgIC0taXAtbGVhc2UtdGltZSBURVhUICAgICAgICAgICBTZXQgdGhlIElQ
IGxlYXNlIHRpbWUgZm9yIERuc21hc3EuICBbZGVmYXVsdDoKPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMmhdCj4gICAgICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAg
ICAgIFNob3cgdGhpcyBtZXNzYWdlIGFuZCBleGl0Lgo+ICAgCj4gICAuLiBfYWR2YW5jZWRfdXNh
Z2U6Cj4gQEAgLTMxMiw0ICszMDgsNjMgQEAgY29yZSBzb3VyY2UgY29kZSBhbmQgYWxsIGxpYnJh
cnkgcG9vbHMuICBUaGlzIGlzIHNldCB1c2luZyB0aGUgZm9sbG93aW5nOgo+ICAgfCBgYFVLX0FQ
UFNgYCAgICAgICAgICAgIHwgYGAkVUtfV09SS0RJUi9hcHBzYGAgICAgIHwgQXBwbGljYXRpb25z
IGFuZCB0ZW1wbGF0ZXMuICAgICAgICAgICAgICAgfAo+ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKwo+ICAgfCBgYEtSQUZUQ09ORmBgICAgICAgICAgIHwgYGB+Ly5r
cmFmdHJjYGAgICAgICAgICAgIHwgVGhlIGxvY2F0aW9uIG9mIGtyYWZ0J3MgcHJlZmVyZW5jZXMg
ZmlsZS4gfAo+IC0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSsKPiArCj4gK1dvcmtmbG93IHdoZW4gd29ya2luZyBvbiBVbmlrcmFmdCBpbnRl
cm5hbHMKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsK
PiArRHVyaW5nIHBoYXNlcyBvZiBkZXZlbG9wbWVudCB3aGljaCByZXF1aXJlIG1vZGlmeWluZyB0
aGUgVW5pa3JhZnQgY29yZSBzb3VyY2UKPiArY29kZSBvciBhbiBhdXhpbGlhcnkgbGlicmFyeSBm
b3IgdGhlIHRhcmdldCBhcHBsaWNhdGlvbiwgYGBrcmFmdGBgJ3MgcnVudGltZQo+ICtjYW4gYmUg
YWx0ZXJlZCB0byBmYWNpbGl0YXRlIHZhcnlpbmcgZGV2ZWxvcGVyIHJlcXVpcmVtZW50cy4KPiAr
Cj4gK0luIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgYm90aCB0aGUgVW5pa3JhZnQgY29yZSBzb3Vy
Y2UgY29kZSBhbmQgYW4gYWRkaXRpb25hbAo+ICtsaWJyYXJ5LCBgYG15bGliYGAsIGhhdmUgYXJl
IHV0aWxpemVkIGZvciBhbiBhcHBsaWNhdGlvbi4gICBIb3dldmVyLCB0aGVpcgo+ICtzb3VyY2Ug
aGFzIGJlZW4gbW9kaWZpZWQgYW5kIHBvaW50IHRvIGV4dGVybmFsIGxvY2F0aW9ucy4gIFRoaXMg
aXMgdXNlZnVsIGlmIHlvdQo+ICthcmUgZG9pbmcgbG9jYWwgZGV2ZWxvcG1lbnQgb3Igd2lzaCB0
byB3b3JrIHdpdGggcHJpdmF0ZSByZXBvc2l0b3JpZXM6Cj4gKwo+ICs6Ogo+ICsKPiArICBzcGVj
aWZpY2F0aW9uOiAnMC40Jwo+ICsKPiArICB1bmlrcmFmdDogZmlsZTovLy9ob21lL2RldmVsb3Bl
ci9yZXBvcy91bmlrcmFmdC91bmlrcmFmdEAzYTgxNTBkCj4gKwo+ICsgIGxpYnJhcmllczoKPiAr
ICAgIG15bGliOgo+ICsgICAgICB2ZXJzaW9uOiBkZXZlbC9uZXctZmVhdHVyZQo+ICsgICAgICBz
b3VyY2U6IGdpdDovL2dpdC5leGFtcGxlLmNvbS9saWItbXlsaWIKPiArCj4gKwo+ICtUaGUgYGBr
cmFmdGBgIHRvb2wgd29ya3Mgd2l0aCB0aGVzZSByZW1vdGUgYW5kIGxvY2FsIEdpdCByZXBvc2l0
b3JpZXMgaW4gb3JkZXIKPiArdG8gaGFuZGxlIHZlcnNpb24gY29udHJvbC4gIEhvd2V2ZXIsIHdl
biB1c2luZyB0aGUgYGBrcmFmdGBgIHRvb2wgaXRzZWxmIGluCj4gK2R1cmluZyB0aGUgYGBjb25m
aWd1cmVgYCBhbmQgYGBidWlsZGBgIHN0ZXBzLCBpdCBpcyBoYW5keSB0byBzdG9wIGl0IGl0IGZy
b20KPiArYXV0b21hdGljYWxseSBydW5uaW5nIGBgZ2l0IGNoZWNrb3V0YGAgb24gdGhlc2UgcmVw
b3NpdG9yaWVzLiAgVGhpcyBpcwo+ICtwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gdGhlIHNvdXJj
ZSB0cmVlIG9mIHRoZSBVbmlrcmFmdCBjb3JlIG9yIGFueSBvdGhlcgo+ICtsaWJyYXJ5IGhhcyBh
IGRpcnR5IHdvcmtpbmcgdHJlZS4KPiArCj4gK1RvIGlnbm9yZSB3YXJuaW5ncyBhbmQgcHJvY2Vl
ZCB3aXRoIGEgY29tbWFuZCwgdXNlIHRoZSBnbG9iYWwgZmxhZyBgYC1DYGA6Cj4gKwo+ICs6Ogo+
ICsKPiArICBrcmFmdCAtQ3YgY29uZmlndXJlCj4gKwo+ICtUbyBwcmV2ZW50IGBga3JhZnRgYCBm
cm9tIGNoZWNraW5nIG91dCByZXBvc2l0b3JpZXMgZW50aXJlbHksIHVzZSB0aGUgZ2xvYmFsCj4g
K2ZsYWcgYGAtWGBgOgo+ICsKPiArOjoKPiArCj4gKyAga3JhZnQgLVh2IGJ1aWxkCj4gKwo+ICtE
ZWJ1Z2dpbmcgVW5pa3JhZnQgYXBwbGljYXRpb25zCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KPiArCj4gK1J1bm5pbmcgYW5kIGRlYnVnZ2luZyB1bmlrZXJuZWxzIGNhbiBiZSBh
Y2NvbXBsaXNoZWQgbGFyZ2VseSB3aXRoIHRoZSB1c2Ugb2YKPiArYGdkYiA8aHR0cHM6Ly93d3cu
Z251Lm9yZy9zb2Z0d2FyZS9nZGIvPmBfLiAgVW5pa3JhZnQgd2lsbCBidWlsZCBhbiB1bi1zdHJp
cHBlZAo+ICtiaW5hcnkgd2l0aCBkZWJ1Z2dpbmcgZmVhdHVyZXMgZW5hYmxlZC4gIFRoaXMgY2Fu
IGJlIHRvZ2dsZWQgd2l0aCB0aGUKPiArYGAtZHwtLWRiZ2BgIGZsYWcgb24gYGBrcmFmdCBydW5g
YC4gIFRvIHN0YXJ0IGdkYiBpdHNlbGYsIGluY2x1ZGUgdGhlCj4gK2BgLWd8LS1nZGIgUE9SVGBg
IGZsYWcgZHVyaW5nIHRoZSBzYW1lIHJ1biBzdGFnZS4gIEFkZGl0aW9uYWxseSwgaXQgaXMgb2Z0
ZW4KPiArdXNlZnVsIHRvIHN0YXJ0IHRoZSBndWVzdCBpbiBhIHBhdXNlZCBzdGFnZSwgYWNjb21w
bGlzaGVkIHdpdGggdGhlCj4gK2BgLVB8LS1wYXVzZWRgYCBmbGFnOgo+ICsKPiArOjoKPiArCj4g
KyAga3JhZnQgcnVuIC1wIGt2bSAtLWdkYiA0MTIzIC0tZGJnCj4gXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWlu
aW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 20:04:16 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 20:04:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5EX0-0006aM-Py; Fri, 21 Feb 2020 20:04:14 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=8MKW=4J=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j5EWz-0006Zp-KD
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 20:04:13 +0000
X-Inumbo-ID: 541b37f6-54e5-11ea-86eb-12813bfff9fa
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 541b37f6-54e5-11ea-86eb-12813bfff9fa;
 Fri, 21 Feb 2020 20:04:12 +0000 (UTC)
Received: from x4d0ca2a9.dyn.telefonica.de ([77.12.162.169]
 helo=nderjung.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j5EWx-000TqC-05; Fri, 21 Feb 2020 20:04:12 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 21 Feb 2020 21:04:02 +0100
Message-Id: <20200221200405.1835-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-HTTPREPLY 0/3] Update repository for
 kraft tool.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhpcyBzZXJpZXMgdXBkYXRlcyB0aGUgaHR0cCByZXBseSBhcHBsaWNhdGlvbiByZWFkeSBmb3Ig
dGhlIFJoZWEKcmVsZWFzZSBhbmQgZm9yIHVzZSB3aXRoIHRoZSBrcmFmdCB0b29sLgoKQWxleGFu
ZGVyIEp1bmcgKDMpOgogIGtyYWZ0OiBJbml0aWFsIGNvbW1pdCBmb3Iga3JhZnQgc3VwcG9ydC4K
ICBrcmFmdDogUmVtb3ZlIGxpbnV4dSBwbGF0Zm9ybS4KICBkb2M6IFVwZGF0ZSBrcmFmdCB1cCBk
b2N1bWVudGF0aW9uLgoKIENvbmZpZy51ayAgICAgIHwgMTUgLS0tLS0tLS0tLS0tLS0tCiBNQUlO
VEFJTkVSUy5tZCB8ICAxICsKIE1ha2VmaWxlICAgICAgIHwgIDkgLS0tLS0tLS0tCiBSRUFETUUu
bWQgICAgICB8IDEzICsrKysrKysrKy0tLS0KIGtyYWZ0LnlhbWwgICAgIHwgMzMgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMo
KyksIDI4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IENvbmZpZy51awogZGVsZXRl
IG1vZGUgMTAwNjQ0IE1ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQga3JhZnQueWFtbAoKLS0g
CjIuMjQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3Mt
ZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 20:04:19 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 20:04:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5EX5-0006as-Ry; Fri, 21 Feb 2020 20:04:19 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=8MKW=4J=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j5EX4-0006aj-NR
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 20:04:18 +0000
X-Inumbo-ID: 56d85762-54e5-11ea-b0fd-bc764e2007e4
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 56d85762-54e5-11ea-b0fd-bc764e2007e4;
 Fri, 21 Feb 2020 20:04:17 +0000 (UTC)
Received: from x4d0ca2a9.dyn.telefonica.de ([77.12.162.169]
 helo=nderjung.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j5EX1-000TqC-0i; Fri, 21 Feb 2020 20:04:16 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 21 Feb 2020 21:04:03 +0100
Message-Id: <20200221200405.1835-2-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
In-Reply-To: <20200221200405.1835-1-a.jung@lancs.ac.uk>
References: <20200221200405.1835-1-a.jung@lancs.ac.uk>
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-HTTPREPLY 1/3] kraft: Initial commit
 for kraft support.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBD
b25maWcudWsgICAgICB8IDE1IC0tLS0tLS0tLS0tLS0tLQogTUFJTlRBSU5FUlMubWQgfCAgMSAr
CiBNYWtlZmlsZSAgICAgICB8ICA5IC0tLS0tLS0tLQogUkVBRE1FLm1kICAgICAgfCAxMyArKysr
KysrKystLS0tCiBrcmFmdC55YW1sICAgICB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlv
bnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBDb25maWcudWsKIGRlbGV0ZSBtb2RlIDEwMDY0NCBN
YWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IGtyYWZ0LnlhbWwKCmRpZmYgLS1naXQgYS9Db25m
aWcudWsgYi9Db25maWcudWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNGQ4ZjEu
LjAwMDAwMDAKLS0tIGEvQ29uZmlnLnVrCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAot
IyMjIEludmlzaWJsZSBvcHRpb24gZm9yIGRlcGVuZGVuY2llcwotY29uZmlnIEFQUEhUVFBSRVBM
WV9ERVBFTkRFTkNJRVMKLQlib29sCi0JZGVmYXVsdCB5Ci0Jc2VsZWN0IExJQk5PTElCQyBpZiAh
SEFWRV9MSUJDCi0Jc2VsZWN0IExJQkxXSVAKLQlzZWxlY3QgTFdJUF9VS05FVERFVgotCXNlbGVj
dCBMV0lQX1RDUAotCXNlbGVjdCBMV0lQX1RIUkVBRFMKLQlzZWxlY3QgTFdJUF9TT0NLRVQKLQlz
ZWxlY3QgTFdJUF9BVVRPSUZBQ0UKLQlzZWxlY3QgTFdJUF9JUFY0Ci0Jc2VsZWN0IExXSVBfREhD
UAotCXNlbGVjdCBMSUJVS1NDSEVECi0Jc2VsZWN0IExJQlVLU0NIRURDT09QCmRpZmYgLS1naXQg
YS9NQUlOVEFJTkVSUy5tZCBiL01BSU5UQUlORVJTLm1kCmluZGV4IDk1ZWRhMjUuLjY3OTU1MDkg
MTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTLm1kCisrKyBiL01BSU5UQUlORVJTLm1kCkBAIC02LDUg
KzYsNiBAQCB0aGUgbWFpbiBVbmlrcmFmdCByZXBvc2l0b3J5LgogCiAJSFRUUFJFUExZLVVOSUtS
QUZUCiAJTToJU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+CisJTToJQWxl
eGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KIAlMOgltaW5pb3MtZGV2ZWxAbGlzdHMu
eGVuLm9yZwogCUY6ICoKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxM2YxNTkuLjAwMDAwMDAKLS0tIGEvTWFrZWZpbGUKKysr
IC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVVLX1JPT1QgPz0gJChQV0QpLy4uLy4uL3VuaWty
YWZ0Ci1VS19MSUJTID89ICQoUFdEKS8uLi8uLi9saWJzCi1MSUJTIDo9ICQoVUtfTElCUykvbHdp
cAotCi1hbGw6Ci0JQCQoTUFLRSkgLUMgJChVS19ST09UKSBBPSQoUFdEKSBMPSQoTElCUykKLQot
JChNQUtFQ01ER09BTFMpOgotCUAkKE1BS0UpIC1DICQoVUtfUk9PVCkgQT0kKFBXRCkgTD0kKExJ
QlMpICQoTUFLRUNNREdPQUxTKQpkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1kCmlu
ZGV4IDExNDlkYzUuLjAxNTlmMDcgMTAwNjQ0Ci0tLSBhL1JFQURNRS5tZAorKysgYi9SRUFETUUu
bWQKQEAgLTEsNSArMSwxMCBAQAotIkhUVFBSZXBseSItRXhhbXBsZSBmb3IgVW5pa3JhZnQKLT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEhUVFAgcmVwbHkgb24gVW5pa3JhZnQK
IAotUGxlYXNlIHJlZmVyIHRvIHRoZSBgUkVBRE1FLm1kYCBhcyB3ZWxsIGFzIHRoZSBkb2N1bWVu
dGF0aW9uIGluIHRoZSBgZG9jL2AKLXN1YmRpcmVjdG9yeSBvZiB0aGUgbWFpbiB1bmlrcmFmdCBy
ZXBvc2l0b3J5LgorVG8gYnVpbGQgYW5kIHJ1biB0aGlzIGFwcGxpY2F0aW9uIHBsZWFzZSB1c2Ug
dGhlIGBrcmFmdGAgc2NyaXB0OgorCisgICAgcGlwMyBpbnN0YWxsIGdpdCtodHRwczovL2dpdGh1
Yi5jb20vdW5pa3JhZnQva3JhZnQuZ2l0CisgICAgbWtkaXIgbXktaHR0cC1yZXBsaWVyICYmIGNk
IG15LWh0dHAtcmVwbGllcgorICAgIGtyYWZ0IHVwIC1wIFBMQVRGT1JNIC1tIEFSQ0hJVEVDVFVS
RSAtYSBodHRwcmVwbHkgbXktaHR0cC1yZXBsaWVyCisKK0ZvciBtb3JlIGluZm9ybWF0aW9uIGFi
b3V0IGBrcmFmdGAgdHlwZSBgYGBrcmFmdCAtaGBgYCBvciByZWFkIHRoZQorW2RvY3VtZW50YXRp
b25dKGh0dHA6Ly9kb2NzLnVuaWtyYWZ0Lm9yZykuCmRpZmYgLS1naXQgYS9rcmFmdC55YW1sIGIv
a3JhZnQueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDhkYWJjCi0t
LSAvZGV2L251bGwKKysrIGIva3JhZnQueWFtbApAQCAtMCwwICsxLDM2IEBACitzcGVjaWZpY2F0
aW9uOiAnMC40JworCit1bmlrcmFmdDoKKyAgdmVyc2lvbjogJzAuNCcKKyAga2NvbmZpZzoKKyAg
ICAtIENPTkZJR19MSUJOT0xJQkM9eQorICAgIC0gQ09ORklHX0xJQlVLU0NIRUQ9eQorICAgIC0g
Q09ORklHX0xJQlVLU0NIRURDT09QPXkKKworYXJjaGl0ZWN0dXJlczoKKyAgeDg2XzY0OiB0cnVl
CisKK3BsYXRmb3JtczoKKyAgbGludXh1OgorICAgIGtjb25maWc6CisgICAgICAtIENPTkZJR19M
SU5VWFVfREVGQVVMVF9IRUFQTUI9NAorICBrdm06IHRydWUKKworcnVuOgorICBuZXR3b3JrczoK
KyAgICBuZXQwOgorICAgICAgcHJlX3VwOiBrcmFmdC1uZXQgLS13aXRoLWRuc21hc3EgdXAKKyAg
ICAgIHByZV9kb3duOiBrcmFmdC1uZXQgLS13aXRoLWRuc21hc3EgZG93bgorCitsaWJyYXJpZXM6
CisgIGx3aXA6CisgICAgdmVyc2lvbjogJzAuNCcKKyAgICBrY29uZmlnOgorICAgICAgLSBDT05G
SUdfTFdJUF9VS05FVERFVj15CisgICAgICAtIENPTkZJR19MV0lQX1RDUD15CisgICAgICAtIENP
TkZJR19MV0lQX1RIUkVBRFM9eQorICAgICAgLSBDT05GSUdfTFdJUF9TT0NLRVQ9eQorICAgICAg
LSBDT05GSUdfTFdJUF9BVVRPSUZBQ0U9eQorICAgICAgLSBDT05GSUdfTFdJUF9JUFY0PXkKKyAg
ICAgIC0gQ09ORklHX0xXSVBfREhDUD15CisgICAgICAtIENPTkZJR19MV0lQX1NPQ0tFVF9QUE9M
TD1uCi0tIAoyLjI0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5w
cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v
bWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 20:04:23 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 20:04:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5EX8-0006cz-TZ; Fri, 21 Feb 2020 20:04:22 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=8MKW=4J=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j5EX7-0006c6-8f
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 20:04:21 +0000
X-Inumbo-ID: 58cd89f2-54e5-11ea-86eb-12813bfff9fa
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 58cd89f2-54e5-11ea-86eb-12813bfff9fa;
 Fri, 21 Feb 2020 20:04:20 +0000 (UTC)
Received: from x4d0ca2a9.dyn.telefonica.de ([77.12.162.169]
 helo=nderjung.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j5EX5-000TqC-0P; Fri, 21 Feb 2020 20:04:20 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 21 Feb 2020 21:04:04 +0100
Message-Id: <20200221200405.1835-3-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
In-Reply-To: <20200221200405.1835-1-a.jung@lancs.ac.uk>
References: <20200221200405.1835-1-a.jung@lancs.ac.uk>
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-HTTPREPLY 2/3] kraft: Remove linuxu
 platform.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBr
cmFmdC55YW1sIHwgMyAtLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL2tyYWZ0LnlhbWwgYi9rcmFmdC55YW1sCmluZGV4IGE0OGRhYmMuLmUyOGU5MWYgMTAw
NjQ0Ci0tLSBhL2tyYWZ0LnlhbWwKKysrIGIva3JhZnQueWFtbApAQCAtMTEsOSArMTEsNiBAQCBh
cmNoaXRlY3R1cmVzOgogICB4ODZfNjQ6IHRydWUKIAogcGxhdGZvcm1zOgotICBsaW51eHU6Ci0g
ICAga2NvbmZpZzoKLSAgICAgIC0gQ09ORklHX0xJTlVYVV9ERUZBVUxUX0hFQVBNQj00CiAgIGt2
bTogdHJ1ZQogCiBydW46Ci0tIAoyLjI0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt
YW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 20:04:27 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 20:04:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5EXC-0006eH-Vl; Fri, 21 Feb 2020 20:04:26 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=8MKW=4J=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j5EXB-0006e1-58
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 20:04:25 +0000
X-Inumbo-ID: 5aca0c62-54e5-11ea-ade5-bc764e2007e4
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 5aca0c62-54e5-11ea-ade5-bc764e2007e4;
 Fri, 21 Feb 2020 20:04:24 +0000 (UTC)
Received: from x4d0ca2a9.dyn.telefonica.de ([77.12.162.169]
 helo=nderjung.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j5EX7-000TqC-2N; Fri, 21 Feb 2020 20:04:23 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 21 Feb 2020 21:04:05 +0100
Message-Id: <20200221200405.1835-4-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
In-Reply-To: <20200221200405.1835-1-a.jung@lancs.ac.uk>
References: <20200221200405.1835-1-a.jung@lancs.ac.uk>
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-HTTPREPLY 3/3] doc: Update kraft up
 documentation.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBS
RUFETUUubWQgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1kCmluZGV4IDAxNTlm
MDcuLmE3Zjc2ZjQgMTAwNjQ0Ci0tLSBhL1JFQURNRS5tZAorKysgYi9SRUFETUUubWQKQEAgLTMs
OCArMyw4IEBACiBUbyBidWlsZCBhbmQgcnVuIHRoaXMgYXBwbGljYXRpb24gcGxlYXNlIHVzZSB0
aGUgYGtyYWZ0YCBzY3JpcHQ6CiAKICAgICBwaXAzIGluc3RhbGwgZ2l0K2h0dHBzOi8vZ2l0aHVi
LmNvbS91bmlrcmFmdC9rcmFmdC5naXQKLSAgICBta2RpciBteS1odHRwLXJlcGxpZXIgJiYgY2Qg
bXktaHR0cC1yZXBsaWVyCi0gICAga3JhZnQgdXAgLXAgUExBVEZPUk0gLW0gQVJDSElURUNUVVJF
IC1hIGh0dHByZXBseSBteS1odHRwLXJlcGxpZXIKKyAgICBta2RpciBteS1maXJzdC11bmlrZXJu
ZWwgJiYgY2QgbXktZmlyc3QtdW5pa2VybmVsCisgICAga3JhZnQgdXAgLXAgUExBVEZPUk0gLW0g
QVJDSElURUNUVVJFIGh0dHByZXBseQogCiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBga3Jh
ZnRgIHR5cGUgYGBga3JhZnQgLWhgYGAgb3IgcmVhZCB0aGUKIFtkb2N1bWVudGF0aW9uXShodHRw
Oi8vZG9jcy51bmlrcmFmdC5vcmcpLgotLSAKMi4yNC4xCgoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5p
b3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 20:09:18 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 20:09:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5Ebt-0006pr-Ca; Fri, 21 Feb 2020 20:09:17 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=8MKW=4J=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j5Ebs-0006ph-16
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 20:09:16 +0000
X-Inumbo-ID: 0857f24a-54e6-11ea-86ec-12813bfff9fa
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 0857f24a-54e6-11ea-86ec-12813bfff9fa;
 Fri, 21 Feb 2020 20:09:15 +0000 (UTC)
Received: from x4d0ca2a9.dyn.telefonica.de ([77.12.162.169]
 helo=nderjung.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j5Ebo-000UXL-2X; Fri, 21 Feb 2020 20:09:14 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 21 Feb 2020 21:09:09 +0100
Message-Id: <20200221200910.6060-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-HTTPREPLY v2] kraft: Initial commit
 for kraft support.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

LS0tCiBDb25maWcudWsgICAgICB8IDE1IC0tLS0tLS0tLS0tLS0tLQogTUFJTlRBSU5FUlMubWQg
fCAgMSArCiBNYWtlZmlsZSAgICAgICB8ICA5IC0tLS0tLS0tLQogUkVBRE1FLm1kICAgICAgfCAx
MyArKysrKysrKystLS0tCiBrcmFmdC55YW1sICAgICB8IDMzICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAyOCBkZWxl
dGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBDb25maWcudWsKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBNYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IGtyYWZ0LnlhbWwKCmRpZmYgLS1naXQgYS9D
b25maWcudWsgYi9Db25maWcudWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNGQ4
ZjEuLjAwMDAwMDAKLS0tIGEvQ29uZmlnLnVrCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBA
QAotIyMjIEludmlzaWJsZSBvcHRpb24gZm9yIGRlcGVuZGVuY2llcwotY29uZmlnIEFQUEhUVFBS
RVBMWV9ERVBFTkRFTkNJRVMKLQlib29sCi0JZGVmYXVsdCB5Ci0Jc2VsZWN0IExJQk5PTElCQyBp
ZiAhSEFWRV9MSUJDCi0Jc2VsZWN0IExJQkxXSVAKLQlzZWxlY3QgTFdJUF9VS05FVERFVgotCXNl
bGVjdCBMV0lQX1RDUAotCXNlbGVjdCBMV0lQX1RIUkVBRFMKLQlzZWxlY3QgTFdJUF9TT0NLRVQK
LQlzZWxlY3QgTFdJUF9BVVRPSUZBQ0UKLQlzZWxlY3QgTFdJUF9JUFY0Ci0Jc2VsZWN0IExXSVBf
REhDUAotCXNlbGVjdCBMSUJVS1NDSEVECi0Jc2VsZWN0IExJQlVLU0NIRURDT09QCmRpZmYgLS1n
aXQgYS9NQUlOVEFJTkVSUy5tZCBiL01BSU5UQUlORVJTLm1kCmluZGV4IDk1ZWRhMjUuLjY3OTU1
MDkgMTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTLm1kCisrKyBiL01BSU5UQUlORVJTLm1kCkBAIC02
LDUgKzYsNiBAQCB0aGUgbWFpbiBVbmlrcmFmdCByZXBvc2l0b3J5LgogCiAJSFRUUFJFUExZLVVO
SUtSQUZUCiAJTToJU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+CisJTToJ
QWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KIAlMOgltaW5pb3MtZGV2ZWxAbGlz
dHMueGVuLm9yZwogCUY6ICoKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxM2YxNTkuLjAwMDAwMDAKLS0tIGEvTWFrZWZpbGUK
KysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVVLX1JPT1QgPz0gJChQV0QpLy4uLy4uL3Vu
aWtyYWZ0Ci1VS19MSUJTID89ICQoUFdEKS8uLi8uLi9saWJzCi1MSUJTIDo9ICQoVUtfTElCUykv
bHdpcAotCi1hbGw6Ci0JQCQoTUFLRSkgLUMgJChVS19ST09UKSBBPSQoUFdEKSBMPSQoTElCUykK
LQotJChNQUtFQ01ER09BTFMpOgotCUAkKE1BS0UpIC1DICQoVUtfUk9PVCkgQT0kKFBXRCkgTD0k
KExJQlMpICQoTUFLRUNNREdPQUxTKQpkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1k
CmluZGV4IDExNDlkYzUuLmE3Zjc2ZjQgMTAwNjQ0Ci0tLSBhL1JFQURNRS5tZAorKysgYi9SRUFE
TUUubWQKQEAgLTEsNSArMSwxMCBAQAotIkhUVFBSZXBseSItRXhhbXBsZSBmb3IgVW5pa3JhZnQK
LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEhUVFAgcmVwbHkgb24gVW5pa3Jh
ZnQKIAotUGxlYXNlIHJlZmVyIHRvIHRoZSBgUkVBRE1FLm1kYCBhcyB3ZWxsIGFzIHRoZSBkb2N1
bWVudGF0aW9uIGluIHRoZSBgZG9jL2AKLXN1YmRpcmVjdG9yeSBvZiB0aGUgbWFpbiB1bmlrcmFm
dCByZXBvc2l0b3J5LgorVG8gYnVpbGQgYW5kIHJ1biB0aGlzIGFwcGxpY2F0aW9uIHBsZWFzZSB1
c2UgdGhlIGBrcmFmdGAgc2NyaXB0OgorCisgICAgcGlwMyBpbnN0YWxsIGdpdCtodHRwczovL2dp
dGh1Yi5jb20vdW5pa3JhZnQva3JhZnQuZ2l0CisgICAgbWtkaXIgbXktZmlyc3QtdW5pa2VybmVs
ICYmIGNkIG15LWZpcnN0LXVuaWtlcm5lbAorICAgIGtyYWZ0IHVwIC1wIFBMQVRGT1JNIC1tIEFS
Q0hJVEVDVFVSRSBodHRwcmVwbHkKKworRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYGtyYWZ0
YCB0eXBlIGBgYGtyYWZ0IC1oYGBgIG9yIHJlYWQgdGhlCitbZG9jdW1lbnRhdGlvbl0oaHR0cDov
L2RvY3MudW5pa3JhZnQub3JnKS4KZGlmZiAtLWdpdCBhL2tyYWZ0LnlhbWwgYi9rcmFmdC55YW1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyOGU5MWYKLS0tIC9kZXYvbnVs
bAorKysgYi9rcmFmdC55YW1sCkBAIC0wLDAgKzEsMzMgQEAKK3NwZWNpZmljYXRpb246ICcwLjQn
CisKK3VuaWtyYWZ0OgorICB2ZXJzaW9uOiAnMC40JworICBrY29uZmlnOgorICAgIC0gQ09ORklH
X0xJQk5PTElCQz15CisgICAgLSBDT05GSUdfTElCVUtTQ0hFRD15CisgICAgLSBDT05GSUdfTElC
VUtTQ0hFRENPT1A9eQorCithcmNoaXRlY3R1cmVzOgorICB4ODZfNjQ6IHRydWUKKworcGxhdGZv
cm1zOgorICBrdm06IHRydWUKKworcnVuOgorICBuZXR3b3JrczoKKyAgICBuZXQwOgorICAgICAg
cHJlX3VwOiBrcmFmdC1uZXQgLS13aXRoLWRuc21hc3EgdXAKKyAgICAgIHByZV9kb3duOiBrcmFm
dC1uZXQgLS13aXRoLWRuc21hc3EgZG93bgorCitsaWJyYXJpZXM6CisgIGx3aXA6CisgICAgdmVy
c2lvbjogJzAuNCcKKyAgICBrY29uZmlnOgorICAgICAgLSBDT05GSUdfTFdJUF9VS05FVERFVj15
CisgICAgICAtIENPTkZJR19MV0lQX1RDUD15CisgICAgICAtIENPTkZJR19MV0lQX1RIUkVBRFM9
eQorICAgICAgLSBDT05GSUdfTFdJUF9TT0NLRVQ9eQorICAgICAgLSBDT05GSUdfTFdJUF9BVVRP
SUZBQ0U9eQorICAgICAgLSBDT05GSUdfTFdJUF9JUFY0PXkKKyAgICAgIC0gQ09ORklHX0xXSVBf
REhDUD15CisgICAgICAtIENPTkZJR19MV0lQX1NPQ0tFVF9QUE9MTD1uCi0tIAoyLjI0LjEKCgpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2
ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov
L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 20:17:42 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 20:17:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5Ek0-0007vD-Ro; Fri, 21 Feb 2020 20:17:40 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=8MKW=4J=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j5Ejz-0007v8-EA
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 20:17:39 +0000
X-Inumbo-ID: 340ec32c-54e7-11ea-ade5-bc764e2007e4
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 340ec32c-54e7-11ea-ade5-bc764e2007e4;
 Fri, 21 Feb 2020 20:17:38 +0000 (UTC)
Received: from x4d0ca2a9.dyn.telefonica.de ([77.12.162.169]
 helo=nderjung.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j5Ejv-000Vph-2a; Fri, 21 Feb 2020 20:17:37 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 21 Feb 2020 21:17:30 +0100
Message-Id: <20200221201730.11960-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/APP-HTTPREPLY v3] kraft: Initial commit
 for kraft support.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBD
b25maWcudWsgICAgICB8IDE1IC0tLS0tLS0tLS0tLS0tLQogTUFJTlRBSU5FUlMubWQgfCAgMSAr
CiBNYWtlZmlsZSAgICAgICB8ICA5IC0tLS0tLS0tLQogUkVBRE1FLm1kICAgICAgfCAxMyArKysr
KysrKystLS0tCiBrcmFmdC55YW1sICAgICB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMo
LSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBDb25maWcudWsKIGRlbGV0ZSBtb2RlIDEwMDY0NCBNYWtl
ZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IGtyYWZ0LnlhbWwKCmRpZmYgLS1naXQgYS9Db25maWcu
dWsgYi9Db25maWcudWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNGQ4ZjEuLjAw
MDAwMDAKLS0tIGEvQ29uZmlnLnVrCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotIyMj
IEludmlzaWJsZSBvcHRpb24gZm9yIGRlcGVuZGVuY2llcwotY29uZmlnIEFQUEhUVFBSRVBMWV9E
RVBFTkRFTkNJRVMKLQlib29sCi0JZGVmYXVsdCB5Ci0Jc2VsZWN0IExJQk5PTElCQyBpZiAhSEFW
RV9MSUJDCi0Jc2VsZWN0IExJQkxXSVAKLQlzZWxlY3QgTFdJUF9VS05FVERFVgotCXNlbGVjdCBM
V0lQX1RDUAotCXNlbGVjdCBMV0lQX1RIUkVBRFMKLQlzZWxlY3QgTFdJUF9TT0NLRVQKLQlzZWxl
Y3QgTFdJUF9BVVRPSUZBQ0UKLQlzZWxlY3QgTFdJUF9JUFY0Ci0Jc2VsZWN0IExXSVBfREhDUAot
CXNlbGVjdCBMSUJVS1NDSEVECi0Jc2VsZWN0IExJQlVLU0NIRURDT09QCmRpZmYgLS1naXQgYS9N
QUlOVEFJTkVSUy5tZCBiL01BSU5UQUlORVJTLm1kCmluZGV4IDk1ZWRhMjUuLjY3OTU1MDkgMTAw
NjQ0Ci0tLSBhL01BSU5UQUlORVJTLm1kCisrKyBiL01BSU5UQUlORVJTLm1kCkBAIC02LDUgKzYs
NiBAQCB0aGUgbWFpbiBVbmlrcmFmdCByZXBvc2l0b3J5LgogCiAJSFRUUFJFUExZLVVOSUtSQUZU
CiAJTToJU2ltb24gS3VlbnplciA8c2ltb24ua3VlbnplckBuZWNsYWIuZXU+CisJTToJQWxleGFu
ZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KIAlMOgltaW5pb3MtZGV2ZWxAbGlzdHMueGVu
Lm9yZwogCUY6ICoKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGIxM2YxNTkuLjAwMDAwMDAKLS0tIGEvTWFrZWZpbGUKKysrIC9k
ZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVVLX1JPT1QgPz0gJChQV0QpLy4uLy4uL3VuaWtyYWZ0
Ci1VS19MSUJTID89ICQoUFdEKS8uLi8uLi9saWJzCi1MSUJTIDo9ICQoVUtfTElCUykvbHdpcAot
Ci1hbGw6Ci0JQCQoTUFLRSkgLUMgJChVS19ST09UKSBBPSQoUFdEKSBMPSQoTElCUykKLQotJChN
QUtFQ01ER09BTFMpOgotCUAkKE1BS0UpIC1DICQoVUtfUk9PVCkgQT0kKFBXRCkgTD0kKExJQlMp
ICQoTUFLRUNNREdPQUxTKQpkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1kCmluZGV4
IDExNDlkYzUuLmE3Zjc2ZjQgMTAwNjQ0Ci0tLSBhL1JFQURNRS5tZAorKysgYi9SRUFETUUubWQK
QEAgLTEsNSArMSwxMCBAQAotIkhUVFBSZXBseSItRXhhbXBsZSBmb3IgVW5pa3JhZnQKLT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEhUVFAgcmVwbHkgb24gVW5pa3JhZnQKIAot
UGxlYXNlIHJlZmVyIHRvIHRoZSBgUkVBRE1FLm1kYCBhcyB3ZWxsIGFzIHRoZSBkb2N1bWVudGF0
aW9uIGluIHRoZSBgZG9jL2AKLXN1YmRpcmVjdG9yeSBvZiB0aGUgbWFpbiB1bmlrcmFmdCByZXBv
c2l0b3J5LgorVG8gYnVpbGQgYW5kIHJ1biB0aGlzIGFwcGxpY2F0aW9uIHBsZWFzZSB1c2UgdGhl
IGBrcmFmdGAgc2NyaXB0OgorCisgICAgcGlwMyBpbnN0YWxsIGdpdCtodHRwczovL2dpdGh1Yi5j
b20vdW5pa3JhZnQva3JhZnQuZ2l0CisgICAgbWtkaXIgbXktZmlyc3QtdW5pa2VybmVsICYmIGNk
IG15LWZpcnN0LXVuaWtlcm5lbAorICAgIGtyYWZ0IHVwIC1wIFBMQVRGT1JNIC1tIEFSQ0hJVEVD
VFVSRSBodHRwcmVwbHkKKworRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYGtyYWZ0YCB0eXBl
IGBgYGtyYWZ0IC1oYGBgIG9yIHJlYWQgdGhlCitbZG9jdW1lbnRhdGlvbl0oaHR0cDovL2RvY3Mu
dW5pa3JhZnQub3JnKS4KZGlmZiAtLWdpdCBhL2tyYWZ0LnlhbWwgYi9rcmFmdC55YW1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxYjU5YTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9rcmFmdC55YW1sCkBAIC0wLDAgKzEsMzMgQEAKK3NwZWNpZmljYXRpb246ICcwLjQnCisKK3Vu
aWtyYWZ0OgorICB2ZXJzaW9uOiAnMC40JworICBrY29uZmlnOgorICAgIC0gQ09ORklHX0xJQk5P
TElCQz15CisgICAgLSBDT05GSUdfTElCVUtTQ0hFRD15CisgICAgLSBDT05GSUdfTElCVUtTQ0hF
RENPT1A9eQorCithcmNoaXRlY3R1cmVzOgorICB4ODZfNjQ6IHRydWUKKworcGxhdGZvcm1zOgor
ICBrdm06IHRydWUKKworcnVuOgorICBuZXR3b3JrczoKKyAgICBuZXQwOgorICAgICAgcHJlX3Vw
OiBrcmFmdC1uZXQgLS13aXRoLWRuc21hc3EgdXAKKyAgICAgIHBvc3RfZG93bjoga3JhZnQtbmV0
IC0td2l0aC1kbnNtYXNxIGRvd24KKworbGlicmFyaWVzOgorICBsd2lwOgorICAgIHZlcnNpb246
ICcwLjQnCisgICAga2NvbmZpZzoKKyAgICAgIC0gQ09ORklHX0xXSVBfVUtORVRERVY9eQorICAg
ICAgLSBDT05GSUdfTFdJUF9UQ1A9eQorICAgICAgLSBDT05GSUdfTFdJUF9USFJFQURTPXkKKyAg
ICAgIC0gQ09ORklHX0xXSVBfU09DS0VUPXkKKyAgICAgIC0gQ09ORklHX0xXSVBfQVVUT0lGQUNF
PXkKKyAgICAgIC0gQ09ORklHX0xXSVBfSVBWND15CisgICAgICAtIENPTkZJR19MV0lQX0RIQ1A9
eQorICAgICAgLSBDT05GSUdfTFdJUF9TT0NLRVRfUFBPTEw9bgotLSAKMi4yNC4xCgoKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1h
aWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0
cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 20:18:44 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 20:18:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5El1-0007xY-Vt; Fri, 21 Feb 2020 20:18:43 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=R2s4=4J=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j5El0-0007xT-Ge
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 20:18:42 +0000
X-Inumbo-ID: 58d308c7-54e7-11ea-86f1-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 58d308c7-54e7-11ea-86f1-12813bfff9fa;
 Fri, 21 Feb 2020 20:18:40 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id DAF52F2017;
 Fri, 21 Feb 2020 21:18:39 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id CSS5brzN4Onx; Fri, 21 Feb 2020 21:18:39 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 9F0A8F2016;
 Fri, 21 Feb 2020 21:18:35 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 21 Feb
 2020 21:18:35 +0100
To: Alexander Jung <a.jung@lancs.ac.uk>, <minios-devel@lists.xen.org>
References: <20200221201730.11960-1-a.jung@lancs.ac.uk>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <8e0ec3d1-b4fb-8e19-ef63-aa218f68ab29@neclab.eu>
Date: Fri, 21 Feb 2020 21:18:34 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <20200221201730.11960-1-a.jung@lancs.ac.uk>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/APP-HTTPREPLY v3] kraft: Initial
 commit for kraft support.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhhbmtzIGEgbG90IQoKUmV2aWV3ZWQtYnk6IFNpbW9uIEt1ZW56ZXIgPHNpbW9uLmt1ZW56ZXJA
bmVjbGFiLmV1PgoKT24gMjEuMDIuMjAgMjE6MTcsIEFsZXhhbmRlciBKdW5nIHdyb3RlOgo+IFNp
Z25lZC1vZmYtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+Cj4gLS0tCj4g
ICBDb25maWcudWsgICAgICB8IDE1IC0tLS0tLS0tLS0tLS0tLQo+ICAgTUFJTlRBSU5FUlMubWQg
fCAgMSArCj4gICBNYWtlZmlsZSAgICAgICB8ICA5IC0tLS0tLS0tLQo+ICAgUkVBRE1FLm1kICAg
ICAgfCAxMyArKysrKysrKystLS0tCj4gICBrcmFmdC55YW1sICAgICB8IDMzICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKwo+ICAgNSBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25z
KCspLCAyOCBkZWxldGlvbnMoLSkKPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBDb25maWcudWsKPiAg
IGRlbGV0ZSBtb2RlIDEwMDY0NCBNYWtlZmlsZQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGtyYWZ0
LnlhbWwKPiAKPiBkaWZmIC0tZ2l0IGEvQ29uZmlnLnVrIGIvQ29uZmlnLnVrCj4gZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggNGQ0ZDhmMS4uMDAwMDAwMAo+IC0tLSBhL0NvbmZpZy51
awo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSwxNSArMCwwIEBACj4gLSMjIyBJbnZpc2libGUgb3B0
aW9uIGZvciBkZXBlbmRlbmNpZXMKPiAtY29uZmlnIEFQUEhUVFBSRVBMWV9ERVBFTkRFTkNJRVMK
PiAtCWJvb2wKPiAtCWRlZmF1bHQgeQo+IC0Jc2VsZWN0IExJQk5PTElCQyBpZiAhSEFWRV9MSUJD
Cj4gLQlzZWxlY3QgTElCTFdJUAo+IC0Jc2VsZWN0IExXSVBfVUtORVRERVYKPiAtCXNlbGVjdCBM
V0lQX1RDUAo+IC0Jc2VsZWN0IExXSVBfVEhSRUFEUwo+IC0Jc2VsZWN0IExXSVBfU09DS0VUCj4g
LQlzZWxlY3QgTFdJUF9BVVRPSUZBQ0UKPiAtCXNlbGVjdCBMV0lQX0lQVjQKPiAtCXNlbGVjdCBM
V0lQX0RIQ1AKPiAtCXNlbGVjdCBMSUJVS1NDSEVECj4gLQlzZWxlY3QgTElCVUtTQ0hFRENPT1AK
PiBkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMubWQgYi9NQUlOVEFJTkVSUy5tZAo+IGluZGV4IDk1
ZWRhMjUuLjY3OTU1MDkgMTAwNjQ0Cj4gLS0tIGEvTUFJTlRBSU5FUlMubWQKPiArKysgYi9NQUlO
VEFJTkVSUy5tZAo+IEBAIC02LDUgKzYsNiBAQCB0aGUgbWFpbiBVbmlrcmFmdCByZXBvc2l0b3J5
Lgo+ICAgCj4gICAJSFRUUFJFUExZLVVOSUtSQUZUCj4gICAJTToJU2ltb24gS3VlbnplciA8c2lt
b24ua3VlbnplckBuZWNsYWIuZXU+Cj4gKwlNOglBbGV4YW5kZXIgSnVuZyA8YS5qdW5nQGxhbmNz
LmFjLnVrPgo+ICAgCUw6CW1pbmlvcy1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gICAJRjogKgo+IGRp
ZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
Cj4gaW5kZXggYjEzZjE1OS4uMDAwMDAwMAo+IC0tLSBhL01ha2VmaWxlCj4gKysrIC9kZXYvbnVs
bAo+IEBAIC0xLDkgKzAsMCBAQAo+IC1VS19ST09UID89ICQoUFdEKS8uLi8uLi91bmlrcmFmdAo+
IC1VS19MSUJTID89ICQoUFdEKS8uLi8uLi9saWJzCj4gLUxJQlMgOj0gJChVS19MSUJTKS9sd2lw
Cj4gLQo+IC1hbGw6Cj4gLQlAJChNQUtFKSAtQyAkKFVLX1JPT1QpIEE9JChQV0QpIEw9JChMSUJT
KQo+IC0KPiAtJChNQUtFQ01ER09BTFMpOgo+IC0JQCQoTUFLRSkgLUMgJChVS19ST09UKSBBPSQo
UFdEKSBMPSQoTElCUykgJChNQUtFQ01ER09BTFMpCj4gZGlmZiAtLWdpdCBhL1JFQURNRS5tZCBi
L1JFQURNRS5tZAo+IGluZGV4IDExNDlkYzUuLmE3Zjc2ZjQgMTAwNjQ0Cj4gLS0tIGEvUkVBRE1F
Lm1kCj4gKysrIGIvUkVBRE1FLm1kCj4gQEAgLTEsNSArMSwxMCBAQAo+IC0iSFRUUFJlcGx5Ii1F
eGFtcGxlIGZvciBVbmlrcmFmdAo+IC09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+
ICsjIEhUVFAgcmVwbHkgb24gVW5pa3JhZnQKPiAgIAo+IC1QbGVhc2UgcmVmZXIgdG8gdGhlIGBS
RUFETUUubWRgIGFzIHdlbGwgYXMgdGhlIGRvY3VtZW50YXRpb24gaW4gdGhlIGBkb2MvYAo+IC1z
dWJkaXJlY3Rvcnkgb2YgdGhlIG1haW4gdW5pa3JhZnQgcmVwb3NpdG9yeS4KPiArVG8gYnVpbGQg
YW5kIHJ1biB0aGlzIGFwcGxpY2F0aW9uIHBsZWFzZSB1c2UgdGhlIGBrcmFmdGAgc2NyaXB0Ogo+
ICsKPiArICAgIHBpcDMgaW5zdGFsbCBnaXQraHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L2ty
YWZ0LmdpdAo+ICsgICAgbWtkaXIgbXktZmlyc3QtdW5pa2VybmVsICYmIGNkIG15LWZpcnN0LXVu
aWtlcm5lbAo+ICsgICAga3JhZnQgdXAgLXAgUExBVEZPUk0gLW0gQVJDSElURUNUVVJFIGh0dHBy
ZXBseQo+ICsKPiArRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYGtyYWZ0YCB0eXBlIGBgYGty
YWZ0IC1oYGBgIG9yIHJlYWQgdGhlCj4gK1tkb2N1bWVudGF0aW9uXShodHRwOi8vZG9jcy51bmlr
cmFmdC5vcmcpLgo+IGRpZmYgLS1naXQgYS9rcmFmdC55YW1sIGIva3JhZnQueWFtbAo+IG5ldyBm
aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uOTFiNTlhOAo+IC0tLSAvZGV2L251bGwK
PiArKysgYi9rcmFmdC55YW1sCj4gQEAgLTAsMCArMSwzMyBAQAo+ICtzcGVjaWZpY2F0aW9uOiAn
MC40Jwo+ICsKPiArdW5pa3JhZnQ6Cj4gKyAgdmVyc2lvbjogJzAuNCcKPiArICBrY29uZmlnOgo+
ICsgICAgLSBDT05GSUdfTElCTk9MSUJDPXkKPiArICAgIC0gQ09ORklHX0xJQlVLU0NIRUQ9eQo+
ICsgICAgLSBDT05GSUdfTElCVUtTQ0hFRENPT1A9eQo+ICsKPiArYXJjaGl0ZWN0dXJlczoKPiAr
ICB4ODZfNjQ6IHRydWUKPiArCj4gK3BsYXRmb3JtczoKPiArICBrdm06IHRydWUKPiArCj4gK3J1
bjoKPiArICBuZXR3b3JrczoKPiArICAgIG5ldDA6Cj4gKyAgICAgIHByZV91cDoga3JhZnQtbmV0
IC0td2l0aC1kbnNtYXNxIHVwCj4gKyAgICAgIHBvc3RfZG93bjoga3JhZnQtbmV0IC0td2l0aC1k
bnNtYXNxIGRvd24KPiArCj4gK2xpYnJhcmllczoKPiArICBsd2lwOgo+ICsgICAgdmVyc2lvbjog
JzAuNCcKPiArICAgIGtjb25maWc6Cj4gKyAgICAgIC0gQ09ORklHX0xXSVBfVUtORVRERVY9eQo+
ICsgICAgICAtIENPTkZJR19MV0lQX1RDUD15Cj4gKyAgICAgIC0gQ09ORklHX0xXSVBfVEhSRUFE
Uz15Cj4gKyAgICAgIC0gQ09ORklHX0xXSVBfU09DS0VUPXkKPiArICAgICAgLSBDT05GSUdfTFdJ
UF9BVVRPSUZBQ0U9eQo+ICsgICAgICAtIENPTkZJR19MV0lQX0lQVjQ9eQo+ICsgICAgICAtIENP
TkZJR19MV0lQX0RIQ1A9eQo+ICsgICAgICAtIENPTkZJR19MV0lQX1NPQ0tFVF9QUE9MTD1uCj4g
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3Mt
ZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 21 20:27:05 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 21 Feb 2020 20:27:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5Et6-0000P8-N9; Fri, 21 Feb 2020 20:27:04 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=R2s4=4J=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j5Et4-0000P3-Pp
 for minios-devel@lists.xen.org; Fri, 21 Feb 2020 20:27:02 +0000
X-Inumbo-ID: 83eda02e-54e8-11ea-86f4-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 83eda02e-54e8-11ea-86f4-12813bfff9fa;
 Fri, 21 Feb 2020 20:27:01 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id BA6E4F201D;
 Fri, 21 Feb 2020 21:27:00 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id pT79DsOkmYfK; Fri, 21 Feb 2020 21:27:00 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 8D7E2F2016
 for <minios-devel@lists.xen.org>; Fri, 21 Feb 2020 21:26:58 +0100 (CET)
Received: from [10.7.0.24] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 21 Feb
 2020 21:26:58 +0100
To: <minios-devel@lists.xen.org>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <57af72eb-ed77-af2d-bb0a-e16ed760156b@neclab.eu>
Date: Fri, 21 Feb 2020 21:26:57 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To puck.office.hd
 (192.168.24.91)
Subject: [Minios-devel] Unikraft 0.4 Rhea Release
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgYWxsLAoKdGhlIFVuaWtyYWZ0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhhdCBhIG5l
dyByZWxlYXNlIGlzIG91dDoKICAgICAwLjQgUmhlYQoKVGhpcyByZWxlYXNlIGlzIHRhZ2dlZCB3
aXRoIGBSRUxFQVNFLTAuNGAgaW4gdGhlIHJlcG9zaXRvcmllcy4KSXQgaW5jbHVkZXMgbWFueSBl
eGNpdGluZyBmZWF0dXJlcywgdGhlIGJpZ2dlc3Qgb25lcyBhcmU6CgogIC0gU3VwcG9ydCBmb3Ig
ZXh0ZXJuYWwgcGxhdGZvcm1zLCBhbmQgaW4gcGFydGljdWxhciBzb2xvNQogIC0gQ2xvdWQtYmFz
ZWQgZGVwbG95bWVudHMgKEdDUCwgQVdTLCBEaWdpdGFsIE9jZWFuKQogIC0gTmF0aXZlIHN1cHBv
cnQgZm9yIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIGFuZCBlbnZpcm9ubWVudHM6CiAgICBD
KyssIFB5dGhvbi9NaWNyb3B5dGhvbiwgR28sIEx1YSwgV2ViIEFzc2VtYmx5IChXQU1SKSwKICAg
IEphdmFTY3JpcHQgKER1a3RhcGUpLCBSdWJ5CiAgLSBJbXByb3ZlbWVudHMgdG8gdGhlIEFSTTY0
IHBsYXRmb3JtLCBpbmNsdWRpbmcgdmlydGlvIGFuZAogICAgbXVsdGktdGhyZWFkIHN1cHBvcnQK
ICAtIEJhc2ljIG11c2wgc3VwcG9ydAogIC0gcHRocmVhZCBhbmQgVExTIHN1cHBvcnQKICAtIFRy
YWNlIHBvaW50IHN1Yi1zeXN0ZW0KICAtIEZpbGVzeXN0ZW0gc3VwcG9ydCAoOXBmcywgZGV2ZnMs
IHJhbWZzKQogIC0gQXBwbGljYXRpb25zOiBDbGljaywgU1FMaXRlLCBuZ2lueCwgcmVkaXMKICAt
IEFkZGl0aW9uYWwgbGliIHBvcnRzOiB1dWlkLCBodHRwLXBhcnNlciwgaW50ZWwtaW50cmluc2lj
cywgb3BlbnNzbCwKICAgIGJvb3N0LCBwcm90b2J1ZiwgZXRjLgoKVG9nZXRoZXIgd2l0aCB0aGlz
IHJlbGVhc2UsIHdlIGFyZSBwcm91ZGx5IGludHJvZHVjaW5nIGBrcmFmdGAuIEl0IGlzIGEgCm5l
dyB0b29sIHdoaWNoIGdyZWF0bHkgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBidWlsZGluZyBh
bmQgcnVubmluZyAKVW5pa3JhZnQtYnVpbHQgdW5pa2VybmVscy4gWW91IGNhbiBjaGVjayBpdCBv
dXQgYXQ6CiAgaHR0cHM6Ly9naXRodWIuY29tL3VuaWtyYWZ0L2tyYWZ0CgpXZSB3YW50IHRvIHNl
bmQgYSBiaWcgdGhhbmsgeW91IHRvIGFsbCBjb250cmlidXRvcnM6CldpdGhvdXQgeW91ciBlZmZv
cnQgd2Ugd291bGRuJ3QgaGF2ZSBhY2hpZXZlZCBzbyBtdWNoIQoKICAgQ29zdGluIEx1cHUgICAg
ICAgICAgICAgICAgICAgICAyNzAgKDIyLjAlKQogICBWbGFkLUFuZHJlaSBCxIJET0lVICAgICAg
ICAgICAgICAxNTUgKDEyLjclKQogICBTaW1vbiBLdWVuemVyICAgICAgICAgICAgICAgICAgIDEy
NyAoMTAuNCUpCiAgIEZlbGlwZSBIdWljaSAgICAgICAgICAgICAgICAgICAgIDk4ICg4LjAlKQog
ICBZdXJpIFZvbGNoa292ICAgICAgICAgICAgICAgICAgICA3NSAoNi4xJSkKICAgU2hhcmFuIFNh
bnRoYW5hbSAgICAgICAgICAgICAgICAgNzQgKDYuMCUpCiAgIEZsb3JpYW4gU2NobWlkdCAgICAg
ICAgICAgICAgICAgIDY5ICg1LjYlKQogICBKaWEgSGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2MCAoNC45JSkKICAgV2VpIENoZW4gICAgICAgICAgICAgICAgICAgICAgICAgNDUgKDMuNyUp
CiAgIE1paGFpIFBvZ29uYXJ1ICAgICAgICAgICAgICAgICAgIDM3ICgzLjAlKQogICBHYXVsdGhp
ZXIgR2FpbiAgICAgICAgICAgICAgICAgICAzNiAoMi45JSkKICAgQ3Jpc3RpYW4gQmFudSAgICAg
ICAgICAgICAgICAgICAgMzEgKDIuNSUpCiAgIENoYXJhbGFtcG9zIE1haW5hcyAgICAgICAgICAg
ICAgIDI5ICgyLjQlKQogICBSb3hhbmEgTmljb2xlc2N1ICAgICAgICAgICAgICAgICAyOCAoMi4z
JSkKICAgSmlhbnlvbmcgV3UgICAgICAgICAgICAgICAgICAgICAgMTUgKDEuMiUpCiAgIEFuZHJl
aSBHb2dvbmVhICAgICAgICAgICAgICAgICAgIDEyICgxLjAlKQogICBIdWdvIExlZmV1dnJlICAg
ICAgICAgICAgICAgICAgICAxMSAoMC45JSkKICAgQm9nZGFuIExhc2N1ICAgICAgICAgICAgICAg
ICAgICAgMTAgKDAuOCUpCiAgIFRlb2RvcmEgU2VyYmFuZXNjdSAgICAgICAgICAgICAgICA4ICgw
LjclKQogICBTdGVmYW4gVGVvZG9yZXNjdSAgICAgICAgICAgICAgICAgOCAoMC43JSkKICAgU2Fu
dGlhZ28gUGFnYW5pICAgICAgICAgICAgICAgICAgIDggKDAuNyUpCiAgIEFsZXhhbmRlciBKdW5n
ICAgICAgICAgICAgICAgICAgICA3ICgwLjYlKQogICBIYWlibyBYdSAgICAgICAgICAgICAgICAg
ICAgICAgICAgNyAoMC42JSkKICAgQ3lyaWwgU29sZGFuaSAgICAgICAgICAgICAgICAgICAgIDIg
KDAuMiUpCiAgIEp1YW4gUGljY2EgICAgICAgICAgICAgICAgICAgICAgICAxICgwLjElKQogICBB
bGluYSBWb2xjaGtvdmEgICAgICAgICAgICAgICAgICAgMSAoMC4xJSkKICAgUmFkdSBOaWNvbGF1
ICAgICAgICAgICAgICAgICAgICAgIDEgKDAuMSUpCgogICAgICAgICAgKE51bWJlcnMgYXJlIGJh
c2VkIG9uIFNpZ25lZC1vZmYtYnkgdGFncykKCkFub3RoZXIgdGhhbmsgeW91IGdvZXMgdG8gYWxs
IG9mIG91ciByZXZpZXdlcnM6ClRoYW5rIHlvdSBzbyBtdWNoIGZvciB5b3VyIGVmZm9ydHMhCgog
ICBGZWxpcGUgSHVpY2kgICAgICAgICAgICAgICAgICAgIDM1NiAoMzMuMyUpCiAgIENvc3RpbiBM
dXB1ICAgICAgICAgICAgICAgICAgICAgMTg5ICgxNy43JSkKICAgU2ltb24gS3VlbnplciAgICAg
ICAgICAgICAgICAgICAxNTggKDE0LjglKQogICBTaGFyYW4gU2FudGhhbmFtICAgICAgICAgICAg
ICAgICA5MCAoOC40JSkKICAgVmxhZC1BbmRyZWkgQsSCRE9JVSAoNzg2OTIpICAgICAgIDYxICg1
LjclKQogICBGbG9yaWFuIFNjaG1pZHQgICAgICAgICAgICAgICAgICA1NiAoNS4yJSkKICAgU3Rl
ZmFuIFRlb2RvcmVzY3UgICAgICAgICAgICAgICAgMzkgKDMuNiUpCiAgIFJveGFuYSBOaWNvbGVz
Y3UgICAgICAgICAgICAgICAgIDI3ICgyLjUlKQogICBHYXVsdGhpZXIgR2FpbiAgICAgICAgICAg
ICAgICAgICAyNCAoMi4yJSkKICAgU2FudGlhZ28gUGFnYW5pICAgICAgICAgICAgICAgICAgMTkg
KDEuOCUpCiAgIENoYXJhbGFtcG9zIE1haW5hcyAgICAgICAgICAgICAgIDE3ICgxLjYlKQogICBZ
dXJpIFZvbGNoa292ICAgICAgICAgICAgICAgICAgICAxMyAoMS4yJSkKICAgSmlhIEhlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTEgKDEuMCUpCiAgIE1paGFpIFBvZ29uYXJ1ICAgICAgICAg
ICAgICAgICAgICA1ICgwLjUlKQogICBBbGV4YW5kZXIgSnVuZyAgICAgICAgICAgICAgICAgICAg
MyAoMC4zJSkKICAgSnVsaWVuIEdyYWxsICAgICAgICAgICAgICAgICAgICAgIDEgKDAuMSUpCgog
ICAgICAgICAgKE51bWJlcnMgYXJlIGJhc2VkIG9uIFJldmlld2VkLWJ5IHRhZ3MpCgpXZSBhbHNv
IHdhbnQgdG8gc2VuZCBvdXIgc3BlY2lhbCB0aGFua3MgdG8KCiAgIE11amFoaWQgQWxpIGFuZCBB
bGV4YW5kZXIgSnVuZwogICAgZm9yIHRoZSBga3JhZnRgIHRvb2wgYW5kIGRlcGxveWluZyB1bmlr
cmFmdC5vcmcuCgogICBNdWphaGlkIEFsaSBhbmQgQWxleGFuZGVyIEp1bmcKICAgIGZvciBwcm92
aWRpbmcgaW1hZ2Ugc3VwcG9ydCBmb3IgQW1hem9uIFdlYiBTZXJ2aWNlcywKICAgIEdvb2dsZSBD
bG91ZCwgYW5kIERpZ2l0YWwgT2NlYW4uCgogICBEYXZpZGUgU2Fudml0bywgQWxleGFuZGVyIEp1
bmcsIGFuZCBTYW50aWFnbyBQaWdhbmkKICAgIGZvciB0aGVpciB3b3JrIG9uIHRoZSBDSSBzeXN0
ZW0gdGhhdCB3ZSBhcmUgc3RhcnRpbmcKICAgIHRvIHVzZSBmb3IgYXV0b21hdGVkIHRlc3Rpbmcu
CgogICBKdWxpZW4gR3JhbGwKICAgIGZvciBoaXMgcmV2aWV3aW5nIHN1cHBvcnQuCgpUaGFua3Ms
ClNpbW9uCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpN
aW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRl
dmVs

From minios-devel-bounces@lists.xenproject.org Sat Feb 22 10:00:58 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 22 Feb 2020 10:00:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5Rag-0005FR-Tp; Sat, 22 Feb 2020 10:00:54 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <SRS0=IrNR=4K=owl.eu.com=hle@srs-us1.protection.inumbo.net>)
 id 1j5Raf-0005FM-Nv
 for minios-devel@lists.xenproject.org; Sat, 22 Feb 2020 10:00:53 +0000
X-Inumbo-ID: 347f4d86-555a-11ea-ade5-bc764e2007e4
Received: from relay7-d.mail.gandi.net (unknown [217.70.183.200])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 347f4d86-555a-11ea-ade5-bc764e2007e4;
 Sat, 22 Feb 2020 10:00:51 +0000 (UTC)
X-Originating-IP: 141.70.45.131
Received: from localhost (hadi-gate-vlan-851.hadiko.whka.de [141.70.45.131])
 (Authenticated sender: hle@owl.eu.com)
 by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id C6E7120002;
 Sat, 22 Feb 2020 10:00:48 +0000 (UTC)
Date: Sat, 22 Feb 2020 11:00:48 +0100
From: Hugo Lefeuvre <hle@owl.eu.com>
To: minios-devel@lists.xenproject.org
Message-ID: <27084bb32a3e652b35f68851c4d06850a4bc9e88.1582364971.git.hle@owl.eu.com>
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/ukalloc: fix multiple unsigned
 overflows
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: multipart/mixed; boundary="===============2823264454829811590=="
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>


--===============2823264454829811590==
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="o3mnr73yocg2n6xh"
Content-Disposition: inline


--o3mnr73yocg2n6xh
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

+ make sure realsize does not overflow in uk_malloc_ifpages and
  uk_posix_memalign_ifpages.
+ make sure to not overflow when converting the number of pages to a
  size in bytes in uk_palloc_compat.
+ make sure to not overflow when computing array size in
  uk_calloc_compat. POSIX is not very clear about this, but both
  OpenBSD and Linux do check this.

size_t and ulong overflows are unsigned overflows, thus well defined.
We can check for overflow via new_value < value.

Signed-off-by: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
---
 lib/ukalloc/alloc.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/lib/ukalloc/alloc.c b/lib/ukalloc/alloc.c
index 2d16057..c0c9730 100644
--- a/lib/ukalloc/alloc.c
+++ b/lib/ukalloc/alloc.c
@@ -169,7 +169,8 @@ void *uk_malloc_ifpages(struct uk_alloc *a, size_t size)
 	size_t realsize =3D sizeof(*metadata) + size;
=20
 	UK_ASSERT(a);
-	if (!size)
+	/* check for invalid size and overflow */
+	if (!size || realsize < size)
 		return NULL;
=20
 	num_pages =3D size_to_num_pages(realsize);
@@ -271,6 +272,11 @@ int uk_posix_memalign_ifpages(struct uk_alloc *a,
 	 * order to be sure to find an aligned pointer preceding `size` bytes.
 	 */
 	realsize =3D size + padding + align;
+
+	/* check for overflow */
+	if (realsize < size)
+		return EINVAL;
+
 	num_pages =3D size_to_num_pages(realsize);
 	intptr =3D (uintptr_t) uk_palloc(a, num_pages);
=20
@@ -282,7 +288,7 @@ int uk_posix_memalign_ifpages(struct uk_alloc *a,
=20
 	metadata =3D uk_get_metadata(*memptr);
=20
-	/* check for underflow */
+	/* check for underflow (should not happen) */
 	UK_ASSERT(intptr <=3D (uintptr_t) metadata);
=20
 	metadata->num_pages =3D num_pages;
@@ -308,6 +314,10 @@ void *uk_palloc_compat(struct uk_alloc *a, unsigned lo=
ng num_pages)
=20
 	UK_ASSERT(a);
=20
+	/* check for overflow */
+	if (num_pages > (~(size_t)0)/__PAGE_SIZE)
+		return NULL;
+
 	if (uk_posix_memalign(a, &ptr, __PAGE_SIZE, num_pages * __PAGE_SIZE))
 		return NULL;
=20
@@ -342,6 +352,10 @@ void *uk_calloc_compat(struct uk_alloc *a, size_t nmem=
b, size_t size)
 	void *ptr;
 	size_t tlen =3D nmemb * size;
=20
+	/* check for overflow */
+	if (nmemb > (~(size_t)0)/size)
+		return NULL;
+
 	UK_ASSERT(a);
 	ptr =3D uk_malloc(a, tlen);
 	if (!ptr)
--=20
2.24.1

--o3mnr73yocg2n6xh
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQGzBAABCgAdFiEEeDb9QWtkMa2LX4zREeMFjl5EGkIFAl5Q+8EACgkQEeMFjl5E
GkKK8wwAtfdDUvnV3UX9BmdIbGecbEHBuDOqsdgGpZpDy3hsqzdZoywTJMv8tO69
+3YgJIpvvA4sIBhRcn9vDeonJOXw8zjScBeqWl8bt7TaqpPvKUrwPe5PMau/3CoT
i3xTh4BrTlg4DCGzc/fKAzwNqWftkUP3josJrxgSp+UarYBjieJnI36E+fropovv
9gRavGEHvOZmv8LNr7W/Ko0Ka+CenlAqilbjNqyec+tagvx0hnikTFmF/Rtt3mb8
10FJplSRZxNbLyY9MXn1e0Dp7lG5L2D22lYJmjdgE6iSxSNLKaRYODjaBp6TQyu/
ovfytBK2NF71w4VNjzJweYYyHG7FvLSNVsaP0nnmGUWWq/kp3QXYMoDcl++O5X6a
XkPWvWIe1tdwmHQbtntHS9MT1Bnh33aUq6R18QivpETib1kzuop0yMTbDLEvZPvx
EkEYhBvx9u/yr4CBBqzWEyeveetXQWq8B6j9CHlll/4SMJLgI2TJmgeIA0RvgK/5
bUZKV7r/
=sHXQ
-----END PGP SIGNATURE-----

--o3mnr73yocg2n6xh--


--===============2823264454829811590==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

--===============2823264454829811590==--


From minios-devel-bounces@lists.xenproject.org Sat Feb 22 20:43:39 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 22 Feb 2020 20:43:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j5bcc-0004kr-74; Sat, 22 Feb 2020 20:43:34 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <SRS0=IrNR=4K=owl.eu.com=hle@srs-us1.protection.inumbo.net>)
 id 1j5bcb-0004km-8L
 for minios-devel@lists.xenproject.org; Sat, 22 Feb 2020 20:43:33 +0000
X-Inumbo-ID: fce73564-55b3-11ea-8947-12813bfff9fa
Received: from relay12.mail.gandi.net (unknown [217.70.178.232])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id fce73564-55b3-11ea-8947-12813bfff9fa;
 Sat, 22 Feb 2020 20:43:32 +0000 (UTC)
Received: from localhost (hadi-gate-vlan-851.hadiko.whka.de [141.70.45.131])
 (Authenticated sender: hle@owl.eu.com)
 by relay12.mail.gandi.net (Postfix) with ESMTPSA id 373C3200002;
 Sat, 22 Feb 2020 20:43:30 +0000 (UTC)
Date: Sat, 22 Feb 2020 21:43:29 +0100
From: Hugo Lefeuvre <hle@owl.eu.com>
To: minios-devel@lists.xenproject.org
Message-ID: <5912d04b5455c5f02b61bf8d5ff2323746780c76.1582404033.git.hle@owl.eu.com>
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/vfscore: fix use of
 uninitialized struct vnode fields
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: multipart/mixed; boundary="===============0597253639051387193=="
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>


--===============0597253639051387193==
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="57krwggqwowlz6n3"
Content-Disposition: inline


--57krwggqwowlz6n3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

struct vnode as it is returned by vfscore_vget is in a mostly
uninitialized state. Apart from v_ino, v_mount, v_refcnt and v_op,
most fields are uninitialized. This causes highly unpredictable issues
with underlying filesystem implementations not initializing the
remaining fields themselves.

A concrete example is ramfs, which does not initialize v_flags. This
causes some vnodes to have the VROOT flag set. As a consequence,
sys_unlink spuriously returns EBUSY, causing SQLite to experience
delays and I/O errors while performing operations on the rollback
journal.

Allocate struct vnode using calloc instead of malloc to make sure that
all struct fields are properly initialized (this avoids v_data to be a
wild reference, and correctly initializes v_type, among others).

Please, note that while this prevents further issues with other
uninitialized fields, calloc has an additional (minor) performance
overhead over malloc.  Alternatively, one can initialize v_flags to
zero in ramfs_lookup (uk_9pfs_lookup is doing this).

Signed-off-by: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
---
 lib/vfscore/vnode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/vfscore/vnode.c b/lib/vfscore/vnode.c
index 51bd756..6b5ea12 100644
--- a/lib/vfscore/vnode.c
+++ b/lib/vfscore/vnode.c
@@ -191,7 +191,7 @@ vfscore_vget(struct mount *mp, uint64_t ino, struct vno=
de **vpp)
 		return 1;
 	}
=20
-	vp =3D malloc(sizeof(*vp));
+	vp =3D calloc(1, sizeof(*vp));
 	if (!vp) {
 		VNODE_UNLOCK();
 		return 0;
--=20
2.24.1

--57krwggqwowlz6n3
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQGzBAABCgAdFiEEeDb9QWtkMa2LX4zREeMFjl5EGkIFAl5RkmEACgkQEeMFjl5E
GkLM4Av+O1v6Mb44M9nMeriRRJJpgHyyyEJPzqjBJ4ackUOoGYkaCRljWolOnRxS
gM8tIpuE4RNBEW05DWrKCL4IxMNPLEa3bOmwAWbqsexnXdtAd0j6WVmIOYcg1f8D
X4QDwsg/E+KOeBXPUrxDuoGZaKJyhzHThssKiAIb4z3mCFxMDQfZrrVO+nlmLYPq
afsMIjJN8fBIEIk+qr4TOoqbWRl8uoeeSrgkebfEH7TNreqb54mQtFAtOGnItYfT
rBHee3Fq9CgDOm8JwxEz9l0O+KKKsuY8zpZ2SLYimsMPtwez7Mw0ZX1YfgG+UxYY
O5uqLOn8saHOi8QOeIp/WS0d/vz64ORaYdYDoy7BLc8O3gOis5FQD3+y9axIYab6
1IYBOSA2n+dB+jEBgviPI43GgCm14pxYZz105KYAb399+l9a8K5N1E1yuIMQd1kI
W+rG9RiJXoVY8dukE+PtoAIlUmQxaH2t8un5cZu43W6hutrlexNshgp97mkM4ubW
RR0TX9T4
=8zFW
-----END PGP SIGNATURE-----

--57krwggqwowlz6n3--


--===============0597253639051387193==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

--===============0597253639051387193==--


From minios-devel-bounces@lists.xenproject.org Mon Feb 24 06:31:30 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 24 Feb 2020 06:31:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j67H7-0006sU-0D; Mon, 24 Feb 2020 06:31:29 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <SRS0=bNxb=4M=arm.com=justin.he@srs-us1.protection.inumbo.net>)
 id 1j67H5-0006sO-Sj
 for minios-devel@lists.xenproject.org; Mon, 24 Feb 2020 06:31:27 +0000
X-Inumbo-ID: 4897750c-56cf-11ea-b0fd-bc764e2007e4
Received: from foss.arm.com (unknown [217.140.110.172])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTP
 id 4897750c-56cf-11ea-b0fd-bc764e2007e4;
 Mon, 24 Feb 2020 06:31:26 +0000 (UTC)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3D79F30E;
 Sun, 23 Feb 2020 22:31:26 -0800 (PST)
Received: from localhost.localdomain (entos-thunderx2-02.shanghai.arm.com
 [10.169.138.57])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 582723F534;
 Sun, 23 Feb 2020 22:35:14 -0800 (PST)
From: Jia He <justin.he@arm.com>
To: minios-devel@lists.xenproject.org, Simon Kuenzer <simon.kuenzer@neclab.eu>,
 Santiago.Pagani@neclab.eu
Date: Mon, 24 Feb 2020 14:31:13 +0800
Message-Id: <20200224063113.107122-1-justin.he@arm.com>
X-Mailer: git-send-email 2.17.1
Subject: [Minios-devel] [UNIKRAT RFC PATCH] build: Introduce flag
 CFLAGS_REMOVE to remove some options
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, Kaly Xin <Kaly.Xin@arm.com>,
 Julien Grall <julien.grall@arm.com>, Jia He <justin.he@arm.com>,
 Sharan.Santhanam@neclab.eu
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UHJldmlvdXNseSwgdGhlcmUgaXMgbm8gd2F5IHRvIHJlbW92ZSBhbnkgZ2xvYmFsIG9wdGlvbnMg
Zm9yIGluZGl2aWR1YWwKbGlicmFyeS4gRm9yIHNvbWUgcmVhc29uLCBvbiBhcm02NCB3ZSBuZWVk
IHRvIHVzZSBtZ2VuZXJhbC1yZWdzLW9ubHkKZm9yIHVuaWtyYWZ0IHBsYXQgbGlicmFyeSAoY29u
dGV4dCBzd2l0Y2gsIHByaW50IGRlYnVnKS4gQnV0IGZvciBzb21lCm90aGVyIGxpYnJhcmllcyAo
ZS5nLiBuZXdsaWIpLCB3ZSBzaG91bGRuJ3QgdXNlIHRoYXQgb3B0aW9uIGR1ZSB0bwpmbG9hdCBw
b2ludC9zaW1kIHN1cHBvcnQgb24gYXJtNjQuCgpUaGlzIHBhdGNoIGFkZHMgYSBuZXcgZmxhZyBD
RkxBR1NfUkVNT1ZFIHRvIGZpbHRlciBpdCBvdXQgaW4gdW5pa3JhZnQKYnVpbGQgc3lzdGVtLgoK
U2lnbmVkLW9mZi1ieTogSmlhIEhlIDxqdXN0aW4uaGVAYXJtLmNvbT4KLS0tCiBzdXBwb3J0L2J1
aWxkL01ha2VmaWxlLnJ1bGVzIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z
KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5y
dWxlcyBiL3N1cHBvcnQvYnVpbGQvTWFrZWZpbGUucnVsZXMKaW5kZXggZDYwYzZkOS4uZGVhMmM3
ZiAxMDA2NDQKLS0tIGEvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5ydWxlcworKysgYi9zdXBwb3J0
L2J1aWxkL01ha2VmaWxlLnJ1bGVzCkBAIC0zOTEsNyArMzkxLDkgQEAgJCgzKTogJCgyKSB8IHBy
ZXBhcmUKIAkkKGNhbGwgYnVpbGRfY21kX2ZpeGRlcCxDQywkKDEpLCQoMyksXAogCQkkKENDKSAg
JChDSU5DTFVERVMpICQoQ0lOQ0xVREVTLXkpIFwKIAkJICAgICAgICQoJChjYWxsIHZwcmVmaXhf
bGliLCQoMSksQ0lOQ0xVREVTKSkgJCgkKGNhbGwgdnByZWZpeF9saWIsJCgxKSxDSU5DTFVERVMt
eSkpIFwKLQkJICAgICAgICQoQ0ZMQUdTKSAkKENGTEFHUy15KSAkKERCR0ZMQUdTKSAkKERCR0ZM
QUdTLXkpIFwKKwkJICAgICAgICQoZmlsdGVyLW91dCAkKENGTEFHU19SRU1PVkUpLCQoQ0ZMQUdT
KSkgXAorICAgICAgICAgICAgICAgICAgICAgICAkKGZpbHRlci1vdXQgJChDRkxBR1NfUkVNT1ZF
KSwkKENGTEFHUy15KSkgXAorICAgICAgICAgICAgICAgICAgICAgICAkKERCR0ZMQUdTKSAkKERC
R0ZMQUdTLXkpIFwKIAkJICAgICAgICQoJChjYWxsIHZwcmVmaXhfbGliLCQoMSksQ0ZMQUdTKSkg
JCgkKGNhbGwgdnByZWZpeF9saWIsJCgxKSxDRkxBR1MteSkpIFwKIAkJICAgICAgICQoNCkgLURf
X0xJQk5BTUVfXz0kKDEpIC1EX19CQVNFTkFNRV9fPSQobm90ZGlyICQoMikpIFwKIAkJICAgICAg
IC1jICQoMikgLW8gJCgzKSAkKGRlcGZsYWdzKQotLSAKMi4xNy4xCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlz
dApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Mon Feb 24 06:36:32 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 24 Feb 2020 06:36:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j67Lz-0006y6-FN; Mon, 24 Feb 2020 06:36:31 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <SRS0=bNxb=4M=arm.com=justin.he@srs-us1.protection.inumbo.net>)
 id 1j67Ly-0006y1-C8
 for minios-devel@lists.xenproject.org; Mon, 24 Feb 2020 06:36:30 +0000
X-Inumbo-ID: fc488bb8-56cf-11ea-ade5-bc764e2007e4
Received: from EUR04-VI1-obe.outbound.protection.outlook.com (unknown
 [40.107.8.47]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id fc488bb8-56cf-11ea-ade5-bc764e2007e4;
 Mon, 24 Feb 2020 06:36:28 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; 
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0C+ltlTia8wcx4cOchE5YOUdagxEZG4OEo1v12EThZU=;
 b=MO/w/16KsEPIWaOcgg8ykA1YAPnYwhqOPFBl3ZqpWdj/PF5ePI1FJapoqdjm520UMTmg7aBSkEbtwjGmeH0Yiosmpu4+IU5XcF735gdWu8u4S7N27nnbiE7m/3gPcNinPHMDJR+g0BPskOEb0T3T3fh3xZTLstN63ypM1W8D8v0=
Received: from VI1PR08CA0145.eurprd08.prod.outlook.com (2603:10a6:800:d5::23)
 by VI1PR0801MB1952.eurprd08.prod.outlook.com (2603:10a6:800:8a::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.21; Mon, 24 Feb
 2020 06:36:25 +0000
Received: from VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com
 (2a01:111:f400:7e09::201) by VI1PR08CA0145.outlook.office365.com
 (2603:10a6:800:d5::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.18 via Frontend
 Transport; Mon, 24 Feb 2020 06:36:25 +0000
Authentication-Results: spf=pass (sender IP is 63.35.35.123)
 smtp.mailfrom=arm.com; lists.xenproject.org; dkim=pass (signature was
 verified) header.d=armh.onmicrosoft.com;lists.xenproject.org;
 dmarc=bestguesspass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 63.35.35.123 as permitted sender) receiver=protection.outlook.com;
 client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 VE1EUR03FT007.mail.protection.outlook.com (10.152.18.114) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2750.17 via Frontend Transport; Mon, 24 Feb 2020 06:36:25 +0000
Received: ("Tessian outbound 846b976b3941:v42");
 Mon, 24 Feb 2020 06:36:25 +0000
X-CR-MTA-TID: 64aa7808
Received: from ec2e40752a81.4
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E74415F5-716A-48C7-B48B-D7B24CC489BD.1; 
 Mon, 24 Feb 2020 06:36:20 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ec2e40752a81.4
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 24 Feb 2020 06:36:20 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=J04GRr7de6xJ7PiaSiPXnEf2CzX9ZUs9q5mSAThEYsULQNuI1yK6qs8zGn+1W31HCmCssVAK5/kzCKL+ot9Cz4TPASPNZH3ERqGDJC0beRbm2TdgyvjGd77CtI3UoVucC6fBmb1ylRy+9yMnVSYTzGA5PEQZpqXzeTx9eEb1KTwCd8KR8/JLmvRIoBAK8hDsHMQHtgfS0ctPmX4oD1QRP/7fGWR8PZBzPE0GVwdM46fFbghAme4ose0FdHCZP7TIx1RCiYBv5qIcnP2MC8Sn2PYmWLkhXCEIur4J/FTw2Ur4+1vBsehqBxQAlUZqw/YDZuwHkeiTfzAjQg1BqIDR9Q==
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=0C+ltlTia8wcx4cOchE5YOUdagxEZG4OEo1v12EThZU=;
 b=TPaY59DxilRLf9HKQbUH65fb9YrLzQUqguXHE23uxMNfgbRH4tZLoCfXcu4r7NjNUhMdFar7n0ns3HFFor1jgAIJhRJakGfzRylHO8GRYH7aGSAPmVvpQNYAnMOso7CEzeLKfP+EsFadrZzkG3vhZT/OZtJHrR/ZpHFpVXf83Tl5XDTDVZ0sqthHOOXIqK358fwUvoN74YDWlhtv2bW9a7mrMzD68th04iOFp8kTQKphxTgku0XmDTVCyXWy7ZKMDgyVt+7xnL3AFmu/UpR+lj/QzFGrn/UJhFD5ByHvA/HynyqcPIXcFVKwuaebJUXdshd40pRMwZ5OJOZX8/h2+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; 
 s=selector2-armh-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0C+ltlTia8wcx4cOchE5YOUdagxEZG4OEo1v12EThZU=;
 b=MO/w/16KsEPIWaOcgg8ykA1YAPnYwhqOPFBl3ZqpWdj/PF5ePI1FJapoqdjm520UMTmg7aBSkEbtwjGmeH0Yiosmpu4+IU5XcF735gdWu8u4S7N27nnbiE7m/3gPcNinPHMDJR+g0BPskOEb0T3T3fh3xZTLstN63ypM1W8D8v0=
Received: from VE1PR08MB4639.eurprd08.prod.outlook.com (10.255.112.205) by
 VE1PR08MB5103.eurprd08.prod.outlook.com (20.179.30.13) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2750.21; Mon, 24 Feb 2020 06:36:18 +0000
Received: from VE1PR08MB4639.eurprd08.prod.outlook.com
 ([fe80::c9ee:3f89:c4ac:416]) by VE1PR08MB4639.eurprd08.prod.outlook.com
 ([fe80::c9ee:3f89:c4ac:416%7]) with mapi id 15.20.2750.021; Mon, 24 Feb 2020
 06:36:18 +0000
From: Justin He <Justin.He@arm.com>
To: Justin He <Justin.He@arm.com>, "minios-devel@lists.xenproject.org"
 <minios-devel@lists.xenproject.org>, Simon Kuenzer <simon.kuenzer@neclab.eu>, 
 "Santiago.Pagani@neclab.eu" <Santiago.Pagani@neclab.eu>
Thread-Topic: [UNIKRAT RFC PATCH] build: Introduce flag CFLAGS_REMOVE to
 remove some options
Thread-Index: AQHV6twPXpcKVRblJEuJurN1kDebf6gp4u4Q
Date: Mon, 24 Feb 2020 06:36:18 +0000
Message-ID: <VE1PR08MB4639B6EDE61930A98FB09401F7EC0@VE1PR08MB4639.eurprd08.prod.outlook.com>
References: <20200224063113.107122-1-justin.he@arm.com>
In-Reply-To: <20200224063113.107122-1-justin.he@arm.com>
Accept-Language: en-US, zh-CN
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ts-tracking-id: ce31f30d-a52b-4822-a6ee-28ff1f3afcf1.1
x-checkrecipientchecked: true
Authentication-Results-Original: spf=none (sender IP is )
 smtp.mailfrom=Justin.He@arm.com; 
x-originating-ip: [113.29.88.7]
x-ms-publictraffictype: Email
X-MS-Office365-Filtering-HT: Tenant
X-MS-Office365-Filtering-Correlation-Id: afb178f1-5604-4f71-0e12-08d7b8f3df31
X-MS-TrafficTypeDiagnostic: VE1PR08MB5103:|VE1PR08MB5103:|VI1PR0801MB1952:
x-ms-exchange-transport-forked: True
X-Microsoft-Antispam-PRVS: <VI1PR0801MB1952CE79EA246971FA67CC8EF7EC0@VI1PR0801MB1952.eurprd08.prod.outlook.com>
x-checkrecipientrouted: true
nodisclaimer: true
x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691;
x-forefront-prvs: 032334F434
X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;
 SFS:(10009020)(4636009)(39850400004)(346002)(396003)(376002)(136003)(366004)(189003)(199004)(81166006)(478600001)(33656002)(81156014)(8676002)(186003)(26005)(7696005)(71200400001)(8936002)(53546011)(6506007)(5660300002)(54906003)(110136005)(4326008)(55016002)(66556008)(66446008)(66946007)(86362001)(64756008)(76116006)(9686003)(52536014)(55236004)(66476007)(316002)(2906002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:VE1PR08MB5103;
 H:VE1PR08MB4639.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: arm.com does not designate
 permitted sender hosts)
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Untrusted: BCL:0;
X-Microsoft-Antispam-Message-Info-Original: nSfQgpPO7Y3ibAmfQ0tEw0ydq6T4axSh0AWNI0Fu1cdRMS/XlLwPeAdKJoWraCQOy5Et6OeNIxfPkuiPM+rhPfgJu4SNaPwzcBTSl4qGdlGVmFHHMSnU5GlxYF+83lwgUP0AYmSenVkVkKf+uV6aa0pRg1P08kwhTvE1kaVm//JlNvCWwcp8u0mp7gnlc/gbSi2zZeaWMOgj4GuFPEPACfqdOwhDpTfI2yKe++SBb4FlUACrptPaxnmA5IqQlBNLIH+lyUUG3AhyXjAVG35RtcBSLzYb4nyHRknhUnYvr/P4Zh1rBuP9nkRPhVxOzHOd1p1kr8TpkG4Iw+NL9NkVH1sIHciir1Gz6cGFmso0H5hm8zGZ/aVhmYleT0WqFW9+iTh7OzId8q+q3c1lNeP4uWjMPVeyUec/AAJFF0TMLoEo+U9zwFpgTXx659DiYEwB
x-ms-exchange-antispam-messagedata: vxRF3R6RgEqFElmUMbRE+6zUCA2btQanWEBrADIytWHcnl3Ac8ewLONKt1WufQrLcLq07eRgYI1lXzCQFI+704VLiEnkPcNOVa8IFTyh8WKKkXql+ACUP1oR9gIVsjocyQFefvEDmBV62jyQkuIFQA==
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5103
Original-Authentication-Results: spf=none (sender IP is )
 smtp.mailfrom=Justin.He@arm.com; 
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com
X-Forefront-Antispam-Report: CIP:63.35.35.123; IPV:CAL; SCL:-1; CTRY:IE;
 EFV:NLI; SFV:NSPM;
 SFS:(10009020)(4636009)(39850400004)(346002)(136003)(376002)(396003)(189003)(199004)(336012)(33656002)(4326008)(26005)(2906002)(81166006)(8936002)(52536014)(81156014)(8676002)(53546011)(6506007)(9686003)(478600001)(26826003)(55016002)(70206006)(316002)(7696005)(36906005)(70586007)(5660300002)(186003)(356004)(110136005)(86362001)(54906003);
 DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0801MB1952;
 H:64aa7808-outbound-1.mta.getcheckrecipient.com; FPR:; SPF:Pass; LANG:en;
 PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; MX:1; A:1; 
X-MS-Office365-Filtering-Correlation-Id-Prvs: 9eeb23fa-871a-4e4d-9088-08d7b8f3dad6
X-Forefront-PRVS: 032334F434
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: WgEIJAqb00Hxpe7vslFnxGbl09AnYmVB5HNcwQHRjHV0YErWWx+nW3s4zqfhz3WTFaHJZikgpTGmtfufXWMp6pLbjz9nWOfNIexBFPL8D6YZuesikepSpjqd8Ji8p38uDwY9nEncA6B9rVZ5rIp57m5hJpj++jqlcgwZBfcO6FtObj8am0gR4OECP8vR2jrMOe41IUPcP3YeK/1K0fsd0DR47fmy+Vv4aSsGWpAhZdrF+ME7dLA+Md3HDnU9OnR/flYL/4NxD+V9aiIEVREGJYbtxCCvZAhVlxZEcxf543mFdAn/4IcrffWR9UgWUiWZ1sS8+SszHkcqbcx2g1qBCAvy7W0wUyIwx+L8tt8DhFCTIyOt3FJlIP2MlMpOW10HMrZJ42Sb0rKmq29BrxST/GCL2cPt1afmYjso9QWDAjwvmWHuw9KA2BHr7rj6YEJ9
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2020 06:36:25.6241 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: afb178f1-5604-4f71-0e12-08d7b8f3df31
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123];
 Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1952
Subject: Re: [Minios-devel] [UNIKRAT RFC PATCH] build: Introduce flag
 CFLAGS_REMOVE to remove some options
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, Kaly Xin <Kaly.Xin@arm.com>,
 Julien Grall <Julien.Grall@arm.com>, nd <nd@arm.com>,
 "Sharan.Santhanam@neclab.eu" <Sharan.Santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgU2ltb24gYW5kIEZlbGlwZQpUaGlzIHBhdGNoIGlzIHRoZSBwcm9wb3NhbCBhcyB3ZSBkaXNj
dXNzZWQgaW4gbGFzdCBtZWV0aW5nLgpBZnRlciB0aGlzIHBhdGNoLCBpbiBuZXdsaWIgTWFrZWZp
bGUsIHdlIG5lZWQgdG8gYWRkIApJZmVxIChBUk1fNjQsIHkpCkNGTEFHU19SRU1PVkU9LW1nZW5l
cmFsLXJlZ3Mtb25seQplbmRpZgoKV2hhdCBkbyB5b3UgdGhpbmsgb2YgaXQKLS0KQ2hlZXJzLApK
dXN0aW4gKEppYSBIZSkKCgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogSmlh
IEhlIDxqdXN0aW4uaGVAYXJtLmNvbT4KPiBTZW50OiBNb25kYXksIEZlYnJ1YXJ5IDI0LCAyMDIw
IDI6MzEgUE0KPiBUbzogbWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBTaW1vbiBL
dWVuemVyCj4gPHNpbW9uLmt1ZW56ZXJAbmVjbGFiLmV1PjsgU2FudGlhZ28uUGFnYW5pQG5lY2xh
Yi5ldQo+IENjOiBTaGFyYW4uU2FudGhhbmFtQG5lY2xhYi5ldTsgRmVsaXBlIEh1aWNpIDxmZWxp
cGUuaHVpY2lAbmVjbGFiLmV1PjsKPiBKdWxpZW4gR3JhbGwgPEp1bGllbi5HcmFsbEBhcm0uY29t
PjsgS2FseSBYaW4gPEthbHkuWGluQGFybS5jb20+OyBKdXN0aW4gSGUKPiA8SnVzdGluLkhlQGFy
bS5jb20+Cj4gU3ViamVjdDogW1VOSUtSQVQgUkZDIFBBVENIXSBidWlsZDogSW50cm9kdWNlIGZs
YWcgQ0ZMQUdTX1JFTU9WRSB0bwo+IHJlbW92ZSBzb21lIG9wdGlvbnMKPiAKPiBQcmV2aW91c2x5
LCB0aGVyZSBpcyBubyB3YXkgdG8gcmVtb3ZlIGFueSBnbG9iYWwgb3B0aW9ucyBmb3IgaW5kaXZp
ZHVhbAo+IGxpYnJhcnkuIEZvciBzb21lIHJlYXNvbiwgb24gYXJtNjQgd2UgbmVlZCB0byB1c2Ug
bWdlbmVyYWwtcmVncy1vbmx5Cj4gZm9yIHVuaWtyYWZ0IHBsYXQgbGlicmFyeSAoY29udGV4dCBz
d2l0Y2gsIHByaW50IGRlYnVnKS4gQnV0IGZvciBzb21lCj4gb3RoZXIgbGlicmFyaWVzIChlLmcu
IG5ld2xpYiksIHdlIHNob3VsZG4ndCB1c2UgdGhhdCBvcHRpb24gZHVlIHRvCj4gZmxvYXQgcG9p
bnQvc2ltZCBzdXBwb3J0IG9uIGFybTY0Lgo+IAo+IFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBmbGFn
IENGTEFHU19SRU1PVkUgdG8gZmlsdGVyIGl0IG91dCBpbiB1bmlrcmFmdAo+IGJ1aWxkIHN5c3Rl
bS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKaWEgSGUgPGp1c3Rpbi5oZUBhcm0uY29tPgo+IC0tLQo+
ICBzdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVzIHwgNCArKystCj4gIDEgZmlsZSBjaGFuZ2Vk
LCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAKPiBkaWZmIC0tZ2l0IGEvc3VwcG9y
dC9idWlsZC9NYWtlZmlsZS5ydWxlcyBiL3N1cHBvcnQvYnVpbGQvTWFrZWZpbGUucnVsZXMKPiBp
bmRleCBkNjBjNmQ5Li5kZWEyYzdmIDEwMDY0NAo+IC0tLSBhL3N1cHBvcnQvYnVpbGQvTWFrZWZp
bGUucnVsZXMKPiArKysgYi9zdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1bGVzCj4gQEAgLTM5MSw3
ICszOTEsOSBAQCAkKDMpOiAkKDIpIHwgcHJlcGFyZQo+ICAJJChjYWxsIGJ1aWxkX2NtZF9maXhk
ZXAsQ0MsJCgxKSwkKDMpLFwKPiAgCQkkKENDKSAgJChDSU5DTFVERVMpICQoQ0lOQ0xVREVTLXkp
IFwKPiAgCQkgICAgICAgJCgkKGNhbGwgdnByZWZpeF9saWIsJCgxKSxDSU5DTFVERVMpKSAkKCQo
Y2FsbAo+IHZwcmVmaXhfbGliLCQoMSksQ0lOQ0xVREVTLXkpKSBcCj4gLQkJICAgICAgICQoQ0ZM
QUdTKSAkKENGTEFHUy15KSAkKERCR0ZMQUdTKSAkKERCR0ZMQUdTLXkpIFwKPiArCQkgICAgICAg
JChmaWx0ZXItb3V0ICQoQ0ZMQUdTX1JFTU9WRSksJChDRkxBR1MpKSBcCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgJChmaWx0ZXItb3V0ICQoQ0ZMQUdTX1JFTU9WRSksJChDRkxBR1MteSkpIFwK
PiArICAgICAgICAgICAgICAgICAgICAgICAkKERCR0ZMQUdTKSAkKERCR0ZMQUdTLXkpIFwKPiAg
CQkgICAgICAgJCgkKGNhbGwgdnByZWZpeF9saWIsJCgxKSxDRkxBR1MpKSAkKCQoY2FsbAo+IHZw
cmVmaXhfbGliLCQoMSksQ0ZMQUdTLXkpKSBcCj4gIAkJICAgICAgICQoNCkgLURfX0xJQk5BTUVf
Xz0kKDEpIC1EX19CQVNFTkFNRV9fPSQobm90ZGlyICQoMikpCj4gXAo+ICAJCSAgICAgICAtYyAk
KDIpIC1vICQoMykgJChkZXBmbGFncykKPiAtLQo+IDIuMTcuMQoKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QK
TWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Mon Feb 24 10:31:45 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 24 Feb 2020 10:31:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j6B1a-0003rF-Kj; Mon, 24 Feb 2020 10:31:42 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=YRP/=4M=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1j6B1Y-0003rA-S6
 for minios-devel@lists.xenproject.org; Mon, 24 Feb 2020 10:31:40 +0000
X-Inumbo-ID: d6edb6ce-56f0-11ea-b0fd-bc764e2007e4
Received: from mailer1.neclab.eu (unknown [195.37.70.40])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id d6edb6ce-56f0-11ea-b0fd-bc764e2007e4;
 Mon, 24 Feb 2020 10:31:39 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer1.neclab.eu (Postfix) with ESMTP id 35192103A52;
 Mon, 24 Feb 2020 11:31:38 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-a.office.hd)
Received: from mailer1.neclab.eu ([127.0.0.1])
 by localhost (atlas-a.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id uG79fiVDUmFQ; Mon, 24 Feb 2020 11:31:38 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer1.neclab.eu (Postfix) with ESMTPS id 0DD66FFAC0;
 Mon, 24 Feb 2020 11:31:38 +0100 (CET)
Received: from [10.1.2.204] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 24 Feb
 2020 11:31:37 +0100
To: Justin He <Justin.He@arm.com>, "minios-devel@lists.xenproject.org"
 <minios-devel@lists.xenproject.org>
References: <20200224063113.107122-1-justin.he@arm.com>
 <VE1PR08MB4639B6EDE61930A98FB09401F7EC0@VE1PR08MB4639.eurprd08.prod.outlook.com>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <9d67afe6-3fc7-2e49-1f89-7f3a9d7cdc63@neclab.eu>
Date: Mon, 24 Feb 2020 11:31:37 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0)
 Gecko/20100101 Thunderbird/68.4.2
MIME-Version: 1.0
In-Reply-To: <VE1PR08MB4639B6EDE61930A98FB09401F7EC0@VE1PR08MB4639.eurprd08.prod.outlook.com>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAT RFC PATCH] build: Introduce flag
 CFLAGS_REMOVE to remove some options
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>, Kaly Xin <Kaly.Xin@arm.com>,
 Julien Grall <Julien.Grall@arm.com>, nd <nd@arm.com>,
 "Sharan.Santhanam@neclab.eu" <Sharan.Santhanam@neclab.eu>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

SGkgSnVzdGluLAoKdGhhbmtzIGEgbG90IGZvciBzaGFyaW5nIHRoaXMuIEkgaGF2ZSB0aGUgY29u
Y2VybiB0aGF0IGludHJvZHVjaW5nIAoicmVtb3ZlIGZsYWciIGlzIG1ha2luZyB0aGUgYnVpbGQg
c3lzdGVtIGEgYml0IGluLXRyYW5zcGFyZW50IGFuZCBoYXJkIAp0byBkZWJ1ZyBhbmQgdW5kZXJz
dGFuZGFibGUgZm9yIGRldmVsb3BlcnMuIEkgdGhpbmsgZm9yIGVhY2ggZmxhZyB0aGVyZSAKaXMg
YSBnb29kIHJlYXNvbiB3aHkgaXQgZ290IGludHJvZHVjZWQuIEl0IGRvZXNuJ3QgZmVlbCByaWdo
dCB0aGF0IG90aGVyIApsaWJyYXJpZXMgYXJlIGFibGUgdG8gcmVtb3ZlIHNvbWUgb2YgdGhlbSBh
Z2Fpbi4KClRoZSBvcmlnaW5hbCBkaXNjdXNzaW9uIHdhcyBjb21pbmcgZnJvbSB0aGUgZmFjdCB0
aGF0IHdlIG5lZWQgdG8gc3BsaXQgCm91ciBjb2RlIGluIHBpZWNlcyB0aGF0IG5lZWQgdG8gYmUg
SVNSLXNhZmUgKG1haW5seSB1c2luZyBvbmx5IHNtYWxsIApzdWJzZXQgb2YgQ1BVIGZlYXR1cmVz
L3JlZ2lzdGVycyB0aGF0IGlzIHNhdmVkIG5vIGludGVycnVwdCByZXF1ZXN0cykgCmFuZCBvdGhl
ciBwYXJ0cyB0aGF0IGNhbiB1c2UgZXh0ZW5kZWQgQ1BVIGZlYXR1cmVzIChlLmcuLCBmbG9hdGlu
ZyAKcG9pbnQsIHZlY3RvciByZWdpc3RlcnMpLiBGb3IgdGhpcyBwdXJwb3NlLCBJIHdvdWxkIHBy
ZWZlciB0aGF0IHdlIAppbnRyb2R1Y2UgYSBzY2hlbWUgd2hlcmUgd2UgY2FuIGNvbXBpbGUgIklT
Ui1zYWZlIiBmaWxlcyBvciBmdW5jdGlvbnMuIApUaGUgYXJjaCBsaWJyYXJ5IHdvdWxkIHBvcHVs
YXRlIGRpZmZlcmVudCBvcHRpbWl6YXRpb24gZmxhZ3MgdG8gdGhvc2UgCnVuaXRzLCBlLmcuLCB3
aXRoIGEgbmV3IElTUl9DRkxBR1MteSB2YXJpYWJsZS4KCkkgdGhpbmsgaXQgaXMgcXVpdGUgZWFz
eSB0byBhY2hpZXZlIHRoaXMgb24gYSBzb3VyY2UgZmlsZSBsZXZlbCwgYXQgCmxlYXN0IHdlIHNo
b3VsZCBkbyB0aGlzLiBQcmVmZXJhYmx5IHdlIHNob3VsZCBhY2hpZXZlIHRoaXMgb24gYSBmdW5j
dGlvbiAKZGVjbGFyYXRpb24gbGV2ZWwuIEFyZSB0aGVyZSBHQ0MgZmxhZ3MvYXR0cmlidXRlcyB3
ZSBjb3VsZCB1c2UgdG8gbWFyayAKYW5kIGNvbXBpbGUgYSBmdW5jdGlvbiBJU1Itc2FmZSAod2hp
bGUgdGhlIHJlc3Qgb2YgdGhlIGZpbGUgaXMgdXNpbmcgYWxsIApvcHRpbWl6YXRpb24gZmVhdHVy
ZXMpPwoKVGhhbmtzLAoKU2ltb24KCk9uIDI0LjAyLjIwIDA3OjM2LCBKdXN0aW4gSGUgd3JvdGU6
Cj4gSGkgU2ltb24gYW5kIEZlbGlwZQo+IFRoaXMgcGF0Y2ggaXMgdGhlIHByb3Bvc2FsIGFzIHdl
IGRpc2N1c3NlZCBpbiBsYXN0IG1lZXRpbmcuCj4gQWZ0ZXIgdGhpcyBwYXRjaCwgaW4gbmV3bGli
IE1ha2VmaWxlLCB3ZSBuZWVkIHRvIGFkZAo+IElmZXEgKEFSTV82NCwgeSkKPiBDRkxBR1NfUkVN
T1ZFPS1tZ2VuZXJhbC1yZWdzLW9ubHkKPiBlbmRpZgo+IAo+IFdoYXQgZG8geW91IHRoaW5rIG9m
IGl0Cj4gLS0KPiBDaGVlcnMsCj4gSnVzdGluIChKaWEgSGUpCj4gCj4gCj4+IC0tLS0tT3JpZ2lu
YWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IEppYSBIZSA8anVzdGluLmhlQGFybS5jb20+Cj4+IFNl
bnQ6IE1vbmRheSwgRmVicnVhcnkgMjQsIDIwMjAgMjozMSBQTQo+PiBUbzogbWluaW9zLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnOyBTaW1vbiBLdWVuemVyCj4+IDxzaW1vbi5rdWVuemVyQG5l
Y2xhYi5ldT47IFNhbnRpYWdvLlBhZ2FuaUBuZWNsYWIuZXUKPj4gQ2M6IFNoYXJhbi5TYW50aGFu
YW1AbmVjbGFiLmV1OyBGZWxpcGUgSHVpY2kgPGZlbGlwZS5odWljaUBuZWNsYWIuZXU+Owo+PiBK
dWxpZW4gR3JhbGwgPEp1bGllbi5HcmFsbEBhcm0uY29tPjsgS2FseSBYaW4gPEthbHkuWGluQGFy
bS5jb20+OyBKdXN0aW4gSGUKPj4gPEp1c3Rpbi5IZUBhcm0uY29tPgo+PiBTdWJqZWN0OiBbVU5J
S1JBVCBSRkMgUEFUQ0hdIGJ1aWxkOiBJbnRyb2R1Y2UgZmxhZyBDRkxBR1NfUkVNT1ZFIHRvCj4+
IHJlbW92ZSBzb21lIG9wdGlvbnMKPj4KPj4gUHJldmlvdXNseSwgdGhlcmUgaXMgbm8gd2F5IHRv
IHJlbW92ZSBhbnkgZ2xvYmFsIG9wdGlvbnMgZm9yIGluZGl2aWR1YWwKPj4gbGlicmFyeS4gRm9y
IHNvbWUgcmVhc29uLCBvbiBhcm02NCB3ZSBuZWVkIHRvIHVzZSBtZ2VuZXJhbC1yZWdzLW9ubHkK
Pj4gZm9yIHVuaWtyYWZ0IHBsYXQgbGlicmFyeSAoY29udGV4dCBzd2l0Y2gsIHByaW50IGRlYnVn
KS4gQnV0IGZvciBzb21lCj4+IG90aGVyIGxpYnJhcmllcyAoZS5nLiBuZXdsaWIpLCB3ZSBzaG91
bGRuJ3QgdXNlIHRoYXQgb3B0aW9uIGR1ZSB0bwo+PiBmbG9hdCBwb2ludC9zaW1kIHN1cHBvcnQg
b24gYXJtNjQuCj4+Cj4+IFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBmbGFnIENGTEFHU19SRU1PVkUg
dG8gZmlsdGVyIGl0IG91dCBpbiB1bmlrcmFmdAo+PiBidWlsZCBzeXN0ZW0uCj4+Cj4+IFNpZ25l
ZC1vZmYtYnk6IEppYSBIZSA8anVzdGluLmhlQGFybS5jb20+Cj4+IC0tLQo+PiAgIHN1cHBvcnQv
YnVpbGQvTWFrZWZpbGUucnVsZXMgfCA0ICsrKy0KPj4gICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl
cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9zdXBwb3J0L2J1aWxk
L01ha2VmaWxlLnJ1bGVzIGIvc3VwcG9ydC9idWlsZC9NYWtlZmlsZS5ydWxlcwo+PiBpbmRleCBk
NjBjNmQ5Li5kZWEyYzdmIDEwMDY0NAo+PiAtLS0gYS9zdXBwb3J0L2J1aWxkL01ha2VmaWxlLnJ1
bGVzCj4+ICsrKyBiL3N1cHBvcnQvYnVpbGQvTWFrZWZpbGUucnVsZXMKPj4gQEAgLTM5MSw3ICsz
OTEsOSBAQCAkKDMpOiAkKDIpIHwgcHJlcGFyZQo+PiAgIAkkKGNhbGwgYnVpbGRfY21kX2ZpeGRl
cCxDQywkKDEpLCQoMyksXAo+PiAgIAkJJChDQykgICQoQ0lOQ0xVREVTKSAkKENJTkNMVURFUy15
KSBcCj4+ICAgCQkgICAgICAgJCgkKGNhbGwgdnByZWZpeF9saWIsJCgxKSxDSU5DTFVERVMpKSAk
KCQoY2FsbAo+PiB2cHJlZml4X2xpYiwkKDEpLENJTkNMVURFUy15KSkgXAo+PiAtCQkgICAgICAg
JChDRkxBR1MpICQoQ0ZMQUdTLXkpICQoREJHRkxBR1MpICQoREJHRkxBR1MteSkgXAo+PiArCQkg
ICAgICAgJChmaWx0ZXItb3V0ICQoQ0ZMQUdTX1JFTU9WRSksJChDRkxBR1MpKSBcCj4+ICsgICAg
ICAgICAgICAgICAgICAgICAgICQoZmlsdGVyLW91dCAkKENGTEFHU19SRU1PVkUpLCQoQ0ZMQUdT
LXkpKSBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICQoREJHRkxBR1MpICQoREJHRkxBR1Mt
eSkgXAo+PiAgIAkJICAgICAgICQoJChjYWxsIHZwcmVmaXhfbGliLCQoMSksQ0ZMQUdTKSkgJCgk
KGNhbGwKPj4gdnByZWZpeF9saWIsJCgxKSxDRkxBR1MteSkpIFwKPj4gICAJCSAgICAgICAkKDQp
IC1EX19MSUJOQU1FX189JCgxKSAtRF9fQkFTRU5BTUVfXz0kKG5vdGRpciAkKDIpKQo+PiBcCj4+
ICAgCQkgICAgICAgLWMgJCgyKSAtbyAkKDMpICQoZGVwZmxhZ3MpCj4+IC0tCj4+IDIuMTcuMQo+
IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9z
LWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0
cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Tue Feb 25 12:49:43 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 25 Feb 2020 12:49:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j6Zef-0004QC-Ku; Tue, 25 Feb 2020 12:49:41 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=MKMT=4N=uliege.be=gaulthier.gain@srs-us1.protection.inumbo.net>)
 id 1j6Zee-0004Q5-Qz
 for minios-devel@lists.xenproject.org; Tue, 25 Feb 2020 12:49:41 +0000
X-Inumbo-ID: 483641d4-57cd-11ea-92ec-12813bfff9fa
Received: from serv108.segi.ulg.ac.be (unknown [139.165.32.111])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 483641d4-57cd-11ea-92ec-12813bfff9fa;
 Tue, 25 Feb 2020 12:49:38 +0000 (UTC)
Received: from sauron.run.montefiore.ulg.ac.be
 (sauron.run.montefiore.ulg.ac.be [139.165.223.31])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by serv108.segi.ulg.ac.be (Postfix) with ESMTPSA id 88A4A2010A63;
 Tue, 25 Feb 2020 13:49:37 +0100 (CET)
DKIM-Filter: OpenDKIM Filter v2.11.0 serv108.segi.ulg.ac.be 88A4A2010A63
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uliege.be;
 s=ulg20190529; t=1582634977;
 bh=GNessq4dZab9YiOsN2cPyezDnqA8iKeA2B0RibCW0zg=;
 h=From:To:Cc:Subject:Date:From;
 b=h2ZEYcJdujFXkad/UuFpn6crVPULd7WZw4vA8kvAwQmQQvOMx1AyuuVKPGfodfmOC
 1cceL1OrUo8MTJbHdZk6x8xnMJ5N6FuyxeDTCpTnW7JbVy7TgLldokQa8yEAacdE2i
 apl4qpDZUfH3/K22Tpx9GLLOqVx/cqXZ3m6+BjU3NmpZBz0D3yUWxf7LUYF16S4N4j
 m8bDLzKgv8A4nDXYTn2M78x5y9i82IHNJWz3WqLjx1m2qFPAP8AZzsdvSpIpcu/ttj
 HkHPVW/i+OrAVouflURLwHMg8osp+OEk2T/4mV45ncFECN8rHcUo748kRHDLIK8rhl
 wo0jWGQOFnVGw==
From: gaulthier.gain@uliege.be
To: minios-devel@lists.xenproject.org
Date: Tue, 25 Feb 2020 12:49:25 +0000
Message-Id: <20200225124928.42523-1-gaulthier.gain@uliege.be>
X-Mailer: git-send-email 2.17.1
Subject: [Minios-devel] [UNIKRAFT/MUSL PATCH 0/3] Continue MUSL support
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: gaulthier gain <gaulthier.gain@uliege.be>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogZ2F1bHRoaWVyIGdhaW4gPGdhdWx0aGllci5nYWluQHVsaWVnZS5iZT4KCldlIGFyZSBz
dGlsbCB3b3JraW5nIHRvIGdldCBhIGZ1bGx5LXdvcmtpbmcgTVVTTCBzdXBwb3J0IG9uIFVuaWty
YWZ0LgpJbiB0aGlzIHBhdGNoIHNlcmllcywgd2UgZml4ZWQgY29tcGlsYXRpb25zIGVycm9ycyBh
bmQgcmVkZWZpbml0aW9ucyAKaW50cm9kdWNlZCB3aXRoIGxhdGVzdCBVbmlrcmFmdCBwYXRjaGVz
LiAKCkluIGFkZGl0aW9uLCB3ZSBmaXhlZCB0aGUgYnVmZmVyaW5nIGlzc3VlIG9uIHN0ZG91dC4g
SWYgdGhpcyBwYXRjaCBpcyAKYWNjZXB0ZWQsIHdlIHdpbGwgdXBkYXRlIFJFQURNRS5tZCB0byBy
ZW1vdmUgdGhlIGtub3duIGlzc3Vlcy4KCmdhdWx0aGllciBnYWluICgzKToKICBBZGQgcGF0Y2gg
dG8gdXBkYXRlIG1vdW50LmggdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggdmZzY29yZQogIEFkZCBw
YXRjaCB0byBmZmx1c2ggYWZ0ZXIgcHJpbnRpbmcgb24gc3Rkb3V0CiAgQXZvaWQgbXVsdGlwbGUg
ZGVmaW5pdGlvbnMgYnkgZXhjbHVkaW5nIGZ1bmN0aW9ucyByZWxhdGVkIHRvIHRpbWUKCiBNYWtl
ZmlsZS51ay5tdXNsLnRpbWUgICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKystLS0tCiBw
YXRjaGVzLzAwMDgtRml4LXN5c19pb2N0bF9oLWNvbmZsaWN0cy5wYXRjaCB8IDI3ICsrKysrKysr
KysrKysrKysrKysrCiBwYXRjaGVzLzAwMDktZmZsdXNoLWFmdGVyLXB1dHMucGF0Y2ggICAgICAg
ICB8IDI1ICsrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25z
KCspLCA1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvMDAwOC1GaXgt
c3lzX2lvY3RsX2gtY29uZmxpY3RzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy8w
MDA5LWZmbHVzaC1hZnRlci1wdXRzLnBhdGNoCgotLSAKMi4xNy4xCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlz
dApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Tue Feb 25 12:49:46 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 25 Feb 2020 12:49:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j6Zek-0004Ql-MZ; Tue, 25 Feb 2020 12:49:46 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=MKMT=4N=uliege.be=gaulthier.gain@srs-us1.protection.inumbo.net>)
 id 1j6Zej-0004Qa-RC
 for minios-devel@lists.xenproject.org; Tue, 25 Feb 2020 12:49:45 +0000
X-Inumbo-ID: 4936feca-57cd-11ea-92ec-12813bfff9fa
Received: from serv108.segi.ulg.ac.be (unknown [139.165.32.111])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 4936feca-57cd-11ea-92ec-12813bfff9fa;
 Tue, 25 Feb 2020 12:49:40 +0000 (UTC)
Received: from sauron.run.montefiore.ulg.ac.be
 (sauron.run.montefiore.ulg.ac.be [139.165.223.31])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by serv108.segi.ulg.ac.be (Postfix) with ESMTPSA id 6BCA82010A6F;
 Tue, 25 Feb 2020 13:49:39 +0100 (CET)
DKIM-Filter: OpenDKIM Filter v2.11.0 serv108.segi.ulg.ac.be 6BCA82010A6F
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uliege.be;
 s=ulg20190529; t=1582634979;
 bh=CHT5fCSsk4uf/3XMcoTNcPJ+Rr5F0k4dPrmUOg8WBY4=;
 h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
 b=vTia8p2ZJ59VEoY2og6VE6HJE7f6ndVx38zPalP0jjLM3j4fos4L4EMjLCd/NDpZI
 dZDDiBjPe0Yxf5RYdhl0vAYlL/ijviuMLG/2y1r2p2NMeJwbwFL0qz7EMNmZhF0nZC
 ZrjkjchX5tOGj2Xd8MDAzAaMsgIyO9DbslDZSXPsXIzLhRG5XLF9QZDMwdldGLDvgt
 m8749b77D19yoX3SptPuYZkAtRg3Qj0dHIypCAQgOoNGTF4ppxshz9PbPbyyhLsAau
 vlGCdG70vUl2fWtqjpHsiL/8fttuZmho7T0XOyzMxTeMopxGyr4t+Y7pZ2kYlqqUfB
 uL4lm56BeakBQ==
From: gaulthier.gain@uliege.be
To: minios-devel@lists.xenproject.org
Date: Tue, 25 Feb 2020 12:49:26 +0000
Message-Id: <20200225124928.42523-2-gaulthier.gain@uliege.be>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20200225124928.42523-1-gaulthier.gain@uliege.be>
References: <20200225124928.42523-1-gaulthier.gain@uliege.be>
Subject: [Minios-devel] [UNIKRAFT/MUSL PATCH 1/3] Add patch to update
 mount.h to avoid conflicts with vfscore
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: gaulthier gain <gaulthier.gain@uliege.be>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogZ2F1bHRoaWVyIGdhaW4gPGdhdWx0aGllci5nYWluQHVsaWVnZS5iZT4KClRoaXMgcGF0
Y2ggdXBkYXRlcyAibW91bnQuaCIgaW4gb3JkZXIgdG8gYXZvaWQgaW9jdGwgcmVkZWZpbml0aW9u
CmVycm9yIHdpdGggdmZzY29yZS4gQmFzaWNhbGx5LCB0aGUgbXVzbCAibW91bnQuaCIgZmlsZSBp
bmNsdWRlcwo8c3lzL2lvY3RsLmg+IG9ubHkgaWYgX1ZGU0NPUkVfU1lTX01PVU5UX0hfIHdhcyBu
b3QgZGVmaW5lZC4KClNpZ25lZC1vZmYtYnk6IGdhdWx0aGllciBnYWluIDxnYXVsdGhpZXIuZ2Fp
bkB1bGllZ2UuYmU+Ci0tLQogcGF0Y2hlcy8wMDA4LUZpeC1zeXNfaW9jdGxfaC1jb25mbGljdHMu
cGF0Y2ggfCAyNyArKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI3IGluc2Vy
dGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAwMDgtRml4LXN5c19pb2N0bF9o
LWNvbmZsaWN0cy5wYXRjaAoKZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDAwOC1GaXgtc3lzX2lvY3Rs
X2gtY29uZmxpY3RzLnBhdGNoIGIvcGF0Y2hlcy8wMDA4LUZpeC1zeXNfaW9jdGxfaC1jb25mbGlj
dHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRmNTcyMQotLS0g
L2Rldi9udWxsCisrKyBiL3BhdGNoZXMvMDAwOC1GaXgtc3lzX2lvY3RsX2gtY29uZmxpY3RzLnBh
dGNoCkBAIC0wLDAgKzEsMjcgQEAKK0Zyb20gMmFhOGRkZWIwZGViMTY1YjI4ZjllNzBiMTRkYTY5
YjdiZjliOTM4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGdhdWx0aGllciBnYWlu
IDxnYXVsdGhpZXIuZ2FpbkB1bGllZ2UuYmU+CitEYXRlOiBNb24sIDI0IEZlYiAyMDIwIDIxOjAx
OjQwICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIFJlbW92ZSA8c3lzL2lvY3RsPiBmcm9tIG11c2wg
aW50ZXJuYWwKKworU2lnbmVkLW9mZi1ieTogR2F1bHRoaWVyIEdhaW4gPGdhdWx0aGllci5nYWlu
QHVsaWVnZS5iZT4KKy0tLQorIGluY2x1ZGUvc3lzL21vdW50LmggfCAyICsrCisgMSBmaWxlIGNo
YW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zeXMvbW91bnQu
aCBiL2luY2x1ZGUvc3lzL21vdW50LmgKK2luZGV4IDU3YTg5YzAuLjY1MTZhNTEgMTAwNjQ0Cist
LS0gYS9pbmNsdWRlL3N5cy9tb3VudC5oCisrKysgYi9pbmNsdWRlL3N5cy9tb3VudC5oCitAQCAt
NSw3ICs1LDkgQEAKKyBleHRlcm4gIkMiIHsKKyAjZW5kaWYKKworKyNpZm5kZWYgX1ZGU0NPUkVf
U1lTX01PVU5UX0hfCisgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorKyNlbmRpZgorCisgI2RlZmlu
ZSBCTEtST1NFVCAgIF9JTygweDEyLCA5MykKKyAjZGVmaW5lIEJMS1JPR0VUICAgX0lPKDB4MTIs
IDk0KQorLS0KKzIuMTcuMQorCi0tCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls
bWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Tue Feb 25 12:49:51 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 25 Feb 2020 12:49:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j6Zep-0004RS-O8; Tue, 25 Feb 2020 12:49:51 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=MKMT=4N=uliege.be=gaulthier.gain@srs-us1.protection.inumbo.net>)
 id 1j6Zeo-0004RN-RS
 for minios-devel@lists.xenproject.org; Tue, 25 Feb 2020 12:49:50 +0000
X-Inumbo-ID: 4b0442da-57cd-11ea-92ec-12813bfff9fa
Received: from serv108.segi.ulg.ac.be (unknown [139.165.32.111])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 4b0442da-57cd-11ea-92ec-12813bfff9fa;
 Tue, 25 Feb 2020 12:49:43 +0000 (UTC)
Received: from sauron.run.montefiore.ulg.ac.be
 (sauron.run.montefiore.ulg.ac.be [139.165.223.31])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by serv108.segi.ulg.ac.be (Postfix) with ESMTPSA id 6FD9F2010A63;
 Tue, 25 Feb 2020 13:49:42 +0100 (CET)
DKIM-Filter: OpenDKIM Filter v2.11.0 serv108.segi.ulg.ac.be 6FD9F2010A63
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uliege.be;
 s=ulg20190529; t=1582634982;
 bh=5Ae6kgz2P0oyjIWMM7q+stcftk44sOJ6RUVbh7BO7so=;
 h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
 b=PLkXfxKM/1+M6Xlxr8lJjLcNiNeGg5fPa4CpwAmYaGg9uAAnMbiIgenm6brF26ST1
 dQZ+1hln6EZhB8g66cfEC82P4aNOycK3cXmJZiRUJPPCxQaDnDzsm2Xu5V8c9GtoLX
 GNeI23S6FwGSPTzsiem/S1GVenIhvbWvt+/6RkbYGTh2+JGfnPuOzWuve7nVrTIXpM
 V4aJLWDhkPJ/v21aWfCplMDDFn5pbkqa/KP7X4yVcVD/wAjVSxJ3hBt3wPIWMXBbHU
 HJK5bWfD+5VXbZTUhw9UEKXaKq7hyBU+VxVQJXlDjrro6TPN6O3E11czpqY4JyeXVy
 8fDtgq33q0vFg==
From: gaulthier.gain@uliege.be
To: minios-devel@lists.xenproject.org
Date: Tue, 25 Feb 2020 12:49:27 +0000
Message-Id: <20200225124928.42523-3-gaulthier.gain@uliege.be>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20200225124928.42523-1-gaulthier.gain@uliege.be>
References: <20200225124928.42523-1-gaulthier.gain@uliege.be>
Subject: [Minios-devel] [UNIKRAFT/MUSL PATCH 2/3] Add patch to fflush after
 printing on stdout
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: gaulthier gain <gaulthier.gain@uliege.be>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogZ2F1bHRoaWVyIGdhaW4gPGdhdWx0aGllci5nYWluQHVsaWVnZS5iZT4KClRoaXMgcGF0
Y2ggZml4ZXMgdGhlIGlzc3VlIHdoZXJlIHByaW50aW5nIG9uIHN0ZG91dCBkb2VzCm5vdGhpbmcg
c2luY2Ugc3Rkb3V0IHdhcyBub3QgZmx1c2hlZC4gV2UgZm91bmQgdGhhdCBhbGwKcHJpbnQtcmVs
YXRlZCBmdW5jdGlvbnMgY2FsbCAicHV0cyIgYXMgYW4gaW50ZXJuYWwgZnVuY3Rpb24KdG8gcHJp
bnQgb3V0cHV0IG9uIHRoZSBjb25zb2xlLiBUaGVyZWZvcmUsIHdlIGNhbGwgZmZsdXNoCmRpcmVj
dGx5IGFmdGVyIHRoZSAicHV0cyIgY2FsbC4KClNpZ25lZC1vZmYtYnk6IGdhdWx0aGllciBnYWlu
IDxnYXVsdGhpZXIuZ2FpbkB1bGllZ2UuYmU+Ci0tLQogcGF0Y2hlcy8wMDA5LWZmbHVzaC1hZnRl
ci1wdXRzLnBhdGNoIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5n
ZWQsIDI1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAwMDktZmZs
dXNoLWFmdGVyLXB1dHMucGF0Y2gKCmRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMDktZmZsdXNoLWFm
dGVyLXB1dHMucGF0Y2ggYi9wYXRjaGVzLzAwMDktZmZsdXNoLWFmdGVyLXB1dHMucGF0Y2gKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YxZThkYwotLS0gL2Rldi9udWxsCisr
KyBiL3BhdGNoZXMvMDAwOS1mZmx1c2gtYWZ0ZXItcHV0cy5wYXRjaApAQCAtMCwwICsxLDI1IEBA
CitGcm9tIGFlZDQyNDNlOTNlOTMyNzM1N2Y4NDI5YWYzYmYzODA3Mzk5NjhlNDIgTW9uIFNlcCAx
NyAwMDowMDowMCAyMDAxCitGcm9tOiBnYXVsdGhpZXIgZ2FpbiA8Z2F1bHRoaWVyLmdhaW5AdWxp
ZWdlLmJlPgorRGF0ZTogVHVlLCAyNSBGZWIgMjAyMCAxMTo1NTo1OCArMDAwMAorU3ViamVjdDog
W1BBVENIXSBBZGQgZmZsdXNoIGFmdGVyIHB1dHMgaW4gb3JkZXIgdG8gZmx1c2ggc3Rkb3V0CisK
K1NpZ25lZC1vZmYtYnk6IEdhdWx0aGllciBHYWluIDxnYXVsdGhpZXIuZ2FpbkB1bGllZ2UuYmU+
CistLS0KKyBzcmMvc3RkaW8vcHV0cy5jIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0
aW9uKCspCisKK2RpZmYgLS1naXQgYS9zcmMvc3RkaW8vcHV0cy5jIGIvc3JjL3N0ZGlvL3B1dHMu
YworaW5kZXggNWEzOGE0OS4uZDE5ZTViNiAxMDA2NDQKKy0tLSBhL3NyYy9zdGRpby9wdXRzLmMK
KysrKyBiL3NyYy9zdGRpby9wdXRzLmMKK0BAIC01LDYgKzUsNyBAQCBpbnQgcHV0cyhjb25zdCBj
aGFyICpzKQorCWludCByOworCUZMT0NLKHN0ZG91dCk7CisJciA9IC0oZnB1dHMocywgc3Rkb3V0
KSA8IDAgfHwgcHV0Y191bmxvY2tlZCgnXG4nLCBzdGRvdXQpIDwgMCk7CisrCWZmbHVzaChzdGRv
dXQpOworCUZVTkxPQ0soc3Rkb3V0KTsKKwlyZXR1cm4gcjsKKyB9CistLQorMi4xNy4xCisKLS0K
Mi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpN
aW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y
ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRl
dmVs

From minios-devel-bounces@lists.xenproject.org Tue Feb 25 12:49:56 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 25 Feb 2020 12:49:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j6Zeu-0004Sz-Pf; Tue, 25 Feb 2020 12:49:56 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=MKMT=4N=uliege.be=gaulthier.gain@srs-us1.protection.inumbo.net>)
 id 1j6Zet-0004So-Rh
 for minios-devel@lists.xenproject.org; Tue, 25 Feb 2020 12:49:55 +0000
X-Inumbo-ID: 4c30dfce-57cd-11ea-92ec-12813bfff9fa
Received: from serv108.segi.ulg.ac.be (unknown [139.165.32.111])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 4c30dfce-57cd-11ea-92ec-12813bfff9fa;
 Tue, 25 Feb 2020 12:49:45 +0000 (UTC)
Received: from sauron.run.montefiore.ulg.ac.be
 (sauron.run.montefiore.ulg.ac.be [139.165.223.31])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by serv108.segi.ulg.ac.be (Postfix) with ESMTPSA id 675282010A63;
 Tue, 25 Feb 2020 13:49:44 +0100 (CET)
DKIM-Filter: OpenDKIM Filter v2.11.0 serv108.segi.ulg.ac.be 675282010A63
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uliege.be;
 s=ulg20190529; t=1582634984;
 bh=Je3fO++GX/ziZJkgs5MnETXAVIVDKtW8GCYCMb9ny5E=;
 h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
 b=ZuVPAbzQrO1idYu8B7paJl7IFsxRMSEUHOT5lGuFjulABQsPpy4aayQbZUvPdgq0w
 PBkenY6Qiv2BToijEkCr0RFaAkw34C79xB/Bfz3TfC5FDtk5tLE801B8TwYbm/TWyQ
 Lq91Lsjhu8Hvj6uGlHaLwXMxj01CGs1e0JcMKc181Rh5zhmKQZBPB6xOu1o5RbP6+v
 VoP2JbtAQuWL2Sn2rMV/bpNn0bUzUkUJjHR8UMByW7eABEPep5sANHAgFAeyteQBki
 qLeOXRX3KeiqM7Y9OR/N6N496UymBCHLzT2laKQPCUnTm6sYlaY1qZ2ErogwPAEoDj
 SUO+lWxVbn+iA==
From: gaulthier.gain@uliege.be
To: minios-devel@lists.xenproject.org
Date: Tue, 25 Feb 2020 12:49:28 +0000
Message-Id: <20200225124928.42523-4-gaulthier.gain@uliege.be>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20200225124928.42523-1-gaulthier.gain@uliege.be>
References: <20200225124928.42523-1-gaulthier.gain@uliege.be>
Subject: [Minios-devel] [UNIKRAFT/MUSL PATCH 3/3] Avoid multiple definitions
 by excluding functions related to time
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: gaulthier gain <gaulthier.gain@uliege.be>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

RnJvbTogZ2F1bHRoaWVyIGdhaW4gPGdhdWx0aGllci5nYWluQHVsaWVnZS5iZT4KClNpZ25lZC1v
ZmYtYnk6IGdhdWx0aGllciBnYWluIDxnYXVsdGhpZXIuZ2FpbkB1bGllZ2UuYmU+Ci0tLQogTWFr
ZWZpbGUudWsubXVzbC50aW1lIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5z
ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9NYWtlZmlsZS51ay5tdXNs
LnRpbWUgYi9NYWtlZmlsZS51ay5tdXNsLnRpbWUKaW5kZXggZGI0YTczNi4uZDdhOGIwYSAxMDA2
NDQKLS0tIGEvTWFrZWZpbGUudWsubXVzbC50aW1lCisrKyBiL01ha2VmaWxlLnVrLm11c2wudGlt
ZQpAQCAtMjksMTEgKzI5LDExIEBAIExJQk1VU0xfU1JDUy15ICs9ICQoTElCTVVTTCkvc3JjL3Rp
bWUvc3RyZnRpbWUuYwogTElCTVVTTF9TUkNTLXkgKz0gJChMSUJNVVNMKS9zcmMvdGltZS9zdHJw
dGltZS5jCiBMSUJNVVNMX1NSQ1MteSArPSAkKExJQk1VU0wpL3NyYy90aW1lL3RpbWUuYwogI0xJ
Qk1VU0xfU1JDUy15ICs9ICQoTElCTVVTTCkvc3JjL3RpbWUvdGltZWdtLmMKLUxJQk1VU0xfU1JD
Uy15ICs9ICQoTElCTVVTTCkvc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMKLUxJQk1VU0xfU1JDUy15
ICs9ICQoTElCTVVTTCkvc3JjL3RpbWUvdGltZXJfZGVsZXRlLmMKLUxJQk1VU0xfU1JDUy15ICs9
ICQoTElCTVVTTCkvc3JjL3RpbWUvdGltZXJfZ2V0b3ZlcnJ1bi5jCi1MSUJNVVNMX1NSQ1MteSAr
PSAkKExJQk1VU0wpL3NyYy90aW1lL3RpbWVyX2dldHRpbWUuYwotTElCTVVTTF9TUkNTLXkgKz0g
JChMSUJNVVNMKS9zcmMvdGltZS90aW1lcl9zZXR0aW1lLmMKKyNMSUJNVVNMX1NSQ1MteSArPSAk
KExJQk1VU0wpL3NyYy90aW1lL3RpbWVyX2NyZWF0ZS5jCisjTElCTVVTTF9TUkNTLXkgKz0gJChM
SUJNVVNMKS9zcmMvdGltZS90aW1lcl9kZWxldGUuYworI0xJQk1VU0xfU1JDUy15ICs9ICQoTElC
TVVTTCkvc3JjL3RpbWUvdGltZXJfZ2V0b3ZlcnJ1bi5jCisjTElCTVVTTF9TUkNTLXkgKz0gJChM
SUJNVVNMKS9zcmMvdGltZS90aW1lcl9nZXR0aW1lLmMKKyNMSUJNVVNMX1NSQ1MteSArPSAkKExJ
Qk1VU0wpL3NyYy90aW1lL3RpbWVyX3NldHRpbWUuYwogI0xJQk1VU0xfU1JDUy15ICs9ICQoTElC
TVVTTCkvc3JjL3RpbWUvdGltZXMuYwogTElCTVVTTF9TUkNTLXkgKz0gJChMSUJNVVNMKS9zcmMv
dGltZS90aW1lc3BlY19nZXQuYwogI0xJQk1VU0xfU1JDUy15ICs9ICQoTElCTVVTTCkvc3JjL3Rp
bWUvdXRpbWUuYwotLSAKMi4xNy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xp
c3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Wed Feb 26 09:48:22 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 26 Feb 2020 09:48:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j6tIi-0007dh-DD; Wed, 26 Feb 2020 09:48:20 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=9iuG=4O=uliege.be=gaulthier.gain@srs-us1.protection.inumbo.net>)
 id 1j6tIg-0007dS-H4
 for minios-devel@lists.xenproject.org; Wed, 26 Feb 2020 09:48:19 +0000
X-Inumbo-ID: 1c17bde8-587d-11ea-93e6-12813bfff9fa
Received: from serv108.segi.ulg.ac.be (unknown [139.165.32.111])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 1c17bde8-587d-11ea-93e6-12813bfff9fa;
 Wed, 26 Feb 2020 09:48:15 +0000 (UTC)
Received: from [139.165.223.119] (unknown [139.165.223.119])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by serv108.segi.ulg.ac.be (Postfix) with ESMTPSA id E48B3201870E
 for <minios-devel@lists.xenproject.org>; Wed, 26 Feb 2020 10:48:14 +0100 (CET)
DKIM-Filter: OpenDKIM Filter v2.11.0 serv108.segi.ulg.ac.be E48B3201870E
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uliege.be;
 s=ulg20190529; t=1582710494;
 bh=fMZnOahxQ3KnwzBRc+KlFFrGZRfFgqr7tTo5UK6ep70=;
 h=From:Subject:Date:References:To:In-Reply-To:From;
 b=HGKesZOsr4b7PvD0m/cG6qqF4zq0igkF73pJvyByk/jUoDvYXJmwyoldMFQHcNJdx
 /thBWPsPylTs8UDv+pmCJ5AVWqOZDqBM9w6zoQ3XXrPcxCyW6HAswBYOmgocWGxbl7
 t84UWdN9dOxB3DKRcaWqxhrfbprOJs09JLTwOJIRJgdCnT14i5yoAhLa8MyAOOKJ62
 rP5HBtxSpfJMknPnxDhNsaebaJi95AS25jA7K6dZh08LMP1ziErYHVgxV70sc8qVrz
 ktOyHsniVD9xxlWlvAvpghASbtLMIYZDni78Z5EkrXUn6rZWYoihME6pUyQgA+Ci0/
 c6FgsBtYnKvMA==
From: Gaulthier Gain <Gaulthier.Gain@uliege.be>
Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.60.0.2.5\))
Date: Wed, 26 Feb 2020 10:48:14 +0100
References: <20200225124928.42523-1-gaulthier.gain@uliege.be>
 <20200225124928.42523-3-gaulthier.gain@uliege.be>
To: minios-devel@lists.xenproject.org
In-Reply-To: <20200225124928.42523-3-gaulthier.gain@uliege.be>
Message-Id: <7C260FF1-2EE6-4CB3-9605-EFC4DF40F802@uliege.be>
X-Mailer: Apple Mail (2.3608.60.0.2.5)
Subject: Re: [Minios-devel] [UNIKRAFT/MUSL PATCH 2/3] Add patch to fflush
 after printing on stdout
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UGxlYXNlLCBpZ25vcmUgdGhpcyBwYXRjaC4gV2UgZm91bmQgYSBiZXR0ZXIgd2F5IHRvIGRvIGl0
LiBXZSB3aWxsIHNlbmQgYSBuZXcgcGF0Y2ggcXVpdGUgc29vbi4KCkdhdWx0aGllcgoKPiBPbiAy
NSBGZWIgMjAyMCwgYXQgMTM6NDksIGdhdWx0aGllci5nYWluQHVsaWVnZS5iZSB3cm90ZToKPiAK
PiBGcm9tOiBnYXVsdGhpZXIgZ2FpbiA8Z2F1bHRoaWVyLmdhaW5AdWxpZWdlLmJlPgo+IAo+IFRo
aXMgcGF0Y2ggZml4ZXMgdGhlIGlzc3VlIHdoZXJlIHByaW50aW5nIG9uIHN0ZG91dCBkb2VzCj4g
bm90aGluZyBzaW5jZSBzdGRvdXQgd2FzIG5vdCBmbHVzaGVkLiBXZSBmb3VuZCB0aGF0IGFsbAo+
IHByaW50LXJlbGF0ZWQgZnVuY3Rpb25zIGNhbGwgInB1dHMiIGFzIGFuIGludGVybmFsIGZ1bmN0
aW9uCj4gdG8gcHJpbnQgb3V0cHV0IG9uIHRoZSBjb25zb2xlLiBUaGVyZWZvcmUsIHdlIGNhbGwg
ZmZsdXNoCj4gZGlyZWN0bHkgYWZ0ZXIgdGhlICJwdXRzIiBjYWxsLgo+IAo+IFNpZ25lZC1vZmYt
Ynk6IGdhdWx0aGllciBnYWluIDxnYXVsdGhpZXIuZ2FpbkB1bGllZ2UuYmU+Cj4gLS0tCj4gcGF0
Y2hlcy8wMDA5LWZmbHVzaC1hZnRlci1wdXRzLnBhdGNoIHwgMjUgKysrKysrKysrKysrKysrKysr
KysrKysrKwo+IDEgZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspCj4gY3JlYXRlIG1vZGUg
MTAwNjQ0IHBhdGNoZXMvMDAwOS1mZmx1c2gtYWZ0ZXItcHV0cy5wYXRjaAo+IAo+IGRpZmYgLS1n
aXQgYS9wYXRjaGVzLzAwMDktZmZsdXNoLWFmdGVyLXB1dHMucGF0Y2ggYi9wYXRjaGVzLzAwMDkt
ZmZsdXNoLWFmdGVyLXB1dHMucGF0Y2gKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw
MDAwMDAuLjdmMWU4ZGMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvcGF0Y2hlcy8wMDA5LWZmbHVz
aC1hZnRlci1wdXRzLnBhdGNoCj4gQEAgLTAsMCArMSwyNSBAQAo+ICtGcm9tIGFlZDQyNDNlOTNl
OTMyNzM1N2Y4NDI5YWYzYmYzODA3Mzk5NjhlNDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCj4g
K0Zyb206IGdhdWx0aGllciBnYWluIDxnYXVsdGhpZXIuZ2FpbkB1bGllZ2UuYmU+Cj4gK0RhdGU6
IFR1ZSwgMjUgRmViIDIwMjAgMTE6NTU6NTggKzAwMDAKPiArU3ViamVjdDogW1BBVENIXSBBZGQg
ZmZsdXNoIGFmdGVyIHB1dHMgaW4gb3JkZXIgdG8gZmx1c2ggc3Rkb3V0Cj4gKwo+ICtTaWduZWQt
b2ZmLWJ5OiBHYXVsdGhpZXIgR2FpbiA8Z2F1bHRoaWVyLmdhaW5AdWxpZWdlLmJlPgo+ICstLS0K
PiArIHNyYy9zdGRpby9wdXRzLmMgfCAxICsKPiArIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv
bigrKQo+ICsKPiArZGlmZiAtLWdpdCBhL3NyYy9zdGRpby9wdXRzLmMgYi9zcmMvc3RkaW8vcHV0
cy5jCj4gK2luZGV4IDVhMzhhNDkuLmQxOWU1YjYgMTAwNjQ0Cj4gKy0tLSBhL3NyYy9zdGRpby9w
dXRzLmMKPiArKysrIGIvc3JjL3N0ZGlvL3B1dHMuYwo+ICtAQCAtNSw2ICs1LDcgQEAgaW50IHB1
dHMoY29uc3QgY2hhciAqcykKPiArCWludCByOwo+ICsJRkxPQ0soc3Rkb3V0KTsKPiArCXIgPSAt
KGZwdXRzKHMsIHN0ZG91dCkgPCAwIHx8IHB1dGNfdW5sb2NrZWQoJ1xuJywgc3Rkb3V0KSA8IDAp
Owo+ICsrCWZmbHVzaChzdGRvdXQpOwo+ICsJRlVOTE9DSyhzdGRvdXQpOwo+ICsJcmV0dXJuIHI7
Cj4gKyB9Cj4gKy0tCj4gKzIuMTcuMQo+ICsKPiAtLQo+IDIuMTcuMQoKCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5nIGxp
c3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Wed Feb 26 15:32:33 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 26 Feb 2020 15:32:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j6yfm-0002gb-Kv; Wed, 26 Feb 2020 15:32:30 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=zVlN=4O=neclab.eu=hugo.lefeuvre@srs-us1.protection.inumbo.net>)
 id 1j6yfm-0002gW-3E
 for minios-devel@lists.xenproject.org; Wed, 26 Feb 2020 15:32:30 +0000
X-Inumbo-ID: 3232c764-58ad-11ea-a490-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 3232c764-58ad-11ea-a490-bc764e2007e4;
 Wed, 26 Feb 2020 15:32:29 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 1083DF2036;
 Wed, 26 Feb 2020 16:32:28 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id xxiSN5biaNko; Wed, 26 Feb 2020 16:32:27 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from titania.office.hd (titania.office.hd [192.168.24.89])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id E1B65F2003
 for <minios-devel@lists.xenproject.org>; Wed, 26 Feb 2020 16:32:25 +0100 (CET)
Received: from N-1237.office.hd (192.168.24.96) by titania.office.hd
 (192.168.24.89) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 26 Feb
 2020 16:32:25 +0100
From: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
To: <minios-devel@lists.xenproject.org>
Date: Wed, 26 Feb 2020 16:32:20 +0100
Message-ID: <8be494a515adeea23fe0d594a7211bc43ca327cb.1582730201.git.hugo.lefeuvre@neclab.eu>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: puck.office.hd (192.168.24.91) To titania.office.hd
 (192.168.24.89)
Subject: [Minios-devel] [UNIKRAFT/NEWLIB PATCH] patches: fix typo in
 atomic_compare_exchange_strong_explicit
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

Rml4ICdleHBlY2VkJyB0eXBvLiBUaGlzIGJyZWFrcyBidWlsZHMgcmVseWluZyBvbgphdG9taWNf
Y29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQuCgpTaWduZWQtb2ZmLWJ5OiBIdWdvIExl
ZmV1dnJlIDxodWdvLmxlZmV1dnJlQG5lY2xhYi5ldT4KLS0tCiBwYXRjaGVzLzAwMDktc3RkYXRv
bWljLmgtRml4LWF0b21pY18tZGVmaW5pdGlvbnMucGF0Y2ggfCAyICstCiAxIGZpbGUgY2hhbmdl
ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9wYXRjaGVzLzAw
MDktc3RkYXRvbWljLmgtRml4LWF0b21pY18tZGVmaW5pdGlvbnMucGF0Y2ggYi9wYXRjaGVzLzAw
MDktc3RkYXRvbWljLmgtRml4LWF0b21pY18tZGVmaW5pdGlvbnMucGF0Y2gKaW5kZXggNmNiOGE4
Mi4uMjU1M2U0MiAxMDA2NDQKLS0tIGEvcGF0Y2hlcy8wMDA5LXN0ZGF0b21pYy5oLUZpeC1hdG9t
aWNfLWRlZmluaXRpb25zLnBhdGNoCisrKyBiL3BhdGNoZXMvMDAwOS1zdGRhdG9taWMuaC1GaXgt
YXRvbWljXy1kZWZpbml0aW9ucy5wYXRjaApAQCAtMzQsNyArMzQsNyBAQCBpbmRleCAwOWMwY2Y3
Li5kYWExOTY5IDEwMDY0NAogKwlfX2F1dG9fdHlwZSBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdl
X3B0ciA9IChvYmplY3QpOwkJCQlcCiArCV9fdHlwZW9mX18gKCpfX2F0b21pY19jb21wYXJlX2V4
Y2hhbmdlX3B0cikgX19hdG9taWNfY29tcGFyZV9leGNoYW5nZV90bXAgCVwKICsJPSAoZGVzaXJl
ZCk7CQkJCQkJCQkJXAotKwlfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlIChfX2F0b21pY19jb21w
YXJlX2V4Y2hhbmdlX3B0ciwgKGV4cGVjZWQpLAkJXAorKwlfX2F0b21pY19jb21wYXJlX2V4Y2hh
bmdlIChfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX3B0ciwgKGV4cGVjdGVkKSwJCVwKICsJCSZf
X2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX3RtcCwJCQkJCQlcCiArCQkwLCAoc3VjY2VzcyksIChm
YWlsdXJlKSk7CQkJCQkJXAogKyAgfSkKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5p
b3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

From minios-devel-bounces@lists.xenproject.org Thu Feb 27 10:26:31 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 27 Feb 2020 10:26:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j7GNA-0003dD-Nr; Thu, 27 Feb 2020 10:26:28 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=MWHZ=4P=neclab.eu=sharan.santhanam@srs-us1.protection.inumbo.net>)
 id 1j7GN8-0003d8-Ri
 for minios-devel@lists.xenproject.org; Thu, 27 Feb 2020 10:26:26 +0000
X-Inumbo-ID: 9a86fdf0-594b-11ea-9636-12813bfff9fa
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 9a86fdf0-594b-11ea-9636-12813bfff9fa;
 Thu, 27 Feb 2020 10:26:24 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 8CF85F203A;
 Thu, 27 Feb 2020 11:26:23 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Uj0ZvdAUDZtj; Thu, 27 Feb 2020 11:26:23 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 63A6CF2019
 for <minios-devel@lists.xenproject.org>; Thu, 27 Feb 2020 11:26:21 +0100 (CET)
Received: from [10.1.2.10] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 27 Feb
 2020 11:26:21 +0100
To: <minios-devel@lists.xenproject.org>
References: <8be494a515adeea23fe0d594a7211bc43ca327cb.1582730201.git.hugo.lefeuvre@neclab.eu>
From: Sharan Santhanam <sharan.santhanam@neclab.eu>
Message-ID: <2198fed5-eb53-b58f-0c13-860c177475ee@neclab.eu>
Date: Thu, 27 Feb 2020 11:26:20 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <8be494a515adeea23fe0d594a7211bc43ca327cb.1582730201.git.hugo.lefeuvre@neclab.eu>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: oberon.office.hd (192.168.24.90) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/NEWLIB PATCH] patches: fix typo in
 atomic_compare_exchange_strong_explicit
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmV2aWV3ZWQtYnk6IFNoYXJhbiBTYW50aGFuYW0gPHNoYXJhbi5zYW50aGFuYW1AbmVjbGFiLmV1
PgoKCk9uIDIvMjYvMjAgNDozMiBQTSwgSHVnbyBMZWZldXZyZSB3cm90ZToKPiBGaXggJ2V4cGVj
ZWQnIHR5cG8uIFRoaXMgYnJlYWtzIGJ1aWxkcyByZWx5aW5nIG9uCj4gYXRvbWljX2NvbXBhcmVf
ZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEh1Z28gTGVmZXV2
cmUgPGh1Z28ubGVmZXV2cmVAbmVjbGFiLmV1Pgo+IC0tLQo+ICAgcGF0Y2hlcy8wMDA5LXN0ZGF0
b21pYy5oLUZpeC1hdG9taWNfLWRlZmluaXRpb25zLnBhdGNoIHwgMiArLQo+ICAgMSBmaWxlIGNo
YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3Bh
dGNoZXMvMDAwOS1zdGRhdG9taWMuaC1GaXgtYXRvbWljXy1kZWZpbml0aW9ucy5wYXRjaCBiL3Bh
dGNoZXMvMDAwOS1zdGRhdG9taWMuaC1GaXgtYXRvbWljXy1kZWZpbml0aW9ucy5wYXRjaAo+IGlu
ZGV4IDZjYjhhODIuLjI1NTNlNDIgMTAwNjQ0Cj4gLS0tIGEvcGF0Y2hlcy8wMDA5LXN0ZGF0b21p
Yy5oLUZpeC1hdG9taWNfLWRlZmluaXRpb25zLnBhdGNoCj4gKysrIGIvcGF0Y2hlcy8wMDA5LXN0
ZGF0b21pYy5oLUZpeC1hdG9taWNfLWRlZmluaXRpb25zLnBhdGNoCj4gQEAgLTM0LDcgKzM0LDcg
QEAgaW5kZXggMDljMGNmNy4uZGFhMTk2OSAxMDA2NDQKPiAgICsJX19hdXRvX3R5cGUgX19hdG9t
aWNfY29tcGFyZV9leGNoYW5nZV9wdHIgPSAob2JqZWN0KTsJCQkJXAo+ICAgKwlfX3R5cGVvZl9f
ICgqX19hdG9taWNfY29tcGFyZV9leGNoYW5nZV9wdHIpIF9fYXRvbWljX2NvbXBhcmVfZXhjaGFu
Z2VfdG1wIAlcCj4gICArCT0gKGRlc2lyZWQpOwkJCQkJCQkJCVwKPiAtKwlfX2F0b21pY19jb21w
YXJlX2V4Y2hhbmdlIChfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX3B0ciwgKGV4cGVjZWQpLAkJ
XAo+ICsrCV9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2UgKF9fYXRvbWljX2NvbXBhcmVfZXhjaGFu
Z2VfcHRyLCAoZXhwZWN0ZWQpLAkJXAo+ICAgKwkJJl9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vf
dG1wLAkJCQkJCVwKPiAgICsJCTAsIChzdWNjZXNzKSwgKGZhaWx1cmUpKTsJCQkJCQlcCj4gICAr
ICB9KQo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TWluaW9zLWRldmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1k
ZXZlbA==

From minios-devel-bounces@lists.xenproject.org Fri Feb 28 13:22:20 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 28 Feb 2020 13:22:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j7fas-0006IX-7V; Fri, 28 Feb 2020 13:22:18 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <SRS0=glAs=4Q=owl.eu.com=hle@srs-us1.protection.inumbo.net>)
 id 1j7faq-0006IS-K2
 for minios-devel@lists.xenproject.org; Fri, 28 Feb 2020 13:22:16 +0000
X-Inumbo-ID: 55876bee-5a2d-11ea-9936-12813bfff9fa
Received: from relay1-d.mail.gandi.net (unknown [217.70.183.193])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 55876bee-5a2d-11ea-9936-12813bfff9fa;
 Fri, 28 Feb 2020 13:22:15 +0000 (UTC)
X-Originating-IP: 141.70.45.131
Received: from localhost (hadi-gate-vlan-851.hadiko.whka.de [141.70.45.131])
 (Authenticated sender: hle@owl.eu.com)
 by relay1-d.mail.gandi.net (Postfix) with ESMTPSA id DB9F624000A
 for <minios-devel@lists.xenproject.org>; Fri, 28 Feb 2020 13:22:13 +0000 (UTC)
Date: Fri, 28 Feb 2020 14:22:13 +0100
From: Hugo Lefeuvre <hle@owl.eu.com>
To: minios-devel@lists.xenproject.org
Message-ID: <5b7ac3809a611277163efca3d71e7da5120164c5.1582895769.git.hugo.lefeuvre@neclab.eu>
MIME-Version: 1.0
Subject: [Minios-devel] [UNIKRAFT PATCH] lib/vfscore: fix null pointer
 dereferences
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============3400196351375698243=="
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>


--===============3400196351375698243==
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="m2r7gsd334355r6n"
Content-Disposition: inline


--m2r7gsd334355r6n
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

dentry_alloc and dentry_move both create dentry d_path fields using
strdup, without checking for NULL return values. This leads to null
pointer dereferences if the allocator goes OOM.

Modify dentry_move to return an error code (0 for success, otherwise
error code).

Signed-off-by: Hugo Lefeuvre <hugo.lefeuvre@neclab.eu>
---
 lib/vfscore/dentry.c                 | 12 +++++++++++-
 lib/vfscore/include/vfscore/dentry.h |  2 +-
 lib/vfscore/syscalls.c               |  5 ++++-
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/lib/vfscore/dentry.c b/lib/vfscore/dentry.c
index 76f7a6b..a4728fc 100644
--- a/lib/vfscore/dentry.c
+++ b/lib/vfscore/dentry.c
@@ -81,6 +81,11 @@ dentry_alloc(struct dentry *parent_dp, struct vnode *vp,=
 const char *path)
 	dp->d_vnode =3D vp;
 	dp->d_mount =3D mp;
 	dp->d_path =3D strdup(path);
+
+	if (!dp->d_path) {
+		return NULL;
+	}
+
 	UK_INIT_LIST_HEAD(&dp->d_child_list);
=20
 	if (parent_dp) {
@@ -133,11 +138,12 @@ static void dentry_children_remove(struct dentry *dp)
=20
 }
=20
-void
+int
 dentry_move(struct dentry *dp, struct dentry *parent_dp, char *path)
 {
 	struct dentry *old_pdp =3D dp->d_parent;
 	char *old_path =3D dp->d_path;
+	int error =3D 0;
=20
 	if (old_pdp) {
 		uk_mutex_lock(&old_pdp->d_lock);
@@ -162,6 +168,9 @@ dentry_move(struct dentry *dp, struct dentry *parent_dp=
, char *path)
 	uk_hlist_del(&dp->d_link);
 	// Update dp.
 	dp->d_path =3D strdup(path);
+	if (!dp->d_path)
+		error =3D ENOMEM;
+
 	dp->d_parent =3D parent_dp;
 	// Insert dp updated hash info into the hashtable.
 	uk_hlist_add_head(&dp->d_link,
@@ -173,6 +182,7 @@ dentry_move(struct dentry *dp, struct dentry *parent_dp=
, char *path)
 	}
=20
 	free(old_path);
+	return error;
 }
=20
 void
diff --git a/lib/vfscore/include/vfscore/dentry.h b/lib/vfscore/include/vfs=
core/dentry.h
index 0a38402..2c35653 100644
--- a/lib/vfscore/include/vfscore/dentry.h
+++ b/lib/vfscore/include/vfscore/dentry.h
@@ -56,7 +56,7 @@ struct dentry {
=20
 struct dentry *dentry_alloc(struct dentry *parent_dp, struct vnode *vp, co=
nst char *path);
 struct dentry *dentry_lookup(struct mount *mp, char *path);
-void dentry_move(struct dentry *dp, struct dentry *parent_dp, char *path);
+int dentry_move(struct dentry *dp, struct dentry *parent_dp, char *path);
 void dentry_remove(struct dentry *dp);
 void dref(struct dentry *dp);
 void drele(struct dentry *dp);
diff --git a/lib/vfscore/syscalls.c b/lib/vfscore/syscalls.c
index 9b5a6bd..9a132b7 100644
--- a/lib/vfscore/syscalls.c
+++ b/lib/vfscore/syscalls.c
@@ -833,8 +833,11 @@ sys_rename(char *src, char *dest)
 	}
=20
 	error =3D VOP_RENAME(dvp1, vp1, sname, dvp2, vp2, dname);
+	if (error)
+		goto err3;
+
+	error =3D dentry_move(dp1, ddp2, dname);
=20
-	dentry_move(dp1, ddp2, dname);
 	if (dp2)
 		dentry_remove(dp2);
=20
--=20
2.7.4

--m2r7gsd334355r6n
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQGzBAABCgAdFiEEeDb9QWtkMa2LX4zREeMFjl5EGkIFAl5ZE/YACgkQEeMFjl5E
GkK2CAv/dJqSazIzf18Xi4okgAZDFJm8pFXJLUISssiKpkyDJGEkIOE8pCzqoHRD
0ipeIMoRPe45EF8Lm6pguTrcGj5b7NGNWuLOyPONp+AK+Kyr8PUIsKM+EV8ZUTS0
RovxApkcT747oCAT0zeV3g7XgGEbmW4bS7pPEOpSGhNmSN4VGle2GYG1+6NnL1dm
Qu0oEan2f1p5Rebi4+0YyXNtUCcw1jhQdyJpftGA8hkVpPn731XYQtpCuMmCEhnf
AmjnICtc2H1kHymLlcFnwPD+aZyePMDyyaju2I0M9amxKMG5Xl81B2FfAX3+OtgG
eOLAhrsSW2W6MknBO/mAG//gUM2PWd8rVxvYZt9CyNxcNzFZO8WgAmSkbMnJtXGf
5w4N6lZcPWhdifJwrU1EPouG7fmuKEOMxhBHkbbw6KoPdoWVDmA8ODKU/iRt60l5
Jq5YNotajEUWI1IbHfdwD+/boeKG3Rzg/iYlqkjjJn4yk7CQja6As2HkH/2Fc6cz
MxO/0BYh
=gZ4r
-----END PGP SIGNATURE-----

--m2r7gsd334355r6n--


--===============3400196351375698243==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRl
dmVsIG1haWxpbmcgbGlzdApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

--===============3400196351375698243==--


From minios-devel-bounces@lists.xenproject.org Fri Feb 28 13:53:01 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 28 Feb 2020 13:53:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j7g4a-00014t-8m; Fri, 28 Feb 2020 13:53:00 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=nGga=4Q=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j7g4Y-00014o-M0
 for minios-devel@lists.xen.org; Fri, 28 Feb 2020 13:52:58 +0000
X-Inumbo-ID: 9fc5a00a-5a31-11ea-8e51-bc764e2007e4
Received: from mh-is-0.lancs.ac.uk (unknown [148.88.65.128])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id 9fc5a00a-5a31-11ea-8e51-bc764e2007e4;
 Fri, 28 Feb 2020 13:52:57 +0000 (UTC)
Received: from 137.ip-164-132-43.eu ([164.132.43.137]
 helo=localhost.localdomain)
 by mh-is-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j7g4V-000OBl-1R; Fri, 28 Feb 2020 13:52:56 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 28 Feb 2020 14:52:48 +0100
Message-Id: <20200228135248.99124-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-is-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/PLAT-SOLO5] solo5: Fix ctortab start
 symbol name.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Haibo Xu <haibo.xu@arm.com>,
 Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBs
aW5rNjQubGRzIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0
aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGluazY0LmxkcyBiL2xpbms2NC5sZHMKaW5kZXggMTVhNWNj
YS4uZGIxYWNiZCAxMDA2NDQKLS0tIGEvbGluazY0LmxkcworKysgYi9saW5rNjQubGRzCkBAIC01
OSw3ICs1OSw3IEBAIFNFQ1RJT05TIHsKICAgICBfX2VoX2ZyYW1lX2hkcl9lbmQgPSAuOwoKICAg
ICAuID0gQUxJR04oMHgxMDAwKTsKLSAgICB1a19jdG9ydGFiID0gLjsKKyAgICB1a19jdG9ydGFi
X3N0YXJ0ID0gLjsKICAgICAudWtfY3RvcnRhYiA6CiAgICAgewogICAgICAgICAgICAgS0VFUCgq
KFNPUlRfQllfTkFNRSgudWtfY3RvcnRhYlswLTddKSkpCi0tCjIuMTEuMAoKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1pbmlvcy1kZXZlbCBtYWlsaW5n
IGxpc3QKTWluaW9zLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9taW5pb3MtZGV2ZWw=

From minios-devel-bounces@lists.xenproject.org Fri Feb 28 14:43:36 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 28 Feb 2020 14:43:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j7grW-0005Ey-A8; Fri, 28 Feb 2020 14:43:34 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=AfdU=4Q=neclab.eu=sharan.santhanam@srs-us1.protection.inumbo.net>)
 id 1j7grV-0005Et-S3
 for minios-devel@lists.xenproject.org; Fri, 28 Feb 2020 14:43:33 +0000
X-Inumbo-ID: b067d912-5a38-11ea-ad76-bc764e2007e4
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id b067d912-5a38-11ea-ad76-bc764e2007e4;
 Fri, 28 Feb 2020 14:43:31 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 53F89F2020;
 Fri, 28 Feb 2020 15:43:30 +0100 (CET)
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ABGgPgAMKGkU; Fri, 28 Feb 2020 15:43:30 +0100 (CET)
X-ENC: Last-Hop-TLS-encrypted
X-ENC: Last-Hop-TLS-encrypted
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 18B66F2007
 for <minios-devel@lists.xenproject.org>; Fri, 28 Feb 2020 15:43:28 +0100 (CET)
Received: from [10.1.2.10] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 28 Feb
 2020 15:43:27 +0100
To: <minios-devel@lists.xenproject.org>
References: <20200228135248.99124-1-a.jung@lancs.ac.uk>
From: Sharan Santhanam <sharan.santhanam@neclab.eu>
Message-ID: <52eb61e6-c8bb-e904-8ea1-423dac97422c@neclab.eu>
Date: Fri, 28 Feb 2020 15:43:27 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <20200228135248.99124-1-a.jung@lancs.ac.uk>
Content-Language: en-US
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)
Subject: Re: [Minios-devel] [UNIKRAFT/PLAT-SOLO5] solo5: Fix ctortab start
 symbol name.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

UmV2aWV3ZWQtYnk6IFNoYXJhbiBTYW50aGFuYW0gPHNoYXJhbi5zYW50aGFuYW1AbmVjbGFiLmV1
PgoKT24gMi8yOC8yMCAyOjUyIFBNLCBBbGV4YW5kZXIgSnVuZyB3cm90ZToKPiBTaWduZWQtb2Zm
LWJ5OiBBbGV4YW5kZXIgSnVuZyA8YS5qdW5nQGxhbmNzLmFjLnVrPgo+IC0tLQo+ICAgbGluazY0
LmxkcyB8IDIgKy0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv
bigtKQo+Cj4gZGlmZiAtLWdpdCBhL2xpbms2NC5sZHMgYi9saW5rNjQubGRzCj4gaW5kZXggMTVh
NWNjYS4uZGIxYWNiZCAxMDA2NDQKPiAtLS0gYS9saW5rNjQubGRzCj4gKysrIGIvbGluazY0Lmxk
cwo+IEBAIC01OSw3ICs1OSw3IEBAIFNFQ1RJT05TIHsKPiAgICAgICBfX2VoX2ZyYW1lX2hkcl9l
bmQgPSAuOwo+Cj4gICAgICAgLiA9IEFMSUdOKDB4MTAwMCk7Cj4gLSAgICB1a19jdG9ydGFiID0g
LjsKPiArICAgIHVrX2N0b3J0YWJfc3RhcnQgPSAuOwo+ICAgICAgIC51a19jdG9ydGFiIDoKPiAg
ICAgICB7Cj4gICAgICAgICAgICAgICBLRUVQKCooU09SVF9CWV9OQU1FKC51a19jdG9ydGFiWzAt
N10pKSkKPiAtLQo+IDIuMTEuMAo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwo+IE1pbmlvcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBNaW5pb3MtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h
aWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwgbWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt
YW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 28 17:58:27 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 28 Feb 2020 17:58:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j7ju4-00070y-PM; Fri, 28 Feb 2020 17:58:24 +0000
Received: from us1-rack-iad1.inumbo.com ([172.99.69.81])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=nGga=4Q=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j7ju3-00070s-T0
 for minios-devel@lists.xen.org; Fri, 28 Feb 2020 17:58:23 +0000
X-Inumbo-ID: e8b8a20e-5a53-11ea-aea3-bc764e2007e4
Received: from mh-fa-0.lancs.ac.uk (unknown [148.88.65.130])
 by us1-rack-iad1.inumbo.com (Halon) with ESMTPS
 id e8b8a20e-5a53-11ea-aea3-bc764e2007e4;
 Fri, 28 Feb 2020 17:58:22 +0000 (UTC)
Received: from x4d0c37ed.dyn.telefonica.de ([77.12.55.237]
 helo=nderjung.localdomain)
 by mh-fa-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j7ju0-0000jV-95; Fri, 28 Feb 2020 17:58:21 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 28 Feb 2020 18:58:01 +0100
Message-Id: <20200228175802.33353-1-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-fa-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/LIB-OPENSSL 1/2] Config.uk: Select
 /dev/random device for libcrypto.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Costin Lupu <costin.lupu@cs.pub.ro>,
 Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEp1bmcgPGEuanVuZ0BsYW5jcy5hYy51az4KLS0tCiBD
b25maWcudWsgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0t
Z2l0IGEvQ29uZmlnLnVrIGIvQ29uZmlnLnVrCmluZGV4IDQwMmFhYjguLjY3M2M4ZDkgMTAwNjQ0
Ci0tLSBhL0NvbmZpZy51aworKysgYi9Db25maWcudWsKQEAgLTI1LDYgKzI1LDggQEAgY29uZmln
IExJQkNSWVBUTwogCXNlbGVjdCBMSUJQT1NJWF9VU0VSCiAJc2VsZWN0IExJQlBPU0lYX0xJQkRM
CiAJc2VsZWN0IExJQlNZU0NBTExfU0hJTQorCXNlbGVjdCBMSUJVS1NXUkFORAorCXNlbGVjdCBM
SUJVS1NXUkFORF9ERVZGUwogaWYgTElCQ1JZUFRPCiBlbmRpZgogCi0tIAoyLjExLjAKCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNaW5pb3MtZGV2ZWwg
bWFpbGluZyBsaXN0Ck1pbmlvcy1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp
c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vbWluaW9zLWRldmVs

From minios-devel-bounces@lists.xenproject.org Fri Feb 28 17:58:27 2020
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 28 Feb 2020 17:58:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1j7ju7-00071M-RZ; Fri, 28 Feb 2020 17:58:27 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <SRS0=nGga=4Q=lancs.ac.uk=a.jung@srs-us1.protection.inumbo.net>)
 id 1j7ju6-000717-VA
 for minios-devel@lists.xen.org; Fri, 28 Feb 2020 17:58:26 +0000
X-Inumbo-ID: eaba35b8-5a53-11ea-99e1-12813bfff9fa
Received: from mh-fa-0.lancs.ac.uk (unknown [148.88.65.130])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id eaba35b8-5a53-11ea-99e1-12813bfff9fa;
 Fri, 28 Feb 2020 17:58:26 +0000 (UTC)
Received: from x4d0c37ed.dyn.telefonica.de ([77.12.55.237]
 helo=nderjung.localdomain)
 by mh-fa-0.lancs.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
 (Exim 4.92.3) (envelope-from <a.jung@lancs.ac.uk>)
 id 1j7ju4-0000jV-6q; Fri, 28 Feb 2020 17:58:25 +0000
From: Alexander Jung <a.jung@lancs.ac.uk>
To: minios-devel@lists.xen.org
Date: Fri, 28 Feb 2020 18:58:02 +0100
Message-Id: <20200228175802.33353-2-a.jung@lancs.ac.uk>
X-Mailer: git-send-email 2.24.1
In-Reply-To: <20200228175802.33353-1-a.jung@lancs.ac.uk>
References: <20200228175802.33353-1-a.jung@lancs.ac.uk>
MIME-Version: 1.0
X-Spam-Score: -1.0 (-)
X-Spam-Bar: -
X-Spam-Report: Spam detection software, running on the system
 "mh-fa-0.lancs.ac.uk", has processed this message.
 The results are shown below. .
 Content analysis details:   (-1.0 points, 4.1 required) .
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
Subject: [Minios-devel] [UNIKRAFT/LIB-OPENSSL 2/2] libssl: Disable
 /dev/random wait() path.
X-BeenThere: minios-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Felipe Huici <felipe.huici@neclab.eu>,
 Simon Kuenzer <simon.kuenzer@neclab.eu>, Costin Lupu <costin.lupu@cs.pub.ro>,
 Alexander Jung <a.jung@lancs.ac.uk>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: minios-devel-bounces@lists.xenproject.org
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>

VGhpcyBwYXRjaCBwcmV2ZW50cyBERVZSQU5ET01fV0FJVCBmcm9tIGJlaW5nIGRlZmluZWQgd2hp
Y2ggaXMKY2hlY2tlZCBhbmQgdGhlbiB1c2VkIGR1cmluZyBsaWJjcnlwdG8ncyBhY3F1aXNpdGlv
biBmb3IgZW50cm9weSBpbgpyYW5kX3Bvb2xfYWNxdWlyZV9lbnRyb3B5LiAgRm9yIG5vdywgVW5p
a3JhZnQgZG9lcyBub3Qgc3VwcG9ydAp0aGUgcmVnaXN0cmF0aW9uIG9mIHNwZWNpZmljIGZpbGUg
ZGVzY3JpcHRvcnMgb2Ygb3BlbiBpbnB1dC9vdXRwdXQKY2hhbm5lbHMgKGUuZy4gc2VsZWN0LCBw
b2xsLCBzb2NrZXQpLiAgQXMgYSByZXN1bHQsIGEgY2FsbCB0bwpzZWxlY3QoKSB3aWxsIGRlZmF1
bHQgdG8gTHdJUCdzIGltcGxlbWVudGF0aW9ucyB3aGljaCBhcmUgcHJvdmlkZWQKZ2xvYmFsbHku
CgpUaGlzIHdhcyBkaXNjb3ZlcmVkIHdoaWxzdCBlbmFibGluZyBTU0wgZm9yIE5HSU5YIHdoaWNo
IHJlbGllcyBvbgpsaWJvcGVuc3NsL2xpYnNzbC9saWJjcnlwdC4gIExlZnQgdW4tcGF0Y2hlZCwg
dGhlIHJlc3VsdCBsZWQgdG8KdW5kZWZpbmVkIHN5c3RlbSBiZWhhdmlvdXIgZHVyaW5nIHRoZSBw
YXJzaW5nIG9mIGNvbmZpZ3VyYXRpb24KZmlsZXMuCgpUaGlzIHBhdGNoIGNhbiBiZSByZW1vdmVk
IG9uY2UgVW5pa3JhZnQgc3VwcG9ydHMgdGhlIHJlZ2lzdHJhdGlvbgpvbiBwcm90b3R5cGUgb3Bl
cmF0aW9ucyBmb3IgPHN5cy9zZWxlY3QuaD4sIDxwb2xsLmg+IGFuZAo8c3lzL3NvY2tldC5oPi4K
ClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+Ci0tLQog
Li4uLzAwMDEtbGlic3NsLURpc2FibGUtZGV2LXJhbmRvbS13YWl0LXBhdGgucGF0Y2ggfCA0MiAr
KysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvMDAwMS1saWJzc2wtRGlzYWJsZS1kZXYtcmFuZG9t
LXdhaXQtcGF0aC5wYXRjaAoKZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDAwMS1saWJzc2wtRGlzYWJs
ZS1kZXYtcmFuZG9tLXdhaXQtcGF0aC5wYXRjaCBiL3BhdGNoZXMvMDAwMS1saWJzc2wtRGlzYWJs
ZS1kZXYtcmFuZG9tLXdhaXQtcGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xODRmZmYxCi0tLSAvZGV2L251bGwKKysrIGIvcGF0Y2hlcy8wMDAxLWxpYnNzbC1E
aXNhYmxlLWRldi1yYW5kb20td2FpdC1wYXRoLnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20g
YjIwMDAyMzI1MTdhMWE4MTdhYWI2OWI5ZGQxNWI3ODhlNjY1MzgwMyBNb24gU2VwIDE3IDAwOjAw
OjAwIDIwMDEKK0Zyb206IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+CitEYXRl
OiBGcmksIDI4IEZlYiAyMDIwIDE3OjU1OjQ4ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIGxpYnNz
bDogRGlzYWJsZSAvZGV2L3JhbmRvbSB3YWl0KCkgcGF0aC4KKworVGhpcyBwYXRjaCBwcmV2ZW50
cyBERVZSQU5ET01fV0FJVCBmcm9tIGJlaW5nIGRlZmluZWQgd2hpY2ggaXMKK2NoZWNrZWQgYW5k
IHRoZW4gdXNlZCBkdXJpbmcgbGliY3J5cHRvJ3MgYWNxdWlzaXRpb24gZm9yIGVudHJvcHkgaW4K
K3JhbmRfcG9vbF9hY3F1aXJlX2VudHJvcHkuICBGb3Igbm93LCBVbmlrcmFmdCBkb2VzIG5vdCBz
dXBwb3J0Cit0aGUgcmVnaXN0cmF0aW9uIG9mIHNwZWNpZmljIGZpbGUgZGVzY3JpcHRvcnMgb2Yg
b3BlbiBpbnB1dC9vdXRwdXQKK2NoYW5uZWxzIChlLmcuIHNlbGVjdCwgcG9sbCwgc29ja2V0KS4g
IEFzIGEgcmVzdWx0LCBhIGNhbGwgdG8KK3NlbGVjdCgpIHdpbGwgZGVmYXVsdCB0byBMd0lQJ3Mg
aW1wbGVtZW50YXRpb25zIHdoaWNoIGFyZSBwcm92aWRlZAorZ2xvYmFsbHkuCisKK1RoaXMgd2Fz
IGRpc2NvdmVyZWQgd2hpbHN0IGVuYWJsaW5nIFNTTCBmb3IgTkdJTlggd2hpY2ggcmVsaWVzIG9u
CitsaWJvcGVuc3NsL2xpYnNzbC9saWJjcnlwdC4gIExlZnQgdW4tcGF0Y2hlZCwgdGhlIHJlc3Vs
dCBsZWQgdG8KK3VuZGVmaW5lZCBzeXN0ZW0gYmVoYXZpb3VyIGR1cmluZyB0aGUgcGFyc2luZyBv
ZiBjb25maWd1cmF0aW9uCitmaWxlcy4KKworVGhpcyBwYXRjaCBjYW4gYmUgcmVtb3ZlZCBvbmNl
IFVuaWtyYWZ0IHN1cHBvcnRzIHRoZSByZWdpc3RyYXRpb24KK29uIHByb3RvdHlwZSBvcGVyYXRp
b25zIGZvciA8c3lzL3NlbGVjdC5oPiwgPHBvbGwuaD4gYW5kIAorPHN5cy9zb2NrZXQuaD4uCisK
K1NpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBKdW5nIDxhLmp1bmdAbGFuY3MuYWMudWs+CistLS0K
KyBlX29zLmggfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0
aW9uKC0pCisKK2RpZmYgLS1naXQgYS9lX29zLmggYi9lX29zLmgKK2luZGV4IGU5Y2U2YzkuLmYx
ZTkzZDQgMTAwNjQ0CistLS0gYS9lX29zLmgKKysrKyBiL2Vfb3MuaAorQEAgLTI4LDcgKzI4LDcg
QEAKKyAgKiBkZWZhdWx0LCB3ZSB3aWxsIHRyeSB0byByZWFkIGF0IGxlYXN0IG9uZSBvZiB0aGVz
ZSBmaWxlcworICAqLworICMgIGRlZmluZSBERVZSQU5ET00gIi9kZXYvdXJhbmRvbSIsICIvZGV2
L3JhbmRvbSIsICIvZGV2L2h3cm5nIiwgIi9kZXYvc3JhbmRvbSIKKy0jICBpZmRlZiBfX2xpbnV4
CisrIyAgaWYgMAorICMgICBkZWZpbmUgREVWUkFORE9NX1dBSVQgIi9kZXYvcmFuZG9tIgorICMg
IGVuZGlmCisgIyBlbmRpZgorLS0KKzIuMTEuMAotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTWluaW9zLWRldmVsIG1haWxpbmcgbGlz
dApNaW5pb3MtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21pbmlvcy1kZXZlbA==

