Re: script for initial RC policy to use with learning mode

Javier Juan Martínez Cabezón <[email protected]> Thu, 14 Jan 2016 07:50:19 +0100
Newsgroups gmane.linux.rsbac
Message-ID <[email protected]>
WARNING: contains banned part
message.txt (message/rfc822, 23.9 KB)
Received: from www.rsbac.org (localhost [127.0.0.1])
	by www.rsbac.org (Postfix) with ESMTP id 79D924E0123;
	Fri, 15 Jan 2016 10:52:45 +0100 (CET)
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from maia (localhost [127.0.0.1])
	by www.rsbac.org (Postfix) with ESMTP id 3872E4E0105
	for <[email protected]>; Fri, 15 Jan 2016 10:52:43 +0100 (CET)
Received-SPF: Pass (sender SPF authorized) identity=mailfrom;
	client-ip=74.125.82.53; helo=mail-wm0-f53.google.com;
	[email protected]; [email protected] 
Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
	(Client CN "smtp.gmail.com",
	Issuer "Google Internet Authority G2" (verified OK))
	by www.rsbac.org (Postfix) with ESMTPS id C527F4E012A
	for <[email protected]>; Thu, 14 Jan 2016 07:51:52 +0100 (CET)
Received: by mail-wm0-f53.google.com with SMTP id f206so410706043wmf.0
	for <[email protected]>; Wed, 13 Jan 2016 22:51:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:user-agent:mime-version:to:subject:references
	:in-reply-to:content-type:content-transfer-encoding;
	bh=Y/Nj/RQd13FxGeXPqTf66H7QW1GszJqJyPZmVtfjmic=;
	b=U/GTgsN0dh1saofVyr7hyw+4Je9Xdb8nghptQOHWdaw7cP1N1aX9CqFpPKdmKhY2Ef
	TzRDEMb48DkOA5Ge7dzIvNQBvgtcTfBbm0VVB9Lgx7UlMLRjmseKEaT3Y39fZWnM+0qN
	XIhD7uQQTayiv44jUj5gdneUSzCLiwjJL4jhAtgssKT0ufaeOOsVi9NxBQSwYJF0IxWE
	q5qcfdcxJZiXiS2oZfXx+Yn6126H5axjoMexf1DGakneLfc8GbRR7T/ZB7MDiuXm2Esy
	Rg2WRcbVHyxPSsmG7+E08h2JjpDwY6YWmJeQUHlwxLvOHZQ/GpPBZ98fftw6jWUnRuoZ
	hlKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
	:subject:references:in-reply-to:content-type
	:content-transfer-encoding;
	bh=Y/Nj/RQd13FxGeXPqTf66H7QW1GszJqJyPZmVtfjmic=;
	b=AdTWWMbquL7IgTfrRp+qtZGgsiIH5hv4YMg82ukiResYQBOk5MxpqhGbtJ2no+VbEx
	KVV3+dnAgsDrrvyQ2DQtbf10IpgL8k/cb7HKvPVsyciF9zBGXhPD2O8zIbUO+1tY1WnI
	7NP8sBMPavg9FGLhkDNiPZ3DFflZTs4eCWcyAly6HNZj/SEG3+czh++TdkwLSbNIOYoT
	C0D2J5nvV9OIVlyQMxWS8iJUD3FPTQm4IENlIN9OjLok8AjfDuAMxAAOSn95/peyLyMN
	Bx9t12Xf6xUrzmA37hH+ptxu+6vONgB/FM9E1bgJe9IlV0BY3DF0S6ZjINxu9WKz85f3
	3OEQ==
X-Gm-Message-State: ALoCoQnYdv8SLG6kWWHflBZLnMLD9c4UrVrzhRJnMje+TahPSGWpcjWzDVv8IRmQ+WOy3ecnQqoF6+4hC3rCRuYzHoKCfWD+og==
X-Received: by 10.28.230.74 with SMTP id d71mr28504559wmh.97.1452754312031;
	Wed, 13 Jan 2016 22:51:52 -0800 (PST)
Received: from [192.168.0.5] (213.227.17.41.static.user.ono.com.
	[213.227.17.41]) by smtp.googlemail.com with ESMTPSA id
	w17sm25300376wmw.15.2016.01.13.22.51.50 for <[email protected]>
	(version=TLSv1/SSLv3 cipher=OTHER);
	Wed, 13 Jan 2016 22:51:51 -0800 (PST)
Message-ID: <[email protected]>
Date: Thu, 14 Jan 2016 07:50:19 +0100
From: =?UTF-8?B?SmF2aWVyIEp1YW4gTWFydMOtbmV6IENhYmV6w7Nu?=
	<[email protected]>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:31.0) Gecko/20100101 Icedove/31.5.0
MIME-Version: 1.0
To: [email protected]
References: <[email protected]>	<[email protected]>
	<[email protected]>
In-Reply-To: <[email protected]>
Subject: Re: [rsbac] script for initial RC policy to use with learning mode
X-BeenThere: [email protected]
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: RSBAC Discussion and Announcements <[email protected]>
List-Id: RSBAC Discussion and Announcements <rsbac.rsbac.org>
List-Unsubscribe: <https://www.rsbac.org/mailman/options/rsbac>,
	<mailto:[email protected]?subject=unsubscribe>
List-Archive: <http://www.rsbac.org/pipermail/rsbac/>
List-Post: <mailto:[email protected]>
List-Help: <mailto:[email protected]?subject=help>
List-Subscribe: <https://www.rsbac.org/mailman/listinfo/rsbac>,
	<mailto:[email protected]?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: [email protected]
Sender: "rsbac" <[email protected]>

