From: Benjamin Herrenschmidt Date: Thu, 23 Jul 2020 00:52:35 +0000 (+1000) Subject: Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] system call (sc) LEV "reserved field" X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=20fe7d9cbd8ea9c929809d06b2db1de6a71ae8d9;p=libre-riscv-dev.git Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] system call (sc) LEV "reserved field" --- diff --git a/b5/eeb97e76ee3cc1b25e0d6ae4de4db0c4486422 b/b5/eeb97e76ee3cc1b25e0d6ae4de4db0c4486422 new file mode 100644 index 0000000..aec2ede --- /dev/null +++ b/b5/eeb97e76ee3cc1b25e0d6ae4de4db0c4486422 @@ -0,0 +1,193 @@ +Return-path: +Envelope-to: publicinbox@libre-riscv.org +Delivery-date: Tue, 28 Jul 2020 21:23:52 +0100 +Received: from localhost ([::1] helo=libre-riscv.org) + by libre-soc.org with esmtp (Exim 4.92) + (envelope-from ) + id 1k0Vzz-0001Dm-AY; Tue, 28 Jul 2020 21:14:55 +0100 +Received: from kernel.crashing.org ([76.164.61.194]) + by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) + (Exim 4.92) (envelope-from ) + id 1jyPTb-0001D8-3p + for libre-riscv-dev@lists.libre-riscv.org; Thu, 23 Jul 2020 01:52:47 +0100 +Received: from localhost (gate.crashing.org [63.228.1.57]) + (authenticated bits=0) + by kernel.crashing.org (8.14.7/8.14.7) with ESMTP id 06N0qahc029210 + (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); + Wed, 22 Jul 2020 19:52:42 -0500 +Message-ID: +From: Benjamin Herrenschmidt +To: Luke Kenneth Casson Leighton , Libre-RISCV General + Development +Date: Thu, 23 Jul 2020 10:52:35 +1000 +In-Reply-To: +References: + <20200722224713.GA213782@thinks.paulus.ozlabs.org> + +X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 +Mime-Version: 1.0 +X-Mailman-Approved-At: Tue, 28 Jul 2020 21:14:53 +0100 +Subject: Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] system call (sc) LEV + "reserved field" +X-BeenThere: libre-riscv-dev@lists.libre-riscv.org +X-Mailman-Version: 2.1.23 +Precedence: list +List-Id: Libre-RISCV General Development + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Reply-To: Libre-RISCV General Development + +Cc: "openpower-hdl-cores@mailinglist.openpowerfoundation.org" + +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: base64 +Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org +Sender: "libre-riscv-dev" + +T24gVGh1LCAyMDIwLTA3LTIzIGF0IDAwOjQxICswMTAwLCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl +aWdodG9uIHdyb3RlOgo+IAo+IGJlY2F1c2UgaSBkaWQgbm90IGV4cGVjdCB0aGF0IGJlaGF2aW91 +ciwgYmVjYXVzZSBkb2luZyBzbyAoaWdub3JpbmcKPiB0aGVtKSBtYWtlcyBpdCBpbXBvc3NpYmxl +IHRvIHRyYXAgYW5kIGVtdWxhdGUuICAoaXQgYmVjb21lcyBuZWNlc3NhcnkKPiB0byB1c2UgSklU +IGFuYWx5c2lzKQo+IAo+IHNvLCB3aGVuIHNvbWUgYml0IGlzIGFkZGVkIGluIHRoZSBmdXR1cmUs +IGFuIG9sZGVyIHByb2Nlc3NvciAoYW5kIHRoZQo+IGRldmljZSBpdCBpcyBpbikgYmFzaWNhbGx5 +IGhhcyB0byBiZSB0aHJvd24gaW50byBsYW5kZmlsbC4KCkRlcGVuZHMsIGl0IGdvZXMgYm90aCB3 +YXlzLiBGb3IgZXhhbXBsZSwgdGhpcyBpcyB3aGF0IGFsbG93ZWQgdGhlCmFkZGl0aW9uIG9mIGx3 +c3luYyB3aXRob3V0IHRocm93aW5nIG9sZGVyIHByb2Nlc3NvcnMgaW50byB0aGUgbGFuZGZpbGwK +YmVjYXVzZSBpdCB3b3VsZCBhdXRvbWF0aWNhbGx5ICJlc2NhbGF0ZSIgdG8gYSBmdWxsIHN5bmMg +b24gcHJvY2Vzc29ycwp0aGF0IGRpZG4ndCBpbXBsZW1lbnQgaXQgKG9yIHNob3VsZCBoYXZlLi4u +IEZTTCBkaWQgc2NyZXcgdGhhdCB1cCBvbgpzb21lIGNvcmVzKS4KIAo+IGlmIGhvd2V2ZXIgcmVz +ZXJ2ZWQgYml0cyBiZWluZyBzZXQgY2F1c2UgYW4gZXhjZXB0aW9uLCB0aGUgIm9sZCIKPiBwcm9j +ZXNzb3Igc3RhbmRzIGEgY2hhbmNlIG9mIGVtdWxhdGluZyB0aGUgbmV3IGJlaGF2aW91ciAoaW4K +PiBzb2Z0d2FyZSwgZXZlbiBpZiB0aGF0J3Mgc2xvdyksIGdpdmluZyBpdCBhIGNoYW5jZSBvZiBr +ZWVwaW5nIG91dCBvZgo+IGxhbmRmaWxsIGZvciBzbGlnaHRseSBsb25nZXIuCgpXaGljaCBpcyB3 +aHkgcG93ZXJwYyB0ZW5kcyBub3QgdG8gImFkZCBiaXRzIiB0byBpbnN0cnVjdGlvbnMgdW5sZXNz +Cmlnbm9yaW5nIHRoZW0gaXMgYSBzYWZlIGZhbGxiYWNrLgoKPiBob3dldmVyIGl0IGlzIG5vdCBh +cHByb3ByaWF0ZSBmb3IgYWxsIHN5c3RlbXMgdG8gcmFpc2UgZXhjZXB0aW9ucyBvbgo+IHJlc2Vy +dmVkIGJpdHM6IHRoZSBjb3N0IG9mIGhhdmluZyB0aGUgZGV0ZWN0aW9uIGhhcmR3YXJlIChhIGZ1 +bGwKPiBQT1dFUjkgZGVjb2RlciBhbmQgYWxzbyBpbGxlZ2FsL3Vuc3VwcG9ydGVkL3Jlc2VydmVk +IFNQUiBkZXRlY3Rpb24pCj4gY2FuIGJlIHZlcnkgaGlnaCBlc3BlY2lhbGx5IGZvciByZXNvdXJj +ZSBhbmQgcG93ZXIgY29uc3RyYWluZWQKPiBzaWxpY29uIG9yIEZQR0FzLgo+IAo+IChleGFtcGxl +OiBpIGtub3cgc29tZW9uZSAtIHllYSwgeW91IFNhbSAtIHdobyBpbXBsZW1lbnRlZCBSVjY0IHRv +Cj4gY29tcGx5IHdpdGggdGhlIFVOSVggUklTQ1Ygc3BlYyByYXRoZXIgdGhhbiB0aGUgRW1iZWRk +ZWQgUklTQ1Ygc3BlYzoKPiB0aGUgIkNTUiBkZXRlY3Rpb24iIGp1c3QgdG8gc3VwcG9ydCBhbGwg +dGhlIHplcm9zIGFuZCBpbGxlZ2FsIENTUnMKPiB0b29rIGEgd2hvcHBpbmcgMTUlIG9mIGFuIElD +RTQwIEZQR0EhKQo+IAo+IGluIFJJU0MtViB0aGV5IGdldCB0aGlzIHJpZ2h0LCBieSBoYXZpbmcg +dHdvIHNlcGFyYXRlIFBsYXRmb3JtczoKPiAKPiAqIEVtYmVkZGVkIHdoaWNoIGlzIHBlcm1pdHRl +ZCB0byBpZ25vcmUgcmVzZXJ2ZWQgYml0cyBlbnRpcmVseQo+IAo+ICogVU5JWCwgd2hpY2ggZGVm +aW5pdGVseSBpcyBub3QuCj4gCj4gZm9yIEVtYmVkZGVkLCB0aGUgdmVuZG9yIGN1c3RvbWlzZXMg +dGhlIGZpcm13YXJlIGVudGlyZWx5LCBhbmQgYmluYXJ5Cj4gaW50ZXJvcGVyYWJpbGl0eSBhcyB3 +ZWxsIGFzIGxlZ2FjeSBzb2Z0d2FyZSBzdXBwb3J0IGlzIGNvbXBsZXRlbHkKPiB1bmltcG9ydGFu +dC4KPiAKPiBmb3IgVU5JWGVuLCBpbnRlcm9wZXJhYmlsaXR5IGFuZCBsb25ndGVybSBzdGFiaWxp +dHkgd2Uga25vdyB2ZXJ5IHdlbGwKPiBpcyBjcml0aWNhbC4KPiAKPiBib3R0b20gbGluZSBpZiBp +dCBpcyBjb3JyZWN0IHRoYXQgb24gdGhlIFBvd2VySVNBIFVOSVggUGxhdGZvcm0KPiByZXNlcnZl +ZCBiaXRzIGNhbiBiZSBpZ25vcmVkIHRoYXQgaXMgY2F1c2UgZm9yIHNvbWUgY29uY2Vybiwgd2hl +cmUKPiBmb3IgRW1iZWRkZWQgaXQgd291bGQgYmUgdGhlIG90aGVyIHdheSByb3VuZDogY2F1c2Ug +Zm9yIGNvbmNlcm4gaWYKPiB0aGUgcmVzZXJ2ZWQgYml0cyBjb3VsZCAqbm90KiBiZSBpZ25vcmVk +LgoKRG8geW91IGhhdmUgbW9yZSBzcGVjaWZpYyBjb25jZXJucyBoZXJlID8gSUUuIEFjdHVhbCBl +eGFtcGxlcyB3aGVyZQp0aGlzIGhhcyBiZWVuIGNhdXNlIG9mIGJyZWFrYWdlIGluIHRoZSBwYXN0 +ID8KCj4gPiA+IGhvd2V2ZXIgdGhpcyBpcyBzbyB1bmNsZWFyIChiZWNhdXNlIG9mIHRoZSByZWZl +cnJhbCBmcm9tIG9uZQo+ID4gc2VjdGlvbgo+ID4gPiB0byBhbm90aGVyKSB0aGF0IGkgYW0gc2Vl +a2luZyBjb25maXJtYXRpb24uICBzaG91bGQgd2UgcmFpc2UgYW4KPiA+ID4gImlsbGVnYWwgaW5z +dHJ1Y3Rpb24iIHdoZW4gIkxFViA+IDEiIG9uIHNjPwo+ID4gCj4gPiBTZWN0aW9uIDEuOC4yIChC +b29rIEkpIHNheXMgImFueSBhdHRlbXB0IHRvIGV4ZWN1dGUgYW4gaW52YWxpZCBmb3JtCj4gPiBv +Zgo+ID4gYW4gaW5zdHJ1Y3Rpb24gd2lsbCBlaXRoZXIgY2F1c2UgdGhlIHN5c3RlbSBpbGxlZ2Fs +IGluc3RydWN0aW9uCj4gPiBoYW5kbGVyIHRvIGJlIGludm9rZWQgb3IgeWllbGQgYm91bmRlZGx5 +IHVuZGVmaW5lZCByZXN1bHRzIi4gCj4gPiBQdXR0aW5nCj4gPiBMRVY9MSBpbiBzYyB3b3VsZCBi +ZSBhbiBleGFtcGxlIG9mIGFuIGludmFsaWQgZm9ybSAob24gYW4KPiA+IGltcGxlbWVudGF0aW9u +IHdpdGhvdXQgaHlwZXJ2aXNvciBtb2RlKS4KPiAKPiBvayB0aGF0IGhlbHBzIGNsYXJpZnkgd2hh +dCB0aGF0IG1lYW5zLCB0aGFuayB5b3UuCj4gIAo+ID4gICBBIGJvdW5kZWRseSB1bmRlZmluZWQg +cmVzdWx0Cj4gPiBpcyBvbmUgd2hpY2ggY291bGQgYmUgb2J0YWluZWQgYnkgYSBzZXF1ZW5jZSBv +ZiB2YWxpZCBpbnN0cnVjdGlvbnMsCj4gPiBzbyBpbiB0aGUgY2FzZSBvZiBzYyAxLCBtYWtpbmcg +aXQgZG8gd2hhdCBzYyAwIGRvZXMgbWVldHMgdGhlCj4gPiBib3VuZGVkbHkgdW5kZWZpbmVkIHJl +c3VsdHMgcmVxdWlyZW1lbnQuCj4gCj4gb2sgc28gdGhhdC4uLiBpZiBpIGFtIHVuZGVyc3RhbmRp +bmcgY29ycmVjdGx5LCBtZWFucywgInlvdSBjYW4gaW4KPiBmYWN0IGRvIHNvbWV0aGluZyBkaWZm +ZXJlbnQgYW5kIE9TIHNvZnR3YXJlIGhhcyB0byBkZXRlY3QgaXQgYW5kIHNvcnQKPiBpdCBvdXQg +dG8geWllbGQgZXhwZWN0ZWQgYmVoYXZpb3VyIgo+ICAKPiB3aGljaCwgaWYgaSBhbSBiZWluZyBo +b25lc3QsIG1ha2VzIG1lIG5lcnZvdXMgOikKPiAKPiA+ID4gc2Vjb25kbHksIHdlIG5vdGUgdGhh +dCAiTEVWPTEiIGlzIGZvciBpbnZvY2F0aW9uIG9mIHRoZQo+ID4gaHlwZXJ2aXNvci4KPiA+ID4g +d2hhdCdzIG5vdCBjbGVhciB0byB1cyBpcyAtIGdpdmVuIHRoYXQgd2UgYXJlIG5vdCBpbXBsZW1l +bnRpbmcKPiA+ID4gaHlwZXJ2aXNvciAtIHNob3VsZCB0aGlzIGJlICphbHNvKiB0cmVhdGVkIGFz +IGFuIGlsbGVnYWwKPiA+IGluc3RydWN0aW9uPwo+ID4gPiBvciwgc2hvdWxkIHdlIGp1c3QgbGVh +dmUgaXQgdG8gZmFsbCB0aHJvdWdoIHRvIHRyYXAgQCBhZGRyCj4gPiAweDBjMDAsIGFuZAo+ID4g +PiBleHBlY3QgdGhlIHRyYXAgKnRoZXJlKiB0byBub3RpY2UgYW5kIGRlYWwgd2l0aCB0aGUgc2l0 +dWF0aW9uPwo+ID4gCj4gPiBUaGF0IGlzIHdoYXQgSSB3b3VsZCBkby4KPiAKPiBvay4gIHdlIGNh +biBkbyB0aGF0Lgo+ICAKPiA+IFRoZXJlIGlzIG9uZSBvZiB0aGUgdmFyaWFudHMgb2YgS1ZNIG9u +IFBQQywgY2FsbGVkIEtWTS1QUiwgd2hpY2gKPiA+IHJ1bnMKPiA+IHRoZSBndWVzdCBlbnRpcmVs +eSBpbiB1c2VyIG1vZGUgYW5kIHRyYXBzIGFuZCBlbXVsYXRlcyBhbGwKPiA+IHByaXZpbGVnZWQK +PiA+IGluc3RydWN0aW9ucyAodGh1cyBpdCBkb2Vzbid0IG5lZWQgaHlwZXJ2aXNvciBtb2RlIGFu +ZCBjYW4gcnVuCj4gPiBpbnNpZGUKPiA+IGEgZ3Vlc3Qgb2YgYW5vdGhlciBoeXBlcnZpc29yKS4g +IElmIHlvdSBhcmUgcnVubmluZyBhIEtWTSBndWVzdAo+ID4gaW5zaWRlCj4gPiB0aGF0IGVudmly +b25tZW50IGFuZCB0aGUgZ3Vlc3QgZG9lcyBzYyAxLCBLVk0tUFIgZXhwZWN0cyB0aGF0IHRvCj4g +PiBlbmQKPiA+IHVwIGF0IHRoZSBrZXJuZWwncyAweGMwMCBoYW5kbGVyLiAgU28gdGhhdCBpcyBv +bmUgcmVhc29uIHRvIHRyZWF0Cj4gPiBzYyAxCj4gPiBhcyBzYyAwLgo+IAo+IGFoaC4gIGkgZGlk +IHdvbmRlciA6KQo+ICAKPiA+ID4gYWxzbzogaWYgd2Ugc2V0IHRoZSBIViBiaXQgaW4gTVNSICh3 +aGVuIExFVj0xKSBzZWN0aW9uIDYuNS4xNAo+ID4gcDEwNzcKPiA+ID4gd2hpY2ggcmVmZXJzIHVz +IGJhY2sgdG8gZmlndXJlIDY1IG9uIHAxMDY0LCB3aWxsIHRoaXMgImJyZWFrIgo+ID4gdGhpbmdz +Pwo+ID4gCj4gPiBQcm9iYWJseSBub3QuICBMaW51eCBkb2VzIGNoZWNrIHdoZXRoZXIgSFY9MSBh +dCBib290IHRpbWUsIGJ1dCBJJ20KPiA+IHByZXR0eSBzdXJlIHRoYXQncyBvbmx5IG9uIGNlcnRh +aW4gcHJvY2Vzc29ycyB3aGljaCBpdCBrbm93cyB0byBiZQo+ID4gSFYtY2FwYWJsZSAoZWl0aGVy +IGJ5IGxvb2tpbmcgYXQgUFZSIG9yIHRoZSBkZXZpY2UgdHJlZSkuCj4gCj4gb2suICB0aGFuayB5 +b3UuCj4gIAo+ID4gPiBhbHNvOiBpbiBtaWNyb3dhdHQsIGknbSBub3Qgc2VlaW5nIHRoZSByZW1h +aW5pbmcgYml0cyB3aGljaAo+ID4gYXBwZWFyIFt0bwo+ID4gPiBuZWVkIHRvXSBiZSBzZXQuCj4g +PiA+IAo+ID4gPiAKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnRvbmJsYW5jaGFyZC9taWNyb3dh +dHQvYmxvYi9tYXN0ZXIvZXhlY3V0ZTEudmhkbCNMNDc5Cj4gPiA+ICAgICAgICAgICAgIGN0cmxf +dG1wLm1zcihNU1JfU0YpIDw9ICcxJzsKPiA+ID4gICAgICAgICAgICAgY3RybF90bXAubXNyKE1T +Ul9FRSkgPD0gJzAnOwo+ID4gPiAgICAgICAgICAgICBjdHJsX3RtcC5tc3IoTVNSX1BSKSA8PSAn +MCc7Cj4gPiA+ICAgICAgICAgICAgIGN0cmxfdG1wLm1zcihNU1JfSVIpIDw9ICcwJzsKPiA+ID4g +ICAgICAgICAgICAgY3RybF90bXAubXNyKE1TUl9EUikgPD0gJzAnOwo+ID4gPiAgICAgICAgICAg +ICBjdHJsX3RtcC5tc3IoTVNSX1JJKSA8PSAnMCc7Cj4gPiA+ICAgICAgICAgICAgIGN0cmxfdG1w +Lm1zcihNU1JfTEUpIDw9ICcxJzsKPiA+ID4gCj4gPiA+IHRoZXNlIGFwcGVhciB0byBiZSBjb3Jy +ZWN0IGFzIGRlZmluZWQgYWNjb3JkaW5nIHRvIGZpZ3VyZSA2NQo+ID4gKHAxMDYzKQo+ID4gPiAK +PiA+ID4gaG93ZXZlciB0aGUgcmVtYWluaW5nIGFjdGlvbnMgZG8gbm90IHNlZW0gdG8gYmUgaW1w +bGVtZW50ZWQKPiA+IChwMTA2NCk6Cj4gPiA+IAo+ID4gPiAgICAgIEJpdHMgYml0IDUsIFRNLCBW +RUMsIFZTWCwgUFIsIEZQLCBhbmQgUE1NIGFyZSBzZXQgdG8gMC4KPiA+ID4gICAgICBUaGUgVEUg +ZmllbGQgaXMgc2V0IHRvIDBiMDAuCj4gPiA+ICAgICAgVE0sIEZQLCBWRUMsIFZTWCwgYW5kIGJp +dCA1IGFyZSBzZXQgdG8gMC4KPiA+IAo+ID4gUmlnaHQuICBXZSBoYXZlIGEgdG8tZG8gbGlzdCBm +b3IgYXJjaGl0ZWN0dXJlIGNvbXBsaWFuY2UuICAoV2UKPiA+IGhhdmVuJ3QKPiA+IGltcGxlbWVu +dGVkIDMyLWJpdCBtb2RlIG9yIEJFIG1vZGUsIGZvciBpbnN0YW5jZS4pCj4gCj4geWVhaGggYWx0 +aG91Z2ggd2UgaGF2ZSAzMiBiaXQgb3AgbW9kZXMgKHVzaW5nIG1pY3Jvd2F0dCAKPiBkZWNvZGUx +LnZoZGwsIHR1cm5lZCBpbnRvIENTVikgd2UgaGF2ZSB5ZXQgdG8gc3VwcG9ydCB0aGUgTVNSIDMy +Yml0Cj4gZ2xvYmFsIG1vZGUuCj4gCj4gTEUvQkUgYW1hemluZ2x5IHNlZW1zIHRvIHdvcmsgb24g +TGlicmVTT0MsIGl0IHdhcyBxdWl0ZSBmdW5ueSBoYXZpbmcKPiB0aGUgdHJhcCBqdW1wIGludG8g +MHg3MDAgd2hlbiB0ZXN0aW5nIGFnYWluc3QgcWVtdSAocnVubmluZwo+IHNpbmdsZXN0ZXAgdW5k +ZXIgZ2RiKSwgb25seSB0byBmaW5kIHRoYXQgcWVtdSB0cmFwcyBjaGFuZ2UgdGhlIExFIGJpdAo+ +IGFuZCBvZiBjb3Vyc2UgaW4gcWVtdSBvbmNlIHRoYXQncyBjaGFuZ2VkIGdkYiBjYW4ndCByZWFk +IHJlZ2lzdGVycwo+IGNvcnJlY3RseS4gc2lnaC4KCkl0IGNhbiBpZiB5b3UgbWFudWFsbHkgY2hh +bmdlIGVuZGlhbiBpbiBnZGIgbm8gPwoKPiA+ID4gcXVlc3Rpb246IHdoYXQgZWZmZWN0IHdvdWxk +IGl0IGhhdmUgLSBiZWFyIGluIG1pbmQgdGhhdCB3ZSBhcmUKPiA+ID4gZm9sbG93aW5nIG1pY3Jv +d2F0dCAtIGlmIHdlIGltcGxlbWVudGVkIHRoZXNlIGNoYW5nZXMgdG8gTVNSPyAKPiA+IGJlYXIg +aW4KPiA+ID4gbWluZCB0aGF0IHdlIGlnbm9yZSBtb3N0IG9mIHRoZW0gYXQgdGhlIG1vbWVudCAo +TVNSLkxFIGJlaW5nIG9uZQo+ID4gPiBub3RhYmxlIGV4Y2VwdGlvbiksIHNvIHRoZSBxdWVzdGlv +biBpcywgaW4gZWZmZWN0OiBkb2VzIHRoZSBMaW51eAo+ID4gPiBrZXJuZWwgKmFsc28qIGlnbm9y +ZSB0aGVtPwo+ID4gCj4gPiBUaGUgTGludXgga2VybmVsIGNsZWFybHkgbmVlZHMgUFIgdG8gYmUg +c2V0IHRvIHplcm8gYW5kIGl0IGFsc28KPiA+IGV4cGVjdHMgRlAsIFZFQywgVlNYLCBUTSB0byBi +ZSBjbGVhcmVkLiAgU2V0dGluZyBURSB0byAwIGlzCj4gPiBuZWNlc3NhcnkKPiA+IG9uY2UgeW91 +IGltcGxlbWVudCB0aGUgdHJhY2UgaW50ZXJydXB0LCBvdGhlcndpc2UgeW91IGNvdWxkIGdldCBh +Cj4gPiB0cmFjZSBpbnRlcnJ1cHQgaW5zaWRlIHlvdXIgZmlyc3QtbGV2ZWwgaW50ZXJydXB0IGhh +bmRsZXJzLCB3aGljaAo+ID4gd291bGQgYmUgYmFkLgo+IAo+IGFoIDopCj4gIAo+ID4gIFNpbWls +YXJseSBpZiB5b3UgaGF2ZSBmbG9hdGluZy1wb2ludCBhbmQgeW91IGRvbid0IHNldAo+ID4gRkUw +IGFuZCBGRTEgdG8gMCBvbiBhbiBpbnRlcnJ1cHQsIHRoZXJlIGlzIHRoZSBjaGFuY2Ugb2YgdGFr +aW5nIGEKPiA+IGZsb2F0aW5nLXBvaW50IHByb2dyYW0gaW50ZXJydXB0IGluc2lkZSBhIGZpcnN0 +LWxldmVsIGhhbmRsZXIuCj4gCj4gd2hvb3BzLiAgb2sgYXBwcmVjaWF0ZSB0aGUgd2FybmluZy4K +PiAgCj4gPiBJJ20gbm90IHN1cmUgdGhhdCBhbGwgdGhpcyBjb3VudHMgYXMgdGhlIExpbnV4IGtl +cm5lbCAiaWdub3JpbmciCj4gPiB0aGUKPiA+IGJpdHMsIGJ1dCBpbiBnZW5lcmFsIGlmIHlvdSBk +byB3aGF0IHRoZSBhcmNoaXRlY3R1cmUgc2F5cywgdGhlCj4gPiBrZXJuZWwKPiA+IHdpbGwgYmUg +aGFwcGllciB0aGFuIGlmIHlvdSBkb24ndC4KPiAKPiBoYSwgdGhhdCBtYWtlcyBzZW5zZS4KPiAK +PiBpIGdlbmVyYWxseSBmb3VuZCB0aGlzIG91dCB3aGVuIG5ldHdvcmsgcmV2ZXJzZS1lbmdpbmVl +cmluZywgZGVzcGl0ZQo+IG5vdCB1bmRlcnN0YW5kaW5nIGF0IGFsbCB3aGF0IGkgd2FzIHNlbmRp +bmcgdG8gdGhlIGNsaWVudCBvciBzZXJ2ZXIKPiA6KQo+IAo+IHRoYW5rIHlvdSBQYXVsCj4gCj4g +bC4KPiAKPiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f +X19fXwo+IE9wZW5QT1dFUi1IREwtQ29yZXMgbWFpbGluZyBsaXN0Cj4gT3BlblBPV0VSLUhETC1D +b3Jlc0BtYWlsaW5nbGlzdC5vcGVucG93ZXJmb3VuZGF0aW9uLm9yZwo+IApodHRwOi8vbGlzdHMu +bWFpbGluZ2xpc3Qub3BlbnBvd2VyZm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9vcGVu +cG93ZXItaGRsLWNvcmVzCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f +X19fX19fX18KbGlicmUtcmlzY3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlz +dHMubGlicmUtcmlzY3Yub3JnCmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9s +aXN0aW5mby9saWJyZS1yaXNjdi1kZXYK +