Re: [libre-riscv-dev] Introduction and Questions
authorJeremy Singher <thejsingher@gmail.com>
Fri, 15 May 2020 22:15:30 +0000 (15:15 -0700)
committerlibre-riscv-dev <libre-riscv-dev@lists.libre-riscv.org>
Fri, 15 May 2020 22:15:43 +0000 (23:15 +0100)
cc/978acba7cc1f67312572113f74c2e370899820 [new file with mode: 0644]

diff --git a/cc/978acba7cc1f67312572113f74c2e370899820 b/cc/978acba7cc1f67312572113f74c2e370899820
new file mode 100644 (file)
index 0000000..ba0e51e
--- /dev/null
@@ -0,0 +1,272 @@
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Fri, 15 May 2020 23:15:44 +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 1jZicJ-00035D-GH; Fri, 15 May 2020 23:15:43 +0100
+Received: from mail-lf1-f51.google.com ([209.85.167.51])
+ by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
+ (Exim 4.89) (envelope-from <thejsingher@gmail.com>)
+ id 1jZicI-000357-P4
+ for libre-riscv-dev@lists.libre-riscv.org; Fri, 15 May 2020 23:15:42 +0100
+Received: by mail-lf1-f51.google.com with SMTP id 188so3078730lfa.10
+ for <libre-riscv-dev@lists.libre-riscv.org>;
+ Fri, 15 May 2020 15:15:42 -0700 (PDT)
+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;
+ bh=9YDMe6z6gKOE7DBnjV33tyoR0+J6cYN5EGl5npQBi4Q=;
+ b=p7GCEFTS76u0PriK3mn6h5o0/jIUaZSQyqWvHLrak+YsiONci3Br+zfYTzHn6HaV62
+ iSlUlJA/1527mtEVJy/yBjBt+lNKgFS9SH/yKbIVCxnLhy7mML/OEwXATVZmTRxcRbH4
+ cLh46uRpvh5HzFDU72I1h2VIhPlbq+3eao3+VCL7RfIKNJZ67yo8pF++uxwvulEFzAfr
+ +oiBqTAOhgjmmK4n6clSntmFUG0Ed/25ptVHt5I3ZizKgamWLDfT1vMTFEaWOewTqZjv
+ eTWL3BgHMzL5icgJ8aJepkm5vLQjC3o0XxXpebeSHc6SAcbflKWOqps/G/8f+JpNlNoT
+ eZaw==
+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;
+ bh=9YDMe6z6gKOE7DBnjV33tyoR0+J6cYN5EGl5npQBi4Q=;
+ b=XBNMLi6G3xoU3Tu3WU+z42RrLRsUPz3IBup5A0f/4l/4QwNOzhWHs1BZ08O52U4p8y
+ 28sY5+CwO+WgwwkQBWtz0TSNh+7gl4eXTSlhgm9oMrWaYWlydZqUcHnp+xmwk7hSonfo
+ PCbNy/jQ5sz5cUj9V4AToR9SssCd9/WY2eV573aQRQJajICpgv3Qu5I0rztyQWN+XE63
+ Fbtx/ojRZA+72+jdgXdjvYXsWLUVgaNTi8FncPlXUCtPcqDYwjT3dSisi5HpEuL0ZI9q
+ AgtaMkr9tbayaaP9zQkHf16m1Sy4mcR3WJ/px3nbX3ypybY19+ZT+6ZnXzhiiqpREtXm
+ IIsw==
+X-Gm-Message-State: AOAM532K9rCZyLOegj1pezl5KUb0yXjHx7tBjJ5/oUx5RL9gtAcnQilC
+ lLuSmrOE/hlpCud9PzpXR0Vk7IMn0DueFnn+B+CcnJdV
+X-Google-Smtp-Source: ABdhPJx3e6qk071RF2Q2Ztc1rxr2P8nKm+acItUF2k/GjWbG2usVImv7rvQp9Ki3NYJN+/KNJwGySZ6GX34I9HEbEPU=
+X-Received: by 2002:a19:84b:: with SMTP id 72mr3784534lfi.133.1589580941650;
+ Fri, 15 May 2020 15:15:41 -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>
+In-Reply-To: <CAPweEDyHrrQqPaNy7OqCsPUgR0yrELuRENqZTw_qr-tBVHVg+g@mail.gmail.com>
+From: Jeremy Singher <thejsingher@gmail.com>
+Date: Fri, 15 May 2020 15:15:30 -0700
+Message-ID: <CAEoCstT7yZObkbS9GhWDRE7rm3p=Y5CzAJgYYj_3THCuRy=MCQ@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>
+
+PiBpdCdzIGJhc2ljYWxseSBhIENyYXkgVmVjdG9yIExvb3AKPiAoVkwpIGV4Y2VwdCB0aGF0IFZM
+LCB3aGVuIHNldCwgYWN0dWFsbHkgKlBBVVNFUyogdGhlIFByb2dyYW0gQ291bnRlciwKPiBhbmQg
+aXNzdWVzIE1VTFRJUExFIGluc3RydWN0aW9ucyAtIHVzaW5nIHRoZSBvbmUgYXQgdGhlIFBDIGFz
+IGEKPiAidGVtcGxhdGUiIC0gYnV0IGluY3JlbWVudGluZyB0aGUgb3BlcmFuZCByZWdpc3RlciBu
+dW1iZXJzCj4gc2VxdWVudGlhbGx5IG9uIGVhY2ggaXRlcmF0aW9uIG9mIHRoZSBsb29wIGZyb20g
+MCB0byBWTC0xLgoKU28gaWYgeW91IGRlY29kZSBhIHZhZGQgaW5zdHJ1Y3Rpb24sIHdpdGggVkw9
+NCwgYW5kIGEgMS13aWRlIHBpcGVsaW5lLAp0aGUgZGVzaWduIHdvdWxkIHN0YWxsIGluc3RydWN0
+aW9uIGZldGNoLCBhbmQgaXNzdWUgNCAic2NhbGFyIiBhZGQKbWljcm8tb3BzIHdpdGggaW5jcmVt
+ZW50aW5nIHJlZ2lzdGVyIGluZGljZXM/IFRoYXQgc2VlbXMgbGlrZSBpdApzaG91bGQgd29yaywg
+YWx0aG91Z2ggeW91IHdvdWxkIGxvc2UgdGhlIGFiaWxpdHkgdG8gZXhwbG9pdCB2ZWN0b3IKY2hh
+aW5pbmcsIHNpbmNlIHBhdXNpbmcgdGhlIFBDIHdvdWxkIHByZXZlbnQgYWRkaXRpb25hbCBpbnN0
+cnVjdGlvbnMKYWZ0ZXIgdGhlIHZlY3RvciBpbnN0cnVjdGlvbiBmcm9tIGdldHRpbmcgaXNzdWVk
+LiBJIGxvb2tlZCBhIFNpbXBsZVYgYQp3aGlsZSBhZ28sIGFuZCB0byBtZSBpdCBzZWVtZWQgbGlr
+ZSB0aGUgZGlmZmVyZW5jZSB2cyBhIG5vcm1hbCB2ZWN0b3IKYXJjaGl0ZWN0dXJlIHdhcyB0aGF0
+IFNpbXBsZVYgbWVyZ2VkIHRoZSB2ZWN0b3IgYW5kIGludGVnZXIgcmVnaXN0ZXIKZmlsZXMuCgo+
+IHVuZm9ydHVuYXRlbHksIHdoZW4gdGhlIEktQ2FjaGUgaXMgc2hhcmVkLCB3ZSBkbyBnaXZlIGEg
+ZGFtbi4KPiB0aGVyZWZvcmUgd2UgbmVlZCB0byByZWR1Y2UgdGhlIGluc3RydWN0aW9uIHNpemUg
+YW5kIGNhbWUgdXAgd2l0aAo+IFNpbXBsZVYgKGxvb2sgaXQgdXApLgoKWWVwLCB0aGlzIHNlZW1z
+IGxpa2UgYSByZWFzb25hYmxlIGNvbmNsdXNpb24gdG8gZHJhdy4KCgo+IHRoaXMgaGFzICJpbXBs
+aWNpdCIKPiByZWdpc3Rlci1yZW5hbWluZyBhdXRvbWF0aWNhbGx5IGJ1aWx0LWluIHRvIHRoZSBk
+ZXNpZ24uICB0aGVzZSBhcmUgdGhlCj4gRnVuY3Rpb24gVW5pdCBvcGVyYW5kIGxhdGNoZXMuICB0
+aGV5IGFyZSBiZXN0IHRlcm1lZCAibmFtZWxlc3MKPiByZWdpc3RlcnMiIHJhdGhlciB0aGFuICJy
+ZWdpc3Rlci1yZW5hbWluZyIuCgpJIHRoaW5rIEkgdW5kZXJzdGFuZCB3aGF0IHlvdSBhcmUgc2F5
+aW5nLCBteSB0ZXJtaW5vbG9neSBmb3IgdGhpcyBpcwp0aGF0IHRoZSBjb3JlIGlzICJyZW5hbWlu
+ZyIgcmVnaXN0ZXJzIGludG8gd2hhdCB5b3UgY2FsbCBpbmZsaWdodAoibmFtZWxlc3MgcmVnaXN0
+ZXJzIi4gQXQgdGhlIGVuZCBvZiB0aGUgZGF5LCB0aGUgcG9pbnQgaXMgdGhhdApyZWdpc3RlciBk
+YXRhIGlzIHN0b3JlZCBub3QganVzdCBpbiBhIGxvZ2ljYWwgcmVnaXN0ZXIgZmlsZSwgYW5kIHRo
+YXQKdGhlIHNjaGVkdWxlciBjYW4gYWdncmVzc2l2ZWx5IGV4ZWN1dGUgaW5zdHJ1Y3Rpb25zIE9P
+TyB3aGVuIHRoZWlyCm9wZXJhbmRzIGFyZSBhdmFpbGFibGUsIGluc3RlYWQgb2YgaW4gc2VyaWFs
+aXppbmcgZXhlY3V0aW9uIGluIHByb2dyYW0Kb3JkZXIuCkhvdyBkb2VzIHRoZSBzY29yZWJvYXJk
+IGhhbmRsZSBhIFdBVyBoYXphcmQuLi4gdHdvIGluc3RydWN0aW9ucwp3cml0aW5nIHRoZSBzYW1l
+IHJlZ2lzdGVyPyBEb2VzIHRoZSBzZWNvbmQgaW5zdHJ1Y3Rpb24gd2FpdCBmb3IgdGhlCmZpcnN0
+IHRvIGZpbmlzaD8KCj4gTWl0Y2ggQWxzdXAgaGFkIHRvIHdyaXRlIHR3bwo+IGFkZGl0aW9uYWwg
+Y2hhcHRlcnMsIGFzIGFuIGFkZGVuZHVtIHRvIEphbWVzIFRob3JudG9uJ3MgYm9vaywgIkRlc2ln
+bgo+IG9mIGEgQ29tcHV0ZXIiLCBpbiBvcmRlciB0byBjb3JyZWN0IFBhdHRlcnNvbidzIG1pc2lu
+Zm9ybWF0aW9uLgoKRG8geW91IGhhdmUgYSBsaW5rIHRvIHRoZSBhZGRlbmR1bT8gSSBoYXZlIGEg
+cGRmIG9mIHRoZSBib29rLCBidXQgaXQKZG9lc24ndCBzZWVtIHRvIGhhdmUgdGhlIGFkZGVuZHVt
+LgoKCgpPbiBGcmksIE1heSAxNSwgMjAyMCBhdCAyOjU0IFBNIEx1a2UgS2VubmV0aCBDYXNzb24g
+TGVpZ2h0b24KPGxrY2xAbGtjbC5uZXQ+IHdyb3RlOgo+Cj4gT24gRnJpLCBNYXkgMTUsIDIwMjAg
+YXQgOTo1MCBQTSBKZXJlbXkgU2luZ2hlciA8dGhlanNpbmdoZXJAZ21haWwuY29tPiB3cm90ZToK
+PiA+Cj4gPiA+IGEgdGVlbnkgdGlueSBiaXQgb3ZlciB3aGF0IHdlIGluaXRpYWxseSBwbGFubmVk
+LCB0aGVuIDopCj4gPgo+ID4gVGhhbmtzIEx1a2UsIHRoZXNlIG51bWJlcnMgYXJlIGNsb3NlciB0
+byB3aGF0IHNlZW1zIHJlYXNvbmFibGUgdG8gbWUuCj4gPiBBIHNpbXBsZSBzdXBlcnNjYWxhciBj
+b3JlIHdpdGggMiBGUFUgZnVuY3Rpb25hbCB1bml0cyBzaG91bGQgYmUgYWJsZQo+ID4gdG8gYWNo
+aWV2ZSA0IEdGTE9QUywgc28gYSB2ZWN0b3IgdW5pdCB3b3VsZCBuZWVkIHRvIGdvIGhpZ2hlciB0
+aGFuCj4gPiB0aGF0IHRvIGJlIHdvcnRoIHRoZSBleHRyYSBzaWxpY29uLgo+Cj4gdGhlIGhhcmR3
+YXJlIHJlcXVpcmVtZW50cyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBzb2Z0d2FyZSBvbmVzLiAgd2UK
+PiBkZWNpZGVkIHRob3VnaCB0byBkbyBhIGh5YnJpZCBkZXNpZ24gcmF0aGVyIHRoYW4gYSBzZXBh
+cmF0ZSBDUFUKPiBzZXBhcmF0ZSBHUFUgYXBwcm9hY2guLi4gYmVjYXVzZS4uLiB3ZWxsLi4uIHVt
+Li4uIHRoYXQncy4uLi4gdHdvLi4uCj4gcHJvY2Vzc29ycyA6KQo+Cj4gaHlicmlkIGRlc2lnbnMg
+YXJlIGV4dHJlbWVseSB1bnVzdWFsLiAgdGhlcmUncyBvbmx5IDIgdGhhdCBpIGhhdmUKPiBoZWFy
+ZCBvZjogdGhlIElDdWJlQ29ycCBJQzMxMjgsIGFuZCB0aGUgQnJvYWRjb20gVmlkZW9Db3JlIElW
+IChiYXNlZAo+IGFyb3VuZCBhbiBBUkMgY29yZSwgQVJDIC0gbm93IGJvdWdodCBieSBTeW5vcHNp
+cyAtIGlzIGtub3duIGZvcgo+IHByb3ZpZGluZyBhIHdlYWx0aCBvZiBTSU1EIGFuZCBvdGhlciAi
+YWRkaXRpb25hbCIgaW5zdHJ1Y3Rpb25zLAo+IHNpbWlsYXIgdG8gaG93IFJJU0MtViBpcyBub3cg
+c2V0IHVwLCBleGNlcHQgY29tcGxldGVseSBzZWNyZXRpdmUgYW5kCj4gdW5kZXIgdGhlIGZ1bGwg
+YW5kIHRvdGFsIHByb3ByaWV0YXJ5IGNvbnRyb2wgb2YgU3lub3BzaXMpLgo+Cj4gaSd2ZSBsb29r
+ZWQgYXQgVmVjdG9yIElTQXMsIGFuZCBTSU1EIElTQXM6IGkgY29uY2x1ZGVkIHRoYXQgdGhlcmUn
+cyBhCj4gYmV0dGVyIHdheSB0byBkbyBhIFZlY3RvciBJU0EsIGtlZXBpbmcgdGhlICpzZW1hbnRp
+Y3MqIG91dGxpbmVkIGluIHRoZQo+IGFydGljbGUgIlNJTUQgQ29uc2lkZXJlZCBIYXJtZnVsIi4K
+Pgo+ID4gPiBieSBvdmVybG9hZGluZyAibXVsdGktaXNzdWUiLiAgYSBoYXJkd2FyZSBmb3ItbG9v
+cCBhdCB0aGUgaW5zdHJ1Y3Rpb24KPiA+ID4gZXhlY3V0aW9uIHBoYXNlIHdpbGwgcHVzaCBtdWx0
+aXBsZSBzZXF1ZW50aWFsIGluc3RydWN0aW9ucyBpbnRvIHRoZQo+ID4gPiBPb08gZW5naW5lIGZy
+b20gYSAqc2luZ2xlKiBpbnN0cnVjdGlvbi4KPiA+Cj4gPiBJIHNlZSwgc28gYSBmb3JtIG9mIG1p
+Y3JvLW9wIGZpc3Npb24sCj4KPiB5ZXMsIGluIGVmZmVjdC4gIHRoaXMgcmVkdWNlcyBJLUNhY2hl
+IHByZXNzdXJlLCB3aGljaCBpbiBhICpoeWJyaWQqCj4gcHJvY2Vzc29yIGlzIGNyaXRpY2FsbHkg
+aW1wb3J0YW50LiAgaW4gYSBzZXBhcmF0ZS1DUFUsc2VwYXJhdGUtR1BVCj4gZGVzaWduIHlvdSBo
+YXZlIHR3byBJLUNhY2hlcywgcnVubmluZyB0d28gc2VwYXJhdGUgZXhlY3V0YWJsZXMsIHlvdQo+
+IGRvbid0IF9naXZlXyBhIGRhbW4uCj4KPiBpbiBhIGh5YnJpZCBwcm9jZXNzb3IsIHdoZXJlIEdQ
+VSBvcGNvZGVzIGFyZSBvZnRlbiA2NC1iaXQgYW5kIGFyZSBtb3JlCj4gdXN1YWxseSAxMjgtYml0
+IChGT1VSIGJhbmtzIG9mIDMyLWJpdCBWTElXIGluc3RydWN0aW9ucyksIGJlY2F1c2Ugb25lCj4g
+NjQtYml0IGluc3RydWN0aW9uIG1heSBiZSBkb2luZyAxNnggRlAgdmVjdG9yIG9wZXJhdGlvbnMg
+d2hvIF9naXZlc18gYQo+IGRhbW4uCj4KPiB1bmZvcnR1bmF0ZWx5LCB3aGVuIHRoZSBJLUNhY2hl
+IGlzIHNoYXJlZCwgd2UgZG8gZ2l2ZSBhIGRhbW4uCj4gdGhlcmVmb3JlIHdlIG5lZWQgdG8gcmVk
+dWNlIHRoZSBpbnN0cnVjdGlvbiBzaXplIGFuZCBjYW1lIHVwIHdpdGgKPiBTaW1wbGVWIChsb29r
+IGl0IHVwKS4KPgo+ID4gZXNzZW50aWFsbHkgeW91IGFyZSBkZWNvZGluZwo+ID4gY29tcGxleCB2
+ZWN0b3IgKG9yICJHUFUiKSBpbnN0cnVjdGlvbnMgaW50byBhIHNlcXVlbnRpYWwgc3RyZWFtIG9m
+Cj4gPiBzaW1wbGUgbWljcm8tb3BzPyBUaGlzIHNlZW1zIGxpa2UgYSBwcmV0dHkgcmVhc29uYWJs
+ZSBkZXNpZ24gcG9pbnQuCj4KPiBtbW0gbm90IHF1aXRlLiAgbG9vayB1cCBTaW1wbGVWLiAgaXQn
+cyBiYXNpY2FsbHkgYSBDcmF5IFZlY3RvciBMb29wCj4gKFZMKSBleGNlcHQgdGhhdCBWTCwgd2hl
+biBzZXQsIGFjdHVhbGx5ICpQQVVTRVMqIHRoZSBQcm9ncmFtIENvdW50ZXIsCj4gYW5kIGlzc3Vl
+cyBNVUxUSVBMRSBpbnN0cnVjdGlvbnMgLSB1c2luZyB0aGUgb25lIGF0IHRoZSBQQyBhcyBhCj4g
+InRlbXBsYXRlIiAtIGJ1dCBpbmNyZW1lbnRpbmcgdGhlIG9wZXJhbmQgcmVnaXN0ZXIgbnVtYmVy
+cwo+IHNlcXVlbnRpYWxseSBvbiBlYWNoIGl0ZXJhdGlvbiBvZiB0aGUgbG9vcCBmcm9tIDAgdG8g
+VkwtMS4KPgo+ID4gPiB0aGUgRElWIHBpcGVsaW5lIHdpbGwgYmUuLi4gOCAobWF5YmUgbW9yZSks
+IE1VTCB3aWxsIGJlIDIsIEFERCAoZXRjLikgd2lsbCBiZSAxLgo+ID4gPiAqIGZldGNoOiAxLgo+
+ID4gPiAqIGRlY29kZTogMS4KPiA+ID4gKiBpc3N1ZSBhbmQgcmVnLXJlYWQ6IDEgKG1pbmltdW0p
+Lgo+ID4gPiAqIGV4ZWN1dGU6IGJldHdlZW4gMSBhbmQgOCAobWF5YmUgbW9yZSkKPiA+ID4gKiB3
+cml0ZTogMSAobWluaW11bSkKPiA+Cj4gPiBTbyB0aGlzIGlzIGp1c3QgZm9yIHRoZSBwcmVsaW1p
+bmFyeSB0YXBlb3V0Pwo+Cj4geWVzLCBpbiAxODBubS4gIHdoaWNoIGNhbiBvbmx5IGFjaGlldmUg
+YSBtYXggb2YgYXJvdW5kIDMwMG1oei4gIGlmIHdlCj4gaGFkIGEgUExMLiAgd2hpY2ggd2UgZG8g
+bm90LiAgYmVjYXVzZSB3ZSBhcmUgbm90IHNpZ25pbmcgRm91bmRyeSBOREFzLgo+IGFuZCB0aGUg
+Rm91bmRyeSB3aWxsIG9ubHkgZ2l2ZSB1cyB0aGUgUExMIGJsb2NrIHRoZXkgbm9ybWFsbHkgaGFu
+ZAo+IG91dC4uLi4gdW5kZXIgTkRBLgo+Cj4gPiBJIHdvdWxkIGV4cGVjdCBhbiBPT08KPiA+IGNv
+cmUgdGFyZ2V0aW5nIDFHSHorIHRvIGhhdmUgbW9yZSBwaXBlbGluZSBzdGFnZXMgdGhhbiB0aGlz
+ICgxMCspLiBUaGUKPiA+IEE3MiwgU2t5bGFrZSwgWmVuLCBhbmQgQk9PTSBhbGwgc2VlbSB0byB0
+YXJnZXQgMTArIHN0YWdlcy4KPgo+IHllcC4gIGFuZCB0aGVzZSBhcmUgYWxsIChleGNlcHQgQk9P
+TSkgVVNEICQxMDAgbWlsbGlvbiBjdXN0b20gc2lsaWNvbiBkZXNpZ25zLgo+Cj4gPiA+IGJhc2lj
+YWxseSB0aGlzIGlzIHdoeSB3ZSdyZSBkb2luZyBPb08gYmVjYXVzZSBjb29yZGluYXRpbmcgYWxs
+IHRoYXQgaW4KPiA+ID4gYW4gaW4tb3JkZXIgc3lzdGVtIHdvdWxkIGJlIGFic29sdXRlIGhlbGwu
+Cj4gPgo+ID4gSSdtIGEgYml0IGNvbmZ1c2VkIG5vdy4gSW4tb3JkZXIgZXhlY3V0aW9uIHdpdGgg
+dmFyaWFibGUtbGF0ZW5jeQo+ID4gZnVuY3Rpb25hbCB1bml0cyBjYW4gYmUgYWNoaWV2ZWQgd2l0
+aCBhIHNjb3JlYm9hcmQsCj4KPiB3aGljaCB3ZSBoYXZlLiAgdXNpbmcgYW4gYXVnbWVudGVkIHZh
+cmlhbnQgb2YgdGhlIDY2MDAsIHRoYW5rcyB0byBNaXRjaCBBbHN1cC4KPiBodHRwczovL2xpYnJl
+LXNvYy5vcmcvM2RfZ3B1L2FyY2hpdGVjdHVyZS82NjAwc2NvcmVib2FyZC8KPgo+ID4gYW5kIHRo
+ZSBwaXBlbGluZQo+ID4gc3RhZ2VzIHlvdSBkZXNjcmliZSByZW1pbmRzIG1lIG9mIGEgaW4tb3Jk
+ZXIgY29yZSB3aXRoIE9PTyB3cml0ZS1iYWNrLgo+Cj4gcGlwZWxpbmVzIGNhbiBzdGlsbCBiZSB1
+c2VkIGJlaGluZCBGdW5jdGlvbiBVbml0ICJmcm9udC1lbmRzIi4gIE1pdGNoIEFsc3VwCj4gZGVz
+Y3JpYmVzIHRoZW0gYXMgIkNvbmN1cnJlbnQgQ29tcHV0YXRpb24gVW5pdHMiLiAgYmFzaWNhbGx5
+IGlmIHRoZSBwaXBlbGluZQo+IGlzIE4gZGVlcCwgeW91IHB1dCBOLW9yLWdyZWF0ZXIgRnVuY3Rp
+b24gVW5pdCAiUmVzZXJ2YXRpb24tU3RhdGlvbiIgc3R5bGUKPiBvcGVyYW5kIGxhdGNoZXMgb24g
+dGhlIGZyb250LCB0aGF0IGdpdmVzIHlvdSB0aGUgYWJpbGl0eSB0byB0cmFjayB0aGUgcGlwZWxp
+bmUKPiByZXN1bHRzLCBtYXRjaCB0aGVtICpiYWNrKiB1cCB3aXRoIHRoZSBGVSBpbmRleCwgYW5k
+IHZvaWxhLCB5b3UgaGF2ZQo+IHR1cm5lZCB3aGF0IGlzIG90aGVyd2lzZSBjb25zaWRlcmVkIHRo
+ZSBleGNsdXNpdmUgZG9tYWluIG9mICJpbi1vcmRlciBwaXBlbGluZSIKPiB0ZXJtaW5vbG9neSBp
+bnRvIHNvbWV0aGluZyB0aGF0IGZpdHMgaW50byBPb08uCj4KPiA+IElzIHRoaXMgd2hhdCB5b3Ug
+YXJlIGRvaW5nPwo+Cj4gbm8uCj4KPiA+IE9yIGFyZSB5b3UgcHVyc3VpbmcgdHJ1ZSBPT08gZXhl
+Y3V0aW9uCj4KPiB5ZXMuCj4KPiA+IHdpdGggcmVnaXN0ZXItcmVuYW1pbmc/Cj4KPiBubyAvIG1p
+c2xlYWRpbmcgcXVlc3Rpb24uCj4KPiB3ZSBhcmUgdXNpbmcgdGhlIDY2MDAgZGVzaWduLCBmcm9t
+IDE5NjUuICB0aGlzIGhhcyAiaW1wbGljaXQiCj4gcmVnaXN0ZXItcmVuYW1pbmcgYXV0b21hdGlj
+YWxseSBidWlsdC1pbiB0byB0aGUgZGVzaWduLiAgdGhlc2UgYXJlIHRoZQo+IEZ1bmN0aW9uIFVu
+aXQgb3BlcmFuZCBsYXRjaGVzLiAgdGhleSBhcmUgYmVzdCB0ZXJtZWQgIm5hbWVsZXNzCj4gcmVn
+aXN0ZXJzIiByYXRoZXIgdGhhbiAicmVnaXN0ZXItcmVuYW1pbmciLgo+Cj4gaWYgeW91IGFyZSBm
+YW1pbGlhciB3aXRoIHRoZSBUb21hc3VsbyBBbGdvcml0aG06IGlmIHlvdSBtYWtlIHRoZQo+IG51
+bWJlciBvZiBSZXNlcnZhdGlvbiBTdGF0aW9uIFJvd3MgZXF1YWwgdG8gMSwgdGhlbiB0aGUgUlMg
+bGF0Y2hlcyBhcmUKPiBkaXJlY3RseSBlcXVhbCBhbmQgZXF1aXZhbGVudCB0byBGdW5jdGlvbiBV
+bml0IG9wZXJhbmQgbGF0Y2hlcywgYW5kCj4gYm90aCBhcmUgaW4gZWZmZWN0ICJyZWdpc3RlciBy
+ZW5hbWluZyIuLi4gb25seSB0aGUgYmV0dGVyIHRlcm1pbm9sb2d5Cj4gaXMgIm5hbWVsZXNzIHJl
+Z2lzdGVycyIgb3IgImluLWZsaWdodCByZWdpc3RlcnMgLyByZXN1bHRzIi4KPgo+IGlmIHlvdSBo
+YXZlIHJlYWQgaGlzIGJvb2sgYW5kIGNvbnNpZGVyIGl0IHRvIGJlIHRoZSBsYXN0IHdvcmQgb24K
+PiBzY29yZWJvYXJkcywgUGF0dGVyc29uIGhhcyBjb21wbGV0ZWx5IGFuZCB1dHRlcmx5IG1pc2lu
+Zm9ybWVkIHRoZQo+IGdlbmVyYWwgcHVibGljIGFuZCB0aGUgYWNhZGVtaWMgY29tbXVuaXR5IHdp
+dGggaGlzIGJvb2ssIHJlZ2FyZGluZyB0aGUKPiA2NjAwIGFuZCBzY29yZWJvYXJkcyBpbiBnZW5l
+cmFsLiAgTWl0Y2ggQWxzdXAgaGFkIHRvIHdyaXRlIHR3bwo+IGFkZGl0aW9uYWwgY2hhcHRlcnMs
+IGFzIGFuIGFkZGVuZHVtIHRvIEphbWVzIFRob3JudG9uJ3MgYm9vaywgIkRlc2lnbgo+IG9mIGEg
+Q29tcHV0ZXIiLCBpbiBvcmRlciB0byBjb3JyZWN0IFBhdHRlcnNvbidzIG1pc2luZm9ybWF0aW9u
+Lgo+Cj4gPiA+IGl0J3MgZG93biB1bHRpbWF0ZWx5IHRvIGhvdyB3aWRlIHRoZSByZWdpc3RlciBw
+YXRocyBhcmUsIGJldHdlZW4gdGhlCj4gPiA+IFJlZ2ZpbGUgYW5kIHRoZSBGdW5jdGlvbiBVbml0
+cy4gIGlmIHdlIGhhdmUgbXVsdGlwbGUgUmVnaXN0ZXIgRGF0YQo+ID4gPiBCdXNlcywgYW5kIGNh
+biBpbXBsZW1lbnQgdGhlIG11bHRpLWlzc3VlIHBhcnQgaW4gdGltZSwgaXQnbGwgYmUgY29kZWQK
+PiA+ID4gaW4gYSBnZW5lcmFsLXB1cnBvc2UgZW5vdWdoIHdheSB0aGF0IHdlIGNvdWxkIGNvbnNp
+ZGVyIDQtaXNzdWUuCj4gPiA+IGhvd2V2ZXIuLi4gd2l0aG91dCB0aGUgcmVnaXN0ZXIgZGF0YSBw
+YXRocywgdGhlcmUncyBubyBwb2ludC4KPgo+ID4KPiA+IEZhaXIgZW5vdWdoLiBCYWxhbmNpbmcg
+dGhlIHRocm91Z2hwdXQgb2YgYWxsIHRoZSBjb21wb25lbnRzIGluIGEgT09PCj4gPiBjb3JlIGlz
+IHRyaWNreSwgYW5kIHJlZ2lzdGVyIHJlYWQgY2FuIGNlcnRhaW5seSBiZSBhIGJvdHRsZW5lY2su
+Cj4KPiB5ZXMuICBzZWUgaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZy9jb21wLmFyY2gv
+cWVNc0U3VXh2bEkvQW13c29tRG9BUUFKCj4gaSBjYW4ndCBmaW5kIHRoZSBkaWFncmFtIGkgZHJl
+dyBhdCB0aGUgbW9tZW50Li4uIHJlZ2ZpbGUgaSB0aGluay4uLgo+IGFoIHllcyBoZXJlIHlvdSBn
+bzoKPiBodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfZ3B1L2FyY2hpdGVjdHVyZS9yZWdmaWxlLwo+
+Cj4gdGhhdCdzIGEgZ2xvYmFsIGN5Y2xpYyBidWZmZXIgYXQgdGhlIHJlZ2ZpbGUgKGFjdHMgYXMg
+YW4gT3BlcmFuZAo+IEZvcndhcmRpbmcgQnVzKSBhbmQKPiAqbG9jYWwqIGN5Y2xpYyBidWZmZXJz
+IGF0IHRoZSBGdW5jdGlvbiBVbml0cy4KPgo+ID4gPiBXZSBoYWQgc29tZSB1bmZvcnR1bmF0ZSBy
+dW4taW5zIHdpdGggQmVya2VsZXkgYW5kIFJJU0NWIC0gYW5kIHdlIGRlY2lkZWQgdG8gZ28gd2l0
+aCBQT1dFUiBiZWNhdXNlIHdlIGhhdmUgYWNjZXNzIHRvIHNvbWUgaW1wb3J0YW50IHJlbGF0aW9u
+cyBhdCBJQk0KPiA+Cj4gPiBIYXZlIHlvdSBsb29rZWQgYXQgdGhlIG9wZW4gUklTQy1WIG1pY3Jv
+LWFyY2hpdGVjdHVyZXMgdGhvdWdoPwo+Cj4geWVzLiAgdGhleSBhcmUgbm93aGVyZSBuZWFyIHRo
+ZSBsZXZlbCBvZiBjb21wcmVoZW5zaXZlbmVzcyBuZWVkZWQuCj4gcGx1cywgaXQgd291bGQgYmUg
+aW5jcmVkaWJseSBpcnJlc3BvbnNpYmxlIG9mIHVzIHRvIGJyaW5nIHRvIG1hcmtldCBhCj4gMTAw
+IG1pbGxpb24gYW5kIGFib3ZlICpsaWJyZSogZGVzaWduIHdoZXJlIHRoZSBtb2RpZmljYXRpb25z
+IHRvIHRoZQo+IGNvbXBpbGVyLCB0b29sY2hhaW4sIGV2ZXJ5dGhpbmcsIGFsbCBuZWVkZWQgdG8g
+YmUgdXBzdHJlYW0uCj4KPgo+ID4gRXZlbiBpZgo+ID4gdGhpcyBjb3JlIHJ1bnMgUE9XRVIsIGl0
+IHNob3VsZCBiZSBub3QgdG9vIGRpZmZpY3VsdCB0byBwb3J0IGRlc2lnbgo+ID4gaWRlYXMgZnJv
+bSBleGlzdGluZyBjb3JlcywgdG8gYXZvaWQgcmVpbnZlbnRpbmcgdGhlIHdoZWVsIGV2ZXJ5d2hl
+cmUuCj4KPiBiZWNhdXNlIG9mIHRoZSB3YXkgdGhhdCBTaW1wbGVWIHdvcmtzLCBhbmQgYmVjYXVz
+ZSB3ZSBuZWVkIHRvCj4gZHJhc3RpY2FsbHkgZXh0ZW5kIHRoZSB0YXJnZXQgSVNBIChQT1dFUjkp
+IHdpdGggb3Bjb2RlcyB0aGF0IGFyZQo+IGV2ZXJ5ZGF5IGNvbW1vbi11c2FnZSBpbiBHUFVzIChU
+ZXh0dXJlIE9wcywgU0lOLCBDT1MsIFJHQjJZVVYpLCB3aGlsc3QKPiBvbiB0aGUgZmFjZSBvZiBp
+dCB0aGUgaWRlYSBzb3VuZHMgInBlcmZlY3RseSByZWFzb25hYmxlIiwgdGhlIGNoYW5nZXMKPiBy
+ZXF1aXJlZCBhcmUgc28gZnVuZGFtZW50YWwgdGhhdCBzdGFydGluZyBmcm9tIHNvbWVvbmUgZWxz
+ZSdzIGRlc2lnbgo+IHdvdWxkIHByb2R1Y2UgbWFzc2l2ZSBiYXJyaWVycy4KPgo+IGV4YW1wbGU6
+IHdlIGhhdmUgY3JlYXRlZCBQYXJ0aXRpb25lZFNpZ25hbCAtIGEgY2xhc3MgdGhhdCBub3QganVz
+dAo+ICJwZXJmb3JtcyBhZGQgb3BlcmF0aW9ucyIsIGl0IHRha2VzIGFuICphZGRpdGlvbmFsKiAo
+ZHluYW1pYykKPiBzaWRlLWFyZ3VtZW50IC0gYSBtYXNrIC0gd2hpY2ggKmR5bmFtaWNhbGx5KiBw
+YXJ0aXRpb25zIHdoYXQgd291bGQKPiBvdGhlcndpc2UgYmUgYSA2NC1iaXQgb3BlcmF0aW9uIGlu
+dG8gKmFueSogY29tYmluYXRpb24gb2YgOCwgMTYsIDI0LAo+IDMyLCA0MCwgNDggYW5kIDU2IGJp
+dCBvcGVyYXRpb25zLgo+Cj4gdGhpcyBjbGFzcywgYmVjYXVzZSB3ZSBhcmUgdXNpbmcgcHl0aG9u
+LCBjYW4gYmUgaGFuZGVkIGluIGFzIGEga2xzIGluCj4gYW4gT2JqZWN0LU9yaWVudGF0ZWQgZmFz
+aGlvbiwgdG8gKnJlcGxhY2UqIG5taWdlbiBTaWduYWwsIGFuZCB0aHVzIHdlCj4gbWF5IGNvbnN0
+cnVjdCBjb2RlIHRoYXQgb24gdGhlIGZpcnN0IHVzYWdlIGlzIGEgc2ltcGxlIHBpcGVsaW5lLAo+
+IGhvd2V2ZXIgd2UgbWF5IHRoZW4gY29udmVydCB0aGF0IEVYQUNUIFNBTUUgQ09ERSBpbnRvIGEg
+ZHluYW1pYyBTSU1ECj4gdmFyaWFudCBwdXJlbHkgd2l0aCBhIG9uZS1saW5lIGNoYW5nZS4KPgo+
+IHRoZXNlIGtpbmRzIG9mIHRlY2huaXF1ZXMgYXJlIG5vcm1hbGx5IHRoZSBleGNsdXNpdmUgZG9t
+YWluIG9mCj4gZXhwZXJpZW5jZWQgU29mdHdhcmUgRW5naW5lZXJpbmcgdGVhbXMuICBmb3IgYSAq
+aGFyZHdhcmUqIHRlYW0gdG8KPiBkZXBsb3kgdGhlbT8gIHRoaXMgaXMgdW5oZWFyZC1vZiwgYW5k
+IGlmIGF0dGVtcHRlZCB3aXRoIGV2ZW4gQ2hpc2VsMyAvCj4gU2NhbGEsIHdvdWxkIGhhdmUgdGhl
+IHRlYW0gcnVubmluZyBhd2F5IHNjcmVhbWluZyB3aXRoaW4gYWJvdXQgNgo+IG1vbnRocy4gIGEg
+dGVhbSB0aGF0IHdhcyBhc2tlZCB0byBkbyB0aGF0IGluIHZlcmlsb2cgb3IgVkhETCB3b3VsZAo+
+IGZsYXQtb3V0IHNheSAibm8iLiAgb3IgYXNrIGZvciA1MCBleHRyYSBlbmdpbmVlcnMuICB3aGlj
+aCwgZm9yIElCTSBvcgo+IEludGVsIG9yIEFSTSBpcyBub3QgdW5yZWFzb25hYmxlLCBidXQgZm9y
+IHVzIGl0IGlzIG5vdC4KPgo+IGhlbmNlIHdlIHN0YXJ0ZWQgZnJvbSBzY3JhdGNoLCBpbiBvcmRl
+ciB0byBiZSBhYmxlIHRvIGRlcGxveSB0aGVzZQo+IGtpbmRzIG9mIFNvZnR3YXJlIEVuZ2luZWVy
+aW5nIHRlY2huaXF1ZXMuCj4KPiBsLgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX18KPiBsaWJyZS1yaXNjdi1kZXYgbWFpbGluZyBsaXN0Cj4gbGlicmUt
+cmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwo+IGh0dHA6Ly9saXN0cy5saWJyZS1yaXNj
+di5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1kZXYKCl9fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRldiBtYWlsaW5nIGxp
+c3QKbGlicmUtcmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRwOi8vbGlzdHMubGli
+cmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2Cg==
+