CgpOb3QgYSBqb2tlICh5b3UgYXJlIG5vdCB0aGUgbG9uZWx5IG9uZSB3aG8gdGhvdWdodCBpdCB4
RCksCmp1c3QgbXkgYmVzdCBwaWVjZSBvZiB2YXBvcndhcmUgaW4gaGlzdG9yeSB4REQuIEkgZG9u
J3Qga25vdyB3aHkgYnV0IEkKZmVlbCB0aGUgbmVlZGluZ3MgdG8gc2xlZXAgd2hlbiBJIHRvdWNo
IHB5dGhvbiwgaXQgZG9lc24ndCBoYXBwZW4gbWUKd2l0aCBiYXNoIHhERERECgpUaGlzIGNhbiBz
aG93IHlvdSB0aGUgcG93ZXJmdWxsIG9mIHB5Z2FtZSB3aXRoIHNkbCwganVzdCBleHBvcnQgbmVl
ZGVkCnZhcmlhYmxlcyBhcyBhcHBlYXJzIGluIGRldGVjdF92aWRlb19kcml2ZXIuCgpJIHRob3Vn
aHQgdG8gdXNlIHNjYW5kaXIoKSBmdW5jdGlvbnMgdG8gdXNlIGluIGEgc29tZXRoaW5nIGxpa2Ug
ZmlsZQptYW5hZ2VyIHRvIHJzYmFjLgoKCgoKIyEvdXNyL2Jpbi9weXRob24KCmltcG9ydCBweWdh
bWUKaW1wb3J0IHN5cwppbXBvcnQgb3MKCgpweWdhbWUuaW5pdCgpCgpyZXNfYXYgPSBweWdhbWUu
ZGlzcGxheS5saXN0X21vZGVzKCkKc2NyZWVuID0gcHlnYW1lLmRpc3BsYXkuc2V0X21vZGUocmVz
X2F2WzBdLCBweWdhbWUuRlVMTFNDUkVFTikKCndvcmxkX2V4aXN0cyA9IDEKd2hpdGUgPSBbMjU1
LCAyNTUsIDI1NV0Kd2hpbGUgd29ybGRfZXhpc3RzOgoJc2NyZWVuLmZpbGwoKHdoaXRlKSkKCWxv
Z29fcG9zeCA9IDEKCWxvZ29fcG9zeSA9IDEJCglsb2dvID0gcHlnYW1lLmltYWdlLmxvYWQoInJz
YmFjX2ZpbmFsLnBuZyIpCglzY3JlZW4uYmxpdChsb2dvLCAobG9nb19wb3N4LCBsb2dvX3Bvc3kp
KQkKCWZvciBldmVudCBpbiBweWdhbWUuZXZlbnQuZ2V0KCk6CgkJaWYgZXZlbnQudHlwZSA9PSBw
eWdhbWUuUVVJVDoKCQkJd29ybGRfZXhpc3RzID0gMAoJCWVsaWYgZXZlbnQudHlwZSA9PSBweWdh
bWUuS0VZRE9XTjoKCQkJaWYgZXZlbnQua2V5ID09IHB5Z2FtZS5LX0VTQ0FQRToKCQkJCXdvcmxk
X2V4aXN0cyA9IDAJCglweWdhbWUuZGlzcGxheS5mbGlwKCkKcHlnYW1lLnF1aXQoKQkKCgpkZWYg
ZGV0ZWN0X3ZpZGVvX2RyaXZlcigpOgoJaW1wb3J0IHB5Z2FtZQoJaW1wb3J0IG9zCglkaXNwX25v
PW9zLmdldGVudigiRElTUExBWSIpCiAgICAgICAgaWYgZGlzcF9ubzoKCQlwcmludCAoJ3J1bm5p
bmcgdW5kZXIgWCcpCiAgICAgICBkcml2ZXJzPVsnZmJjb24nLCdkaXJlY3RmYicsJ3N2Z2FsaWIn
XQogICAgICAgZm91bmQgPSBGYWxzZQogICAgICAgZm9yIGRyaXZlciBpbiBkcml2ZXJzOgogICAg
ICAgaWYgbm90IG9zLmdldGVudignU0RMX1ZJREVPRFJJVkVSJyk6CiAgICAgICAgICAgICAgICBv
cy5lbnZpcm9ubWVudCgnU0RMX1ZJREVPRFJJVkVSJywgZHJpdmVyKQogICAgICAgICAgICAgICAg
IHRyeToKICAgICAgICAgICAgICAgICBweWdhbWUuZGlzcGxheS5pbml0KCkKICAgICAgICAgICAg
ICAgICBleGNlcHQgcHlnYW1lX2Vycm9yOgogICAgICAgICAgICAgICAgICAgICAgICBwcmludCAn
RHJpdmVyOnswfSBmYWlsZWQuJy5mb3JtYXQoZHJpdmVyKQogICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZQogICAgICAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQogICAgICAgICAgICAgICAg
IGJyZWFrCiAgICAgICAgICAgICAgICAgIGlmIG5vdCBmb3VuZDoKICAgICAgICAgICAgICAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm8gdmlkZW8gZHJpdmVyIGZvdW5kIScpCgpPbiAxMy8w
MS8xNiAyMjoyNCwgSmVucyBLYXN0ZW4gd3JvdGU6Cj4gQW0gMjAxNi0wMS0xMyAxNzo0Mywgc2No
cmllYiBKYXZpZXIgSnVhbiBNYXJ0w61uZXogQ2FiZXrDs246Cj4+IE9uIDA3LzAxLzE2IDE2OjU2
LCBKZW5zIEthc3RlbiB3cm90ZToKPj4+IEhpIEp1YW4sCj4+PiAKPj4+IFRvZGF5IEkgd291bGQg
bmV2ZXIgdXNlIHNoZWxsIHNjaXB0cyBmb3Igc3VjaCB0YXNrcyBhbnltb3JlLgo+Pj4gVGhlcmUg
YXJlIGdvb2QgZm9yIHRlc3RpbmcgYnV0IHRoZW4gaXQgc2hvdWxkIGJlIGVub3VnaCBhZnRlcgo+
Pj4gdGhlIGV4cGVyaW1lbnRhbCBwaGFzZS4gUHl0aG9uIGlzIGZvciBtZSB0aGUgYmV0dGVyIHNo
ZWxsIDopCj4+PiAKPj4+IFdoZW4gdGhpbmtpbmcgb2YgUkMgcm9sZXMgdGhlbiB0aGVyZSBoYXZl
IHRvIGJlIGEgZ29vZCAKPj4+IGNvbmZpZ3NldHVwLiBGb3IgbWUgZS5nLiBhbiB1c2VyIGluc3Rh
bGwgbmdpbnggc2VydmVyLgo+Pj4gVGhlcmVmb3IgbXVzdCBhIG1vZGVybiBjb25maWdmaWxlIGZv
cm1hdCBleGlzdCB0aGF0IHNoaXAgYWxsCj4+PiBpbmZvcm1hdGlvbi4gSGFyZGNvZGVkIHJjIHR5
cGVzIHdvdWxkIGJlIHByb2R1Y2UgYSBjb25mbGljdCBpbgo+Pj4gdGhlIGZ1dHVyZSBiZWNhdXNl
IGFuIGluZGVwZW5kIGRldmVsb3BlciBjb3VsZCBub3Qgd3JpdGUKPj4+IHBvbGljaWVzLgo+Pj4g
Cj4+PiBKZW5zCj4+PiAKPj4+IAo+Pj4gQW0gMDYuMDEuMjAxNiAxNzozNiBzY2hyaWViIEphdmll
ciBKdWFuIE1hcnTDrW5leiBDYWJlesOzbiAKPj4+IDx0YXpva0Byc2JhYy5vcmc+Ogo+Pj4+IAo+
PiAKPj4gTmFoLCBJIGFncmVlIGF0IHNvbWUgZ3JhZGUgd2l0aCB5b3UsIGJ1dCBnZW5lcmFsbHkg
bm8uLiBUaGUgbWFpbiAKPj4gcHJvYmxlbSBpcyB0aGF0IEkgd2lsbCByZXN0cmljdCBpbiB0aGUg
c2NyaXB0IHRoZSB1c2Ugb2YgcHl0aG9uCj4+IGFuZCBwZXJsIHhERC4gSWYgeW91IHN1cmVseSB3
b3VsZCBub3QgZ3JhbnQgbWUgdGhlIHVzZSBvZiBwZXJsIG9yCj4+IHB5dGhvbiBpbiB5b3VyIGNy
aXRpY2FsX2FuZF92ZXJ5X3NlY3JldF9jdWJpZXRydWNrX3NlcnZlciBJIHdvdWxkCj4+IG5laXRo
ZXIgZG8gaXQgZm9yIG90aGVycyAoUmVtZW1iZXIgdGhhdCBhY2NpZGVudGFsbHkgSSBkZWZhY2Vk
Cj4+IHRpbWUgYWdvIHRoZSBtYWluIHJzYmFjIHBhZ2UsIGltYWdpbmUgd2hhdCBjb3VsZCBJIGRv
IHRvIHlvdXIKPj4gcmFzcGJlcnJ5IHBpIHdpdGggcHl0aG9uLCBhY2Nlc3NpbmcgdG8geW91ciBH
UElPIHBvcnRzKS4uLi4KPiAKPiBIYWhhLCB5ZXMgSSBsaWtlIGl0IHRvIHB1dCBvbiBldmVyeSBt
YWNoaW5lIHdoaWNoIEkgY2FuIGNvbnRyb2xsIGl0Cj4gdG8gcHV0IGEgUlNCQUMuIE5leHQgd2hl
biBJIGRvIHJlcGxhY2UgbXkgc21hcnRwaG9uZSB0aGVuIGl0IHdpbGwKPiBiZSB0aGUgbmV4dCBt
YWNoaW5lLgo+IAo+IAo+PiBQZXJsIGFuZCBQeXRob24gYXJlIHRvbyBwb3dlcmZ1bGwgdG8gZXZl
biB3cml0ZSBleHBsb2l0cyA6LVMuCj4+IEJhc2ggaXQncyBtb3JlIHN0YW5kYXJpemVkIGFuZCBm
YXN0ZXIgKHRha2Ugbm90ZSB0aGF0IHRoaXMKPj4gdmVyc2lvbiBvZiBzY3JpcHQgdXNlcyBhcnJh
eXMgYW5kIGluIHB5dGhvbiB3b3VsZCBiZSBkZWFkbHkgaW4KPj4gc2xvd25lc3MgKGV2ZW4gcnNi
YWMqbWVudSBhZG1pbiBkaWFsb2cgdG9vbHMgYXJlIHdyaXR0ZW4gaW4gYmFzaCwKPj4gKG1lc3Nh
Z2UgdG8gQW1vbjogdG8gcHV0IGluIHRvZG8gbGlzdDoganVzdCBwcmlvciB0byBidWlsZGluZwo+
PiBjbG9uaW5nIG1hY2hpbmUgcnNiYWNfbWVudSB0b29scyB3cml0dGVuIGluIHNkbCB3aXRoIHB5
Z2FtZSAoaW4KPj4gcHlnYW1lIGJlY2F1c2UgSmVucyB3b3VsZCBnZXQgZnVuIGhhY2tpbmcgaXQg
YW5kIGNvdWxkIGJlIHVzZWQKPj4gd2l0aCBhIGZyYW1lYnVmZmVyIGluIHRleHQgbW9kZSwgYW5k
IHdlbGwsIGlmIHlvdSBsaWtlIHdlIGNvdWxkCj4+IGFkZCBhIHBhY21hbiBzb21ld2hlcmUgaW4g
dGhlIHNjcmVlbiBmZWVkaW5nIGZyb20geW91ciBmaWxlcykuCj4+IAo+IAo+IE5pY2Ugam9rZSBi
dXQgd2hlbiBJIGNob29zZSBweXRob24gdGhlbiBJIHdvdWxkIHVzZSB3eHB5dGhvbi4KPiAKPj4g
Tk9URTogSSBoYXZlIHRoZSBtYWluIHNjcmVlbiB3cml0dGVuLCBvbmx5IGxlZnQgZXZlcnl0aGlu
ZyBlbHNlLAo+PiBrYW5nIEkgdGhpbmsgaGFzIHRoZSBsb25lbHkgZXhpc3RpbmcgYmFja3VwIG9m
IHRoZSBzb3VyY2VzIGluIGEKPj4gbWFpbCBmcm9tIG1lLCBJIHNlbnQgaGltIGl0IHRpbWUgYWdv
LCBhbmQgbWF5YmUgdGhpcyBvbmUgaXMgdGhlCj4+IGxvbmVseSBjb3B5IHRoYXQgZXhpc3RzIGlu
IHRoZSB3b3JsZCByaWdodCBub3cuCj4+IAo+PiAKPj4+IEZvciBtZSBlLmcuIGFuIHVzZXIgaW5z
dGFsbCBuZ2lueCBzZXJ2ZXIuIFRoZXJlZm9yIG11c3QgYQo+Pj4gbW9kZXJuIGNvbmZpZ2ZpbGUg
Zm9ybWF0IGV4aXN0IHRoYXQgc2hpcCBhbGwgaW5mb3JtYXRpb24uCj4+PiBIYXJkY29kZWQgcmMg
dHlwZXMgd291bGQgYmUgcHJvZHVjZSBhIGNvbmZsaWN0IGluIHRoZSBmdXR1cmUKPj4+IGJlY2F1
c2UgYW4gaW5kZXBlbmQgZGV2ZWxvcGVyIGNvdWxkIG5vdCB3cml0ZSBwb2xpY2llcy4KPj4gCj4+
IAo+PiBUaGUgbWFpbiBwcm9ibGVtIHdpdGggdGhhdCBpcyB0aGF0IGluIHJzYmFjICJjb25maWcg
ZmlsZXMiIGFyZQo+PiBpbiBrZXJuZWxhbmQgbm90IGluIHVzZXJsYW5kLCBvciBhcmUgeW91IHN1
Z2dlc3Rpbmcgc29tZXRoaW5nCj4+IGxpa2UgaXB0YWJsZXM/IFRvbyBzbG93IHRvIGJlIGxvYWRp
bmcgcG9saWNpZXMgaW4gZWFjaCByZWJvb3QKPj4gZG9uJ3QgeW91IHRoaW5rIGFuZCBpbmNvbXBh
dGlibGUgd2l0aCBzb21lIEIgZ3JhZGUgaW4gb3JhbmdlIGJvb2sKPj4gfF86Uy4KPj4gCj4gCj4g
SSBoYXZlIHRvIGxvYWRpbmcgb24gZXZlcnkgYm9vdCB0aGUgc2NyaXB0IGZvciBwcm90ZWN0aW5n
IC9wcm9jIAo+IGRpcmVjdG9yeS4gRXZlbiBhIHJwaSBjYW4gaGFuZGxlIHN1Y2ggdGFzayBlYXNp
bHkuIFRvIGxvYWQgdGhlCj4gZmlyZXdhbGwgd291bGQgdGFrZSBtdWNoIGxvbmdlci4KPiAKPiBX
aGVuIHRoZSBvdGhlciBwb2xpY2llcyBhcmUgc2V0IHRoZXkgYXJlIHBlcnNpdGVucyBvdmVyIHJl
Ym9vdAo+IHVudGlsIG5leHQgdXBkYXRlIG9yIHNvbWUgaGFyZGRyaXZlIGNyYXNoIG9yIHNvbWUg
YWRtaW4gbWlzdGFrZS4KPiAKPiBTbyB0aGUgaG93dG8gc2V0dXAgaXMgaW1wb3J0YW50LiBEaXNj
dXNzaW9uIGFib3V0IHRoZSBwcmVmZXIKPiBsYW5ndWFnZSBvciBjb2Rpbmcgc3R5bGUgaXMgc2Vj
b25kYXJ5IGJ1dCBpcyBhbHdheXMgd2VsY29tZSBmb3IKPiBhbXVzZW1lbnQuCj4gCj4gRm9yIG1l
IHRoZSBtYWluIHBvaW50IGlzIHN0aWxsIG1pc3NpbmcgdG8gY3V0IHRoZSBwcm9ibGVtIGludG8K
PiBzbWFsbCBwcm9ibGVtcy4gRm9yIGV4YW1wbGU6IFdoYXQgaGF2ZSB0byBiZSBwcm90ZWN0ZWQg
YWZ0ZXIgdGhlCj4gYm9vdCBwcm9jZXNzIGlzIGZpbm5pc2ggb24gYSBtaW5pbWFsIGxpbnV4IHN5
c3RlbS4gSG93IGNhbiBzZXR1cAo+IGFuZCBob3d0byBiYWNrdXAgYW5kIGhvd3RvIHRlc3QgcG9s
aWNpZXMuIFRoaXMgaGF2ZSB0byBleGNsdWRlIGFsbAo+IHNlcnZpY2VzIGxpa2Ugc3NoIGJlY2F1
c2UgSSBkb250IGNvdW50IHRoZW0gdG8gYSBtaW5pbWFsIGxpbnV4Cj4gc3lzdGVtLiBCdXQgaW5j
bHVkZSBkaWZmZXJlbnQgYm9vdHN5c3RlbXMgbGlrZSBvcGVucmMgb3Igc3lzdGVtZAo+IGFuZCB0
aGV5IG5lZWQgZGlmZmVyZW50IHBvbGljaWVzLgo+IAo+IFNvIGZhciBnb29kIG5pZ2h0Lgo+IAo+
PiBJIGhhdmUgc29sdmVkIChJIHRoaW5rKSB0aGUgaGFjayBvZiBoYXJkY29kZWQgdHlwZXMsIG5v
dyB0aGUKPj4gc2NyaXB0IGFwcGVhcnMgdG8gYmUgYSByZWFsIHNjcmlwdCBhbmQgbm90IGEgdGV4
dCB3cml0dGVuIGJ5IGEKPj4gKHNvbWV0aGluZyBsaWtlKSBkcnVua2VuX2FtYXRldXJfcHJvZ3Jh
bW1lcl9hZnRlcl9hX2JhZF9kYXkgZnJvbQo+PiB0aGUgcG9pbnQgb2YgdmlldyBvZiBhIHJlYWwg
cHJvZ3JhbW1lci4uLgo+PiAKPj4gUm9sZXMsIHR5cGVzIGFuZCBuYW1lcyBhcmUgYWxsb2NhdGVk
IGF1dG9tYWdpY2FsbHkgdG8gYXZvaWQKPj4gY29sbGlzaW9ucyBhbmQgb3ZlcndyaXR0aW5nLi4u
LiBIb3dldmVyIGl0IGNvdWxkIGJlIGJyb2tlbiBpbiB0b28KPj4gbWFueSBwbGFjZXMgYW5kIHN1
cmVseSBtaW5lIGl0J3Mgbm90IHRoZSBiZXR0ZXIgd2F5IHRvIGRvCj4+IHRoaW5ncy4KPj4gCj4+
IEkgaGF2ZSBwbGFubmVkIHRvIGFkZCB0byBtYW55IGNoZWNrcyBhcyBpbiBpZiBbIC16IGJsYWJs
YWJsYSBdCj4+IHdpdGggYmluYXJpZXMgYW5kIG1heWJlIHVzZSBhbmQgYWJ1c2UgYW5kIGV2ZW4g
bWlzc3VzZSBvZgo+PiAkKHdoZXJlaXMgYmxhYmxhYmxhKS4KPj4gCj4+IGZvciBub3cgSSB0aGlu
ayBpdCBjb3VsZCBiZSBhZGRlZCBhcyBmdW5jdGlvbnM6Cj4+IAo+PiByY19kdW1teXJvb3QoKTog
Y29weSByb290IHJvbGUgdG8gYSBuZXcgb25lIGNvcHkgZnJvbSBnZW5lcmFsCj4+IHVzZXIgYW5k
IGFzc2lnbmVkIHRvIHJvb3QgYWNjb3VudCAoaW4gcHJvZ3Jlc3MpCj4+IAo+PiBjYXBfcmNfY3Jl
YXRlX2ZvcmVuc2ljX3JvbGUoKSBhbiByZXFfcmVhdXRoIGF1dGhlbnRpY2F0ZWQgZm9yY2VkCj4+
IHJvbGUgdGhhdCBjYW4gcmVhZCBhbnl0aGluZyBldmVuIHJhbSBtZW1vcnkgYW5kIGNhbiBhY2Nl
c3MgYXQgcmF3Cj4+IHRvIGFueSBkZXZpY2VzIChpbiBwcm9ncmVzcywgYSBsb3Qgb2YgY29weS1w
YXN0ZSBmcm9tIHByaW9yIGNvZGUKPj4gd2l0aCBzb21lIHR1bmluZykKPj4gCj4+IGNhcF9yY19w
YWNrYWdlX3N5c3RlbSgpOiBvdGhlciBmb3JjZWQgcmVfYXV0aGVudGljYXRlZCByb2xlIHRoYXQK
Pj4gY291bGQgcmVhZCB3cml0ZSBhbnl0aGluZyBub3QgaW4gL2hvbWUgL2FkbWluIC9yb290IGRp
cmVjdG9yaWVzCj4+IGFuZCBjYW4gY2hhbmdlIGFueXRoaW5nLCBhc3NpZ24gcmlnaHRzIGV2ZXJ5
d2hlcmUgdW5kZXIgdGhlaXIKPj4gIm93bmVkIiB0eXBlcyBhbmQgd2l0aCBpbmRpdmlkdWFsX2Zk
X2NyZWF0ZV90eXBlIGV2ZXJ5d2hlcmUgdG9vLgo+PiAKPj4gcmNfbWFya19kZXZpY2VzKCk6YXNz
aWduIGVhY2goZ3JvdXA/KSBkZXZpY2VzIHRoZWlyIG93biBkZXYgYW5kCj4+IGZkIHR5cGUuCj4+
IAo+PiByY19tYXJrX3Byb2Nfc3lzKCk6YXNzaWduIC9wcm9jL2tjb3JlIG9yIC9wcm9jL2NvbmZp
Zy5nei4uLiBvcgo+PiBhbnl0aGluZyBlbHNlIGl0J3Mgb3duIGZkX3R5cGUuCj4+IAo+PiByY19y
ZXN0cmljdF9wZXJsX3B5dGhvbigpCj4+IAo+PiByY19mb3JiaWRfc2VuZF90b190ZXJtaW5hbHMo
KTogdGlvY3N0aSBraWxsLiAKPj4gcmNfZm9yYmlkX3NjZF9rbWVtX3RvX2FsbG5vdGZvcmVuc2lj
KCkgCj4+IHJjX21vemlsbGFfaXNvbGF0aW9uX3RvX3Byb3RlY3RfdXNlcl9maWxlc19hZ2FpbnN0
X3JhbnNvbXdhcmUoKQo+PiAKPj4gT25lIG9mIHRoaXMgZGF5cyBJIHdpbGwgZG8gaXQuIEkgdGhp
bmsgSSdtIGdvaW5nIHRvIHNsZWVwIG5vdy4KPj4gR2V0IGZ1bgo+PiAKPj4gZnVuY3Rpb24gY2Fw
X3Jlc2V0X2NhcHMoKSB7IGZvciBmaWxlIGluIC91c3IvbG9jYWwvYmluLyoKPj4gL3Vzci9sb2Nh
bC9zYmluLyogL3NiaW4vKiAvdXNyL2Jpbi8qIC9iaW4vKiAvdXNyL3NiaW4vKgo+PiAvZXRjL2lu
aXQuZC8qIC9ldGMvY3Jvbi5kYWlseS8qIC9ldGMvY3Jvbi53ZWVrbHkvKiAKPj4gL2V0Yy9jcm9u
LmhvdXJseS8qIC9ldGMvY3Jvbi5tb250aGx5LyogL2V0Yy9jcm9uLndlZWtseS8qCj4+IC9ldGMv
Y3Jvbi5kLyogL3Vzci9saWJleGVjLyoqLyo7IGRvIGF0dHJfc2V0X2ZpbGVfZGlyIEZEICIkZmls
ZSIKPj4gbWF4X2NhcHMgVUE7IGRvbmUgfQo+PiAKPj4gCj4+IGZ1bmN0aW9uIHJjX2Jvb3RzY3Jp
cHRzcmMoKSB7IGRlY2xhcmUgLWEKPj4gbGlzdF91c2VkX3JvbGVzPSQocmNfZ2V0X2l0ZW0gbGlz
dF9yb2xlX25yKSBkZWNsYXJlIC1hCj4+IGxpc3RfdXNlZF9mZF90eXBlcz0kKHJjX2dldF9pdGVt
IGxpc3RfZmRfdHlwZV9ucikgZGVjbGFyZSAtYQo+PiBsaXN0X3VzZWRfZGV2X3R5cGVzPSQocmNf
Z2V0X2l0ZW0gbGlzdF9kZXZfdHlwZV9ucikgZGVjbGFyZSAtYQo+PiBsaXN0X3VzZWRfaXBjX3R5
cGVzPSQocmNfZ2V0X2l0ZW0gbGlzdF9pcGNfdHlwZV9ucikgZGVjbGFyZSAtYQo+PiBsaXN0X3Vz
ZWRfdXNlcl90eXBlcz0kKHJjX2dldF9pdGVtIGxpc3RfdXNlcl90eXBlX25yKSBkZWNsYXJlIC1h
Cj4+IGxpc3RfdXNlZF9wcm9jZXNzX3R5cGVzPSQocmNfZ2V0X2l0ZW0gbGlzdF9wcm9jZXNzX3R5
cGVfbnIpIAo+PiBkZWNsYXJlIC1hIGxpc3RfdXNlZF9ncm91cF90eXBlcz0kKHJjX2dldF9pdGVt
IGxpc3RfZ3JvdXBfdHlwZXMKPj4gfGF3ayAne3ByaW50ICQxfScpCj4+IAo+PiBUWVBFPTEwMCBS
T0xFPTEwMCBmb3IgTkFNRSBpbiAvZXRjL2luaXQuZC8qIC9ldGMvY3Jvbi5kYWlseS8qCj4+IC9l
dGMvY3Jvbi53ZWVrbHkvKiAvZXRjL2Nyb24uaG91cmx5LyogL2V0Yy9jcm9uLm1vbnRobHkvKgo+
PiAvZXRjL2Nyb24ud2Vla2x5Lyo7IGRvIE5BTUVTUFJPVj0iJChiYXNlbmFtZSAkKGVjaG8gJE5B
TUUpKSIgCj4+IE5BTUVTUk9MPSIkKGVjaG8gJE5BTUVTUFJPViB8Y3V0IC1jLTExKSIgTkFNRVNU
WVBFPSIkKGVjaG8KPj4gJE5BTUVTUFJPViB8Y3V0IC1jIC03KSIgIyBjcmVhdGUgcm9sZSB3aGls
ZSBbWwo+PiAke2xpc3RfdXNlZF9yb2xlc1sqXX0gPX4gJFJPTEUgXV0gZG8gKChST0xFKyspKSBk
b25lIHJjX3NldF9pdGVtCj4+IFJPTEUgJHtST0xFfSBuYW1lICR7TkFNRVNST0x9Cj4+IAo+PiAj
IHNldCBuZXRvYmpfdHlwZXMgd2hpbGUgW1sgJHtsaXN0X3VzZWRfcm9sZXNbKl19ID1+ICRST0xF
IF1dIGRvIAo+PiAoKFJPTEUrKykpIGRvbmUgcmNfc2V0X2l0ZW0gVFlQRSAke1RZUEV9IHR5cGVf
bmV0b2JqX25hbWUKPj4gIiR7TkFNRVNUWVBFfV9OT0JKIgo+PiAKPj4gCj4+ICNzZXQgdXNlciB0
eXBlIHdoaWxlIFtbICR7bGlzdF91c2VkX3VzZXJfdHlwZXNbKl19ID1+ICRUWVBFIF1dIAo+PiBk
byAoKFRZUEUrKykpIGRvbmUgcmNfc2V0X2l0ZW0gVFlQRSAke1RZUEV9IHR5cGVfdXNlcl9uYW1l
Cj4+ICIke05BTUVTVFlQRX1fVVNSIgo+PiAKPj4gCj4+ICNzZXQgZ3JvdXAgdHlwZSB3aGlsZSBb
WyAke2xpc3RfdXNlZF91c2VyX3R5cGVzWypdfSA9fiAkVFlQRSBdXSAKPj4gZG8gKChUWVBFKysp
KSBkb25lIHJjX3NldF9pdGVtIFRZUEUgJHtUWVBFfSB0eXBlX2dyb3VwX25hbWUKPj4gIiR7TkFN
RVNUWVBFfV9HUlAiIHJjX3NldF9pdGVtIFJPTEUgJHtST0xFfSBkZWZfdXNlcl9jcmVhdGVfdHlw
ZQo+PiAke1RZUEV9IHJjX3NldF9pdGVtIFJPTEUgJHtST0xFfSBkZWZfZ3JvdXBfY3JlYXRlX3R5
cGUgJHtUWVBFfQo+PiAKPj4gI3NldCBpcGMgdHlwZSB3aGlsZSBbWyAke2xpc3RfdXNlZF9pcGNf
dHlwZXNbKl19ID1+ICRUWVBFIF1dIGRvIAo+PiAoKFRZUEUrKykpIGRvbmUgcmNfc2V0X2l0ZW0g
VFlQRSAke1RZUEV9IHR5cGVfaXBjX25hbWUKPj4gIiR7TkFNRVNUWVBFfV9JUEMiIHJjX3NldF9p
dGVtIFJPTEUgJHtST0xFfSBkZWZfaXBjX2NyZWF0ZV90eXBlCj4+ICR7VFlQRX0KPj4gCj4+IHdo
aWxlIFtbICR7bGlzdF91c2VkX3Byb2NfdHlwZXNbKl19ID1+ICRUWVBFIF1dIGRvICgoVFlQRSsr
KSkgCj4+IGRvbmUgcmNfc2V0X2l0ZW0gVFlQRSAke1RZUEV9IHR5cGVfcHJvY2Vzc19uYW1lCj4+
ICIke05BTUVTVFlQRX1fUFJDIiByY19zZXRfaXRlbSBST0xFICR7Uk9MRX0KPj4gZGVmX3Byb2Nl
c3NfY3JlYXRlX3R5cGUgJHtUWVBFfSByY19zZXRfaXRlbSBST0xFICR7Uk9MRX0KPj4gZGVmX3By
b2Nlc3NfY2hvd25fdHlwZSA0Mjk0OTY3MjkxIHJjX3NldF9pdGVtIFJPTEUgJHtST0xFfQo+PiBk
ZWZfcHJvY2Vzc19leGVjdXRlX3R5cGUgNDI5NDk2NzI5NAo+PiAKPj4gd2hpbGUgW1sgJHtsaXN0
X3VzZWRfZmRfdHlwZXNbKl19ID1+ICRUWVBFIF1dIGRvICgoVFlQRSsrKSkgZG9uZQo+PiAKPj4g
cmNfc2V0X2l0ZW0gVFlQRSAke1RZUEV9IHR5cGVfZmRfbmFtZSAiJHtOQU1FU1RZUEV9X0ZEIiAK
Pj4gcmNfc2V0X2l0ZW0gUk9MRSAke1JPTEV9IGRlZl9mZF9jcmVhdGVfdHlwZSAke1RZUEV9IHJj
X3NldF9pdGVtCj4+IFJPTEUgJHtST0xFfSBkZWZfZmRfaW5kX2NyZWF0ZV90eXBlICR7VFlQRX0g
NDI5NDk2NzI5NCAKPj4gcmNfc2V0X2l0ZW0gUk9MRSAke1JPTEV9IGRlZl9mZF9pbmRfY3JlYXRl
X3R5cGUgL3J1biAke1RZUEV9IAo+PiByY19zZXRfaXRlbSBST0xFICR7Uk9MRX0gZGVmX2ZkX2lu
ZF9jcmVhdGVfdHlwZSAvdG1wICR7VFlQRX0gCj4+IHJjX3NldF9pdGVtIFJPTEUgJHtST0xFfSBk
ZWZfdW5peHNvY2tfY3JlYXRlX3R5cGUgJHtUWVBFfSAKPj4gYXR0cl9zZXRfZmlsZV9kaXIgRkQg
JHtOQU1FfSByY19pbml0aWFsX3JvbGUgJHtST0xFfSAKPj4gYXR0cl9zZXRfZmlsZV9kaXIgRkQg
JHtOQU1FfSByY19mb3JjZV9yb2xlICR7Uk9MRX0gZG9uZSB9Cj4+IAo+PiBmdW5jdGlvbiByY19t
YXJrcm9vdGRpcigpIHsgQkFTRV9OVU09MTAwIGRlY2xhcmUgLWEKPj4gbGlzdF91c2VkX2ZkX3R5
cGVzPSQocmNfZ2V0X2l0ZW0gbGlzdF9mZF90eXBlX25yKSBmb3IgZGlyIGluIC8qOwo+PiBkbyB3
aGlsZSBbWyAke2xpc3RfdXNlZF9mZF90eXBlc1sqXX0gPX4gJEJBU0VfTlVNIF1dIGRvIAo+PiAo
KEJBU0VfTlVNKyspKSBkb25lIE5BTUU9IiQoZWNobyAkZGlyKSIKPj4gCj4+IHJjX3NldF9pdGVt
IFRZUEUgJHtCQVNFX05VTX0gdHlwZV9mZF9uYW1lICR7TkFNRX0gCj4+IGF0dHJfc2V0X2ZpbGVf
ZGlyIEZEICR7ZGlyfSByY190eXBlX2ZkICR7QkFTRV9OVU19IGRvbmUgfQo+PiAKPj4gZnVuY3Rp
b24gcmNfbWFya290aGVydHlwZXNmaWxlcygpIHsgQkFTRV9OVU09MTAwIGRlY2xhcmUgLWEKPj4g
bGlzdF91c2VkX2ZkX3R5cGVzPSQocmNfZ2V0X2l0ZW0gbGlzdF9mZF90eXBlX25yKSBmb3IgZmls
ZSBpbgo+PiAvZXRjL2NvbmYuZCAvZXRjL2RlZmF1bHQgL2V0Yy9saWxvLmNvbmYgIC9ldGMvZndr
bm9wIC9ldGMvb3BlbnZwbgo+PiAvZXRjL3NoYWRvdyAvZXRjL2dzaGFkb3cgL2V0Yy9kb3ZlY290
IC9ldGMvZ3J1Yi5kIC9ldGMvaGlhd2F0aGEKPj4gL2V0Yy9vcGVudnBuIC9ldGMvcGFtLmQgL2V0
Yy9wcml2b3h5IC9ldGMvdHJpcHdpcmUgL3Zhci8qIGRvCj4+IAo+PiB3aGlsZSBbWyAke2xpc3Rf
dXNlZF9mZF90eXBlc1sqXX0gPX4gJEJBU0VfTlVNIF1dIGRvIAo+PiAoKEJBU0VfTlVNKyspKSBk
b25lIE5BTUU9IiQoYmFzZW5hbWUgJChlY2hvICQoZWNobwo+PiAkZmlsZSknY2ZnJykpIiByY19z
ZXRfaXRlbSBUWVBFICR7QkFTRV9OVU19IHR5cGVfZmRfbmFtZSAke05BTUV9IAo+PiBhdHRyX3Nl
dF9maWxlX2RpciBGRCAke2Rpcn0gcmNfdHlwZV9mZCAke0JBU0VfTlVNfSBkb25lIH0KPj4gCj4+
IGZ1bmN0aW9uIHJjX21hcmtiaW5hcmllc19yb2xlc190eXBlcygpIHsgVFlQRT0xMDAgUk9MRT0x
MDAgCj4+IGRlY2xhcmUgLWEgbGlzdF91c2VkX3JvbGVzPSQocmNfZ2V0X2l0ZW0gbGlzdF9yb2xl
X25yKSBkZWNsYXJlIC1hCj4+IGxpc3RfdXNlZF9mZF90eXBlcz0kKHJjX2dldF9pdGVtIGxpc3Rf
ZmRfdHlwZV9ucikgZGVjbGFyZSAtYQo+PiBsaXN0X3VzZWRfZGV2X3R5cGVzPSQocmNfZ2V0X2l0
ZW0gbGlzdF9kZXZfdHlwZV9ucikgZGVjbGFyZSAtYQo+PiBsaXN0X3VzZWRfaXBjX3R5cGVzPSQo
cmNfZ2V0X2l0ZW0gbGlzdF9pcGNfdHlwZV9ucikgZGVjbGFyZSAtYQo+PiBsaXN0X3VzZWRfdXNl
cl90eXBlcz0kKHJjX2dldF9pdGVtIGxpc3RfdXNlcl90eXBlX25yKSBkZWNsYXJlIC1hCj4+IGxp
c3RfdXNlZF9wcm9jZXNzX3R5cGVzPSQocmNfZ2V0X2l0ZW0gbGlzdF9wcm9jZXNzX3R5cGVfbnIp
IAo+PiBkZWNsYXJlIC1hIGxpc3RfdXNlZF9ncm91cF90eXBlcz0kKHJjX2dldF9pdGVtIGxpc3Rf
Z3JvdXBfdHlwZXMKPj4gfGF3ayAne3ByaW50ICQxfScpIGZvciBOQU1FIGluIC9zYmluL2FnZXR0
eSAvYmluL2xvZ2luIC9zYmluL2luaXQKPj4gL2Jpbi9zdSAvc2Jpbi9saWxvIC91c3IvYmluL3N1
ZG8gZG8KPj4gCj4+IE5BTUVTUFJPVj0iJChiYXNlbmFtZSAkKGVjaG8gJE5BTUUpKSIgTkFNRVNS
T0w9IiQoZWNobyAkTkFNRVNQUk9WCj4+IHxjdXQgLWMtMTEpIiBOQU1FU1RZUEU9IiQoZWNobyAk
TkFNRVNQUk9WIHxjdXQgLWMgLTcpIiAjIGNyZWF0ZQo+PiByb2xlIHdoaWxlIFtbICR7bGlzdF91
c2VkX3JvbGVzWypdfSA9fiAkUk9MRSBdXSBkbyAoKFJPTEUrKykpIAo+PiBkb25lIHJjX3NldF9p
dGVtIFJPTEUgJHtST0xFfSBuYW1lICR7TkFNRVNST0x9Cj4+IAo+PiAjIHNldCBuZXRvYmpfdHlw
ZXMgd2hpbGUgW1sgJHtsaXN0X3VzZWRfcm9sZXNbKl19ID1+ICRST0xFIF1dIGRvIAo+PiAoKFJP
TEUrKykpIGRvbmUgcmNfc2V0X2l0ZW0gVFlQRSAke1RZUEV9IHR5cGVfbmV0b2JqX25hbWUKPj4g
IiR7TkFNRVNUWVBFfV9OT0JKIgo+PiAKPj4gCj4+ICNzZXQgdXNlciB0eXBlIHdoaWxlIFtbICR7
bGlzdF91c2VkX3VzZXJfdHlwZXNbKl19ID1+ICRUWVBFIF1dIAo+PiBkbyAoKFRZUEUrKykpIGRv
bmUgcmNfc2V0X2l0ZW0gVFlQRSAke1RZUEV9IHR5cGVfdXNlcl9uYW1lCj4+ICIke05BTUVTVFlQ
RX1fVVNSIgo+PiAKPj4gCj4+ICNzZXQgZ3JvdXAgdHlwZSB3aGlsZSBbWyAke2xpc3RfdXNlZF91
c2VyX3R5cGVzWypdfSA9fiAkVFlQRSBdXSAKPj4gZG8gKChUWVBFKyspKSBkb25lIHJjX3NldF9p
dGVtIFRZUEUgJHtUWVBFfSB0eXBlX2dyb3VwX25hbWUKPj4gIiR7TkFNRVNUWVBFfV9HUlAiIHJj
X3NldF9pdGVtIFJPTEUgJHtST0xFfSBkZWZfdXNlcl9jcmVhdGVfdHlwZQo+PiAke1RZUEV9IHJj
X3NldF9pdGVtIFJPTEUgJHtST0xFfSBkZWZfZ3JvdXBfY3JlYXRlX3R5cGUgJHtUWVBFfQo+PiAK
Pj4gI3NldCBpcGMgdHlwZSB3aGlsZSBbWyAke2xpc3RfdXNlZF9pcGNfdHlwZXNbKl19ID1+ICRU
WVBFIF1dIGRvIAo+PiAoKFRZUEUrKykpIGRvbmUgcmNfc2V0X2l0ZW0gVFlQRSAke1RZUEV9IHR5
cGVfaXBjX25hbWUKPj4gIiR7TkFNRVNUWVBFfV9JUEMiIHJjX3NldF9pdGVtIFJPTEUgJHtST0xF
fSBkZWZfaXBjX2NyZWF0ZV90eXBlCj4+ICR7VFlQRX0KPj4gCj4+IHdoaWxlIFtbICR7bGlzdF91
c2VkX3Byb2NfdHlwZXNbKl19ID1+ICRUWVBFIF1dIGRvICgoVFlQRSsrKSkgCj4+IGRvbmUgcmNf
c2V0X2l0ZW0gVFlQRSAke1RZUEV9IHR5cGVfcHJvY2Vzc19uYW1lCj4+ICIke05BTUVTVFlQRX1f
UFJDIiByY19zZXRfaXRlbSBST0xFICR7Uk9MRX0KPj4gZGVmX3Byb2Nlc3NfY3JlYXRlX3R5cGUg
JHtUWVBFfSByY19zZXRfaXRlbSBST0xFICR7Uk9MRX0KPj4gZGVmX3Byb2Nlc3NfY2hvd25fdHlw
ZSA0Mjk0OTY3MjkxIHJjX3NldF9pdGVtIFJPTEUgJHtST0xFfQo+PiBkZWZfcHJvY2Vzc19leGVj
dXRlX3R5cGUgNDI5NDk2NzI5NAo+PiAKPj4gd2hpbGUgW1sgJHtsaXN0X3VzZWRfZmRfdHlwZXNb
Kl19ID1+ICRUWVBFIF1dIGRvICgoVFlQRSsrKSkgZG9uZQo+PiAKPj4gcmNfc2V0X2l0ZW0gVFlQ
RSAke1RZUEV9IHR5cGVfZmRfbmFtZSAiJHtOQU1FU1RZUEV9X0ZEIiAKPj4gcmNfc2V0X2l0ZW0g
Uk9MRSAke1JPTEV9IGRlZl9mZF9jcmVhdGVfdHlwZSAke1RZUEV9IHJjX3NldF9pdGVtCj4+IFJP
TEUgJHtST0xFfSBkZWZfZmRfaW5kX2NyZWF0ZV90eXBlICR7VFlQRX0gNDI5NDk2NzI5NCAKPj4g
cmNfc2V0X2l0ZW0gUk9MRSAke1JPTEV9IGRlZl9mZF9pbmRfY3JlYXRlX3R5cGUgL3J1biAke1RZ
UEV9IAo+PiByY19zZXRfaXRlbSBST0xFICR7Uk9MRX0gZGVmX2ZkX2luZF9jcmVhdGVfdHlwZSAv
dG1wICR7VFlQRX0gCj4+IHJjX3NldF9pdGVtIFJPTEUgJHtST0xFfSBkZWZfdW5peHNvY2tfY3Jl
YXRlX3R5cGUgJHtUWVBFfSAKPj4gYXR0cl9zZXRfZmlsZV9kaXIgRkQgJHtOQU1FfSByY19pbml0
aWFsX3JvbGUgJHtST0xFfSAKPj4gYXR0cl9zZXRfZmlsZV9kaXIgRkQgJHtOQU1FfSByY19mb3Jj
ZV9yb2xlICR7Uk9MRX0gZG9uZQo+PiAKPj4gfQo+PiAKPj4gZnVuY3Rpb24gcmNfdHJ1c3RlZF9w
YXRoX2V4ZWN1dGlvbigpIHsgZGVjbGFyZSAtYQo+PiBsaXN0X3VzZWRfcm9sZXM9JChyY19nZXRf
aXRlbSBsaXN0X3JvbGVfbnIpIGRlY2xhcmUgLWEKPj4gbGlzdF91c2VkX2ZkX3R5cGVzPSQocmNf
Z2V0X2l0ZW0gbGlzdF9mZF90eXBlX25yKQo+PiAKPj4gZm9yIGFsbF9yb2xlcyBpbiAiJHtsaXN0
X3VzZWRfcm9sZXNbQF19IiBkbyBmb3IgYWxsX3R5cGVzIGluCj4+ICIke2xpc3RfdXNlZF9mZF90
eXBlc1tAXX0iIGRvIHJjX3NldF9pdGVtIC1rIFJPTEUgIiR7YWxsX3JvbGVzfSIKPj4gdHlwZV9j
b21wX2ZkICIke2FsbF90eXBlc30iIE1BUF9FWEVDIEVYRUNVVEUgZG9uZSBkb25lCj4+IAo+PiBm
b3IgYWxsX3JvbGVzIGluICIke2xpc3RfdXNlZF9yb2xlc1tAXX0iIGRvIGZvciBkaXIgaW4KPj4g
L3Vzci9sb2NhbC9iaW4gL3Vzci9sb2NhbC9zYmluIC9zYmluIC91c3IvYmluIC9iaW4gL3Vzci9z
YmluIAo+PiAvdXNyL2xpYmV4ZWM7IGRvIHJjX3NldF9pdGVtIC1hIFJPTEUgIiR7YWxsX3JvbGVz
fSIgdHlwZV9jb21wX2ZkCj4+ICQoYXR0cl9nZXRfZmlsZV9kaXIgUkMgRkQgIiR7ZGlyfSIgcmNf
dHlwZV9mZCkgTUFQX0VYRUMgRVhFQ1VURSAKPj4gZWNobyAiaW5jb21wbGV0ZSBmdW5jdGlvbiwg
d2hhdCdzIGhhcHBlbiB3aXRoIGNyb24gc2NyaXB0cyBhbmQKPj4gaW5pdC5kIG9uZXMsIGNhbiB5
b3UgdGVsbCBtZT8iIGRvbmUgZG9uZQo+PiAKPj4gfSBjYXBfcmVzZXRfY2FwcyByY19ib290c2Ny
aXB0c3JjIHJjX21hcmtvdGhlcnR5cGVzZmlsZXMgCj4+IHJjX21hcmtyb290ZGlyIHJjX21hcmti
aW5hcmllc19yb2xlc190eXBlcyAKPj4gcmNfdHJ1c3RlZF9wYXRoX2V4ZWN1dGlvbgo+PiAKPj4g
Cj4+IAo+PiAKPj4gCj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fIHJzYmFjIG1haWxpbmcKPj4gbGlzdCByc2JhY0Byc2JhYy5vcmcgaHR0cDovL3d3dy5y
c2JhYy5vcmcvbWFpbG1hbi9saXN0aW5mby9yc2JhYwo+IAo+IF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fIHJzYmFjIG1haWxpbmcgbGlzdCAKPiByc2JhY0By
c2JhYy5vcmcgaHR0cDovL3d3dy5yc2JhYy5vcmcvbWFpbG1hbi9saXN0aW5mby9yc2JhYwoKCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnJzYmFjIG1haWxp
bmcgbGlzdApyc2JhY0Byc2JhYy5vcmcKaHR0cDovL3d3dy5yc2JhYy5vcmcvbWFpbG1hbi9saXN0
aW5mby9yc2JhYw==