Re: [libre-riscv-dev] Introduction and Questions
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 16 May 2020 00:40:56 +0000 (01:40 +0100)
committerlibre-riscv-dev <libre-riscv-dev@lists.libre-riscv.org>
Sat, 16 May 2020 00:41:31 +0000 (01:41 +0100)
f2/249f3723673a14c480fff93e0f47aa31061c4d [new file with mode: 0644]

diff --git a/f2/249f3723673a14c480fff93e0f47aa31061c4d b/f2/249f3723673a14c480fff93e0f47aa31061c4d
new file mode 100644 (file)
index 0000000..627b140
--- /dev/null
@@ -0,0 +1,191 @@
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Sat, 16 May 2020 01:41:32 +0100
+Received: from localhost ([::1] helo=libre-riscv.org)
+       by libre-soc.org with esmtp (Exim 4.89)
+       (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
+       id 1jZktP-0005Q8-Dw; Sat, 16 May 2020 01:41:31 +0100
+Received: from lkcl.net ([217.147.94.29])
+ by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
+ (Exim 4.89) (envelope-from <lkcl@lkcl.net>) id 1jZktN-0005Q2-RA
+ for libre-riscv-dev@lists.libre-riscv.org; Sat, 16 May 2020 01:41:29 +0100
+DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lkcl.net;
+ s=201607131; 
+ h=Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version;
+ bh=7VTwKY1umT1ck0iSJBgu+r1LgeHfdr6vUyry7id2454=; 
+ b=eoeQp6aO3UesadiHhECMRInstAzoXTFpCIaO+eQBTBo0X9oV2ZQ/YPeqDM8XO1NbRknYZdEDKu8SrnzLgOFJEEUm0QA4V903jiiaa/XsaHKCbh5hmeHMJb4fOZyiPh2Zz8+26RLC/L8h932oJGHD2HbvnNu3vyY/vQ2XdZhJOFI=;
+Received: from mail-lf1-f52.google.com ([209.85.167.52])
+ by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
+ (Exim 4.84_2) (envelope-from <lkcl@lkcl.net>) id 1jZktN-0005ZO-E6
+ for libre-riscv-dev@lists.libre-riscv.org; Sat, 16 May 2020 00:41:29 +0000
+Received: by mail-lf1-f52.google.com with SMTP id 82so3310286lfh.2
+ for <libre-riscv-dev@lists.libre-riscv.org>;
+ Fri, 15 May 2020 17:41:14 -0700 (PDT)
+X-Gm-Message-State: AOAM532ncqZkE7AcUsI23GQ/tPXZ49Qx2wTekcT3XFlxIOXjYYIjkqZh
+ GlTJxTuEK6xKwsnTU1CxkgPXsixlZyMat8rIJK4=
+X-Google-Smtp-Source: ABdhPJyfF2xFkSB4qz39bLMishJdU45e4qQj+j7gD5ia8apd7u9ilVrSbSwgpMjRk2fWqHpRR9TV+nZNhdXHwSnUIXc=
+X-Received: by 2002:a05:6512:3082:: with SMTP id
+ z2mr4085813lfd.32.1589589668349; 
+ Fri, 15 May 2020 17:41:08 -0700 (PDT)
+MIME-Version: 1.0
+References: <CAEoCstQz36UuDJ+ZUgLRJNeQkA=pTfYuzCr+XgF-FJY9+yJsvA@mail.gmail.com>
+ <747F8870-06C6-46A0-AFD9-D55289D4C41A@gatech.edu>
+ <CAEoCstRUXkB_LxXXubx4A0dhLGvFqq6EPL+GzukDQORpHopaiw@mail.gmail.com>
+ <4BDA96A5-9063-42A6-9548-CAE3CBEBEBAC@gatech.edu>
+ <CAPweEDyZQEBsh8uZ4VkzzALPcoiTgs0AvTmTwS6B0Dc+jy+mfw@mail.gmail.com>
+ <CAEoCstTERH=Z84je148ffL7_yiBYFj_Zet2VfOzkbe86MVmyQQ@mail.gmail.com>
+ <CAPweEDyHrrQqPaNy7OqCsPUgR0yrELuRENqZTw_qr-tBVHVg+g@mail.gmail.com>
+ <CAEoCstT7yZObkbS9GhWDRE7rm3p=Y5CzAJgYYj_3THCuRy=MCQ@mail.gmail.com>
+ <CAPweEDzObJ1RXD51Y1D1WDJqsmsiNJKL1j-jDQqy0OwKLs6fdQ@mail.gmail.com>
+ <CAEoCstS+xz_K6AYNkq-nXB=e7B4FqdC5nzdOXRaNyiqNOuCC7w@mail.gmail.com>
+In-Reply-To: <CAEoCstS+xz_K6AYNkq-nXB=e7B4FqdC5nzdOXRaNyiqNOuCC7w@mail.gmail.com>
+From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
+Date: Sat, 16 May 2020 01:40:56 +0100
+X-Gmail-Original-Message-ID: <CAPweEDxb77LOOKr=fcWFDhG80ML4MVuBydJWKycZ_2RrDRvUXQ@mail.gmail.com>
+Message-ID: <CAPweEDxb77LOOKr=fcWFDhG80ML4MVuBydJWKycZ_2RrDRvUXQ@mail.gmail.com>
+To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
+Subject: Re: [libre-riscv-dev] Introduction and Questions
+X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
+X-Mailman-Version: 2.1.23
+Precedence: list
+List-Id: Libre-RISCV General Development
+ <libre-riscv-dev.lists.libre-riscv.org>
+List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>, 
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
+List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
+List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
+List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
+List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>, 
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
+Reply-To: Libre-RISCV General Development
+ <libre-riscv-dev@lists.libre-riscv.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" <libre-riscv-dev-bounces@lists.libre-riscv.org>
+
+T24gU2F0LCBNYXkgMTYsIDIwMjAgYXQgMTI6NDkgQU0gSmVyZW15IFNpbmdoZXIgPHRoZWpzaW5n
+aGVyQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IG5vdCBtaWNyby1vcHMsICphY3R1YWwqIHNjYWxh
+ciBhZGQgb3BzLgo+Cj4gSSB0aGluayB3ZSBqdXN0IGhhdmUgZGlmZmVyZW50IHRlcm1pbm9sb2d5
+IGZvciB0aGlzLiBUbyBtZSwgYSBtaWNyby1vcAo+IGlzIHRoZSBzbWFsbGVzdCB1bml0IG9mIGNv
+bXB1dGUgdGhhdCBpcyBwYXNzZWQgdGhyb3VnaCBhIHBpcGVsaW5lLCBhbmQKPiBhIG1pY3JvLW9w
+IGNvdWxkIGluZGljYXRlIHRoYXQgdGhlIGNvcmUgc2hvdWxkIHBlcmZvcm0gYSBzY2FsYXIgYWRk
+Cj4gb3AuIEknbSBoYXBweSB3aXRoIHlvdXIgZXhwbGFuYXRpb24sIHRob3VnaCwgdGhhbmsgeW91
+LgoKOikgIGFsbG93IG1lIHRvIGV4cGxhaW4gZm9yIHRoZSBiZW5lZml0IG9mIGZ1dHVyZSByZWFk
+ZXJzLiAgdGhlc2UgZGlzY3Vzc2lvbnMKYXJlIGFyY2hpdmVkIGFuZCB0aHVzIHRoZSBsaXN0IGlz
+IGFuIGluZm9ybWF0aW9uYWwgcmVzb3VyY2UgZm9yIG90aGVycy4KCndlIGRvIGludGVuZCB0byBk
+byBtaWNyby1vcHMuICB0aGlzIGJlY2F1c2Ugd2Ugd2lsbCBiZSBzaGFyaW5nIHRoZSBNVUwgYW5k
+CkRJViAqaW50ZWdlciogcGlwZWxpbmUocykgd2l0aCB0aGUgRlAgTVVMIGFuZCBGUCBESVYgcGlw
+ZWxpbmVzLgoKYXBhcnQgZnJvbSB0aGF0LCB0aGVyZSBpcyBhIGRpcmVjdCBhbmQgb25lLXRvLW9u
+ZSBkaXJlY3QgY29ycmVzcG9uZGFuY2UKYmV0d2VlbiAiUE9XRVI5IGluc3RydWN0aW9uIiBhbmQg
+d2hhdCBpcyB0ZXJtZWQgIm1pY3JvLW9wcyIuCgp0aGF0IHNhaWQsIG1pY3Jvd2F0dCBkaWQgc29t
+ZSByZWFsbHkgY2xldmVyIG11bmdpbmcsIHdoaWNoIHdlIGZvbGxvd2VkIGV4YWN0bHkuCnNvIGkg
+c2FhYXkgImRpcmVjdCIsIGJ1dC4uLiB0ZWNobmljYWxseS4uLiBub3cgdGhhdCBpIHRoaW5rIGFi
+b3V0IGl0LAp5b3UncmUgY29ycmVjdC4KCmFuIGV4YW1wbGU6CgpodHRwczovL2dpdC5saWJyZS1z
+b2Mub3JnLz9wPXNvYy5naXQ7YT1ibG9iO2Y9c3JjL3NvYy9sb2dpY2FsL21haW5fc3RhZ2UucHk7
+aGI9SEVBRAoKbm90ZSB0aGVyZSwgT1BfWE9SLCBPUF9PUiwgT1BfQU5ELCB0aGVyZSdzIG5vICJP
+UF9OT1IiIG9yICJPUF9OQU5EIj8KdGhpcyBpcyBiZWNhdXNlIHRoZSB0YWJsZXMgKHNlZSBodHRw
+czovL2xpYnJlLXNvYy5vcmcvb3BlbnBvd2VyL2lzYXRhYmxlcy8gd2hpY2gKd2UgZXh0cmFjdGVk
+IGZyb20gbWljcm93YXR0IGRlY29kZTEudmhkbCkgaGF2ZSAqcHJlLWFuYWx5c2VkKiB0aGUgb3Bl
+cmF0aW9ucwphbmQgbWFwcGVkIHRoZW0gZG93biB0bzoKCiogYSBwcmUtcHJvY2Vzc2luZyBzdGFn
+ZSAoYml0LWludmVyc2lvbiBvZiBSQSwgc2VsZWN0aW9uIG9mIENhcnJ5PTEvMC9DYXJyeV9SZWcp
+CiogdGhlIG1haW4gcHJvY2Vzc2luZyBzdGFnZQoqIGEgcG9zdC1wcm9jZXNzaW5nIHN0YWdlIChi
+aXQtaW52ZXJzaW9uIG9mIG91dHB1dCwgc2V0dGluZyBvZgpDb25kaXRpb24gUmVnaXN0ZXIgQ1Iw
+KQoKd2UgKmJlbGlldmUqIHRoaXMgaXMgYSByZWZsZWN0aW9uIG9mIHRoZSBpbnRlbnQgb2YgdGhl
+IG9yaWdpbmFsCmRlc2lnbmVycyBvZiBQT1dFUiwKYW5kIHRoZSBwZW9wbGUgd2hvIGRlc2lnbmVk
+IG1pY3Jvd2F0dCBoYXZlIGJlZW4gdHJhY2tpbmcgUE9XRVIgZm9yIDIwIHllYXJzLgptYW55IG9m
+IHRoZW0gd29yayBmb3IgSUJNIFJlc2VhcmNoLgoKc28gdGhlc2UgYXJlIGtpaWluZGEgbWljcm8t
+b3AnZC4uLiBleGNlcHQgYWN0dWFsbHkgd2hhdCB3ZSBkaWQgd2FzOiBzcGxpdCB0aG9zZQozIHBo
+YXNlcyBpbnRvIDMgc2VwYXJhdGUgY29tYmluYXRvcmlhbCBibG9ja3Mgd2hpY2ggYXJlIHJlLXVz
+ZWQgaW4gbXVsdGlwbGUKcGlwZWxpbmUgc3RhZ2VzLgoKPiA+IGl0J3MgYmFzaWNhbGx5IGMgbWFj
+cm9zLi4uIGFwcGxpZWQgdG8gaGFyZHdhcmUuCj4KPiBHb29kIGFuYWxvZ3ksIHRoYW5rcy4gVGhl
+IG9uZSBjb25jZXJuIEkgaGF2ZSBpcyB0aGF0IHRoaXMgInZlY3RvciBvcAo+IGZpc3Npb24iIGFw
+cHJvYWNoIHdpbGwgcHVtcCB0aGUgcGlwZWxpbmUgd2l0aCB0b25zIGFuZCB0b25zIG9mCj4gc2Nh
+bGFyLW9wcywKCmkga25vdywgcmlnaHQ/IDopCgo+IHdoaWxlIGEgdHJhZGl0aW9uYWwgdmVjdG9y
+IGV4ZWN1dGlvbiBlbmdpbmUgd291bGQgbm90Cj4gZGVjb25zdHJ1Y3QgdGhlIHZlY3RvciBpbnN0
+cnVjdGlvbiBpbnRvIG1hbnkgc2NhbGFyIGluc3RydWN0aW9ucy4KCnllcy4gIHRoZSBvbmx5IHJl
+YWwgcGxhY2Ugd2hlcmUgdGhlcmUgaXMgY2F1c2UgZm9yIGNvbmNlcm4gaXMgb24gbG9zaW5nIHRo
+ZQplbGVtZW50LXN0cmlkZSBpbmZvcm1hdGlvbiBmcm9tIHNlcXVlbnRpYWwgTEQvU1Qgb3BlcmF0
+aW9uczogc2VlIGJlbG93LgoKPiBEb2VzIHRoZSB2ZWN0b3IgcGlwZWxpbmUgdXNlIEFMTCB0aGUg
+c2FtZSBleGVjdXRpb24gcmVzb3VyY2VzIGFzIHRoZQo+IHNjYWxhciBwaXBlbGluZT8gVGhlIHNh
+bWUgaXNzdWUgcXVldWVzLCBmdW5jdGlvbmFsIHVuaXRzLCByZWFkIHBvcnRzLAo+IHdyaXRlYmFj
+ayBwYXRocz8KCnl5eXVwIDopCgp0aGUgb25seSAicHJvYmxlbSIgY29tZXMgaW4gdGhlIGFkZHJl
+c3MtbWF0Y2hpbmcgd2hlbiBsb29raW5nIHRvCm1lcmdlIGEgYmF0Y2ggb2YgTERzIChvciBTVHMp
+IGludG8gYSBzaW5nbGUgTDEgY2FjaGUtbGluZSByZWFkLgp0aGUgYWRkcmVzcy1tYXRjaGluZyBp
+ZiB5b3UgbG9zZSB0aGUgZmFjdCB0aGF0IHRoZSBhZGRyZXNzZXMgd2VyZQpvcmlnaW5hbGx5IGVs
+ZW1lbnQtc3RyaWRlZCBhbmQgdGh1cyBzZXF1ZW50aWFsLCB5b3UgZ2V0IGhpdCBieSBhIG1hc3Np
+dmUKcG93ZXIgc3VyZ2Ugb2Ygb3ZlciAxMDAwIFhPUiBnYXRlcyB0byBnZXQgdGhhdCBpbmZvcm1h
+dGlvbiBiYWNrLAppZiB5b3UgaGF2ZSA4IExEL1NUIENvbXBVbml0cy4KCnRoZXJlZm9yZSB0aGUg
+aW50ZW50aW9uIGlzIHRvICJtYXJrIiBhZGRyZXNzZXMgYXMgYmVpbmcgc2VxdWVudGlhbCwgaWYK
+dGhleSB3ZXJlIGF1dG8tZ2VuZXJhdGVkIGJ5IGFuIGVsZW1lbnQtc3RyaWRlZCBWZWN0b3ItTEQv
+U1QsIGFuZApjb25zZXF1ZW50bHksIHZlcnkgZmV3IGJpdHMgbmVlZCB0byBiZSBleGFtaW5lZCB0
+byBkZXRlY3QgaWYgdGhlCmFkZHJlc3Mgcm9sbHMgb3ZlciB0byBhIG5ldyBMMSBjYWNoZS1saW5l
+LgoKdGhpcyBpcyAqbGl0ZXJhbGx5KiB0aGUgb25seSAidW5wbGFubmVkIiBkZXNpZ24gb3B0aW1p
+c2F0aW9uIHRoYXQgbmVlZHMKdG8gYmUgYWRkZWQgYXQgdGhlIGhhcmR3YXJlIGxldmVsLCBqdXN0
+IGJlY2F1c2Ugb2YgdGhlIGRlY2lzaW9uIHRvCmphbSBhcyBtYW55IHNjYWxhciAoZWxlbWVudCkg
+b3BlcmF0aW9ucyBpbnRvCgo+ID4gPiBIb3cgZG9lcyB0aGUgc2NvcmVib2FyZCBoYW5kbGUgYSBX
+QVcgaGF6YXJkLi4uIHR3byBpbnN0cnVjdGlvbnMKPiA+ID4gd3JpdGluZyB0aGUgc2FtZSByZWdp
+c3Rlcj8gRG9lcyB0aGUgc2Vjb25kIGluc3RydWN0aW9uIHdhaXQgZm9yIHRoZQo+ID4gPiBmaXJz
+dCB0byBmaW5pc2g/Cj4KPiA+IHNpZ2ggb3ZlciBhIHllYXIgYWdvIGkgdW5kZXJzdG9vZCB0aGlz
+IGVub3VnaCB0byBiZSBhYmxlIHRvIGFuc3dlci4KPiA+IHdoYXQgd2Ugd2lsbCBoYXZlIHRvIGRv
+IGlzIHNpbXBseSBpZ25vcmUgdGhlIG9wdGltaXNhdGlvbiBvcHBvcnR1bml0eS4KPgo+IEhtbW0s
+IGlnbm9yaW5nIFdBVyB3aWxsIHNpZ25pZmljYW50bHkgbGltaXQgdGhlIGFiaWxpdHkgb2YgdGhl
+IGNvcmUgdG8KPiBleHBsb2l0IElMUCwgd2hpY2ggaXMgb25lIG9mIHRoZSBmdW5kYW1lbnRhbCBy
+ZWFzb25zIGZvciBnb2luZyBPT08uCgp3ZSBoYXZlIGEgaGVsbCBvZiBhIGxvdCB0byBnZXQgZG9u
+ZSBpbiBhYm91dCAxNCB3ZWVrcywgd2hpY2ggaXMgdGhlCmN1dG9mZiBwb2ludCBhdCB3aGljaCB3
+ZSBoYXZlIHRvIGJlZ2luIHRoZSBhY3R1YWwgbGF5b3V0LiAgb3VyIGZpcnN0IHByaW1hcnkKZ29h
+bCBpcyB0byBtZWV0IHRoZSBPY3QgMjAyMCB0YXBlb3V0IHdpdGggImF0IGxlYXN0IHNvbWV0aGlu
+ZyBmdW5jdGlvbmFsIi4KCmFmdGVyIHRoYXQsIHdlIGNhbiByZXR1cm4gdG8gZXhhbWluaW5nIG9w
+dGltaXNhdGlvbnMuICBpIGhhdmUgYSB3YXkgdG8Kc3BvdCBXQVcsIGFzIHdlbGwgYXMgYSBjaGFp
+bi1lbGltaW5hdGlvbiBvZiBhbGwgb25nb2luZyBjYXNjYWRpbmcKZGVwZW5kZW5jaWVzIC0gaXQg
+d2lsbCBqdXN0IHRha2UgbWUgYWJvdXQgYW4gZW50aXJlIG1vbnRoIHRvIHJlbWVtYmVyCml0LCBh
+bmQgMyBtb250aHMgdG8gaW1wbGVtZW50IGl0LCBhbmQgd2UgZG9uJ3QgaGF2ZSB0aW1lIHRvIGRv
+IHRoYXQuLi4KcmlnaHQgbm93LCB0aGlzIHZlcnkgbWludXRlLgoKZm9yIGEgNTAgbWh6IHByb29m
+LW9mLWNvbmNlcHQgQVNJQywgaSdtIG5vdCBnb2luZyB0byB3b3JyeSBhYm91dCBpdC4KCj4gPiBu
+byBpdCBkb2VzIG5vdC4gIHlvdSB3aWxsIG5lZWQgdG8gc3RhdGUgdGhhdCB5b3UgYXJlIGhhcHB5
+IHRvIGdpdmUKPiA+IGNyZWRpdCBpZiB5b3UgdXNlIHRoZSBib29rIGNoYXB0ZXJzLCBhbmQgdGhh
+dCBpZiB5b3UgcGFzcyB0aGVtIG9uIHlvdQo+ID4gd2lsbCBsaWtld2lzZSBhc2sgdGhlIHJlY2lw
+aWVudCB0byBndWFyYW50ZWUgdGhhdCB0aGV5IGFsc28gd2lsbCBnaXZlCj4gPiBjcmVkaXQgdG8g
+TWl0Y2ggQWxzdXAuCj4KPiBPZiBjb3Vyc2UsIEknbSBnbGFkIHRvIGhhdmUgdGhlIGNvbmRpdGlv
+bnMgb2YgdXNlIEFPVC4KCmFwcHJlY2lhdGVkLiAgdGhleSBhcmUuLi4gYWJzb2x1dGVseSBmYXNj
+aW5hdGluZywgYW5kIGV4dHJlbWVseQppbmZvcm1hdGl2ZSwgYXMgd2VsbAphcyByZXByZXNlbnRp
+bmcgYW4gYWR2YW5jZW1lbnQgYW5kIHNpZ25pZmljYW50IHNpbXBsaWZpY2F0aW9uIG9uIGhvdyB0
+byBkbwpPb08gbXVsdGktaXNzdWUgZGVzaWducy4KCml0IGRvZXMgaGF2ZSB0byBiZSBzYWlkIHRo
+YXQgbWFueSBBcmNoaXRlY3RzIF9oYXZlXyByZWRpc2NvdmVyZWQgdGhlIGtub3dsZWRnZQpmcm9t
+IHRoZSBvcmlnaW5hbCA2NjAwLCBob3dldmVyIHdpdGggdGhlIG1ham9yaXR5IG9mIHB1YmxpY2x5
+LWF2YWlsYWJsZSBkZXNpZ25zCnVzaW5nICpiaW5hcnkqIFEtVGFibGVzLCBpdCBiZWNvbWVzIGV4
+dHJlbWVseSBkaWZmaWN1bHQgdG8gZG8gbXVsdGktaXNzdWUgb24gdG9wCm9mIGJpbmFyeS1lbmNv
+ZGVkIFEtVGFibGVzLgoKb25lIG9mIHRoZSAobWFueSkgaW5zaWdodHMgdGhhdCBNaXRjaCBwcm92
+aWRlZCB3YXMgdGhhdCBpZiB5b3UgY29udmVydAp0aGUgUS1UYWJsZXMKdG8gYW4gKnVuYXJ5KiBh
+cnJheSwgeW91IGNhbiBwZXJmb3JtIHRyYW5zaXRpdmUgUmFXL1dhUi9XYVcgY2FzY2FkZSBiaXQt
+c2V0dGluZwpvZiB0aGUgcmVnaXN0ZXIgdmVjdG9yIG51bWJlcnMgYWNyb3NzIG11bHRpcGxlIGlu
+c3RydWN0aW9ucyBpbiBhbnkKZ2l2ZW4gbXVsdGktaXNzdWUKYmF0Y2gsIGFuZCB0aHVzLCB3aXRo
+IHNpbXBsZSBzaW5nbGUtYml0IE9SIGFuZCBBTkQgZ2F0ZXMsIHRocm93Cm11bHRpcGxlIGluc3Ry
+dWN0aW9ucwppbnRvIHRoZSBEZXBlbmRlbmN5IE1hdHJpY2VzIGFuZCBoYXZlIHRoZWlyIG9yZGVy
+IHN0aWxsIGJlIGNvcnJlY3RseQpwcmVzZXJ2ZWQgaW4KdGhlIERlcGVuZGVuY3kgTWF0cmljZXMg
+REFHcy4KCmluIGFkZGl0aW9uIHRvIHRoYXQsIHRoZSBjaGFwdGVycyBkZXNjcmliZSBob3cgdG8g
+aW1wbGVtZW50IFByZWNpc2UgRXhjZXB0aW9ucwpvbiB0b3Agb2YgYSA2NjAwIGRlc2lnbi4gIGl0
+J3MgcmVhbCBzaW1wbGUuICBpIGxlYXZlIGl0IHRvIHlvdSB0byByZWFkIHVwIG9uLgoKdGhlIG9u
+bHkgdGhpbmcgeW91IG5lZWQgdG8gYmUgYXdhcmUgb2YgaXMgdGhhdCB0aGUgZGVzaWduIGNvbmNl
+cHQgZGVzY3JpYmVkIGluCkNoYXB0ZXIgMTEgaXMgZmF1bHR5ICh0aGUgb25lIHRoYXQgcmVtb3Zl
+cyB0aGUgRlUtRlUgTWF0cml4IGFuZCByZXBsYWNlcyBpdAp3aXRoIGEgYmlnIE5PUiBnYXRlKS4g
+IGl0IHVuZm9ydHVuYXRlbHkgdG9vayBNaXRjaCBhbmQgSSBhYm91dCAzLTQgbW9udGhzIG9mCmRp
+c2N1c3Npb24gKGFuZCBpbXBsZW1lbnRhdGlvbikgdG8gZGV0ZWN0IHRoaXMgZXJyb3IuCgp0aGUg
+ZGVzY3JpcHRpb24gaW4gY2hhcHRlciAxMCBob3dldmVyIGlzIHBlcmZlY3RseSBmdW5jdGlvbmFs
+LgoKKmJlIGF3YXJlKiBhbHNvIHRoYXQgdGhlIGdhdGUtbGV2ZWwgZGlhZ3JhbXMgZm9yIHRoZSBG
+VS1SZWdzLCBGVS1GVQpNYXRyaWNlcywgYW5kIGZvciB0aGUgQ29tcHV0YXRpb24gVW5pdHMgKnJl
+cXVpcmUqIHRoYXQgY2VydGFpbiBvcGVyYXRpb25zCnRha2UgcGxhY2Ugb24gdGhlIFJJU0lORyBl
+ZGdlIG9mIENMSywgd2hpbHN0IG90aGVycyB0YWtlIHBsYWNlIG9uIHRoZQpGQUxMSU5HIGVkZ2Ug
+b2YgQ0xLLgoKaWYgdGhpcyBpcyBub3QgYm9ybmUgaW4gbWluZCwgdGhlIGRpYWdyYW1zIGxvb2sg
+ZmF1bHR5IGFuZCB3aWxsIG5vdCB3b3JrIGlmCmltcGxlbWVudGVkIGFzLWlzIG9uIGEgIm5vcm1h
+bCIgKHJpc2luZyBlZGdlKSBtb2Rlcm4gSERMIGNsb2NrIGRlc2lnbi4KaSBjb252ZXJ0ZWQgdGhl
+IGNvZGUgaW4gbGlicmUtc29jIHRvIHdvcmsgKnNvbGVseSogb24gdGhlIFJJU0lORyBlZGdlLgoK
+PiBJdHMgaW5jcmVkaWJseQo+IGFubm95aW5nIHdoZW4gb25lIGlzIHByb3ZpZGVkIHNvbWUgaW5m
+b3JtYXRpb24sIG9ubHkgZm9yIHRoZSBwcm92aWRlcgo+IG9mIHRoZSBpbmZvIHRvIGNvbWUgYmFj
+ayBtb250aHMgbGF0ZXIgYW5kIHRlbGwgeW91ICJSZW1lbWJlciB0aGF0Cj4gZG9jdW1lbnQgSSBz
+ZW50IHlvdSwgeWVhaCwgbWFrZSBzdXJlIHlvdSBuZXZlciByZWZlcmVuY2UgaXQgaW4gYW55Cj4g
+cHVibGlzaGVkIHdvcmsgZXZlciIuCgo6KQoKbC4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRldiBtYWlsaW5nIGxpc3QKbGlicmUt
+cmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRwOi8vbGlzdHMubGlicmUtcmlzY3Yu
+b3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2Cg==
+