[libre-riscv-dev] Some recent documenting of work performed for tape-out
[libre-riscv-dev.git] / 6d / 51e49cca71873c99e550b7c24ebc837346b975
1 Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
2 Envelope-to: publicinbox@libre-riscv.org
3 Delivery-date: Sun, 17 May 2020 01:54:10 +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 1ja7ZC-0002wt-4W; Sun, 17 May 2020 01:54:10 +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 1ja7ZA-0002wn-52
11 for libre-riscv-dev@lists.libre-riscv.org; Sun, 17 May 2020 01:54:08 +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=u3tGbz4P5nDXRAkbWRqVg5zss8msmX8jpRQhvx4WpmM=;
16 b=nHtf6eORa+LYX5DdAGtFCoU0SVK4n1MiUZrgPAGQiMwmP2EJquIE+jV5MXLRVwKEeUu9HRRdoAU0VQ1BiGkuWIuxDLHyI8PTWoDRHwitwojU/PnyLAa6o9wMXBmRFCYdsJyF0UwcVmCuRRdmlhOvg0FH0utN+TKrzPVXOsiKwP4=;
17 Received: from mail-lj1-f169.google.com ([209.85.208.169])
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 1ja7Z9-0007l2-Px
20 for libre-riscv-dev@lists.libre-riscv.org; Sun, 17 May 2020 00:54:07 +0000
21 Received: by mail-lj1-f169.google.com with SMTP id g4so6103102ljl.2
22 for <libre-riscv-dev@lists.libre-riscv.org>;
23 Sat, 16 May 2020 17:53:52 -0700 (PDT)
24 X-Gm-Message-State: AOAM531I+cZ9mv9ftX65zuCmdWwTlwq2Ft/zxh3V6ye5k0jrnXb1TJDX
25 L29TAUkZ3c09nU7rN3qfaix3/ZuI+8+CJ1CdhY0=
26 X-Google-Smtp-Source: ABdhPJxJfpix8kDLn0AsyQt0xRuGMJVpVXNvTrHaSSBdwNKIrRLmXzgcVanmvKkPEurrjiewNKncj55w61+As51r9fA=
27 X-Received: by 2002:a2e:9081:: with SMTP id l1mr5920201ljg.81.1589676826461;
28 Sat, 16 May 2020 17:53:46 -0700 (PDT)
29 MIME-Version: 1.0
30 References: <13EDF987-9A19-4C96-89C2-6DB784CF2C96@gatech.edu>
31 <CAPweEDyDcmAJbJx+PKkL8MotPMNyHyFOEtuNOKP+V2PmmY5HvA@mail.gmail.com>
32 <CAPweEDyw+LSW2S4sKWk-V24NSHYe2qqWO+KFqikQ34Q1Guhaig@mail.gmail.com>
33 <CAPweEDweXSC5c_ROQ8a3Y4hQMaJYmD_jAriadcZk9PRrkjOXvA@mail.gmail.com>
34 <25AC8A2E-D48F-439F-AF9D-0EB3DC08D7CC@gatech.edu>
35 <CAPweEDx_TMOxQHLrhbdhnXsBE1s-u2mz3xD2DDFCMi6m9BZCZg@mail.gmail.com>
36 <CAEoCstRd+hLfF5YtUbnS2gukPxVAjmheJrZ29QvJD3y4Y928JQ@mail.gmail.com>
37 <CAPweEDxXGedm-4QwmU2UuYvb4G2nNaoAsy_P2eyviQ42pbmyXA@mail.gmail.com>
38 <CAEoCstSGxwV88JUHTQmUp=75kHWxSZNSPu==_pxsUYf29ctd9w@mail.gmail.com>
39 In-Reply-To: <CAEoCstSGxwV88JUHTQmUp=75kHWxSZNSPu==_pxsUYf29ctd9w@mail.gmail.com>
40 From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
41 Date: Sun, 17 May 2020 01:53:34 +0100
42 X-Gmail-Original-Message-ID: <CAPweEDzp3aSyhi-+UOO5Ce_gdUFGjpGqGVZM+GT0qDTLGtpZ-g@mail.gmail.com>
43 Message-ID: <CAPweEDzp3aSyhi-+UOO5Ce_gdUFGjpGqGVZM+GT0qDTLGtpZ-g@mail.gmail.com>
44 To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
45 Subject: Re: [libre-riscv-dev] Scoreboard vs Tomasulo
46 X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
47 X-Mailman-Version: 2.1.23
48 Precedence: list
49 List-Id: Libre-RISCV General Development
50 <libre-riscv-dev.lists.libre-riscv.org>
51 List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
52 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
53 List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
54 List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
55 List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
56 List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
57 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
58 Reply-To: Libre-RISCV General Development
59 <libre-riscv-dev@lists.libre-riscv.org>
60 Content-Type: text/plain; charset="utf-8"
61 Content-Transfer-Encoding: base64
62 Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
63 Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
64
65 T24gU2F0LCBNYXkgMTYsIDIwMjAgYXQgMTE6NDUgUE0gSmVyZW15IFNpbmdoZXIgPHRoZWpzaW5n
66 aGVyQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBJIGhhdmUgZmluYWxseSBmaW5pc2hlZCBwYXJzaW5n
67 IE1pdGNoJ3MgY2hhcHRlcnMsIGFuZCBub3cgSSBzZWUgd2hhdAo+IHRoZSBwcmltYXJ5IGNvbmZ1
68 c2lvbiBpcyBmcm9tLiBUaGUgc2NvcmVib2FyZCBiZWluZyBkZXZlbG9wZWQgaGVyZSBoYXMKPiBi
69 ZWVuIHJlZmVycmVkIHRvIGluIHRoZSBtYWlsaW5nIGxpc3RzIGFzIGEgIkNEQyA2NjAwLWxpa2Ui
70 IHNjb3JlYm9hcmQsCj4gd2hpbGUgaW4gcmVhbGl0eSwgdGhlIGZpbmFsIGRlc2lnbiBpcyBmYXIg
71 ZXh0ZW5kZWQgZmFyIGJleW9uZCB0aGUKPiBvcmlnaW5hbCBDREMgNjYwMCBpbXBsZW1lbnRhdGlv
72 bi4KCnllcy4gIHdlbGwuLi4gIGZhciBiZXlvbmQgaXQgaW4gKmZ1bmN0aW9uYWxpdHkqLCBidXQg
73 bm90IHRoYXQgZmFyIGluCnRlcm1zIG9mIGdhdGUKY291bnQgW2NhdmVhdDogaWYgd2Ugd2VyZSBv
74 bmx5IGRvaW5nIHRoZSBzYW1lIDMgcmVnZmlsZXMsIEEgQiBhbmQgWC4KYXMgd2UgYXJlIGRvaW5n
75 IDMyeCBJTlQsIDMyeCBGUCwgcGx1cyBTUFIgcmVncyAqYW5kKiBDb25kaXRpb24gUmVncwphbGwg
76 dW5kZXIgdGhlIGNvbnRyb2wgb2YgRGVwZW5kZW5jeSBNYXRyaWNlcywgYSBkaXJlY3QgY29tcGFy
77 aXNvbiBpcyB1bmZhaXJdCgpvaC4gIGFoLiAgb25lIGRlZmluaXRlIGVuaGFuY2VtZW50OiBpbiB0
78 aGUgZGlhZ3JhbXMgeW91IHNlZSBpbiBNaXRjaCdzCmNoYXB0ZXJzLCB0aGVyZSBpcyBvbmx5IG9u
79 ZSBHTy1SRUFEIGFuZCBvbmx5IG9uZSBHTy1XUklURS4gIG9uZSBHTy1SRUFECmluZGljYXRlcyBh
80 IGRlc2lyZSB0byByZXF1ZXN0ICptdWx0aXBsZSogUmVnZmlsZSBSZWFkIHBvcnRzLgoKYmVjYXVz
81 ZSBQT1dFUjkgaGFzIGluIHNvbWUgY2FzZXMgdXAgdG8gKmZpdmUqIGluY29taW5nIHJlZ2lzdGVy
82 cyBhbmQKKnRocmVlKiBvdXRnb2luZyByZWdpc3RlcnMgKGluIGRpZmZlcmVudCBSZWdmaWxlcyAt
83 IElOVC9GUCwgU1BSLCBDUiksIHdlIG5lZWRlZAp0byBzcGxpdCB0aG9zZSBvdXQgaW50byBpbmRp
84 dmlkdWFsIGxpbmVzLiAgR08tUkVBRDEvUkVBRC1SRVExLApHTy1SRUFEMi9SRUFELVJFUTIgZXRj
85 LgoKY3VycmVudGx5IGkgYW0gc3RydWdnbGluZyB3aXRoIHRoaXMgRlNNIHdoaWNoIGltcGxlbWVu
86 dHMgMy1vcGVyYW5kIGluLAppbW1lZGlhdGVzLCAyLW9wZXJhbmQgb3V0ICphbmQqIG1hbmFnZXMg
87 dGhlIGFkZHJlc3MsIEdPLVNULCBhZGRyZXNzCmV4Y2VwdGlvbnMgYW5kIGRlYWxzIHdpdGggUE9X
88 RVI5IExEL1NUICJVcGRhdGUiIG1vZGUuCgpodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfZ3B1L2xk
89 X3N0X2NvbXBfdW5pdC5qcGcKCnRoaXMgaSByZWFhYWFsbHkgbmVlZCBzb21lIGhlbHAgd2l0aC4K
90 Cgo+IEkgd291bGQgc3VnZ2VzdCBub3QgY2FsbGluZyBpdCBhCj4gIkNEQyA2NjAwLWxpa2Ugc2Nv
91 cmVib2FyZCIgaW4gdGhlIGZ1dHVyZSwgaW5zdGVhZCBhICJleHRlbmRlZAo+IHNjb3JlYm9hcmQi
92 IGlzIG1vcmUgYWNjdXJhdGUuCgphcHByZWNpYXRlZC4gIGlmIHlvdSBjb3VsZCBjb25zaWRlciBo
93 ZWxwaW5nIGNoYW5nZSB0aGUgd2lraSB0byByZWZsZWN0IHRoaXMgKGFuZApoZWxwIHVzIHRvIG1h
94 aW50YWluIHRoZSBhZHZhbnRhZ2VzIGJlbG93KSB0aGlzIHdvdWxkIGJlIGZhbnRhc3RpYy4KCmkn
95 dmUgdXNlZCBhIHJhbmdlIG9mIHRlcm1zIC0gImF1Z21lbnRlZCA2NjAwIHNjb3JlYm9hcmQiLCBh
96 bmQgb3RoZXJzLgp0aGUgaGlzdG9yaWMKbGluayBhbmQgdGhlIGVmZmVjdGl2ZSByZXZpdmFsIG9m
97 IHNvbWV0aGluZyBsb25nLWZvcmdvdHRlbiB3aGljaCB3YXMKYm90aCBlbGVnYW50CmFuZCBzdGFn
98 Z2VyaW5nbHkgZ2F0ZS1lZmZpY2llbnQgKG91dCBvZiBuZWNlc3NpdHkpOiBpIGRvbid0IHdhbnQg
99 dG8gdXNlIHRoZSB3b3JkCiJwb2xpdGljYWwiIGluIGFueSBzZW50ZW5jZSBob3dldmVyIHRoZXJl
100 IGlzIGEgY29uc2lkZXJhYmxlIHB1YmxpY2l0eQoid293IGZhY3RvciIKdG8gZG9pbmcgc29tZXRo
101 aW5nIGFzIHN1cnByaXNpbmcgYXMgcmV2aXZpbmcgYSA1NS15ZWFyLW9sZCBkZXNpZ24uCgpzaW5j
102 ZSBpbnRlcmFjdGluZyB3aXRoIE1pdGNoIEFsc3VwIGxhc3QgeWVhciwgeW91J3JlIHRoZSBmaXJz
103 dCBhZGRpdGlvbmFsIHBlcnNvbgp0byBhY3R1YWxseSBkbyBhbnkga2luZCBvZiBzaWduaWZpY2Fu
104 dCBhbmFseXNpczogY29uc2VxdWVudGx5IHRlcm1pbm9sb2d5IGhhcwpub3QgcmVhbGx5IGJlZW4g
105 ZGlzY3Vzc2VkLi4uIGJlY2F1c2UgdGhlcmUgd2Fzbid0IGFueW9uZSB0byBkaXNjdXNzIGl0IHdp
106 dGghCgo+IExldCBtZSB0cnkgdG8gY29tcG9zZSBteSB0aG91Z2h0cy4KPiBJbiBvcmRlciBmb3Ig
107 T09PIGV4ZWN1dGlvbiB0byBiZSBwb3NzaWJsZSwgd3JpdGUgZGF0YSBmcm9tCj4gc3BlY3VsYXRp
108 dmVseSBleGVjdXRlZCBpbnN0cnVjdGlvbnMgbXVzdCBiZSBidWZmZXJlZCwgZm9yIGluIHRoZSBj
109 YXNlCj4gb2YgbWlzc3BlY3VsYXRpb24sIHRoZXkgbXVzdCBub3QgYmUgYWxsb3dlZCB0byBjb21t
110 aXQgaW50byB0aGUKPiBhcmNoaXRlY3R1cmFsIHJlZ2lzdGVyIGZpbGUuCgptaXMtc3BlY3VsYXRp
111 b24sIExEL1NUIHBhZ2UtZmF1bHRzLCBwcmVkaWNhdGVkIGluc3RydWN0aW9ucyB3aGVyZSB0aGUg
112 b3BlcmFuZAp0aGF0IGNvbnRhaW5zIHRoZSBiaXRtYXNrIGlzIGluIGEgcmVnaXN0ZXIgdGhhdCBo
113 YXMgbm90IGJlZW4gcmVhZCB5ZXQsIGFuZCBldmVuCnNpbXBsZSBleHRlcm5hbCBOTUkgaW50ZXJy
114 dXB0czogYWxsIG9mIHRoZXNlIG5lZWQgYSBtZWFucyBhbmQgbWV0aG9kIG9mCmtpbGxpbmcgaW4t
115 ZmxpZ2h0IGRhdGEsIHllcy4KCj4gSW4gVG9tYXN1bG8ncywgc3BlY3VsYXRpdmUgd3JpdGUgZGF0
116 YSBhcmUgaGVsZCBpbiBwaHlzaWNhbGx5IHJlbmFtZWQgcmVnaXN0ZXJzLgo+IEluIHRoZSBleHRl
117 bmRlZCBzY29yZWJvYXJkIHNjaGVtZSwgc3BlY3VsYXRpdmUgd3JpdGUgZGF0YSBhcmUgaGVsZCBp
118 bgo+IGNvbXB1dGUgdW5pdCBsYXRjaGVzLgoKdGhlc2UgdHdvIGVmZmVjdGl2ZWx5IGhhdmluZyBh
119 IHZlcnkgbG93IExldmVuc2h0ZWluIGRpc3RhbmNlLCBidXQgbm90IHF1aXRlCnplcm8uCgoqIGlu
120 IFRvbWFzdWxvLCB0aGUgcmVhc29uIGZvciB0aGUgZXhwbGljaXQgcmVuYW1pbmcgaXMgZG93biB0
121 byB0aGUgMkQKbmF0dXJlIG9mIFJTJ3MuCiAgaGVuY2UgdGhlIFJPQiByb3cgbnVtYmVyIG5lZWRz
122 IHRvIGJlIHN0b3JlZCBpbiB0aGUgUlMKCiogaW4gZXh0ZW5kZWQtc2NvcmVib2FyZCwgdGhlIEZV
123 J3MgaW5kZXggLyBjb2x1bW4tbnVtYmVyICppcyogdGhhdCAibmFtZSI7CiAgd2l0aCB0aGVyZSBv
124 bmx5ICpiZWluZyogYSBvbmUtdG8tb25lIHBhdGgsIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGEKbmFt
125 ZSAqYXQgYWxsKiwKICBoZW5jZSB3aHkgaSByZWZlciB0byB0aGUgQ1UgbGF0Y2hlcyBhcyAibmFt
126 ZWxlc3MgcmVnaXN0ZXJzIi4KCiAgdGhlIFJPQiByb3cgbnVtYmVyICppcyogdGhlIEZVIG51bWJl
127 ciB3aGljaCAqaXMqIHRoZSByZW5hbWVkLXJlZ2lzdGVyLW51bWJlcgogIGFuZCBjb25zZXF1ZW50
128 bHkgYnkgYmVpbmcgb25lLXRvLW9uZSBpbiBldmVyeSBhc3BlY3QsIG5lZWRzIG5vIG5hbWUuCgp0
129 aGlzIGFzcGVjdCBvZiA2NjAwIHNjb3JlYm9hcmRzIC0gdGhlIGNvbXBsZXRlIGxhY2sgb2YgbmFt
130 aW5nIGFuZCBldmVuIHRoZQpsYWNrIG9mIHNpZ25pZmljYW5jZSBkcmF3biB0byBpdCBldmVuIGJ5
131 IEphbWVzIFRob3JudG9uIGhpbXNlbGYgaW4gaGlzIGJvb2ssCmFuZCBjZXJ0YWlubHkgaW4gdGhl
132 IHBhdGVudHMsIGlzIHdoeSB0aGUgNjYwMCBpcyAqYmVsaWV2ZWQqIG5vdCB0byBoYXZlIHJlZ2lz
133 dGVyCnJlbmFtaW5nIG9mICphbnkqIGtpbmQuCgphaCAtIG9uZSBvdGhlciByZWFsbHkgY3JpdGlj
134 YWwgdGhpbmcgKGkgd2lsbCBhZGQgdG8gdGhlIHBhZ2UpOgoKKiBUb21hc3VsbyBST0IgUm93IG51
135 bWJlcnMgcHJlc2VydmUgaW5zdHJ1Y3Rpb24gb3JkZXIgdGhyb3VnaCBzZXF1ZW50aWFsCiAgIG51
136 bWJlcmluZyBieSB0aGUgYWN0dWFsIHJvdyBudW1iZXIKCiogNjYwMCBzY29yZWJvYXJkcyBwcmVz
137 ZXJ2ZSBpbnN0cnVjdGlvbiBvcmRlciBpbiB0aGUgRlUtRlUgTWF0cml4IHdpdGgKICBhIE54TiBi
138 aXQtbGV2ZWwgbWF0cml4IG9mIFNSIExhdGNoZXMgaW1wbGVtZW50aW5nIGEgImxpbmtlZCBsaXN0
139 IiAodGhlCiAgRGlyZWN0ZWQgQWN5Y2xpYyBHcmFwaCkgb2Ygb3JkZXJlZCBkZXBlbmRlbmNpZXMs
140 IHVzaW5nIHRoZSAqcmVnaXN0ZXIqCiAgZGVwZW5kZW5jaWVzIGF0IHRoZSB0aW1lIHRoZSBpbnN0
141 cnVjdGlvbiBpcyBpbnNlcnRlZCBpbnRvIHRoZSAqRlUtUkVHUyoKICBNYXRyaXggdG8gZGV0ZXJt
142 aW5lIHRoZSBGVS1GVSBEQUcuICB0aGlzIGhhcyBtb3JlIGluIGNvbW1vbiB3aXRoIGEKICAibGlu
143 a2VkIGxpc3QiIGRhdGEgc3RydWN0dXJlLCB0byB1c2Ugc29mdHdhcmUgdGVybWlub2xvZ3kuCgp0
144 aGlzIGxhdHRlciBhc3BlY3QgaXMgYSBjcnVjaWFsIG9uZSB0aGF0IGV2ZW4gSmFtZXMgVGhvcm50
145 b24gbm90ZXMgaXMgcmVhbGx5CipyZWFsbHkqIGNvbXBsZXggdG8gZXhwbGFpbiwgeWV0IHBhcmFk
146 b3hpY2FsbHkgcmVxdWlyZXMgYW4gZXh0cmFvcmRpbmFyaWx5CnNtYWxsIG51bWJlciBvZiBhY3R1
147 YWwgZ2F0ZXMgdG8gaW1wbGVtZW50LgoKaG93ZXZlciB1bmRlcnN0YW5kaW5nIHRoZSBkaWZmZXJl
148 bmNlIGJldHdlZW4gdGhlIChiaW5hcnkpIFJPQiBSb3cKbnVtYmVyaW5nICh3aGljaCBwcmVzZXJ2
149 ZXMgdGhlIERBRyBvZiBpbnN0cnVjdGlvbiBvcmRlciBieSB3YXkKb2YgYmluYXJ5LWFkZHJlc3Nl
150 ZCBpbnN0cnVjdGlvbiBST0IgUm93IE4rMSBiZWluZyBhIGdyZWF0ZXIgaW5kZXgKdGhhbiBiaW5h
151 cnktYWRkcmVzc2VkIGluc3RydWN0aW9uIFJPQiBSb3cgTikgYW5kIHRoaXMKImZ1bmN0aW9uYWxs
152 eS1lcXVpdmFsZW50IiBsaW5rZWQtbGlzdCBzeXN0ZW0gZXF1YWxseSBzdWNjZXNzZnVsbHkgcHJl
153 c2VydmluZwphIERBRyBidXQgdXNpbmcgdW5hcnkgU1IgTGF0Y2hlcyB0byBkbyBzbywgaXMga2V5
154 IHRvIHJlY29nbmlzaW5nCmFuZCBhcHByZWNpYXRpbmcgdGhhdCBUb21hc3VsbyBhbmQgU2NvcmVi
155 b2FyZHMgKnJlYWxseSBhcmUqIGZ1bmN0aW9uYWxseQpkaXJlY3RseSBlcXVpdmFsZW50LgoKaGVy
156 ZSBpdCBzaG91bGQgYmVjb21lIGNsZWFyIGFzIHRvIGFub3RoZXIgYXNwZWN0IG9mIHdoeSBtdWx0
157 aS1pc3N1ZSBpcwpwcm9ibGVtYXRpYyBpbiBUb21hc3Vsby4gIHdoZXJlIGRldGVjdGlvbiBvZiAi
158 cmVhZGluZXNzIHRvIGNvbW1pdCIgaW4KYSBzaW5nbGUtaXNzdWUgVG9tYXN1bG8gaXMgYSBzaW1w
159 bGUgbWF0dGVyIG9mIGNoZWNraW5nICpvbmUqIHJvdwoiaXMgeW91ciByZXN1bHQgcmVhZHksIGlm
160 IHllcyBjb21taXQgaXQgYW5kIGN5Y2xpY2FsbHkgaW5jcmVtZW50IHRoZSBwb2ludGVyCnRvIHRo
161 ZSBST0Igcm93IHRvIHRoZSBuZXh0IGl0ZW0sIHJlYWR5IGZvciB0ZXN0LW9yLWNvbW1pdCBvbiB0
162 aGUgKm5leHQqCmN5Y2xlIiwgdGhpcyBtdXN0IGJlIHVwZGF0ZWQgdG8gdGVzdGluZyBvZiAqbXVs
163 dGlwbGUqIHJvdyAicmVhZGluZXNzIgpzdGF0ZXMsIHdoaWNoIGNsZWFybHkgcmVxdWlyZXMgYSBt
164 dWx0aS1wb3J0ZWQgU1JBTS4KCnRoaXMgaXMgd2hlcmUgInNvbHV0aW9ucyIgdGhhdCBpIGhhdmUg
165 c2VlbiBhY3R1YWxseSBzdHJhdGlmeSB0aGUgUk9CCmludG8gNCAob3IgTikgaW50ZXJsZWF2ZWQg
166 YmFua3MuICBjcm9zc2JhcnMgYXJlIHJlcXVpcmVkLi4uIGl0J3Mgd2hlcmUKdGhlIG5pZ2h0bWFy
167 ZXMgYmVnaW4uCgoKPiBJbiBUb21hc3VsbydzLCBicmFuY2ggZGVwZW5kZW5jeSBtYXNrcyBhcmUg
168 dXNlZCB0byBkcmFpbiBtaXNzcGVjdWxhdGVkCj4gaW5zdHJ1Y3Rpb25zLgoKYXJlIHRoZXNlIHVu
169 YXJ5LWVuY29kZWQgb3IgYmluYXJ5LWVuY29kZWQ/ICBieSBtYXNrcyBpIHdvdWxkIGV4cGVjdCB0
170 aGVtCnRvIGJlIHVuYXJ5LWVuY29kZWQgYW5kIHRodXMgYWxsb3cgbXVsdGlwbGUgYml0cyB0byBi
171 ZSBzZXQsIGFsbG93aW5nIG11bHRpcGxlCm9wZXJhdGlvbnMgdG8gYmUgY2FuY2VsbGVkLgoKaWYg
172 bm90LCBhbmQgYmluYXJ5IG1hc2tzIGFyZSB1c2VkLCB0aGVuIGVhY2ggdW5pdCBtdXN0IGhhdmUg
173 YW4gYXJpdGhtZXRpYwpjb21wYXJhdG9yLCAiaXMgbXkgYmluYXJ5IGluZGV4IGxlc3MgdGhhbiBv
174 ciBlcXVhbCB0byB0aGUgYnJhbmNoIGRlcGVuZGVuY3kKbWFzaywgaWYgbGVzcyB0aGFuLCB0aGVu
175 IHRoaXMgbWVhbnMgaSBtdXN0IGRpZSIuCgp0aGUgU2hha3RpIDY2MDAtbGlrZSAoZXh0ZW5kZWQp
176 IHNjb3JlYm9hcmQgc3lzdGVtIGluIHRoZWlyIEUtQ2xhc3MgZGVzaWduCnVzZXMgKmJpbmFyeSog
177 bnVtYmVyaW5nLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgdXNlIHRoYXQgc2NoZW1lLiAgZWZmZWN0
178 aXZlbHkKdGhlIG1hc2sgaXMgbm90IGEgbWFzayBwZXIgc2UsIGl0IGlzIGEgc2hvcnRlbmVkIHZl
179 cnNpb24gb2YgdGhlIGluc3RydWN0aW9uCnNlcXVlbnRpYWwgbnVtYmVyLgoKQk9PTSB1c2VzIHVu
180 YXJ5IGJpdC1tYXNrcy4gIGkgdGhpbmsuICBpIGhhZCBhIGJyaWVmIGNvbnZlcnNhdGlvbiBhYm91
181 dCBpdAp3aXRoIHNvbWVvbmUsIHNvbWV3aGVyZSwgYSBmZXcgbW9udGhzIGJhY2suCgppIGdyZWF0
182 bHkgcHJlZmVyIHRoZSB1bmFyeSBzeXN0ZW0uICBpdCBhbGxvd3MgaW50ZXJsZWF2aW5nIG9mIG11
183 bHRpcGxlCnNpbXVsdGFuZW91cwpjYW5jZWxsYXRpb25zIHRvICphdXRvbWF0aWNhbGx5KiBzb3J0
184 IHRoZW1zZWx2ZXMgb3V0LCBieSBPUmluZyB0aGUgY2FuY2VsbGF0aW9ucwp0b2dldGhlciB0byBw
185 cm9kdWNlIHRoZSBtYXNrIQoKdGhpcyBpcyBhbiAiYWNjaWRlbnRhbCIgc2lkZS1lZmZlY3Qgb2Yg
186 dGhlIFNoYWRvdyBNYXRyaXggY29uY2VwdCwKZGVzY3JpYmVkIGJlbG93LgoKYSBiaW5hcnktaW5k
187 ZXhlZCBjYW5jZWxsYXRpb24gc3lzdGVtIHJlcXVpcmVzIGEgKmNlbnRyYWwgcmVzb3VyY2UqIHRv
188 IGNhbGN1bGF0ZQp0aGUgbG93ZXN0LW51bWJlcmVkICJpbmRleCIsIGZvbGxvd2VkIGJ5IGJyb2Fk
189 Y2FzdGluZyB0aGF0IGluZGV4IGFjcm9zcyB0aGUKb25lIChhbmQgb25seSBvbmUpIHBlcm1pdHRl
190 ZCBjYW5jZWxsYXRpb24gZGF0YXBhdGguCgoKPiBJbiBleHRlbmRlZCBzY29yZWJvYXJkLCB0aGUg
191 bWlzc3BlY3VsYXRlZCBpbnN0cnVjdGlvbnMgZHJhaW4KPiB0aGVtc2VsdmVzIGZyb20gdGhlIHN5
192 c3RlbS4KCmFoIG5vLiAgd2UnbGwgYmUgY2FuY2VsbGluZyB0aGVtIGV4cGxpY2l0bHksIHZpYSBh
193 biB1bmFyeSBiaXQtbWFzaywKdGhhdCBpcyBnbG9iYWwKYW5kIGNvbWJpbmF0b3JpYWwgaW4gbmF0
194 dXJlLCBleHRlbmRpbmcgcmlnaHQgdGhlIHdheSB0aHJvdWdoIHRoZSBlbnRpcmV0eQpvZiB0aGUg
195 RnVuY3Rpb24gVW5pdCwgQ29tcFVuaXRzICphbmQqIHRoZSBhc3NvY2lhdGVkIHBpcGVsaW5lcy4K
196 CnRoZSB1bmFyeSBtYXNrIGlzIGJhc2ljYWxseSBhIGNvbnZlcnNpb24gb2YgdGhlICpiaW5hcnkq
197 IGluZGljZXMgb2YgdGhlCkNvbXBVbml0IG51bWJlciBvbiBhbnkgZ2l2ZW4gQ29uY3VycmVudCBD
198 b21wdXRhdGlvbiBVbml0LiAgMC0zCmluIHRoaXMgZGlhZ3JhbSBoZXJlOgpodHRwczovL2xpYnJl
199 LXNvYy5vcmcvM2RfZ3B1L2FyY2hpdGVjdHVyZS82NjAwc2NvcmVib2FyZC82MDB4LWNvbmN1cnJl
200 bnRfY29tcF91bml0LnBuZwoKdGh1cyBpbiB0aGF0IGNhc2UgdGhlIHVuYXJ5IGNhbmNlbGxhdGlv
201 biBtYXNrIHdvdWxkIGJlIDQtYml0IHdpZGUuCgp0aGVzZSBhcmUgbGlua2VkIGRpcmVjdGx5IHRv
202 IC0gYW5kIGFyZSBlcXVhbCB0byAtIHRoZSAiR09fRElFIiBzaWduYWxzIGluICp0aGlzKgpkaWFn
203 cmFtOgpodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfZ3B1L3NoYWRvdy5qcGcKCm5vdGUgaW4gdGhh
204 dCBkaWFncmFtIHRoZSBleGlzdGVuY2UgcGVyIGNlbGwgaW4gdGhlIERlcGVuZGVuY3kgTWF0cmlj
205 ZXMgb2YgKnR3byoKU2hhZG93IExhdGNoZXMuCgp0aGUgZmlyc3QgU2hhZG93IExhdGNoIGlzIGZv
206 ciB0aGUgZmlyc3QgQnJhbmNoIFVuaXQgdG8gaW5kaWNhdGUgInNwZWN1bGF0aXZlCmV4ZWN1dGlv
207 biB1bmRlcndheSBhcyBjb250cm9sbGVkIGFuZCBkaXJlY3RlZCBieSBCcmFuY2ggVW5pdCAxIi4K
208 CnRoZSBzZWNvbmQgU2hhZG93IExhdGNoIGlzIGZvciB0aGUgKnNlY29uZCogQnJhbmNoIFVuaXQg
209 dG8gZG8gbGlrZXdpc2UuCgphIHRoaXJkIFNoYWRvdyBMYXRjaCBleGlzdHMgZm9yIHByZWRpY2F0
210 ZWQgZXhlY3V0aW9uLiAgb25lIGJpdCBlYWNoIG9mIHRoZQpwcmVkaWNhdGUgcmVnaXN0ZXIgKG9u
211 Y2UgcmVhZCkgd2lsbCBiZSB0aHJvd24gYXQgdGhlICJGQUlMRUQtMyIgbGluZSBpZiB0aGF0CmJp
212 dCBpcyB6ZXJvLCBhbmQgYXQgdGhlICJTVUNDRVNTLTMiIGxpbmUgaWYgdGhhdCBiaXQgaXMgMS4g
213 IGlmICJmYWlsZWQiIGlzCmFzc2VydGVkLCB0aGVuIHNvIGlzIHRoZSAiR09fRElFIi4gIHRoYXQg
214 IkdPX0RJRSIsIGJlaW5nIGNvbm5lY3RlZCB0bwp0aGUgY2FuY2VsbGF0aW9uIG1hc2tzLCAqSU5T
215 VEFOVExZKiBraWxscyBub3QganVzdCB0aGUgcmVnaXN0ZXIgaGF6YXJkCmFsbG9jYXRpb24sIGl0
216 IHJlc2V0cyB0aGUgRnVuY3Rpb24gVW5pdCB0byBpZGxlICphbmQqIGtpbGxzIHRoZSBwYXJ0aWFs
217 IHJlc3VsdApnZW5lcmF0aW9uIGFjdHVhbGx5IGluIHRoZSBwaXBlbGluZSBpdHNlbGYuCgppZiAi
218 c3VjY2VzcyIgaXMgYXNzZXJ0ZWQsIHRoZSBzaGFkb3cgbGF0Y2hlcyBhcmUgY2xlYXJlZCwgYW5k
219 ICJXUklURV9SRVFVRVNUIgppcyBubyBsb25nZXIgcHJldmVudGVkIGFuZCBwcm9oaWJpdGVkIGZy
220 b20gYXNzZXJ0aW5nLiAgdGhlIHJlc3VsdCAoaWYgaXQgd2FzCnJlYWR5KSwgaXMgYWxsb3dlZCB0
221 byBwcm9jZWVkICJJIG5vdyByZXF1ZXN0IGEgUmVnZmlsZSBXcml0ZSBQb3J0Ii4KaWYgdGhlIHJl
222 c3VsdApoYXBwZW5lZCBub3QgdG8gYmUgcmVhZHksIHRoZW4gd2hlbiB0aGUgcmVzdWx0ICppcyog
223 cmVhZHkgaXQgd2lsbCBub3QKYmUgaGVsZCB1cC4KCmEgZm91cnRoIFNoYWRvdyBsYXRjaCBleGlz
224 dHMgZm9yIGNhbmNlbGxhdGlvbiBvZiBvcGVyYXRpb25zIGluIHRoZSAic2hhZG93IgpvZiBhIExE
225 L1NUIFVuaXQncyBwYWdlLWZhdWx0IC8gYWRkcmVzcyBleGNlcHRpb24uCgphcyB5b3UgY2FuIHNl
226 ZSB0aGlzIHJlcXVpcmVzIGEgdHJpdmlhbCBudW1iZXIgb2YgZ2F0ZXMgcGVyIGNlbGwsIGhvd2V2
227 ZXIKaXQgaXMgKmVhY2gqIGV4Y2VwdGlvbiBvciBjYW5jZWxsYXRpb24gb3Bwb3J0dW5pdHkgdGhh
228 dCAgcmVxdWlyZXMgdGhlc2UgU2hhZG93cywKb24gYSAqcGVyIEZVIGJhc2lzKiwgYWNyb3NzIGFs
229 bCAqb3RoZXIqIEZVcy4KCmNvbnNlcXVlbnRseSBpIGRlc2lnbmVkIGEgIlNoYWRvdyBNYXRyaXgi
230 IHRoYXQgdGFrZXMgY2FyZSBvZiB0aGF0LgoKPiBCb3RoIHNjaGVtZXMgY2FuIGJlIGRlc2lnbmVk
231 IHRvIGFjaGlldmUgc2ltaWxhciBPT08gYmVoYXZpb3JzLgo+IFRodXMsIG9uZSBjYW5ub3QgZHJh
232 dyBhIHBlcmZvcm1hbmNlIGNvbmNsdXNpb24ganVzdCBieSBzZWVpbmcgd2hpY2gKPiBzY2hlbWUg
233 aXMgYmVpbmcgdXNlZC4KCm5vLiAgaGVuY2Ugd2h5IHdlIGhhdmVuJ3QgZG9uZSB0aGF0IGtpbmQg
234 b2YgYW5hbHlzaXM6IHdlJ3JlIGZvY3Vzc2luZwpvbiBpbXBsZW1lbnRhdGlvbi4KCj4gSWRlYWxs
235 eSB0aGUgYWJvdmUgdGV4dCBzaG91bGQgYmUgdW5jb250cm92ZXJzaWFsLCBwbGVhc2UgbGV0IG1l
236 IGtub3cKPiBpZiB0aGVyZSBpcyBhIGxhcmdlIG1pc3VuZGVyc3RhbmRpbmcgaGVyZS4KCm5vbm8g
237 bG9va3MgZ3JlYXQsIHJlYWxseSBhcHByZWNpYXRlIHRoZSBpbnNpZ2h0cyByYWlzZWQuICB0aGUg
238 bWlzc2luZyBwaWVjZQppcyB0aGUgdHJ1ZSBzaWduaWZpY2FuY2Ugb2YgdGhlIHJvbGUgb2YgdGhl
239 IFNoYWRvdyBNYXRyaWNlcyBhcyBiZWluZyAqdGhlKgpwcm92aXNpb24gb2YgcHJlY2lzZSBleGNl
240 cHRpb24gY2FwYWJpbGl0eSwgc3BlY3VsYXRpb24sIHByZWRpY2F0aW9uLCBldmVyeXRoaW5nLgoK
241 eWVzIGkgYW0gYXdhcmUgdGhhdCB3aXRob3V0ICJwcmVkaWNhdGlvbiBwcmVkaWN0aW9uIiB5ZXMg
242 dGhvc2UgYXJlIHR3bwpkaWZmZXJlbnQgd29yZHMgd2UgZW5kIHVwIHdpdGggZXhhY3RseSB0aGUg
243 c2FtZSBzaXR1YXRpb24gYXMgZm9yIEJyYW5jaApQcmVkaWN0aW9uOiBwcmVkaWNhdGVkIG9wZXJh
244 dGlvbnMgdGhhdCBhcmUgaXNzdWVkLCBjYXVzZSBGVXMgdG8gYmVjb21lCmZ1bGwgLyBhbGxvY2F0
245 ZWQsIHRoYXQgYXJlIGNhbmNlbGxlZCBtb21lbnRzIGxhdGVyIGJlY2F1c2UgdGhlIG1ham9yaXR5
246 Cm9mIHRoZSBwcmVkaWNhdGUgcmVnaXN0ZXIgdHVybnMgb3V0IHRvIGJlIGZ1bGwgb2YgemVyb3Mu
247 Cgp0aGlzIGlzICpub3QqIGEgaGlnaCBwcmlvcml0eSBpdGVtIHJpZ2h0IG5vdyA6KQoKPiBNeSBv
248 cGluaW9uIGlzIHRoYXQgVG9tYXN1bG8ncyBpcyBhIG1vcmUgZWxlZ2FudCBhbmQgd2VsbC1wcm92
249 ZW4gc2NoZW1lCj4gZm9yIGFjaGlldmluZyBPT08gZXhlY3V0aW9uLCBjb21wYXJlZCB0byBhbiBl
250 eHRlbmRlZCBzY29yZWJvYXJkLiBJCj4gYWxzbyBhcmd1ZSB0aGF0IHRoZSBleHRlbmRlZCBzY29y
251 ZWJvYXJkIHNjaGVtZSBkb2VzIG5vdCBwcmVzZW50Cj4gc2lnbmlmaWNhbnQgcG93ZXIvYXJlYSBh
252 ZHZhbnRhZ2VzIGNvbXBhcmVkIHRvIFRvbWFzdWxvJ3MuCgpNaXRjaCBBbHN1cCBpcyBiZXR0ZXIg
253 ZXF1aXBwZWQsIGZyb20gNDAgeWVhcnMgZXhwZXJpZW5jZSBhdCBnYXRlLWxldmVsCmRlc2lnbiAo
254 d2hpY2ggaGUga2VwdCBhbmQgKnJlZmluZWQqIHdoZW4gd29ya2luZyBmb3IgQU1ELCBoZW5jZSBz
255 b21lCm9mIHRoZSBibGlzdGVyaW5nIHdpdGhlcmluZyB3b3JkcyB0byBsZXNzIGV4cGVyaWVuY2Vk
256 LCBsZXNzLWtub3dsZWRnZWFibGUKcGVvcGxlIHRyeWluZyB0byB0ZWxsIGhpbSB0aGF0IEhETHMg
257 d2VyZSBpbmhlcmVudGx5IGJldHRlciksIHRvIGFuc3dlciB0aGlzCm9uZS4KCj4gR2l2ZW4gdGhh
258 dAo+IGVzdGltYXRlcyBvbiBwb3dlci9hcmVhIHRlbmQgdG8gYmUgd2lsZGx5IGluYWNjdXJhdGUs
259 IEkgdGhpbmsgd2Ugd2lsbAo+IGhhdmUgdG8gd2FpdCBmb3IgcG93ZXIgYW5hbHlzaXMgb2YgTGli
260 cmVTb0MgdG8gZ2V0IGEgZGVmaW5pdGl2ZSBhbnN3ZXIKPiB0byB0aGlzIGRlYmF0ZSA6KS4KCmlm
261 IHdlIGhhdmUgdG8gdXNlIERGRnMgcmF0aGVyIHRoYW4gU1IgTkFORCwgdGhlIGFyZ3VtZW50IGlz
262 IGluc3RhbnRseQp3b24gYnkgVG9tYXN1bG8gYmVjYXVzZSB3ZSBoYXZlIHF1aXRlIGxpdGVyYWxs
263 eSBhIDUtZm9sZCBpbmNyZWFzZSBpbgpnYXRlIGNvdW50IHJpZ2h0IGFjcm9zcyB0aGUgYm9hcmQs
264 IGluIGV2ZXJ5IHNpbmdsZSBNYXRyaXguICBTaGFkb3csCkZVLVJlZ3MsIEZVLUZVIC0gdGhlIGxv
265 dC4gIGV2ZXJ5d2hlcmUgeW91IHNlZSBhbiBTUi1MYXRjaCBkaWFncmFtCigyIGdhdGVzKSwgaW5z
266 dGVhZCBhZGQgMTAgZ2F0ZXMgZm9yIGEgREZGLgoKZm9yIHRoZSAxODBubSBBU0lDIHRoaXMgd291
267 bGQganVtcCBhcHByb3hpbWF0ZWx5Li4uLiBtbW0uLi4gMTAsMDAwIGdhdGVzCnVwIHRvIDUwLDAw
268 MC4KCndlIG1heSBoYXZlIHRvIGRvIHRoYXQuICBpdCB3aWxsIHN1Y2suCgo+IEkgZGVlcGx5IGFw
269 b2xvZ2l6ZSBpZiBhbnkgb2YgbXkgdGhvdWdodHMgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMKPiBj
270 cml0aWNpc20uIEkgZnVsbHkgc3VwcG9ydCB0aGlzIGtpbmQgb2YgZXhwbG9yYXRpb24gaW4gT09P
271 IGRlc2lnbi4gSQo+IGFsc28gYXBvbG9naXplIGlmIEkgc2VlbSB0byBzdWdnZXN0IGEgY2hhbmdl
272 IGluIGRlc2lnbiwgYXMgSQo+IHVuZGVyc3RhbmQgdGhhdCBoYXJkd2FyZSBkZXNpZ24gaXMgbm90
273 IG5lYXJseSBhcyBmbGV4aWJsZSBhcyBzb2Z0d2FyZQo+IGRlc2lnbi4KCmFwcHJlY2lhdGVkLCBK
274 ZXJlbXkuICBpZiB0aGlzIGRpc2N1c3Npb24gd2FzIHRha2luZyBwbGFjZSA2IHRvIDEyIG1vbnRo
275 cyBhZ28KdGhlICJtb2RlIiB3ZSB3b3VsZCBiZSBpbiB3YXMgcmFkaWNhbGx5IGRpZmZlcmVudC4g
276 IG5vdyBpcyAiZnVsbC1ib3JlCnRpbWUtY3JpdGljYWwgaW1wbGVtZW50YXRpb24gbW9kZSIsIGFu
277 ZCB3aWxsIGJlIHVudGlsIHRoZSBvdGhlciBzaWRlCm9mIE9jdCAyMDIwLgoKbC4KCl9fX19fX19f
278 X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRldiBt
279 YWlsaW5nIGxpc3QKbGlicmUtcmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRwOi8v
280 bGlzdHMubGlicmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2Cg==
281