[libre-riscv-dev] microwatt IEE754FP
[libre-riscv-dev.git] / 9c / f279aa28c3c4efac8571d629d8175ca1d51861
1 Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
2 Envelope-to: publicinbox@libre-riscv.org
3 Delivery-date: Fri, 15 May 2020 22:53:57 +0100
4 Received: from localhost ([::1] helo=libre-riscv.org)
5 by libre-soc.org with esmtp (Exim 4.89)
6 (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
7 id 1jZiHF-0002k5-A5; Fri, 15 May 2020 22:53:57 +0100
8 Received: from lkcl.net ([217.147.94.29])
9 by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
10 (Exim 4.89) (envelope-from <lkcl@lkcl.net>) id 1jZiHE-0002jz-1J
11 for libre-riscv-dev@lists.libre-riscv.org; Fri, 15 May 2020 22:53:56 +0100
12 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lkcl.net;
13 s=201607131;
14 h=Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version;
15 bh=vXnit6iradj01tuO3tlw+cxMdPkXpgBhMWBP+B9OAns=;
16 b=SfQ7woFRFH73T7e5KtJQw86loKFCjc22pnQsg2GpyASVzScyyOhNWRnj0JSffc7Ukf1AXwS+++jmfGCyUfNbA8oTKWeY/0FX6eDekRMozx60XarE4hSbfUPPjCXPqbxe+wFLDBtk+I+sWV1xYHiRcR/8eE4YQGpr6owKKYFHQRU=;
17 Received: from mail-lf1-f43.google.com ([209.85.167.43])
18 by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
19 (Exim 4.84_2) (envelope-from <lkcl@lkcl.net>) id 1jZiHD-0004yd-FK
20 for libre-riscv-dev@lists.libre-riscv.org; Fri, 15 May 2020 21:53:55 +0000
21 Received: by mail-lf1-f43.google.com with SMTP id x22so143753lfd.4
22 for <libre-riscv-dev@lists.libre-riscv.org>;
23 Fri, 15 May 2020 14:53:40 -0700 (PDT)
24 X-Gm-Message-State: AOAM531gZaiF9WRGmijAIkpiFQKZTmbbscqPUN6XTJz3vlNlSeD1poDk
25 Jry4ytxYM41V/7uAo06xlMFuhxS8rW0wYrsW0+0=
26 X-Google-Smtp-Source: ABdhPJw0T5s2LimwEAd5wbPwkzGKM+RSEjS2H0MCK/utsZKTh3z539a9wthA+M0xbaPgAQwUvsuqYcthpYU8irYITlU=
27 X-Received: by 2002:ac2:4da1:: with SMTP id h1mr3660958lfe.152.1589579614266;
28 Fri, 15 May 2020 14:53:34 -0700 (PDT)
29 MIME-Version: 1.0
30 References: <CAEoCstQz36UuDJ+ZUgLRJNeQkA=pTfYuzCr+XgF-FJY9+yJsvA@mail.gmail.com>
31 <747F8870-06C6-46A0-AFD9-D55289D4C41A@gatech.edu>
32 <CAEoCstRUXkB_LxXXubx4A0dhLGvFqq6EPL+GzukDQORpHopaiw@mail.gmail.com>
33 <4BDA96A5-9063-42A6-9548-CAE3CBEBEBAC@gatech.edu>
34 <CAPweEDyZQEBsh8uZ4VkzzALPcoiTgs0AvTmTwS6B0Dc+jy+mfw@mail.gmail.com>
35 <CAEoCstTERH=Z84je148ffL7_yiBYFj_Zet2VfOzkbe86MVmyQQ@mail.gmail.com>
36 In-Reply-To: <CAEoCstTERH=Z84je148ffL7_yiBYFj_Zet2VfOzkbe86MVmyQQ@mail.gmail.com>
37 From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
38 Date: Fri, 15 May 2020 22:53:21 +0100
39 X-Gmail-Original-Message-ID: <CAPweEDyHrrQqPaNy7OqCsPUgR0yrELuRENqZTw_qr-tBVHVg+g@mail.gmail.com>
40 Message-ID: <CAPweEDyHrrQqPaNy7OqCsPUgR0yrELuRENqZTw_qr-tBVHVg+g@mail.gmail.com>
41 To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
42 Subject: Re: [libre-riscv-dev] Introduction and Questions
43 X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
44 X-Mailman-Version: 2.1.23
45 Precedence: list
46 List-Id: Libre-RISCV General Development
47 <libre-riscv-dev.lists.libre-riscv.org>
48 List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
49 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
50 List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
51 List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
52 List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
53 List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
54 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
55 Reply-To: Libre-RISCV General Development
56 <libre-riscv-dev@lists.libre-riscv.org>
57 Content-Type: text/plain; charset="utf-8"
58 Content-Transfer-Encoding: base64
59 Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
60 Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
61
62 T24gRnJpLCBNYXkgMTUsIDIwMjAgYXQgOTo1MCBQTSBKZXJlbXkgU2luZ2hlciA8dGhlanNpbmdo
63 ZXJAZ21haWwuY29tPiB3cm90ZToKPgo+ID4gYSB0ZWVueSB0aW55IGJpdCBvdmVyIHdoYXQgd2Ug
64 aW5pdGlhbGx5IHBsYW5uZWQsIHRoZW4gOikKPgo+IFRoYW5rcyBMdWtlLCB0aGVzZSBudW1iZXJz
65 IGFyZSBjbG9zZXIgdG8gd2hhdCBzZWVtcyByZWFzb25hYmxlIHRvIG1lLgo+IEEgc2ltcGxlIHN1
66 cGVyc2NhbGFyIGNvcmUgd2l0aCAyIEZQVSBmdW5jdGlvbmFsIHVuaXRzIHNob3VsZCBiZSBhYmxl
67 Cj4gdG8gYWNoaWV2ZSA0IEdGTE9QUywgc28gYSB2ZWN0b3IgdW5pdCB3b3VsZCBuZWVkIHRvIGdv
68 IGhpZ2hlciB0aGFuCj4gdGhhdCB0byBiZSB3b3J0aCB0aGUgZXh0cmEgc2lsaWNvbi4KCnRoZSBo
69 YXJkd2FyZSByZXF1aXJlbWVudHMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgc29mdHdhcmUgb25lcy4g
70 IHdlCmRlY2lkZWQgdGhvdWdoIHRvIGRvIGEgaHlicmlkIGRlc2lnbiByYXRoZXIgdGhhbiBhIHNl
71 cGFyYXRlIENQVQpzZXBhcmF0ZSBHUFUgYXBwcm9hY2guLi4gYmVjYXVzZS4uLiB3ZWxsLi4uIHVt
72 Li4uIHRoYXQncy4uLi4gdHdvLi4uCnByb2Nlc3NvcnMgOikKCmh5YnJpZCBkZXNpZ25zIGFyZSBl
73 eHRyZW1lbHkgdW51c3VhbC4gIHRoZXJlJ3Mgb25seSAyIHRoYXQgaSBoYXZlCmhlYXJkIG9mOiB0
74 aGUgSUN1YmVDb3JwIElDMzEyOCwgYW5kIHRoZSBCcm9hZGNvbSBWaWRlb0NvcmUgSVYgKGJhc2Vk
75 CmFyb3VuZCBhbiBBUkMgY29yZSwgQVJDIC0gbm93IGJvdWdodCBieSBTeW5vcHNpcyAtIGlzIGtu
76 b3duIGZvcgpwcm92aWRpbmcgYSB3ZWFsdGggb2YgU0lNRCBhbmQgb3RoZXIgImFkZGl0aW9uYWwi
77 IGluc3RydWN0aW9ucywKc2ltaWxhciB0byBob3cgUklTQy1WIGlzIG5vdyBzZXQgdXAsIGV4Y2Vw
78 dCBjb21wbGV0ZWx5IHNlY3JldGl2ZSBhbmQKdW5kZXIgdGhlIGZ1bGwgYW5kIHRvdGFsIHByb3By
79 aWV0YXJ5IGNvbnRyb2wgb2YgU3lub3BzaXMpLgoKaSd2ZSBsb29rZWQgYXQgVmVjdG9yIElTQXMs
80 IGFuZCBTSU1EIElTQXM6IGkgY29uY2x1ZGVkIHRoYXQgdGhlcmUncyBhCmJldHRlciB3YXkgdG8g
81 ZG8gYSBWZWN0b3IgSVNBLCBrZWVwaW5nIHRoZSAqc2VtYW50aWNzKiBvdXRsaW5lZCBpbiB0aGUK
82 YXJ0aWNsZSAiU0lNRCBDb25zaWRlcmVkIEhhcm1mdWwiLgoKPiA+IGJ5IG92ZXJsb2FkaW5nICJt
83 dWx0aS1pc3N1ZSIuICBhIGhhcmR3YXJlIGZvci1sb29wIGF0IHRoZSBpbnN0cnVjdGlvbgo+ID4g
84 ZXhlY3V0aW9uIHBoYXNlIHdpbGwgcHVzaCBtdWx0aXBsZSBzZXF1ZW50aWFsIGluc3RydWN0aW9u
85 cyBpbnRvIHRoZQo+ID4gT29PIGVuZ2luZSBmcm9tIGEgKnNpbmdsZSogaW5zdHJ1Y3Rpb24uCj4K
86 PiBJIHNlZSwgc28gYSBmb3JtIG9mIG1pY3JvLW9wIGZpc3Npb24sCgp5ZXMsIGluIGVmZmVjdC4g
87 IHRoaXMgcmVkdWNlcyBJLUNhY2hlIHByZXNzdXJlLCB3aGljaCBpbiBhICpoeWJyaWQqCnByb2Nl
88 c3NvciBpcyBjcml0aWNhbGx5IGltcG9ydGFudC4gIGluIGEgc2VwYXJhdGUtQ1BVLHNlcGFyYXRl
89 LUdQVQpkZXNpZ24geW91IGhhdmUgdHdvIEktQ2FjaGVzLCBydW5uaW5nIHR3byBzZXBhcmF0ZSBl
90 eGVjdXRhYmxlcywgeW91CmRvbid0IF9naXZlXyBhIGRhbW4uCgppbiBhIGh5YnJpZCBwcm9jZXNz
91 b3IsIHdoZXJlIEdQVSBvcGNvZGVzIGFyZSBvZnRlbiA2NC1iaXQgYW5kIGFyZSBtb3JlCnVzdWFs
92 bHkgMTI4LWJpdCAoRk9VUiBiYW5rcyBvZiAzMi1iaXQgVkxJVyBpbnN0cnVjdGlvbnMpLCBiZWNh
93 dXNlIG9uZQo2NC1iaXQgaW5zdHJ1Y3Rpb24gbWF5IGJlIGRvaW5nIDE2eCBGUCB2ZWN0b3Igb3Bl
94 cmF0aW9ucyB3aG8gX2dpdmVzXyBhCmRhbW4uCgp1bmZvcnR1bmF0ZWx5LCB3aGVuIHRoZSBJLUNh
95 Y2hlIGlzIHNoYXJlZCwgd2UgZG8gZ2l2ZSBhIGRhbW4uCnRoZXJlZm9yZSB3ZSBuZWVkIHRvIHJl
96 ZHVjZSB0aGUgaW5zdHJ1Y3Rpb24gc2l6ZSBhbmQgY2FtZSB1cCB3aXRoClNpbXBsZVYgKGxvb2sg
97 aXQgdXApLgoKPiBlc3NlbnRpYWxseSB5b3UgYXJlIGRlY29kaW5nCj4gY29tcGxleCB2ZWN0b3Ig
98 KG9yICJHUFUiKSBpbnN0cnVjdGlvbnMgaW50byBhIHNlcXVlbnRpYWwgc3RyZWFtIG9mCj4gc2lt
99 cGxlIG1pY3JvLW9wcz8gVGhpcyBzZWVtcyBsaWtlIGEgcHJldHR5IHJlYXNvbmFibGUgZGVzaWdu
100 IHBvaW50LgoKbW1tIG5vdCBxdWl0ZS4gIGxvb2sgdXAgU2ltcGxlVi4gIGl0J3MgYmFzaWNhbGx5
101 IGEgQ3JheSBWZWN0b3IgTG9vcAooVkwpIGV4Y2VwdCB0aGF0IFZMLCB3aGVuIHNldCwgYWN0dWFs
102 bHkgKlBBVVNFUyogdGhlIFByb2dyYW0gQ291bnRlciwKYW5kIGlzc3VlcyBNVUxUSVBMRSBpbnN0
103 cnVjdGlvbnMgLSB1c2luZyB0aGUgb25lIGF0IHRoZSBQQyBhcyBhCiJ0ZW1wbGF0ZSIgLSBidXQg
104 aW5jcmVtZW50aW5nIHRoZSBvcGVyYW5kIHJlZ2lzdGVyIG51bWJlcnMKc2VxdWVudGlhbGx5IG9u
105 IGVhY2ggaXRlcmF0aW9uIG9mIHRoZSBsb29wIGZyb20gMCB0byBWTC0xLgoKPiA+IHRoZSBESVYg
106 cGlwZWxpbmUgd2lsbCBiZS4uLiA4IChtYXliZSBtb3JlKSwgTVVMIHdpbGwgYmUgMiwgQUREIChl
107 dGMuKSB3aWxsIGJlIDEuCj4gPiAqIGZldGNoOiAxLgo+ID4gKiBkZWNvZGU6IDEuCj4gPiAqIGlz
108 c3VlIGFuZCByZWctcmVhZDogMSAobWluaW11bSkuCj4gPiAqIGV4ZWN1dGU6IGJldHdlZW4gMSBh
109 bmQgOCAobWF5YmUgbW9yZSkKPiA+ICogd3JpdGU6IDEgKG1pbmltdW0pCj4KPiBTbyB0aGlzIGlz
110 IGp1c3QgZm9yIHRoZSBwcmVsaW1pbmFyeSB0YXBlb3V0PwoKeWVzLCBpbiAxODBubS4gIHdoaWNo
111 IGNhbiBvbmx5IGFjaGlldmUgYSBtYXggb2YgYXJvdW5kIDMwMG1oei4gIGlmIHdlCmhhZCBhIFBM
112 TC4gIHdoaWNoIHdlIGRvIG5vdC4gIGJlY2F1c2Ugd2UgYXJlIG5vdCBzaWduaW5nIEZvdW5kcnkg
113 TkRBcy4KYW5kIHRoZSBGb3VuZHJ5IHdpbGwgb25seSBnaXZlIHVzIHRoZSBQTEwgYmxvY2sgdGhl
114 eSBub3JtYWxseSBoYW5kCm91dC4uLi4gdW5kZXIgTkRBLgoKPiBJIHdvdWxkIGV4cGVjdCBhbiBP
115 T08KPiBjb3JlIHRhcmdldGluZyAxR0h6KyB0byBoYXZlIG1vcmUgcGlwZWxpbmUgc3RhZ2VzIHRo
116 YW4gdGhpcyAoMTArKS4gVGhlCj4gQTcyLCBTa3lsYWtlLCBaZW4sIGFuZCBCT09NIGFsbCBzZWVt
117 IHRvIHRhcmdldCAxMCsgc3RhZ2VzLgoKeWVwLiAgYW5kIHRoZXNlIGFyZSBhbGwgKGV4Y2VwdCBC
118 T09NKSBVU0QgJDEwMCBtaWxsaW9uIGN1c3RvbSBzaWxpY29uIGRlc2lnbnMuCgo+ID4gYmFzaWNh
119 bGx5IHRoaXMgaXMgd2h5IHdlJ3JlIGRvaW5nIE9vTyBiZWNhdXNlIGNvb3JkaW5hdGluZyBhbGwg
120 dGhhdCBpbgo+ID4gYW4gaW4tb3JkZXIgc3lzdGVtIHdvdWxkIGJlIGFic29sdXRlIGhlbGwuCj4K
121 PiBJJ20gYSBiaXQgY29uZnVzZWQgbm93LiBJbi1vcmRlciBleGVjdXRpb24gd2l0aCB2YXJpYWJs
122 ZS1sYXRlbmN5Cj4gZnVuY3Rpb25hbCB1bml0cyBjYW4gYmUgYWNoaWV2ZWQgd2l0aCBhIHNjb3Jl
123 Ym9hcmQsCgp3aGljaCB3ZSBoYXZlLiAgdXNpbmcgYW4gYXVnbWVudGVkIHZhcmlhbnQgb2YgdGhl
124 IDY2MDAsIHRoYW5rcyB0byBNaXRjaCBBbHN1cC4KaHR0cHM6Ly9saWJyZS1zb2Mub3JnLzNkX2dw
125 dS9hcmNoaXRlY3R1cmUvNjYwMHNjb3JlYm9hcmQvCgo+IGFuZCB0aGUgcGlwZWxpbmUKPiBzdGFn
126 ZXMgeW91IGRlc2NyaWJlIHJlbWluZHMgbWUgb2YgYSBpbi1vcmRlciBjb3JlIHdpdGggT09PIHdy
127 aXRlLWJhY2suCgpwaXBlbGluZXMgY2FuIHN0aWxsIGJlIHVzZWQgYmVoaW5kIEZ1bmN0aW9uIFVu
128 aXQgImZyb250LWVuZHMiLiAgTWl0Y2ggQWxzdXAKZGVzY3JpYmVzIHRoZW0gYXMgIkNvbmN1cnJl
129 bnQgQ29tcHV0YXRpb24gVW5pdHMiLiAgYmFzaWNhbGx5IGlmIHRoZSBwaXBlbGluZQppcyBOIGRl
130 ZXAsIHlvdSBwdXQgTi1vci1ncmVhdGVyIEZ1bmN0aW9uIFVuaXQgIlJlc2VydmF0aW9uLVN0YXRp
131 b24iIHN0eWxlCm9wZXJhbmQgbGF0Y2hlcyBvbiB0aGUgZnJvbnQsIHRoYXQgZ2l2ZXMgeW91IHRo
132 ZSBhYmlsaXR5IHRvIHRyYWNrIHRoZSBwaXBlbGluZQpyZXN1bHRzLCBtYXRjaCB0aGVtICpiYWNr
133 KiB1cCB3aXRoIHRoZSBGVSBpbmRleCwgYW5kIHZvaWxhLCB5b3UgaGF2ZQp0dXJuZWQgd2hhdCBp
134 cyBvdGhlcndpc2UgY29uc2lkZXJlZCB0aGUgZXhjbHVzaXZlIGRvbWFpbiBvZiAiaW4tb3JkZXIg
135 cGlwZWxpbmUiCnRlcm1pbm9sb2d5IGludG8gc29tZXRoaW5nIHRoYXQgZml0cyBpbnRvIE9vTy4K
136 Cj4gSXMgdGhpcyB3aGF0IHlvdSBhcmUgZG9pbmc/Cgpuby4KCj4gT3IgYXJlIHlvdSBwdXJzdWlu
137 ZyB0cnVlIE9PTyBleGVjdXRpb24KCnllcy4KCj4gd2l0aCByZWdpc3Rlci1yZW5hbWluZz8KCm5v
138 IC8gbWlzbGVhZGluZyBxdWVzdGlvbi4KCndlIGFyZSB1c2luZyB0aGUgNjYwMCBkZXNpZ24sIGZy
139 b20gMTk2NS4gIHRoaXMgaGFzICJpbXBsaWNpdCIKcmVnaXN0ZXItcmVuYW1pbmcgYXV0b21hdGlj
140 YWxseSBidWlsdC1pbiB0byB0aGUgZGVzaWduLiAgdGhlc2UgYXJlIHRoZQpGdW5jdGlvbiBVbml0
141 IG9wZXJhbmQgbGF0Y2hlcy4gIHRoZXkgYXJlIGJlc3QgdGVybWVkICJuYW1lbGVzcwpyZWdpc3Rl
142 cnMiIHJhdGhlciB0aGFuICJyZWdpc3Rlci1yZW5hbWluZyIuCgppZiB5b3UgYXJlIGZhbWlsaWFy
143 IHdpdGggdGhlIFRvbWFzdWxvIEFsZ29yaXRobTogaWYgeW91IG1ha2UgdGhlCm51bWJlciBvZiBS
144 ZXNlcnZhdGlvbiBTdGF0aW9uIFJvd3MgZXF1YWwgdG8gMSwgdGhlbiB0aGUgUlMgbGF0Y2hlcyBh
145 cmUKZGlyZWN0bHkgZXF1YWwgYW5kIGVxdWl2YWxlbnQgdG8gRnVuY3Rpb24gVW5pdCBvcGVyYW5k
146 IGxhdGNoZXMsIGFuZApib3RoIGFyZSBpbiBlZmZlY3QgInJlZ2lzdGVyIHJlbmFtaW5nIi4uLiBv
147 bmx5IHRoZSBiZXR0ZXIgdGVybWlub2xvZ3kKaXMgIm5hbWVsZXNzIHJlZ2lzdGVycyIgb3IgImlu
148 LWZsaWdodCByZWdpc3RlcnMgLyByZXN1bHRzIi4KCmlmIHlvdSBoYXZlIHJlYWQgaGlzIGJvb2sg
149 YW5kIGNvbnNpZGVyIGl0IHRvIGJlIHRoZSBsYXN0IHdvcmQgb24Kc2NvcmVib2FyZHMsIFBhdHRl
150 cnNvbiBoYXMgY29tcGxldGVseSBhbmQgdXR0ZXJseSBtaXNpbmZvcm1lZCB0aGUKZ2VuZXJhbCBw
151 dWJsaWMgYW5kIHRoZSBhY2FkZW1pYyBjb21tdW5pdHkgd2l0aCBoaXMgYm9vaywgcmVnYXJkaW5n
152 IHRoZQo2NjAwIGFuZCBzY29yZWJvYXJkcyBpbiBnZW5lcmFsLiAgTWl0Y2ggQWxzdXAgaGFkIHRv
153 IHdyaXRlIHR3bwphZGRpdGlvbmFsIGNoYXB0ZXJzLCBhcyBhbiBhZGRlbmR1bSB0byBKYW1lcyBU
154 aG9ybnRvbidzIGJvb2ssICJEZXNpZ24Kb2YgYSBDb21wdXRlciIsIGluIG9yZGVyIHRvIGNvcnJl
155 Y3QgUGF0dGVyc29uJ3MgbWlzaW5mb3JtYXRpb24uCgo+ID4gaXQncyBkb3duIHVsdGltYXRlbHkg
156 dG8gaG93IHdpZGUgdGhlIHJlZ2lzdGVyIHBhdGhzIGFyZSwgYmV0d2VlbiB0aGUKPiA+IFJlZ2Zp
157 bGUgYW5kIHRoZSBGdW5jdGlvbiBVbml0cy4gIGlmIHdlIGhhdmUgbXVsdGlwbGUgUmVnaXN0ZXIg
158 RGF0YQo+ID4gQnVzZXMsIGFuZCBjYW4gaW1wbGVtZW50IHRoZSBtdWx0aS1pc3N1ZSBwYXJ0IGlu
159 IHRpbWUsIGl0J2xsIGJlIGNvZGVkCj4gPiBpbiBhIGdlbmVyYWwtcHVycG9zZSBlbm91Z2ggd2F5
160 IHRoYXQgd2UgY291bGQgY29uc2lkZXIgNC1pc3N1ZS4KPiA+IGhvd2V2ZXIuLi4gd2l0aG91dCB0
161 aGUgcmVnaXN0ZXIgZGF0YSBwYXRocywgdGhlcmUncyBubyBwb2ludC4KCj4KPiBGYWlyIGVub3Vn
162 aC4gQmFsYW5jaW5nIHRoZSB0aHJvdWdocHV0IG9mIGFsbCB0aGUgY29tcG9uZW50cyBpbiBhIE9P
163 Two+IGNvcmUgaXMgdHJpY2t5LCBhbmQgcmVnaXN0ZXIgcmVhZCBjYW4gY2VydGFpbmx5IGJlIGEg
164 Ym90dGxlbmVjay4KCnllcy4gIHNlZSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2Nv
165 bXAuYXJjaC9xZU1zRTdVeHZsSS9BbXdzb21Eb0FRQUoKaSBjYW4ndCBmaW5kIHRoZSBkaWFncmFt
166 IGkgZHJldyBhdCB0aGUgbW9tZW50Li4uIHJlZ2ZpbGUgaSB0aGluay4uLgphaCB5ZXMgaGVyZSB5
167 b3UgZ286Cmh0dHBzOi8vbGlicmUtc29jLm9yZy8zZF9ncHUvYXJjaGl0ZWN0dXJlL3JlZ2ZpbGUv
168 Cgp0aGF0J3MgYSBnbG9iYWwgY3ljbGljIGJ1ZmZlciBhdCB0aGUgcmVnZmlsZSAoYWN0cyBhcyBh
169 biBPcGVyYW5kCkZvcndhcmRpbmcgQnVzKSBhbmQKKmxvY2FsKiBjeWNsaWMgYnVmZmVycyBhdCB0
170 aGUgRnVuY3Rpb24gVW5pdHMuCgo+ID4gV2UgaGFkIHNvbWUgdW5mb3J0dW5hdGUgcnVuLWlucyB3
171 aXRoIEJlcmtlbGV5IGFuZCBSSVNDViAtIGFuZCB3ZSBkZWNpZGVkIHRvIGdvIHdpdGggUE9XRVIg
172 YmVjYXVzZSB3ZSBoYXZlIGFjY2VzcyB0byBzb21lIGltcG9ydGFudCByZWxhdGlvbnMgYXQgSUJN
173 Cj4KPiBIYXZlIHlvdSBsb29rZWQgYXQgdGhlIG9wZW4gUklTQy1WIG1pY3JvLWFyY2hpdGVjdHVy
174 ZXMgdGhvdWdoPwoKeWVzLiAgdGhleSBhcmUgbm93aGVyZSBuZWFyIHRoZSBsZXZlbCBvZiBjb21w
175 cmVoZW5zaXZlbmVzcyBuZWVkZWQuCnBsdXMsIGl0IHdvdWxkIGJlIGluY3JlZGlibHkgaXJyZXNw
176 b25zaWJsZSBvZiB1cyB0byBicmluZyB0byBtYXJrZXQgYQoxMDAgbWlsbGlvbiBhbmQgYWJvdmUg
177 KmxpYnJlKiBkZXNpZ24gd2hlcmUgdGhlIG1vZGlmaWNhdGlvbnMgdG8gdGhlCmNvbXBpbGVyLCB0
178 b29sY2hhaW4sIGV2ZXJ5dGhpbmcsIGFsbCBuZWVkZWQgdG8gYmUgdXBzdHJlYW0uCgoKPiBFdmVu
179 IGlmCj4gdGhpcyBjb3JlIHJ1bnMgUE9XRVIsIGl0IHNob3VsZCBiZSBub3QgdG9vIGRpZmZpY3Vs
180 dCB0byBwb3J0IGRlc2lnbgo+IGlkZWFzIGZyb20gZXhpc3RpbmcgY29yZXMsIHRvIGF2b2lkIHJl
181 aW52ZW50aW5nIHRoZSB3aGVlbCBldmVyeXdoZXJlLgoKYmVjYXVzZSBvZiB0aGUgd2F5IHRoYXQg
182 U2ltcGxlViB3b3JrcywgYW5kIGJlY2F1c2Ugd2UgbmVlZCB0bwpkcmFzdGljYWxseSBleHRlbmQg
183 dGhlIHRhcmdldCBJU0EgKFBPV0VSOSkgd2l0aCBvcGNvZGVzIHRoYXQgYXJlCmV2ZXJ5ZGF5IGNv
184 bW1vbi11c2FnZSBpbiBHUFVzIChUZXh0dXJlIE9wcywgU0lOLCBDT1MsIFJHQjJZVVYpLCB3aGls
185 c3QKb24gdGhlIGZhY2Ugb2YgaXQgdGhlIGlkZWEgc291bmRzICJwZXJmZWN0bHkgcmVhc29uYWJs
186 ZSIsIHRoZSBjaGFuZ2VzCnJlcXVpcmVkIGFyZSBzbyBmdW5kYW1lbnRhbCB0aGF0IHN0YXJ0aW5n
187 IGZyb20gc29tZW9uZSBlbHNlJ3MgZGVzaWduCndvdWxkIHByb2R1Y2UgbWFzc2l2ZSBiYXJyaWVy
188 cy4KCmV4YW1wbGU6IHdlIGhhdmUgY3JlYXRlZCBQYXJ0aXRpb25lZFNpZ25hbCAtIGEgY2xhc3Mg
189 dGhhdCBub3QganVzdAoicGVyZm9ybXMgYWRkIG9wZXJhdGlvbnMiLCBpdCB0YWtlcyBhbiAqYWRk
190 aXRpb25hbCogKGR5bmFtaWMpCnNpZGUtYXJndW1lbnQgLSBhIG1hc2sgLSB3aGljaCAqZHluYW1p
191 Y2FsbHkqIHBhcnRpdGlvbnMgd2hhdCB3b3VsZApvdGhlcndpc2UgYmUgYSA2NC1iaXQgb3BlcmF0
192 aW9uIGludG8gKmFueSogY29tYmluYXRpb24gb2YgOCwgMTYsIDI0LAozMiwgNDAsIDQ4IGFuZCA1
193 NiBiaXQgb3BlcmF0aW9ucy4KCnRoaXMgY2xhc3MsIGJlY2F1c2Ugd2UgYXJlIHVzaW5nIHB5dGhv
194 biwgY2FuIGJlIGhhbmRlZCBpbiBhcyBhIGtscyBpbgphbiBPYmplY3QtT3JpZW50YXRlZCBmYXNo
195 aW9uLCB0byAqcmVwbGFjZSogbm1pZ2VuIFNpZ25hbCwgYW5kIHRodXMgd2UKbWF5IGNvbnN0cnVj
196 dCBjb2RlIHRoYXQgb24gdGhlIGZpcnN0IHVzYWdlIGlzIGEgc2ltcGxlIHBpcGVsaW5lLApob3dl
197 dmVyIHdlIG1heSB0aGVuIGNvbnZlcnQgdGhhdCBFWEFDVCBTQU1FIENPREUgaW50byBhIGR5bmFt
198 aWMgU0lNRAp2YXJpYW50IHB1cmVseSB3aXRoIGEgb25lLWxpbmUgY2hhbmdlLgoKdGhlc2Uga2lu
199 ZHMgb2YgdGVjaG5pcXVlcyBhcmUgbm9ybWFsbHkgdGhlIGV4Y2x1c2l2ZSBkb21haW4gb2YKZXhw
200 ZXJpZW5jZWQgU29mdHdhcmUgRW5naW5lZXJpbmcgdGVhbXMuICBmb3IgYSAqaGFyZHdhcmUqIHRl
201 YW0gdG8KZGVwbG95IHRoZW0/ICB0aGlzIGlzIHVuaGVhcmQtb2YsIGFuZCBpZiBhdHRlbXB0ZWQg
202 d2l0aCBldmVuIENoaXNlbDMgLwpTY2FsYSwgd291bGQgaGF2ZSB0aGUgdGVhbSBydW5uaW5nIGF3
203 YXkgc2NyZWFtaW5nIHdpdGhpbiBhYm91dCA2Cm1vbnRocy4gIGEgdGVhbSB0aGF0IHdhcyBhc2tl
204 ZCB0byBkbyB0aGF0IGluIHZlcmlsb2cgb3IgVkhETCB3b3VsZApmbGF0LW91dCBzYXkgIm5vIi4g
205 IG9yIGFzayBmb3IgNTAgZXh0cmEgZW5naW5lZXJzLiAgd2hpY2gsIGZvciBJQk0gb3IKSW50ZWwg
206 b3IgQVJNIGlzIG5vdCB1bnJlYXNvbmFibGUsIGJ1dCBmb3IgdXMgaXQgaXMgbm90LgoKaGVuY2Ug
207 d2Ugc3RhcnRlZCBmcm9tIHNjcmF0Y2gsIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZGVwbG95IHRo
208 ZXNlCmtpbmRzIG9mIFNvZnR3YXJlIEVuZ2luZWVyaW5nIHRlY2huaXF1ZXMuCgpsLgoKX19fX19f
209 X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlzY3YtZGV2
210 IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCmh0dHA6
211 Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1kZXYK
212