Re: [libre-riscv-dev] load/store execution queue idea
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 1 May 2020 11:24:24 +0000 (12:24 +0100)
committerlibre-riscv-dev <libre-riscv-dev@lists.libre-riscv.org>
Fri, 1 May 2020 11:24:58 +0000 (12:24 +0100)
9b/f2bfafa293fb360290f4250cd3b2d9ee63d457 [new file with mode: 0644]

diff --git a/9b/f2bfafa293fb360290f4250cd3b2d9ee63d457 b/9b/f2bfafa293fb360290f4250cd3b2d9ee63d457
new file mode 100644 (file)
index 0000000..a346955
--- /dev/null
@@ -0,0 +1,177 @@
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Fri, 01 May 2020 12:24:59 +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 1jUTms-0003pb-HP; Fri, 01 May 2020 12:24:58 +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 1jUTmr-0003pV-B3
+ for libre-riscv-dev@lists.libre-riscv.org; Fri, 01 May 2020 12:24:57 +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=AAeNLbzxN4sYlopgZKRPDvjFYKgU4fqmIobb+D5lWS4=; 
+ b=Jx3XC488aOuTIHKdLqpxbfJ8bhEW4RFWkC1dllHs5tr7RgJouG/sOimxoNuxIna/yOR7Ubdko76c7kseK9WR58YYd4czRCPfklOuv8+pxBXGbEYgZtBSM4C47Mia+8CtMV28I/I7TfshfLCRbN1mO72WaLpkXi/eKnpcyuLFxwI=;
+Received: from mail-lf1-f53.google.com ([209.85.167.53])
+ by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
+ (Exim 4.84_2) (envelope-from <lkcl@lkcl.net>) id 1jUTmr-0000Sv-0Z
+ for libre-riscv-dev@lists.libre-riscv.org; Fri, 01 May 2020 11:24:57 +0000
+Received: by mail-lf1-f53.google.com with SMTP id f8so3637619lfe.12
+ for <libre-riscv-dev@lists.libre-riscv.org>;
+ Fri, 01 May 2020 04:24:41 -0700 (PDT)
+X-Gm-Message-State: AGi0PuaQFF1+CsT8QpGRIhOPata0jZ1Yj3N2/wKpRlfQFos+zedfn2Ka
+ l11OAPJCOB2G8dCxMn1ekEWOLO2b+hVXoFForh0=
+X-Google-Smtp-Source: APiQypLWZsNWAj/v8kUQTb2Hy4mFF00EsKYKALioR7TU4L6xo1vNGqn2dLO7Uphb+UQpHBdt3TVc80VuB02Q16dNbFc=
+X-Received: by 2002:ac2:5e26:: with SMTP id o6mr2222262lfg.49.1588332275646;
+ Fri, 01 May 2020 04:24:35 -0700 (PDT)
+MIME-Version: 1.0
+References: <CAC2bXD7uY+dxiA1D5vSoNDVg=xtxgdHQk8DrDbB9nx5ZHbDHrg@mail.gmail.com>
+In-Reply-To: <CAC2bXD7uY+dxiA1D5vSoNDVg=xtxgdHQk8DrDbB9nx5ZHbDHrg@mail.gmail.com>
+From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
+Date: Fri, 1 May 2020 12:24:24 +0100
+X-Gmail-Original-Message-ID: <CAPweEDxCOYfpj6u0w8Nr+r6CWvz24ukQNUU5U1cXrPAVtWK46A@mail.gmail.com>
+Message-ID: <CAPweEDxCOYfpj6u0w8Nr+r6CWvz24ukQNUU5U1cXrPAVtWK46A@mail.gmail.com>
+To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
+Subject: Re: [libre-riscv-dev] load/store execution queue idea
+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>
+
+T24gRnJpLCBNYXkgMSwgMjAyMCBhdCAzOjU0IEFNIEphY29iIExpZnNoYXkgPHByb2dyYW1tZXJq
+YWtlQGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEkgZmlsbGVkIG91dCBzb21lIG5vdGVzIG9uIG15IGxv
+YWQvc3RvcmUgZXhlY3V0aW9uIHF1ZXVlIGlkZWEgaGVyZToKPiBodHRwczovL2xpYnJlLXNvYy5v
+cmcvM2RfZ3B1L2FyY2hpdGVjdHVyZS9hbHRlcm5hdGl2ZS1kZXNpZ24taWRlYS8KCmV4Y2VsbGVu
+dC4KCj4gVGhlIGRlc2lnbiBzaG91bGQgYmUgc3VpdGFibGUgZm9yIHRoZSBmaW5hbCAyOG5tIFNv
+QyBhbmQgc2hvdWxkIGJlCj4gYWJsZSB0byBleGVjdXRlIDQgbG9hZHMgb3IgNCBzdG9yZXMgb3Ig
+NCBBTU9zIG9yIDQgZmVuY2VzIHBlciBjeWNsZSwKPiBjb21wbGV0ZWx5IGFkanVzdGFibGUgdG8g
+c29tZSBvdGhlciBudW1iZXIgaWYgd2UgZGVzaXJlLiBUaGlzIHRvdGFsbHkKPiByZXBsYWNlcyB0
+aGUgbWVtb3J5IGRlcGVuZGVuY3kgbWF0cml4LgoKaG1tLiAgIHRoZSBNRE0gaXMgc3BlY2lmaWNh
+bGx5IGRlc2lnbmVkIHRvIGlkZW50aWZ5IHNlcGFyYXRlIGFuZApkaXN0aW5jdCBMRC1iYXRjaGVz
+IGZyb20gU1QtYmF0Y2hlcyBmcm9tIEF0b21pYy1iYXRjaGVzLCBpbiBhbgpleHRyZW1lbHkgZ2F0
+ZS1lZmZpY2llbnQgZmFzaGlvbi4gIHdlIGRvbid0IG5lZWQgVFNPLCB3ZSBqdXN0IG5lZWQgdG8K
+cHJlc2VydmUgdGhlIG9yZGVyIG9mIGJhdGNoZXMgKGFuZCBhbHNvIGlkZW50aWZ5IG92ZXJsYXBz
+KS4KCgo+IE9uZSBkb3duc2lkZSBpcyBpdCBkb2Vzbid0Cj4gc3VwcG9ydCBmb3J3YXJkaW5nIGZy
+b20gc3RvcmVzIHRvIGxhdGVyIGxvYWRzIHdpdGhvdXQgZ29pbmcgdGhyb3VnaAo+IHRoZSBMMSBj
+YWNoZS4KCnRoYXQncyBvay4KCm9rLCBhIGNyaXRpY2FsIGFzcGVjdCB0byB1bmRlcnN0YW5kIGFi
+b3V0IENvbXB1dGF0aW9uYWwgVW5pdHM6IHRoZXkgZG8KKm5vdCogcHJvY2VlZCB1bnRpbCB0aGUg
+InB1cnBvc2UiIHRoYXQgdGhleSBtYW5hZ2UgaXMgZW50aXJlbHkgZmluaXNoZWQuCnRoZXkgdGhl
+biAqbm90aWZ5KiB0aGUgRGVwZW5kZW5jeSBNYXRyaWNlcyB0aGF0IHRoZSAicmVzdWx0IiBpcyBk
+b25lCihhdmFpbGFibGUpLCBhbmQgKnRoZW4qIHRoZXkgZHJvcCB0aGVpciAiYnVzeSIgZmxhZywg
+cmVhZHkgZm9yIHJlLXVzZSBmb3IKYW5vdGhlciBvcGVyYXRpb24uCgp0aGlzIGlzIHRoZSB0b3Rh
+bCBvcHBvc2l0ZSBvZiBhIHBpcGVsaW5lIG9yIHF1ZXVlLCB3aGVyZSB5b3UgY2h1Y2sgZGF0YQph
+dCBpdCwgYWJkaWNhdGUgcmVzcG9uc2liaWxpdHkgZm9yIGl0cyBtYW5hZ2VtZW50LCBhbmQgYXQg
+c29tZSBhcmJpdHJhcnkKcG9pbnQgaW4gdGhlIGZ1dHVyZSwgdGhlIHJlc3VsdCBjb21lcyBvdXQs
+IGJ1dCBieSB0aGF0IHRpbWUgZXZlcnl0aGluZwpoYXMgbW92ZWQgb24uCgphbiBvdXQtb2Ytb3Jk
+ZXIgc2NoZWR1bGluZyBzeXN0ZW0gKmNhbm5vdCogLSBpbiBhbnkgd2F5IC0gcGVybWl0IHRoYXQK
+dG8gaGFwcGVuLiAgdGhlIHJlc3VsdHMgd291bGQgYmUgY2F0YXN0cm9waGljLgoKdGhlcmVmb3Jl
+IGluIHRoZSBBTFUgQ29tcHV0YXRpb25hbCBVbml0cyB3aGljaCBtYW5hZ2UgYSBwaXBlbGluZQoo
+b3IgcGlwZWxpbmVzKSwgd2UgKm11c3QqIGhhdmUgZXF1YWwgb3IgZ3JlYXRlZCBDb21wVW5pdHMg
+dGhhbgp0aGVyZSBpcyBwaXBlbGluZSBkZXB0aC4KCiogZ3JlYXRlciB0aGFuIHRoYXQgaXMgb2s6
+IGluc3RydWN0aW9ucyB3aWxsIGJlIGFibGUgdG8gcnVuIGFoZWFkLgogIHRoZSBERVNJUkUgdG8g
+cnVuIGluc3RydWN0aW9ucyAoYW5kIHRoZSBvcmRlciBhcyBhIERBRykgaXMKICByZWNvcmRlZCwg
+aG93ZXZlciB0aGVpciBBQ1RVQUwgZXhlY3V0aW9uIG11c3Qgd2FpdCB1bnRpbAogIHRoZXJlIGlz
+IGEgZnJlZSBwaXBlbGluZSBzbG90LgoqIGxlc3MgdGhhbiB0aGF0IGlzIE5PVCByZWFsbHkgb2sg
+KGEgd2FzdGUgb2Ygc2lsaWNvbikgYmVjYXVzZSB0aGVyZQogIGlzIG5vdCBlbm91Z2ggdG8gdHJh
+Y2sgdGhlIHByb2dyZXNzIG9mIGVhY2ggYW5kIGV2ZXJ5IG9wZXJhdGlvbgogIGdvaW5nIHRocm91
+Z2ggZWFjaCBhbmQgZXZlcnkgcGlwZWxpbmUgc3RhZ2UuCgp3aGVuIGl0IGNvbWVzIHRvIG1hbmFn
+aW5nIE1lbW9yeSwgdGhlIGltcGxpY2F0aW9ucyBhcmUgYXMgZm9sbG93czoKCiogdG8gaGF2ZSBt
+b3JlIExEL1NUIENvbXB1dGF0aW9uIFVuaXRzIHRoYW4gdGhlcmUgYXJlICJDZWxscyIKICBpcyBs
+aWtld2lzZSBvay4gIGluc3RydWN0aW9ucyB3aWxsIGJlIGFibGUgdG8gcnVuIGFoZWFkLgoqIHRv
+IGhhdmUgTEVTUyBMRC9TVCBDVXMgdGhhbiB0aGVyZSBhcmUgIkNlbGxzIiBpcyAqTk9UKiBvaywK
+ICBiZWNhdXNlIHRoZSBDb21wdXRhdGlvblVuaXRzIHdpbGwgTkVWRVJSUlJSIGlzc3VlIGEKICBM
+RCBvciBTVCB1bnRpbCBpdCBrbm93cyAtIGFic29sdXRlbHkgYW5kIHdpdGhvdXQgYW55IHNoYWRv
+dyBvZgogIGRvdWJ0IC0gdGhhdCB0aGUgb3BlcmF0aW9uIGl0IG1vbml0b3JzIGhhcyAxMDAlIGFi
+c29sdXRlIGd1YXJhbnRlZWQKICBjb21wbGV0ZWQuCgpzbyB0aGF0J3MgcmVhbGx5IGNydWNpYWwg
+aW5mb3JtYXRpb24gdGhhdCBoYXMgaW1wbGljYXRpb25zIGZvciB0aGUKZGVzaWduIG9mIHRoZSBM
+RC9TVCBCdWZmZXIsIGltcG9ydGFudCBhcyBjb250ZXh0LCBiZWxvdy4KCgpub3RlczoKCjEpIHRo
+ZSBjZWxsIGFycmFuZ2VtZW50IHN0aWxsIG5lZWRzIGFuIDgtaW5wdXQgKDggTEQvU1QgQ29tcHV0
+YXRpb24gVW5pdHMpCnRvIDQtb3V0cHV0IChoZWFkIG9mIGVhY2ggImNvbHVtbiIgb2YgZWFjaCBx
+dWV1ZSkgbXVsdGlwbGV4ZXIuCnVubGVzcyBpJ3ZlIG1pc3VuZGVyc3Rvb2QsIHRoYXQgYWxvbmUg
+aXMgYSBraWxsZXIuCgpkcm9wcGluZyBlYWNoIG9mIHRoZSA4LWlucHV0IHF1ZXVlIGVudHJpZXMg
+aW50byB0aGUgZmlyc3QgOCBjZWxscyAqdGhlbioKcGVyZm9ybWluZyBzaGlmdGluZywgKnRoYXQq
+IGlzIG9rYXkuICBidXQgYWxsb3dpbmcgZWFjaCBhbmQgZXZlcnkgc2luZ2xlCm9uZSBvZiB0aG9z
+ZSA4IExEL1NUIENvbXBVbml0cyB0byB3cml0ZSB0byBjZWxscyAwLTQ/IHRoZSB3aXJpbmcgYWxv
+bmUKaXMgaW5zYW5lLgoKYXNzdW1lIDEyOCBiaXRzIHBlciBvcGVyYXRpb24gKDQ4IGFkZHJlc3Ms
+IDY0IGRhdGEsIHNvbWUgY29udHJvbCBsaW5lcwpsZXQncyByb3VuZCBpdCB1cCB0byAxMjggYml0
+cyk6IHdpdGggMTI4LXdpZGUgZGF0YSBwYXRocyB0aW1lcyA4IExEL1NUCkNvbXAgVW5pdHMgdGlt
+ZXMgKjQqIHRvIGJlIGFibGUgdG8gYXJiaXRyYXJpbHkgd3JpdGUgdG8gYW55IG9uZSBvZgo0ICJ0
+b3Agcm93IiBjZWxscz8gIHRoYXQncyBhIE1BU1NJVkUgNDA5NiB3aXJlcyEKCndlIGNhbid0IHBv
+c3NpYmx5IGhhdmUgdGhhdCBtYW55IHdpcmVzLgoKaWYgeW91IG1lYW50IHRoYXQgdGhlIHF1ZXVl
+IHdpZHRoIHNob3VsZCBtYXRjaCB0aGUgbnVtYmVyIG9mIExEL1NUClVuaXRzIC0gOC13aWRlIGJl
+Y2F1c2Ugd2UgbmVlZCA4IExEL1NUIENvbXBVbml0cyAod2UgbWlnaHQgYmUKYWJsZSB0byBnZXQg
+YXdheSB3aXRoIG9ubHkgNikgLSB0aGVuIHRoZSByZW1haW5pbmcgZW50cmllcyB3aWxsIGFjdHVh
+bGx5CnJlbWFpbiBwZXJtYW5lbnRseSBlbXB0eSwgYmVjYXVzZSB0aGVyZSAqaGFzKiB0byBiZSBh
+IGRpcmVjdApvbmUtdG8tb25lIG1hdGNoIGJldHdlZW4gTEQvU1QgQ29tcFVuaXRzIGFuZCB0aGUg
+TEQvU1QgdGhhdAppdCAibWFuYWdlcyIuCgpzbyB0aGVyZSB3b3VsZCBvbmx5IGJlIDggTEQvU1Rz
+LCBhbmQgYSByb3cgZGVwdGggb2YgMS4KCmlmIGhvd2V2ZXIgd2UgZG8gMi1wb3J0cyBwZXIgQ29t
+cFVuaXQgKHRvIGNvdmVyIG1pc2FsaWduZWQpLCB0aGVuIHRoZXJlCndvdWxkIGJlIGFuIDgtd2lk
+ZSBieSAyLXJvdyBhcnJhbmdlbWVudCBvZiBDZWxscy4KCndpdGggb25seSBhIENlbGwgRGVwdGgg
+b2YgMSBvciAyLCB0aGUgcHVycG9zZSAqb2YqIHRoZSBDZWxscyBpcyBkZWZlYXRlZAplbnRpcmVs
+eS4gIHRoZXJlJ3Mgbm8gbmVlZCBmb3Igc2hpZnRpbmc6IHRoZSBlbnRyaWVzIG1pZ2h0IGFzIHdl
+bGwgc3RheQp3aGVyZSB0aGV5IGFyZS4KCnRoaXMgcGFydGljdWxhcmx5IGJlY2F1c2UgZXZlbiBm
+b3IgdGhlICJtaXNhbGlnbm1lbnQiIGNhc2UsIHRoZSBMRC9TVApDb21wVW5pdCBpcyAqTkVWRVJS
+UiogZ29pbmcgdG8gcGxhY2UgYW55dGhpbmcgb3RoZXIgdGhhbiB0aGUKMiByZXF1ZXN0cyBpdCBp
+cyByZXNwb25zaWJsZSBmb3IgaW50byB0aGUgcXVldWU6CgoqIGZpcnN0IG9uZSBjb3ZlcmluZyB0
+aGUgbG93ZXIgcGFydCBvZiB0aGUgbWlzYWxpZ25lZCByZXF1ZXN0Ciogc2Vjb25kIG9uZSBjb3Zl
+cmluZyB0aGUgdXBwZXIgcGFydC4KCm5vIG1hdHRlciBob3cgbWFueSBjb2x1bW5zIChhc3N1bWlu
+ZyB0aGF0IHRoZXJlIGlzIG9uZQpwZXIgTERTVENVKSBhbGwgb3RoZXIgcm93cyAqd2lsbCogcmVt
+YWluIGVtcHR5LgoKYW5kIGlmIHRoZSBjb2x1bW5zIGFyZSBoYWx2ZWQgKDQgd2lkZSB0byBjb3Zl
+ciA4IExEL1NUIENVcykKbm93IHdlIGhhdmUgYSBtdWNoIG1vcmUgc2VyaW91cyBwcm9ibGVtOiB0
+aGUgdG90YWwgZGF0YSBiYW5kd2lkdGgKaXMgc2hydW5rIHRvIG9ubHkgNHggNjQtYml0IG9wZXJh
+dGlvbnMgKmFuZCogdGhlcmUgaXMgYSBtdWx0aXBsZXhpbmcKcHJvYmxlbSBhY3R1YWxseSBnZXR0
+aW5nIGRhdGEgaW50byB0aGUgZmlyc3QgMiByb3dzIChhY3R1YWxseSwgbm93LAo0IHJvd3MgaWYg
+dGhlcmUgYXJlIDIgcG9ydHMgcGVyIExEL1NUIENVLCBvbmUgZm9yIGxvd2VyLW1pc2FsaWduZWQK
+b25lIGZvciB1cHBlci1taXNhbGlnbmVkKS4KCmRvIHdlIHN0YWxsIHRoZSByZXF1ZXN0cyBpZiB0
+aGV5IGRvIG5vdCBoYXZlIGFjY2Vzcz8gIHRoYXQgbWVhbnMKdGhhdCBvcHBvcnR1bml0aWVzIHRv
+IGtlZXAgdGhlIEwxIGNhY2hlLWxpbmUgcmVxdWVzdHMgMTAwJSBmdWxsCmFyZSBtaXNzZWQsIHdo
+ZXJlIHRoZSBjdXJyZW50IGRlc2lnbiBjYW4gKmV2ZW4gY2F0Y2ggbWlzYWxpZ25lZAplbGVtZW50
+LXN0cmlkZWQgZGF0YSByZXF1ZXN0cyogYW5kIGNhbiAxMDAlIG1lcmdlIHRoZW0gaW50bwphIGZ1
+bGwgY2FjaGUtbGluZSByZXF1ZXN0LgoKCgoiYW5kIHRoZSBMMSBjYWNoZSBsaW5lIGFkZHJlc3Mg
+aXQgd291bGQgdXNlIGlzIGJyb2FkY2FzdCB0byBhbGwgY2VsbHMuIgoKdGhpcyBpcyBhIGZ1bGwg
+WE9SLWNvbXBhcmlzb24gb2YgdGhlIGVudGlyZSBhZGRyZXNzLCBhZ2FpbnN0IGV2ZXJ5IHNpbmds
+ZSBjZWxsLgoKaWYgdGhlIGFkZHJlc3MgaXMgNDggYml0cyBhbmQgdGhlcmUgYXJlIDEyIGNlbGxz
+LCB1c2luZyBiaXRzIDMgYW5kIGFib3ZlIG9mCnRoZSBhZGRyZXNzIHdpbGwgcmVxdWlyZSA1Mjgg
+WE9SIGdhdGVzLgoKaWYgd2Ugd2FudCAqdHdvKiBMMSBjYWNoZSBsaW5lIGFkZHJlc3NlcyBzaW11
+bHRhbmVvdXNseSAocmF0aGVyIHRoYW4KZ29pbmcgdG8gMjU2LWJpdC13aWRlIEwxIGNhY2hlIGxp
+bmVzKSwgdGhhdCdzICp0d28qIGJyb2FkY2FzdHMsIGVhY2ggNTI4ClhPUiBnYXRlcy4KCgoyKSBo
+b3cgYXJlIG92ZXJsYXBwaW5nIGFkZHJlc3NlcyBkZXRlY3RlZD8gIG9yLCBtb3JlIHRvIHRoZSBw
+b2ludCwKaG93IGFyZSBub24tb3ZlcmxhcHBpbmcgYWRkcmVzc2VzIGRldGVjdGVkIHN1Y2ggdGhh
+dCB0aGV5IGNhbiBiZQpwYXNzZWQgdGhyb3VnaCBhcyBhIGdyb3VwLCBhbmQgZ2l2ZW4gdGhlIG9w
+cG9ydHVuaXR5IHRvIGJlIGRvbmUgaW4KcGFyYWxsZWw/CgozKSBob3cgd291bGQgbWlzYWxpZ25l
+ZCBhZGRyZXNzZXMgaGFuZGxlZD8KCjQpIGknbSBub3Qgc2VlaW5nIGhvdyByZXF1ZXN0cyBjb3Vs
+ZCBiZSBtZXJnZWQgaW50byAiMTAwJSBmdWxsIGNhY2hlCmxpbmUiIHJlcXVlc3RzLCB3aGljaCB0
+aGUgY3VycmVudCBkZXNpZ24gaXMgY2FwYWJsZSBvZiBkb2luZywgYnkgdXNpbmcKc2ltcGxlIGJp
+dC13aXNlIEFORGluZyBhbmQgT1JpbmcuICB0aGUgQWJzdHJhY3QgUHJlZml4IFN1bSBjbGFzcwpk
+b2Vzbid0IGxvb2sgb2J2aW91cyBhcyB0byBob3cgdGhhdCBoYXBwZW5zLCBhbmQgaXMgbGlrZWx5
+IHRvIGJlCm11Y2ggbW9yZSBjb3N0bHkgdGhhbiBhIHNpbXBsZSBBTkQgYW5kIE9SIG5ldHdvcmsu
+Cgo1KSBob3cgYXJlIGNsYXNoZXMgb2YgYWRkcmVzc2VzICppbnRlci1yb3cqIGRldGVjdGVkPyAg
+aWYgQ2VsbCAwIGhhcyBhIFNUCm9mIDgtYml0cyB0byBhZGRyZXNzIDB4MDAwMSBhbmQgQ2VsbCAx
+IGhhcyBhIFNUIG9mIDggYml0cyB0byBhZGRyZXNzCjB4MDAwMiAoYSA3IGJ5dGUgb3ZlcmxhcCks
+IGhvdyBpcyB0aGlzIGRldGVjdGVkICppbiB0aGUgcm93Kj8KCmluIHRoZSBjb2x1bW4gaXQgaXMg
+ZmluZSwgYmVjYXVzZSBvbmx5IG9uZSByb3cgaXMgZXZlciBkb25lIGF0IG9uY2UKKHdoaWNoIGhh
+cyBpbXBsaWNhdGlvbnMgZm9yIG1pcy1hbGlnbmVkIGRhdGEgcmVxdWVzdHMsIHRoZXJlIHdpbGwg
+bmV2ZXIKYmUgYSAxMDAlIG1lcmdlIG9wcG9ydHVuaXR5KQoKCmFsbCBvZiB0aGVzZSB0aGluZ3Mg
+dG9vayBzZXZlcmFsICptb250aHMqIHRvIGZhY3RvciBpbiB0byB0aGUgZGVzaWduLCBpbgpzZXZl
+cmFsIHN0YWdlcy4gIGl0J3MgbWFzc2l2ZWx5IGNvbXBsZXggYW5kIGludGVyLWRlcGVuZGVudC4K
+CmwuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaWJy
+ZS1yaXNjdi1kZXYgbWFpbGluZyBsaXN0CmxpYnJlLXJpc2N2LWRldkBsaXN0cy5saWJyZS1yaXNj
+di5vcmcKaHR0cDovL2xpc3RzLmxpYnJlLXJpc2N2Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpYnJl
+LXJpc2N2LWRldgo=
+