[libre-riscv-dev] [Bug 342] formal proof of soc.fu.compunits.FunctionUnitBaseSingle...
[libre-riscv-dev.git] / 0e / cc239311deaa9729b7e85de574ded2198d1602
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 21:50:37 +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 1jZhHw-0001nG-Kn; Fri, 15 May 2020 21:50:36 +0100
8 Received: from mail-lj1-f179.google.com ([209.85.208.179])
9 by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
10 (Exim 4.89) (envelope-from <thejsingher@gmail.com>)
11 id 1jZhHv-0001nA-Be
12 for libre-riscv-dev@lists.libre-riscv.org; Fri, 15 May 2020 21:50:35 +0100
13 Received: by mail-lj1-f179.google.com with SMTP id a21so3656159ljj.11
14 for <libre-riscv-dev@lists.libre-riscv.org>;
15 Fri, 15 May 2020 13:50:35 -0700 (PDT)
16 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
17 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
18 :content-transfer-encoding;
19 bh=5HFxd/eFcpxUFOukBZeFHQGlNZjXYGiUeoZgytxXwtg=;
20 b=FiMaP50BsaWomo/5EUs6pW2RUZkCaRKURxjfiIg8dv/g4eGFe9wWEuJXoL7FGurlwe
21 kBJ8Y9JGfNW65Q37w7UeLMCk7WqPFeoEFnb/PDyyHNLmJA4cOD66NhIPs4a+WOFykR85
22 rJGyVrcbrcJHjVQEoyVRhOoyEAEkVIZI925zroSzuQb2kOHAucVNQWhVEls8S09YkJW9
23 +Sg+Q8wnpjIPdM4z15hk/RTGIKnupSDsWO4mu5lWsmNz9QOD12QHDMaabgHd1ImFfdqf
24 k1lY1irxdJUyXD0zV3AnzM2vepW0uSf/I/i1ve6poHdbYbAs9dEkrapHiNp3TcOt5k9t
25 uvUg==
26 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
27 d=1e100.net; s=20161025;
28 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
29 :message-id:subject:to:content-transfer-encoding;
30 bh=5HFxd/eFcpxUFOukBZeFHQGlNZjXYGiUeoZgytxXwtg=;
31 b=hNpxZ7ULyr3XREuyIE03u33iQKvowLwuzB+kRPxSiLs9h6yd9hrMq79DZy1wF9Njxm
32 PzPufMwFWZ+PzmoM04sRPsD2RtytIv3KNgbTV14PpBkOYp5BstmKzXnTOnuY/sGFSPe/
33 Hxir5ORqOuP9raZJS5Jl1m2Dv++PhQfkAp18o2P55zFF4AfQfEQhDKkJwJ3b4U14r/lb
34 /ZVjrziPYxiX8KJGx7ZJUN+bWIrjs9/T8EiWS8exHAmS95vXS9SFacZP7J6veut8dkbQ
35 Sgb9Fu0eUGXipqGe22/SefP3fpcJ5ciS+Uijqyo1vXwyFjRIobWC0hr+DBlSHJkmcIYi
36 iKHQ==
37 X-Gm-Message-State: AOAM533vEzeGkLHJpnoEvL+nQUU2jXOMGUH4YiD3hu862rBgHyT9lbac
38 WZ1b1uwmJI/UKLhUCvabTjd8qn8R7ltR2GDQD89PhuyI
39 X-Google-Smtp-Source: ABdhPJyd6pdwp0TFjhyHTXXlrsVix/ghp19oGc7t+sg4o4C20QCRIk754CCQY/xgS/9JwxgI7+c9pXIKxM+j0xGyn4k=
40 X-Received: by 2002:a05:651c:50e:: with SMTP id
41 o14mr3475035ljp.52.1589575834307;
42 Fri, 15 May 2020 13:50:34 -0700 (PDT)
43 MIME-Version: 1.0
44 References: <CAEoCstQz36UuDJ+ZUgLRJNeQkA=pTfYuzCr+XgF-FJY9+yJsvA@mail.gmail.com>
45 <747F8870-06C6-46A0-AFD9-D55289D4C41A@gatech.edu>
46 <CAEoCstRUXkB_LxXXubx4A0dhLGvFqq6EPL+GzukDQORpHopaiw@mail.gmail.com>
47 <4BDA96A5-9063-42A6-9548-CAE3CBEBEBAC@gatech.edu>
48 <CAPweEDyZQEBsh8uZ4VkzzALPcoiTgs0AvTmTwS6B0Dc+jy+mfw@mail.gmail.com>
49 In-Reply-To: <CAPweEDyZQEBsh8uZ4VkzzALPcoiTgs0AvTmTwS6B0Dc+jy+mfw@mail.gmail.com>
50 From: Jeremy Singher <thejsingher@gmail.com>
51 Date: Fri, 15 May 2020 13:50:23 -0700
52 Message-ID: <CAEoCstTERH=Z84je148ffL7_yiBYFj_Zet2VfOzkbe86MVmyQQ@mail.gmail.com>
53 To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
54 Subject: Re: [libre-riscv-dev] Introduction and Questions
55 X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
56 X-Mailman-Version: 2.1.23
57 Precedence: list
58 List-Id: Libre-RISCV General Development
59 <libre-riscv-dev.lists.libre-riscv.org>
60 List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
61 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
62 List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
63 List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
64 List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
65 List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
66 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
67 Reply-To: Libre-RISCV General Development
68 <libre-riscv-dev@lists.libre-riscv.org>
69 Content-Type: text/plain; charset="utf-8"
70 Content-Transfer-Encoding: base64
71 Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
72 Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
73
74 PiBhIHRlZW55IHRpbnkgYml0IG92ZXIgd2hhdCB3ZSBpbml0aWFsbHkgcGxhbm5lZCwgdGhlbiA6
75 KQoKVGhhbmtzIEx1a2UsIHRoZXNlIG51bWJlcnMgYXJlIGNsb3NlciB0byB3aGF0IHNlZW1zIHJl
76 YXNvbmFibGUgdG8gbWUuCkEgc2ltcGxlIHN1cGVyc2NhbGFyIGNvcmUgd2l0aCAyIEZQVSBmdW5j
77 dGlvbmFsIHVuaXRzIHNob3VsZCBiZSBhYmxlCnRvIGFjaGlldmUgNCBHRkxPUFMsIHNvIGEgdmVj
78 dG9yIHVuaXQgd291bGQgbmVlZCB0byBnbyBoaWdoZXIgdGhhbgp0aGF0IHRvIGJlIHdvcnRoIHRo
79 ZSBleHRyYSBzaWxpY29uLgoKPiBieSBvdmVybG9hZGluZyAibXVsdGktaXNzdWUiLiAgYSBoYXJk
80 d2FyZSBmb3ItbG9vcCBhdCB0aGUgaW5zdHJ1Y3Rpb24KPiBleGVjdXRpb24gcGhhc2Ugd2lsbCBw
81 dXNoIG11bHRpcGxlIHNlcXVlbnRpYWwgaW5zdHJ1Y3Rpb25zIGludG8gdGhlCj4gT29PIGVuZ2lu
82 ZSBmcm9tIGEgKnNpbmdsZSogaW5zdHJ1Y3Rpb24uCgpJIHNlZSwgc28gYSBmb3JtIG9mIG1pY3Jv
83 LW9wIGZpc3Npb24sIGVzc2VudGlhbGx5IHlvdSBhcmUgZGVjb2RpbmcKY29tcGxleCB2ZWN0b3Ig
84 KG9yICJHUFUiKSBpbnN0cnVjdGlvbnMgaW50byBhIHNlcXVlbnRpYWwgc3RyZWFtIG9mCnNpbXBs
85 ZSBtaWNyby1vcHM/IFRoaXMgc2VlbXMgbGlrZSBhIHByZXR0eSByZWFzb25hYmxlIGRlc2lnbiBw
86 b2ludC4KCj4gdGhlIERJViBwaXBlbGluZSB3aWxsIGJlLi4uIDggKG1heWJlIG1vcmUpLCBNVUwg
87 d2lsbCBiZSAyLCBBREQgKGV0Yy4pIHdpbGwgYmUgMS4KPiAqIGZldGNoOiAxLgo+ICogZGVjb2Rl
88 OiAxLgo+ICogaXNzdWUgYW5kIHJlZy1yZWFkOiAxIChtaW5pbXVtKS4KPiAqIGV4ZWN1dGU6IGJl
89 dHdlZW4gMSBhbmQgOCAobWF5YmUgbW9yZSkKPiAqIHdyaXRlOiAxIChtaW5pbXVtKQoKU28gdGhp
90 cyBpcyBqdXN0IGZvciB0aGUgcHJlbGltaW5hcnkgdGFwZW91dD8gSSB3b3VsZCBleHBlY3QgYW4g
91 T09PCmNvcmUgdGFyZ2V0aW5nIDFHSHorIHRvIGhhdmUgbW9yZSBwaXBlbGluZSBzdGFnZXMgdGhh
92 biB0aGlzICgxMCspLiBUaGUKQTcyLCBTa3lsYWtlLCBaZW4sIGFuZCBCT09NIGFsbCBzZWVtIHRv
93 IHRhcmdldCAxMCsgc3RhZ2VzLgoKPiBiYXNpY2FsbHkgdGhpcyBpcyB3aHkgd2UncmUgZG9pbmcg
94 T29PIGJlY2F1c2UgY29vcmRpbmF0aW5nIGFsbCB0aGF0IGluCj4gYW4gaW4tb3JkZXIgc3lzdGVt
95 IHdvdWxkIGJlIGFic29sdXRlIGhlbGwuCgpJJ20gYSBiaXQgY29uZnVzZWQgbm93LiBJbi1vcmRl
96 ciBleGVjdXRpb24gd2l0aCB2YXJpYWJsZS1sYXRlbmN5CmZ1bmN0aW9uYWwgdW5pdHMgY2FuIGJl
97 IGFjaGlldmVkIHdpdGggYSBzY29yZWJvYXJkLCBhbmQgdGhlIHBpcGVsaW5lCnN0YWdlcyB5b3Ug
98 ZGVzY3JpYmUgcmVtaW5kcyBtZSBvZiBhIGluLW9yZGVyIGNvcmUgd2l0aCBPT08gd3JpdGUtYmFj
99 ay4KSXMgdGhpcyB3aGF0IHlvdSBhcmUgZG9pbmc/IE9yIGFyZSB5b3UgcHVyc3VpbmcgdHJ1ZSBP
100 T08gZXhlY3V0aW9uCndpdGggcmVnaXN0ZXItcmVuYW1pbmc/Cgo+IGl0J3MgZG93biB1bHRpbWF0
101 ZWx5IHRvIGhvdyB3aWRlIHRoZSByZWdpc3RlciBwYXRocyBhcmUsIGJldHdlZW4gdGhlCj4gUmVn
102 ZmlsZSBhbmQgdGhlIEZ1bmN0aW9uIFVuaXRzLiAgaWYgd2UgaGF2ZSBtdWx0aXBsZSBSZWdpc3Rl
103 ciBEYXRhCj4gQnVzZXMsIGFuZCBjYW4gaW1wbGVtZW50IHRoZSBtdWx0aS1pc3N1ZSBwYXJ0IGlu
104 IHRpbWUsIGl0J2xsIGJlIGNvZGVkCj4gaW4gYSBnZW5lcmFsLXB1cnBvc2UgZW5vdWdoIHdheSB0
105 aGF0IHdlIGNvdWxkIGNvbnNpZGVyIDQtaXNzdWUuCj4gaG93ZXZlci4uLiB3aXRob3V0IHRoZSBy
106 ZWdpc3RlciBkYXRhIHBhdGhzLCB0aGVyZSdzIG5vIHBvaW50LgoKRmFpciBlbm91Z2guIEJhbGFu
107 Y2luZyB0aGUgdGhyb3VnaHB1dCBvZiBhbGwgdGhlIGNvbXBvbmVudHMgaW4gYSBPT08KY29yZSBp
108 cyB0cmlja3ksIGFuZCByZWdpc3RlciByZWFkIGNhbiBjZXJ0YWlubHkgYmUgYSBib3R0bGVuZWNr
109 LgoKPiBXZSBoYWQgc29tZSB1bmZvcnR1bmF0ZSBydW4taW5zIHdpdGggQmVya2VsZXkgYW5kIFJJ
110 U0NWIC0gYW5kIHdlIGRlY2lkZWQgdG8gZ28gd2l0aCBQT1dFUiBiZWNhdXNlIHdlIGhhdmUgYWNj
111 ZXNzIHRvIHNvbWUgaW1wb3J0YW50IHJlbGF0aW9ucyBhdCBJQk0KCkhhdmUgeW91IGxvb2tlZCBh
112 dCB0aGUgb3BlbiBSSVNDLVYgbWljcm8tYXJjaGl0ZWN0dXJlcyB0aG91Z2g/IEV2ZW4gaWYKdGhp
113 cyBjb3JlIHJ1bnMgUE9XRVIsIGl0IHNob3VsZCBiZSBub3QgdG9vIGRpZmZpY3VsdCB0byBwb3J0
114 IGRlc2lnbgppZGVhcyBmcm9tIGV4aXN0aW5nIGNvcmVzLCB0byBhdm9pZCByZWludmVudGluZyB0
115 aGUgd2hlZWwgZXZlcnl3aGVyZS4KCgoKT24gRnJpLCBNYXkgMTUsIDIwMjAgYXQgMToxMiBQTSBM
116 dWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uCjxsa2NsQGxrY2wubmV0PiB3cm90ZToKPgo+IGhp
117 IGplcmVteSwgd2VsY29tZS4KPgo+IGhlcmUgeW91IG1heSBoYXZlIG5vdGljZWQsIHRoZXJlIGFy
118 ZSB0d28gY2hpcHM6IHRoZSAxODBubSB0ZXN0IEFTSUMKPiB3aGljaCB3ZSBoYXZlIGEgdGlnaHQg
119 ZGVhZGxpbmUgdG8gbWVldCwgbWlkLWF1Z3VzdCB3ZSBuZWVkIHRvIGZyZWV6ZQo+IHRoZSBkZXNp
120 Z24gYW5kIGltbWVkaWF0ZWx5IG1vdmUgdG8gZG9pbmcgbGF5b3V0IHVzaW5nIENvcmlvbGlzMi4g
121 IHRoaXMKPiBvbmUgd2UgYXJlIGV4dHJlbWVseSB1bmxpa2VseSB0byBldmVuIGhhdmUgRlAgb3Bl
122 cmF0aW9ucy4KPgo+IGJleW9uZCB0aGF0IHdlIGhhdmUgYSBzZWNvbmQgQVNJQyB0byBkbywgdGhl
123 IHF1YWQtY29yZSBTTVAgODAwbWh6Cj4gZHVhbC1pc3N1ZS4gIHRoYXQncyB3aGVyZSB5b3Ugc2F3
124 IHRoZSBudW1iZXJzIGZvci4KPgo+IE9uIEZyaSwgTWF5IDE1LCAyMDIwIGF0IDg6MzMgUE0gWWVo
125 b3dzaHVhIDx5aW1tYW51ZWwzQGdhdGVjaC5lZHU+IHdyb3RlOgo+Cj4gPiBJIGtub3cgd2UgaW5p
126 dGlhbGx5IHdlcmUgdGFyZ2V0aW5nIDVHRkxPUFMgZm9yIHRoZSBHUFUgb24gdGhlIGZpcnN0IHRh
127 cGVvdXQuCj4KPiB0aGlzIHdhcyB0byBiZSA1LTYgR01BQ3MgY2FwYWJpbGl0eSBmb3IgdGhlIHF1
128 YWQtY29yZSBTTVAgODAwbWh6Cj4gZHVhbC1pc3N1ZSAoc2Vjb25kIHRhcmdldCkuICBob3dldmVy
129 Li4uICpzaGVlcGlzaCouLi4gd2Uga2luZGEKPiBkcmFzdGljYWxseSBvdmVyc2hvdCB0aGF0IG9u
130 IHRoZSBpbnRlcm5hbCBhcmNoaXRlY3R1cmUgOikgIGl0IHdhcyB0bwo+IGJlIDUtNiBHTUFDUyB3
131 aGljaCBpcyBvZiBjb3Vyc2UgMTAtMTIgR0ZMT1BTIChGUCBNVUwgYW5kIEZQIEFERCBpbgo+IEZQ
132 TUFDIGNvdW50aW5nIGFzIDIpLgo+Cj4gYWxzbyBlYWNoIGNvcmUgLSBhbGwgZm91ciBvZiB0aGVt
133 IC0gaXMgYXJjaGl0ZWN0ZWQgdG8gaGFuZGxlIGEgbWluaW11bQo+IDEyOC1iaXQtd2lkZSBMT0FE
134 L1NUT1JFIGRhdGEgcGF0aCAoNHggRlAzMiksIGFuZCB0aGVyZSB3aWxsIGJlIDR4IEZQMzIKPiAt
135 IEZNQUNzIC0gcGVyIGNsb2NrIGN5Y2xlLCBiZWNhdXNlIHRoZXkgd2lsbCBiZSBpc3N1ZWQgYXMg
136 MnggNjQtYml0Cj4gb3BlcmF0aW9ucyAoMnggMzItYml0IEZQcyBpbiBlYWNoIDY0LWJpdCkgYW5k
137 IGl0IGlzIGR1YWwgaXNzdWUuCj4KPiA4MDBtaHogeCAyIGlzc3VlIHggMi0zMiBwZXIgNjQtYml0
138 IHggNCA9IDEyLjggR01BQ3Mgd2hpY2ggeDIgYmVjYXVzZQo+IEZQTVVMIGFuZCBGUEFERCBpcyAy
139 IG9wcyA9IDI1LjYgR0ZMT1BzLgo+Cj4gYSB0ZWVueSB0aW55IGJpdCBvdmVyIHdoYXQgd2UgaW5p
140 dGlhbGx5IHBsYW5uZWQsIHRoZW4gOikKPgo+ID4gQmFzaWNhbGx5LCB0aGUgd2F5IHdl4oCZcmUg
141 ZG9pbmcgdGhlIEdQVSBpcyB0aGUgYWRkIGEgdmVjdG9yIEZQVSBhbG9uZyB3aXRoCj4gPiBhY2Nv
142 bXBhbnlpbmcgaW5zdHJ1Y3Rpb25zIGludG8gdGhlIGFjdHVhbCBDUFUuCj4KPiBieSBvdmVybG9h
143 ZGluZyAibXVsdGktaXNzdWUiLiAgYSBoYXJkd2FyZSBmb3ItbG9vcCBhdCB0aGUgaW5zdHJ1Y3Rp
144 b24KPiBleGVjdXRpb24gcGhhc2Ugd2lsbCBwdXNoIG11bHRpcGxlIHNlcXVlbnRpYWwgaW5zdHJ1
145 Y3Rpb25zIGludG8gdGhlCj4gT29PIGVuZ2luZSBmcm9tIGEgKnNpbmdsZSogaW5zdHJ1Y3Rpb24u
146 Cj4KPiA+IFdlIHdvdWxkIHRoZW4ganVzdCB3cml0ZSB0aGUgZHJpdmVycyB0aGF0IHRyYW5zbGF0
147 ZSB2YXJpb3VzIHNoYWRlcnMgYW5kIGRyYXdpbmcKPiA+IGNvbW1hbmRzIGludG8gdmVjdG9yIGlu
148 c3RydWN0aW9ucyB3aGljaCBjYW4gYmUgc2NoZWR1bGVkIG9uIHRoZSBzY29yZWJvYXJkLgo+Cj4g
149 cmF0aGVyIHRoYW4gaGF2aW5nIGEgcmlkaWN1bG91cyAiUmVtb3RlIFByb2NlZHVyZSBDYWxsIiBz
150 eXN0ZW0gdGhhdAo+IHBhY2tzIHVwIFZ1bGthbiAvIE9wZW5HTCBjb21tYW5kcyBpbnRvIGEgc2Vy
151 aWFsIG1hcnNoYWxsZWQgZGF0YSBzdHJlYW0KPiBmcm9tIHRoZSBhcHBsaWNhdGlvbiwgY29tbXVu
152 aWNhdGVkIHRvIHRoZSBrZXJuZWwsIHNoaXBwZWQgb3ZlciBQQ0llIG9yCj4gb3RoZXIgbWVtb3J5
153 IGJ1cyBhcmNoaXRlY3R1cmUsIHVucGFja2VkIGF0IHRoZSBHUFUsIHR1cm5lZCBpbnRvCj4gaW5z
154 dHJ1Y3Rpb25zLCBleGVjdXRlZCwgYW5kIHRoZSByZXN1bHRzIHNoaXBwZWQgKmJhY2sqIHRoZSBv
155 dGhlciB3YXkKPgo+IHRvdGFsIGluc2FuaXR5Lgo+Cj4gPiBSZWFsaXN0aWNhbGx5LCBmb3Igb3Vy
156 IGZpcnN0IHRhcGVvdXQod2XigJlyZSB1c2luZyBHb29nbGXigJlzIHNodXR0bGUgc2VydmljZSBv
157 biAxODAwbm0gVFNNQyksCj4gPiB3ZeKAmWQgZG8gYSBDUFUgd2l0aCBubyB2ZWN0b3IgaW5zdHJ1
158 Y3Rpb25zKGVmZmVjdGl2ZWx5IG5vIEdQVSkgZm9yIE9jdG9iZXIuCj4KPiBzdHJhaWdodCBQT1dF
159 UjkgaG93ZXZlciBzdGlsbCBPb08KPgo+ID4gU2luY2Ugd2XigJlyZSBkb2luZyBGT1NTIGRvd24g
160 dG8gdGhlIFZMU0kgZGVzaWduIGNlbGxzKHdl4oCZcmUgdXNpbmcgVGltZSBBbnNlbGzigJlzIE9w
161 ZW5QREsgYXMgYW4gaW50ZXJtZWRpYXRlKSwgd2UgbmVlZCBzb21lYm9keSB0byBkbyBhIFBMTC4K
162 Pgo+IGEgUHJvZmVzc29yIGZyb20gTElQNiBoYXMgb2ZmZXJlZCB0byBkbyB0aGF0LiAgaSBpbnRy
163 b2R1Y2VkIHlvdSB0byBoaW0KPiBhbmQgVGltLCB5ZWhvd3NodWEuCj4KPiA+IFdpdGggYSBGT1NT
164 IFBMTCBpbiBwbGFjZSwgd2UgY2FuIGdldCAzMDBNSFogb24gdGhlIGZpcnN0IHRhcGVvdXQuIFdl
165 4oCZcmUgZG9pbmcgYSBzaW5nbGUgY29yZSBmb3IgdGhlCj4gPiBmaXJzdCB0YXBlIG91dCwgd2l0
166 aCA2IHN0YWdlcyBJIHRoaW5r4oCmCj4KPiB0aGUgRElWIHBpcGVsaW5lIHdpbGwgYmUuLi4gOCAo
167 bWF5YmUgbW9yZSksIE1VTCB3aWxsIGJlIDIsIEFERCAoZXRjLikgd2lsbCBiZSAxLgo+Cj4gKiBm
168 ZXRjaDogMS4KPiAqIGRlY29kZTogMS4KPiAqIGlzc3VlIGFuZCByZWctcmVhZDogMSAobWluaW11
169 bSkuCj4gKiBleGVjdXRlOiBiZXR3ZWVuIDEgYW5kIDggKG1heWJlIG1vcmUpCj4gKiB3cml0ZTog
170 MSAobWluaW11bSkKPgo+IFBPV0VSOSBoYXMgdXBkYXRlIG1vZGUgZm9yIExEL1NUIHNvIHRob3Nl
171 IHdvdWxkIHRha2UgMSBleHRyYS4gIHNvbWUKPiBBTFUgb3BlcmF0aW9ucyBuZWVkIHRvIHdyaXRl
172 IHRvIHRoZSBDb25kaXRpb24gUmVnaXN0ZXIsIHRoYXQncyBhbm90aGVyCj4gZXh0cmEgMSB3cml0
173 ZSAocG9zc2libHkpLgo+Cj4gZXRjLgo+Cj4gYmFzaWNhbGx5IHRoaXMgaXMgd2h5IHdlJ3JlIGRv
174 aW5nIE9vTyBiZWNhdXNlIGNvb3JkaW5hdGluZyBhbGwgdGhhdCBpbgo+IGFuIGluLW9yZGVyIHN5
175 c3RlbSB3b3VsZCBiZSBhYnNvbHV0ZSBoZWxsLgo+Cj4gPiBXaXRoIG5vIFBMTCwgSSB0aGluayB3
176 ZeKAmXJlIGxpbWl0ZWQgdG8gMjUtNTBNSHouCj4KPiBTdGFmIG1lbnRpb25lZCB0aGF0IHRoZXJl
177 J3Mgbm8gcmVhc29uIHdoeSB3ZSBzaG91bGQgbm90IGF0dGVtcHQgdG8KPiBkcml2ZSB0aGUgZXh0
178 ZXJuYWwgQ0xLIGxpbmUgYXQgMTAwbWh6LiAgaXQgY291bGQgcG90ZW50aWFsbHkgcmFkaWF0ZQo+
179 IEVNIGxpa2Ugc3RpbmssIGhvd2V2ZXIgaXQgbWlnaHQgd29yay4gIHdlJ2xsIHNlZSA6KQo+Cj4g
180 PiBTb21lIHNpbXBsZSBtYXRoIGNvdWxkIGdpdmUgYSBETUlQUyBlc3RpbWF0ZS4KPgo+IGl0J3Mg
181 ZG93biB1bHRpbWF0ZWx5IHRvIGhvdyB3aWRlIHRoZSByZWdpc3RlciBwYXRocyBhcmUsIGJldHdl
182 ZW4gdGhlCj4gUmVnZmlsZSBhbmQgdGhlIEZ1bmN0aW9uIFVuaXRzLiAgaWYgd2UgaGF2ZSBtdWx0
183 aXBsZSBSZWdpc3RlciBEYXRhCj4gQnVzZXMsIGFuZCBjYW4gaW1wbGVtZW50IHRoZSBtdWx0aS1p
184 c3N1ZSBwYXJ0IGluIHRpbWUsIGl0J2xsIGJlIGNvZGVkCj4gaW4gYSBnZW5lcmFsLXB1cnBvc2Ug
185 ZW5vdWdoIHdheSB0aGF0IHdlIGNvdWxkIGNvbnNpZGVyIDQtaXNzdWUuCj4gaG93ZXZlci4uLiB3
186 aXRob3V0IHRoZSByZWdpc3RlciBkYXRhIHBhdGhzLCB0aGVyZSdzIG5vIHBvaW50Lgo+Cj4gaXQg
187 Y29tZXMgZG93biB0byBob3cgbXVjaCB0aW1lIHdlIGhhdmUuCj4KPiBsLgo+Cj4gX19fX19fX19f
188 X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBsaWJyZS1yaXNjdi1kZXYg
189 bWFpbGluZyBsaXN0Cj4gbGlicmUtcmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwo+IGh0
190 dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1k
191 ZXYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpYnJl
192 LXJpc2N2LWRldiBtYWlsaW5nIGxpc3QKbGlicmUtcmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2
193 Lm9yZwpodHRwOi8vbGlzdHMubGlicmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUt
194 cmlzY3YtZGV2Cg==
195