From 04865f7b29f7667661cd043eee9d117463acd4e4 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Sun, 17 May 2020 01:53:34 +0100 Subject: [PATCH] Re: [libre-riscv-dev] Scoreboard vs Tomasulo --- 6d/51e49cca71873c99e550b7c24ebc837346b975 | 281 ++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 6d/51e49cca71873c99e550b7c24ebc837346b975 diff --git a/6d/51e49cca71873c99e550b7c24ebc837346b975 b/6d/51e49cca71873c99e550b7c24ebc837346b975 new file mode 100644 index 0000000..a624555 --- /dev/null +++ b/6d/51e49cca71873c99e550b7c24ebc837346b975 @@ -0,0 +1,281 @@ +Return-path: +Envelope-to: publicinbox@libre-riscv.org +Delivery-date: Sun, 17 May 2020 01:54:10 +0100 +Received: from localhost ([::1] helo=libre-riscv.org) + by libre-soc.org with esmtp (Exim 4.89) + (envelope-from ) + id 1ja7ZC-0002wt-4W; Sun, 17 May 2020 01:54:10 +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 ) id 1ja7ZA-0002wn-52 + for libre-riscv-dev@lists.libre-riscv.org; Sun, 17 May 2020 01:54:08 +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=u3tGbz4P5nDXRAkbWRqVg5zss8msmX8jpRQhvx4WpmM=; + b=nHtf6eORa+LYX5DdAGtFCoU0SVK4n1MiUZrgPAGQiMwmP2EJquIE+jV5MXLRVwKEeUu9HRRdoAU0VQ1BiGkuWIuxDLHyI8PTWoDRHwitwojU/PnyLAa6o9wMXBmRFCYdsJyF0UwcVmCuRRdmlhOvg0FH0utN+TKrzPVXOsiKwP4=; +Received: from mail-lj1-f169.google.com ([209.85.208.169]) + by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) + (Exim 4.84_2) (envelope-from ) id 1ja7Z9-0007l2-Px + for libre-riscv-dev@lists.libre-riscv.org; Sun, 17 May 2020 00:54:07 +0000 +Received: by mail-lj1-f169.google.com with SMTP id g4so6103102ljl.2 + for ; + Sat, 16 May 2020 17:53:52 -0700 (PDT) +X-Gm-Message-State: AOAM531I+cZ9mv9ftX65zuCmdWwTlwq2Ft/zxh3V6ye5k0jrnXb1TJDX + L29TAUkZ3c09nU7rN3qfaix3/ZuI+8+CJ1CdhY0= +X-Google-Smtp-Source: ABdhPJxJfpix8kDLn0AsyQt0xRuGMJVpVXNvTrHaSSBdwNKIrRLmXzgcVanmvKkPEurrjiewNKncj55w61+As51r9fA= +X-Received: by 2002:a2e:9081:: with SMTP id l1mr5920201ljg.81.1589676826461; + Sat, 16 May 2020 17:53:46 -0700 (PDT) +MIME-Version: 1.0 +References: <13EDF987-9A19-4C96-89C2-6DB784CF2C96@gatech.edu> + + + + <25AC8A2E-D48F-439F-AF9D-0EB3DC08D7CC@gatech.edu> + + + + +In-Reply-To: +From: Luke Kenneth Casson Leighton +Date: Sun, 17 May 2020 01:53:34 +0100 +X-Gmail-Original-Message-ID: +Message-ID: +To: Libre-RISCV General Development +Subject: Re: [libre-riscv-dev] Scoreboard vs Tomasulo +X-BeenThere: libre-riscv-dev@lists.libre-riscv.org +X-Mailman-Version: 2.1.23 +Precedence: list +List-Id: Libre-RISCV General Development + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Reply-To: Libre-RISCV General Development + +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" + +T24gU2F0LCBNYXkgMTYsIDIwMjAgYXQgMTE6NDUgUE0gSmVyZW15IFNpbmdoZXIgPHRoZWpzaW5n +aGVyQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBJIGhhdmUgZmluYWxseSBmaW5pc2hlZCBwYXJzaW5n +IE1pdGNoJ3MgY2hhcHRlcnMsIGFuZCBub3cgSSBzZWUgd2hhdAo+IHRoZSBwcmltYXJ5IGNvbmZ1 +c2lvbiBpcyBmcm9tLiBUaGUgc2NvcmVib2FyZCBiZWluZyBkZXZlbG9wZWQgaGVyZSBoYXMKPiBi +ZWVuIHJlZmVycmVkIHRvIGluIHRoZSBtYWlsaW5nIGxpc3RzIGFzIGEgIkNEQyA2NjAwLWxpa2Ui +IHNjb3JlYm9hcmQsCj4gd2hpbGUgaW4gcmVhbGl0eSwgdGhlIGZpbmFsIGRlc2lnbiBpcyBmYXIg +ZXh0ZW5kZWQgZmFyIGJleW9uZCB0aGUKPiBvcmlnaW5hbCBDREMgNjYwMCBpbXBsZW1lbnRhdGlv +bi4KCnllcy4gIHdlbGwuLi4gIGZhciBiZXlvbmQgaXQgaW4gKmZ1bmN0aW9uYWxpdHkqLCBidXQg +bm90IHRoYXQgZmFyIGluCnRlcm1zIG9mIGdhdGUKY291bnQgW2NhdmVhdDogaWYgd2Ugd2VyZSBv +bmx5IGRvaW5nIHRoZSBzYW1lIDMgcmVnZmlsZXMsIEEgQiBhbmQgWC4KYXMgd2UgYXJlIGRvaW5n +IDMyeCBJTlQsIDMyeCBGUCwgcGx1cyBTUFIgcmVncyAqYW5kKiBDb25kaXRpb24gUmVncwphbGwg +dW5kZXIgdGhlIGNvbnRyb2wgb2YgRGVwZW5kZW5jeSBNYXRyaWNlcywgYSBkaXJlY3QgY29tcGFy +aXNvbiBpcyB1bmZhaXJdCgpvaC4gIGFoLiAgb25lIGRlZmluaXRlIGVuaGFuY2VtZW50OiBpbiB0 +aGUgZGlhZ3JhbXMgeW91IHNlZSBpbiBNaXRjaCdzCmNoYXB0ZXJzLCB0aGVyZSBpcyBvbmx5IG9u +ZSBHTy1SRUFEIGFuZCBvbmx5IG9uZSBHTy1XUklURS4gIG9uZSBHTy1SRUFECmluZGljYXRlcyBh +IGRlc2lyZSB0byByZXF1ZXN0ICptdWx0aXBsZSogUmVnZmlsZSBSZWFkIHBvcnRzLgoKYmVjYXVz +ZSBQT1dFUjkgaGFzIGluIHNvbWUgY2FzZXMgdXAgdG8gKmZpdmUqIGluY29taW5nIHJlZ2lzdGVy +cyBhbmQKKnRocmVlKiBvdXRnb2luZyByZWdpc3RlcnMgKGluIGRpZmZlcmVudCBSZWdmaWxlcyAt +IElOVC9GUCwgU1BSLCBDUiksIHdlIG5lZWRlZAp0byBzcGxpdCB0aG9zZSBvdXQgaW50byBpbmRp +dmlkdWFsIGxpbmVzLiAgR08tUkVBRDEvUkVBRC1SRVExLApHTy1SRUFEMi9SRUFELVJFUTIgZXRj +LgoKY3VycmVudGx5IGkgYW0gc3RydWdnbGluZyB3aXRoIHRoaXMgRlNNIHdoaWNoIGltcGxlbWVu +dHMgMy1vcGVyYW5kIGluLAppbW1lZGlhdGVzLCAyLW9wZXJhbmQgb3V0ICphbmQqIG1hbmFnZXMg +dGhlIGFkZHJlc3MsIEdPLVNULCBhZGRyZXNzCmV4Y2VwdGlvbnMgYW5kIGRlYWxzIHdpdGggUE9X +RVI5IExEL1NUICJVcGRhdGUiIG1vZGUuCgpodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfZ3B1L2xk +X3N0X2NvbXBfdW5pdC5qcGcKCnRoaXMgaSByZWFhYWFsbHkgbmVlZCBzb21lIGhlbHAgd2l0aC4K +Cgo+IEkgd291bGQgc3VnZ2VzdCBub3QgY2FsbGluZyBpdCBhCj4gIkNEQyA2NjAwLWxpa2Ugc2Nv +cmVib2FyZCIgaW4gdGhlIGZ1dHVyZSwgaW5zdGVhZCBhICJleHRlbmRlZAo+IHNjb3JlYm9hcmQi +IGlzIG1vcmUgYWNjdXJhdGUuCgphcHByZWNpYXRlZC4gIGlmIHlvdSBjb3VsZCBjb25zaWRlciBo +ZWxwaW5nIGNoYW5nZSB0aGUgd2lraSB0byByZWZsZWN0IHRoaXMgKGFuZApoZWxwIHVzIHRvIG1h +aW50YWluIHRoZSBhZHZhbnRhZ2VzIGJlbG93KSB0aGlzIHdvdWxkIGJlIGZhbnRhc3RpYy4KCmkn +dmUgdXNlZCBhIHJhbmdlIG9mIHRlcm1zIC0gImF1Z21lbnRlZCA2NjAwIHNjb3JlYm9hcmQiLCBh +bmQgb3RoZXJzLgp0aGUgaGlzdG9yaWMKbGluayBhbmQgdGhlIGVmZmVjdGl2ZSByZXZpdmFsIG9m +IHNvbWV0aGluZyBsb25nLWZvcmdvdHRlbiB3aGljaCB3YXMKYm90aCBlbGVnYW50CmFuZCBzdGFn +Z2VyaW5nbHkgZ2F0ZS1lZmZpY2llbnQgKG91dCBvZiBuZWNlc3NpdHkpOiBpIGRvbid0IHdhbnQg +dG8gdXNlIHRoZSB3b3JkCiJwb2xpdGljYWwiIGluIGFueSBzZW50ZW5jZSBob3dldmVyIHRoZXJl +IGlzIGEgY29uc2lkZXJhYmxlIHB1YmxpY2l0eQoid293IGZhY3RvciIKdG8gZG9pbmcgc29tZXRo +aW5nIGFzIHN1cnByaXNpbmcgYXMgcmV2aXZpbmcgYSA1NS15ZWFyLW9sZCBkZXNpZ24uCgpzaW5j +ZSBpbnRlcmFjdGluZyB3aXRoIE1pdGNoIEFsc3VwIGxhc3QgeWVhciwgeW91J3JlIHRoZSBmaXJz +dCBhZGRpdGlvbmFsIHBlcnNvbgp0byBhY3R1YWxseSBkbyBhbnkga2luZCBvZiBzaWduaWZpY2Fu +dCBhbmFseXNpczogY29uc2VxdWVudGx5IHRlcm1pbm9sb2d5IGhhcwpub3QgcmVhbGx5IGJlZW4g +ZGlzY3Vzc2VkLi4uIGJlY2F1c2UgdGhlcmUgd2Fzbid0IGFueW9uZSB0byBkaXNjdXNzIGl0IHdp +dGghCgo+IExldCBtZSB0cnkgdG8gY29tcG9zZSBteSB0aG91Z2h0cy4KPiBJbiBvcmRlciBmb3Ig +T09PIGV4ZWN1dGlvbiB0byBiZSBwb3NzaWJsZSwgd3JpdGUgZGF0YSBmcm9tCj4gc3BlY3VsYXRp +dmVseSBleGVjdXRlZCBpbnN0cnVjdGlvbnMgbXVzdCBiZSBidWZmZXJlZCwgZm9yIGluIHRoZSBj +YXNlCj4gb2YgbWlzc3BlY3VsYXRpb24sIHRoZXkgbXVzdCBub3QgYmUgYWxsb3dlZCB0byBjb21t +aXQgaW50byB0aGUKPiBhcmNoaXRlY3R1cmFsIHJlZ2lzdGVyIGZpbGUuCgptaXMtc3BlY3VsYXRp +b24sIExEL1NUIHBhZ2UtZmF1bHRzLCBwcmVkaWNhdGVkIGluc3RydWN0aW9ucyB3aGVyZSB0aGUg +b3BlcmFuZAp0aGF0IGNvbnRhaW5zIHRoZSBiaXRtYXNrIGlzIGluIGEgcmVnaXN0ZXIgdGhhdCBo +YXMgbm90IGJlZW4gcmVhZCB5ZXQsIGFuZCBldmVuCnNpbXBsZSBleHRlcm5hbCBOTUkgaW50ZXJy +dXB0czogYWxsIG9mIHRoZXNlIG5lZWQgYSBtZWFucyBhbmQgbWV0aG9kIG9mCmtpbGxpbmcgaW4t +ZmxpZ2h0IGRhdGEsIHllcy4KCj4gSW4gVG9tYXN1bG8ncywgc3BlY3VsYXRpdmUgd3JpdGUgZGF0 +YSBhcmUgaGVsZCBpbiBwaHlzaWNhbGx5IHJlbmFtZWQgcmVnaXN0ZXJzLgo+IEluIHRoZSBleHRl +bmRlZCBzY29yZWJvYXJkIHNjaGVtZSwgc3BlY3VsYXRpdmUgd3JpdGUgZGF0YSBhcmUgaGVsZCBp +bgo+IGNvbXB1dGUgdW5pdCBsYXRjaGVzLgoKdGhlc2UgdHdvIGVmZmVjdGl2ZWx5IGhhdmluZyBh +IHZlcnkgbG93IExldmVuc2h0ZWluIGRpc3RhbmNlLCBidXQgbm90IHF1aXRlCnplcm8uCgoqIGlu +IFRvbWFzdWxvLCB0aGUgcmVhc29uIGZvciB0aGUgZXhwbGljaXQgcmVuYW1pbmcgaXMgZG93biB0 +byB0aGUgMkQKbmF0dXJlIG9mIFJTJ3MuCiAgaGVuY2UgdGhlIFJPQiByb3cgbnVtYmVyIG5lZWRz +IHRvIGJlIHN0b3JlZCBpbiB0aGUgUlMKCiogaW4gZXh0ZW5kZWQtc2NvcmVib2FyZCwgdGhlIEZV +J3MgaW5kZXggLyBjb2x1bW4tbnVtYmVyICppcyogdGhhdCAibmFtZSI7CiAgd2l0aCB0aGVyZSBv +bmx5ICpiZWluZyogYSBvbmUtdG8tb25lIHBhdGgsIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGEKbmFt +ZSAqYXQgYWxsKiwKICBoZW5jZSB3aHkgaSByZWZlciB0byB0aGUgQ1UgbGF0Y2hlcyBhcyAibmFt +ZWxlc3MgcmVnaXN0ZXJzIi4KCiAgdGhlIFJPQiByb3cgbnVtYmVyICppcyogdGhlIEZVIG51bWJl +ciB3aGljaCAqaXMqIHRoZSByZW5hbWVkLXJlZ2lzdGVyLW51bWJlcgogIGFuZCBjb25zZXF1ZW50 +bHkgYnkgYmVpbmcgb25lLXRvLW9uZSBpbiBldmVyeSBhc3BlY3QsIG5lZWRzIG5vIG5hbWUuCgp0 +aGlzIGFzcGVjdCBvZiA2NjAwIHNjb3JlYm9hcmRzIC0gdGhlIGNvbXBsZXRlIGxhY2sgb2YgbmFt +aW5nIGFuZCBldmVuIHRoZQpsYWNrIG9mIHNpZ25pZmljYW5jZSBkcmF3biB0byBpdCBldmVuIGJ5 +IEphbWVzIFRob3JudG9uIGhpbXNlbGYgaW4gaGlzIGJvb2ssCmFuZCBjZXJ0YWlubHkgaW4gdGhl +IHBhdGVudHMsIGlzIHdoeSB0aGUgNjYwMCBpcyAqYmVsaWV2ZWQqIG5vdCB0byBoYXZlIHJlZ2lz +dGVyCnJlbmFtaW5nIG9mICphbnkqIGtpbmQuCgphaCAtIG9uZSBvdGhlciByZWFsbHkgY3JpdGlj +YWwgdGhpbmcgKGkgd2lsbCBhZGQgdG8gdGhlIHBhZ2UpOgoKKiBUb21hc3VsbyBST0IgUm93IG51 +bWJlcnMgcHJlc2VydmUgaW5zdHJ1Y3Rpb24gb3JkZXIgdGhyb3VnaCBzZXF1ZW50aWFsCiAgIG51 +bWJlcmluZyBieSB0aGUgYWN0dWFsIHJvdyBudW1iZXIKCiogNjYwMCBzY29yZWJvYXJkcyBwcmVz +ZXJ2ZSBpbnN0cnVjdGlvbiBvcmRlciBpbiB0aGUgRlUtRlUgTWF0cml4IHdpdGgKICBhIE54TiBi +aXQtbGV2ZWwgbWF0cml4IG9mIFNSIExhdGNoZXMgaW1wbGVtZW50aW5nIGEgImxpbmtlZCBsaXN0 +IiAodGhlCiAgRGlyZWN0ZWQgQWN5Y2xpYyBHcmFwaCkgb2Ygb3JkZXJlZCBkZXBlbmRlbmNpZXMs +IHVzaW5nIHRoZSAqcmVnaXN0ZXIqCiAgZGVwZW5kZW5jaWVzIGF0IHRoZSB0aW1lIHRoZSBpbnN0 +cnVjdGlvbiBpcyBpbnNlcnRlZCBpbnRvIHRoZSAqRlUtUkVHUyoKICBNYXRyaXggdG8gZGV0ZXJt +aW5lIHRoZSBGVS1GVSBEQUcuICB0aGlzIGhhcyBtb3JlIGluIGNvbW1vbiB3aXRoIGEKICAibGlu +a2VkIGxpc3QiIGRhdGEgc3RydWN0dXJlLCB0byB1c2Ugc29mdHdhcmUgdGVybWlub2xvZ3kuCgp0 +aGlzIGxhdHRlciBhc3BlY3QgaXMgYSBjcnVjaWFsIG9uZSB0aGF0IGV2ZW4gSmFtZXMgVGhvcm50 +b24gbm90ZXMgaXMgcmVhbGx5CipyZWFsbHkqIGNvbXBsZXggdG8gZXhwbGFpbiwgeWV0IHBhcmFk +b3hpY2FsbHkgcmVxdWlyZXMgYW4gZXh0cmFvcmRpbmFyaWx5CnNtYWxsIG51bWJlciBvZiBhY3R1 +YWwgZ2F0ZXMgdG8gaW1wbGVtZW50LgoKaG93ZXZlciB1bmRlcnN0YW5kaW5nIHRoZSBkaWZmZXJl +bmNlIGJldHdlZW4gdGhlIChiaW5hcnkpIFJPQiBSb3cKbnVtYmVyaW5nICh3aGljaCBwcmVzZXJ2 +ZXMgdGhlIERBRyBvZiBpbnN0cnVjdGlvbiBvcmRlciBieSB3YXkKb2YgYmluYXJ5LWFkZHJlc3Nl +ZCBpbnN0cnVjdGlvbiBST0IgUm93IE4rMSBiZWluZyBhIGdyZWF0ZXIgaW5kZXgKdGhhbiBiaW5h +cnktYWRkcmVzc2VkIGluc3RydWN0aW9uIFJPQiBSb3cgTikgYW5kIHRoaXMKImZ1bmN0aW9uYWxs +eS1lcXVpdmFsZW50IiBsaW5rZWQtbGlzdCBzeXN0ZW0gZXF1YWxseSBzdWNjZXNzZnVsbHkgcHJl +c2VydmluZwphIERBRyBidXQgdXNpbmcgdW5hcnkgU1IgTGF0Y2hlcyB0byBkbyBzbywgaXMga2V5 +IHRvIHJlY29nbmlzaW5nCmFuZCBhcHByZWNpYXRpbmcgdGhhdCBUb21hc3VsbyBhbmQgU2NvcmVi +b2FyZHMgKnJlYWxseSBhcmUqIGZ1bmN0aW9uYWxseQpkaXJlY3RseSBlcXVpdmFsZW50LgoKaGVy +ZSBpdCBzaG91bGQgYmVjb21lIGNsZWFyIGFzIHRvIGFub3RoZXIgYXNwZWN0IG9mIHdoeSBtdWx0 +aS1pc3N1ZSBpcwpwcm9ibGVtYXRpYyBpbiBUb21hc3Vsby4gIHdoZXJlIGRldGVjdGlvbiBvZiAi +cmVhZGluZXNzIHRvIGNvbW1pdCIgaW4KYSBzaW5nbGUtaXNzdWUgVG9tYXN1bG8gaXMgYSBzaW1w +bGUgbWF0dGVyIG9mIGNoZWNraW5nICpvbmUqIHJvdwoiaXMgeW91ciByZXN1bHQgcmVhZHksIGlm +IHllcyBjb21taXQgaXQgYW5kIGN5Y2xpY2FsbHkgaW5jcmVtZW50IHRoZSBwb2ludGVyCnRvIHRo +ZSBST0Igcm93IHRvIHRoZSBuZXh0IGl0ZW0sIHJlYWR5IGZvciB0ZXN0LW9yLWNvbW1pdCBvbiB0 +aGUgKm5leHQqCmN5Y2xlIiwgdGhpcyBtdXN0IGJlIHVwZGF0ZWQgdG8gdGVzdGluZyBvZiAqbXVs +dGlwbGUqIHJvdyAicmVhZGluZXNzIgpzdGF0ZXMsIHdoaWNoIGNsZWFybHkgcmVxdWlyZXMgYSBt +dWx0aS1wb3J0ZWQgU1JBTS4KCnRoaXMgaXMgd2hlcmUgInNvbHV0aW9ucyIgdGhhdCBpIGhhdmUg +c2VlbiBhY3R1YWxseSBzdHJhdGlmeSB0aGUgUk9CCmludG8gNCAob3IgTikgaW50ZXJsZWF2ZWQg +YmFua3MuICBjcm9zc2JhcnMgYXJlIHJlcXVpcmVkLi4uIGl0J3Mgd2hlcmUKdGhlIG5pZ2h0bWFy +ZXMgYmVnaW4uCgoKPiBJbiBUb21hc3VsbydzLCBicmFuY2ggZGVwZW5kZW5jeSBtYXNrcyBhcmUg +dXNlZCB0byBkcmFpbiBtaXNzcGVjdWxhdGVkCj4gaW5zdHJ1Y3Rpb25zLgoKYXJlIHRoZXNlIHVu +YXJ5LWVuY29kZWQgb3IgYmluYXJ5LWVuY29kZWQ/ICBieSBtYXNrcyBpIHdvdWxkIGV4cGVjdCB0 +aGVtCnRvIGJlIHVuYXJ5LWVuY29kZWQgYW5kIHRodXMgYWxsb3cgbXVsdGlwbGUgYml0cyB0byBi +ZSBzZXQsIGFsbG93aW5nIG11bHRpcGxlCm9wZXJhdGlvbnMgdG8gYmUgY2FuY2VsbGVkLgoKaWYg +bm90LCBhbmQgYmluYXJ5IG1hc2tzIGFyZSB1c2VkLCB0aGVuIGVhY2ggdW5pdCBtdXN0IGhhdmUg +YW4gYXJpdGhtZXRpYwpjb21wYXJhdG9yLCAiaXMgbXkgYmluYXJ5IGluZGV4IGxlc3MgdGhhbiBv +ciBlcXVhbCB0byB0aGUgYnJhbmNoIGRlcGVuZGVuY3kKbWFzaywgaWYgbGVzcyB0aGFuLCB0aGVu +IHRoaXMgbWVhbnMgaSBtdXN0IGRpZSIuCgp0aGUgU2hha3RpIDY2MDAtbGlrZSAoZXh0ZW5kZWQp +IHNjb3JlYm9hcmQgc3lzdGVtIGluIHRoZWlyIEUtQ2xhc3MgZGVzaWduCnVzZXMgKmJpbmFyeSog +bnVtYmVyaW5nLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgdXNlIHRoYXQgc2NoZW1lLiAgZWZmZWN0 +aXZlbHkKdGhlIG1hc2sgaXMgbm90IGEgbWFzayBwZXIgc2UsIGl0IGlzIGEgc2hvcnRlbmVkIHZl +cnNpb24gb2YgdGhlIGluc3RydWN0aW9uCnNlcXVlbnRpYWwgbnVtYmVyLgoKQk9PTSB1c2VzIHVu +YXJ5IGJpdC1tYXNrcy4gIGkgdGhpbmsuICBpIGhhZCBhIGJyaWVmIGNvbnZlcnNhdGlvbiBhYm91 +dCBpdAp3aXRoIHNvbWVvbmUsIHNvbWV3aGVyZSwgYSBmZXcgbW9udGhzIGJhY2suCgppIGdyZWF0 +bHkgcHJlZmVyIHRoZSB1bmFyeSBzeXN0ZW0uICBpdCBhbGxvd3MgaW50ZXJsZWF2aW5nIG9mIG11 +bHRpcGxlCnNpbXVsdGFuZW91cwpjYW5jZWxsYXRpb25zIHRvICphdXRvbWF0aWNhbGx5KiBzb3J0 +IHRoZW1zZWx2ZXMgb3V0LCBieSBPUmluZyB0aGUgY2FuY2VsbGF0aW9ucwp0b2dldGhlciB0byBw +cm9kdWNlIHRoZSBtYXNrIQoKdGhpcyBpcyBhbiAiYWNjaWRlbnRhbCIgc2lkZS1lZmZlY3Qgb2Yg +dGhlIFNoYWRvdyBNYXRyaXggY29uY2VwdCwKZGVzY3JpYmVkIGJlbG93LgoKYSBiaW5hcnktaW5k +ZXhlZCBjYW5jZWxsYXRpb24gc3lzdGVtIHJlcXVpcmVzIGEgKmNlbnRyYWwgcmVzb3VyY2UqIHRv +IGNhbGN1bGF0ZQp0aGUgbG93ZXN0LW51bWJlcmVkICJpbmRleCIsIGZvbGxvd2VkIGJ5IGJyb2Fk +Y2FzdGluZyB0aGF0IGluZGV4IGFjcm9zcyB0aGUKb25lIChhbmQgb25seSBvbmUpIHBlcm1pdHRl +ZCBjYW5jZWxsYXRpb24gZGF0YXBhdGguCgoKPiBJbiBleHRlbmRlZCBzY29yZWJvYXJkLCB0aGUg +bWlzc3BlY3VsYXRlZCBpbnN0cnVjdGlvbnMgZHJhaW4KPiB0aGVtc2VsdmVzIGZyb20gdGhlIHN5 +c3RlbS4KCmFoIG5vLiAgd2UnbGwgYmUgY2FuY2VsbGluZyB0aGVtIGV4cGxpY2l0bHksIHZpYSBh +biB1bmFyeSBiaXQtbWFzaywKdGhhdCBpcyBnbG9iYWwKYW5kIGNvbWJpbmF0b3JpYWwgaW4gbmF0 +dXJlLCBleHRlbmRpbmcgcmlnaHQgdGhlIHdheSB0aHJvdWdoIHRoZSBlbnRpcmV0eQpvZiB0aGUg +RnVuY3Rpb24gVW5pdCwgQ29tcFVuaXRzICphbmQqIHRoZSBhc3NvY2lhdGVkIHBpcGVsaW5lcy4K +CnRoZSB1bmFyeSBtYXNrIGlzIGJhc2ljYWxseSBhIGNvbnZlcnNpb24gb2YgdGhlICpiaW5hcnkq +IGluZGljZXMgb2YgdGhlCkNvbXBVbml0IG51bWJlciBvbiBhbnkgZ2l2ZW4gQ29uY3VycmVudCBD +b21wdXRhdGlvbiBVbml0LiAgMC0zCmluIHRoaXMgZGlhZ3JhbSBoZXJlOgpodHRwczovL2xpYnJl +LXNvYy5vcmcvM2RfZ3B1L2FyY2hpdGVjdHVyZS82NjAwc2NvcmVib2FyZC82MDB4LWNvbmN1cnJl +bnRfY29tcF91bml0LnBuZwoKdGh1cyBpbiB0aGF0IGNhc2UgdGhlIHVuYXJ5IGNhbmNlbGxhdGlv +biBtYXNrIHdvdWxkIGJlIDQtYml0IHdpZGUuCgp0aGVzZSBhcmUgbGlua2VkIGRpcmVjdGx5IHRv +IC0gYW5kIGFyZSBlcXVhbCB0byAtIHRoZSAiR09fRElFIiBzaWduYWxzIGluICp0aGlzKgpkaWFn +cmFtOgpodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfZ3B1L3NoYWRvdy5qcGcKCm5vdGUgaW4gdGhh +dCBkaWFncmFtIHRoZSBleGlzdGVuY2UgcGVyIGNlbGwgaW4gdGhlIERlcGVuZGVuY3kgTWF0cmlj +ZXMgb2YgKnR3byoKU2hhZG93IExhdGNoZXMuCgp0aGUgZmlyc3QgU2hhZG93IExhdGNoIGlzIGZv +ciB0aGUgZmlyc3QgQnJhbmNoIFVuaXQgdG8gaW5kaWNhdGUgInNwZWN1bGF0aXZlCmV4ZWN1dGlv +biB1bmRlcndheSBhcyBjb250cm9sbGVkIGFuZCBkaXJlY3RlZCBieSBCcmFuY2ggVW5pdCAxIi4K +CnRoZSBzZWNvbmQgU2hhZG93IExhdGNoIGlzIGZvciB0aGUgKnNlY29uZCogQnJhbmNoIFVuaXQg +dG8gZG8gbGlrZXdpc2UuCgphIHRoaXJkIFNoYWRvdyBMYXRjaCBleGlzdHMgZm9yIHByZWRpY2F0 +ZWQgZXhlY3V0aW9uLiAgb25lIGJpdCBlYWNoIG9mIHRoZQpwcmVkaWNhdGUgcmVnaXN0ZXIgKG9u +Y2UgcmVhZCkgd2lsbCBiZSB0aHJvd24gYXQgdGhlICJGQUlMRUQtMyIgbGluZSBpZiB0aGF0CmJp +dCBpcyB6ZXJvLCBhbmQgYXQgdGhlICJTVUNDRVNTLTMiIGxpbmUgaWYgdGhhdCBiaXQgaXMgMS4g +IGlmICJmYWlsZWQiIGlzCmFzc2VydGVkLCB0aGVuIHNvIGlzIHRoZSAiR09fRElFIi4gIHRoYXQg +IkdPX0RJRSIsIGJlaW5nIGNvbm5lY3RlZCB0bwp0aGUgY2FuY2VsbGF0aW9uIG1hc2tzLCAqSU5T +VEFOVExZKiBraWxscyBub3QganVzdCB0aGUgcmVnaXN0ZXIgaGF6YXJkCmFsbG9jYXRpb24sIGl0 +IHJlc2V0cyB0aGUgRnVuY3Rpb24gVW5pdCB0byBpZGxlICphbmQqIGtpbGxzIHRoZSBwYXJ0aWFs +IHJlc3VsdApnZW5lcmF0aW9uIGFjdHVhbGx5IGluIHRoZSBwaXBlbGluZSBpdHNlbGYuCgppZiAi +c3VjY2VzcyIgaXMgYXNzZXJ0ZWQsIHRoZSBzaGFkb3cgbGF0Y2hlcyBhcmUgY2xlYXJlZCwgYW5k +ICJXUklURV9SRVFVRVNUIgppcyBubyBsb25nZXIgcHJldmVudGVkIGFuZCBwcm9oaWJpdGVkIGZy +b20gYXNzZXJ0aW5nLiAgdGhlIHJlc3VsdCAoaWYgaXQgd2FzCnJlYWR5KSwgaXMgYWxsb3dlZCB0 +byBwcm9jZWVkICJJIG5vdyByZXF1ZXN0IGEgUmVnZmlsZSBXcml0ZSBQb3J0Ii4KaWYgdGhlIHJl +c3VsdApoYXBwZW5lZCBub3QgdG8gYmUgcmVhZHksIHRoZW4gd2hlbiB0aGUgcmVzdWx0ICppcyog +cmVhZHkgaXQgd2lsbCBub3QKYmUgaGVsZCB1cC4KCmEgZm91cnRoIFNoYWRvdyBsYXRjaCBleGlz +dHMgZm9yIGNhbmNlbGxhdGlvbiBvZiBvcGVyYXRpb25zIGluIHRoZSAic2hhZG93IgpvZiBhIExE +L1NUIFVuaXQncyBwYWdlLWZhdWx0IC8gYWRkcmVzcyBleGNlcHRpb24uCgphcyB5b3UgY2FuIHNl +ZSB0aGlzIHJlcXVpcmVzIGEgdHJpdmlhbCBudW1iZXIgb2YgZ2F0ZXMgcGVyIGNlbGwsIGhvd2V2 +ZXIKaXQgaXMgKmVhY2gqIGV4Y2VwdGlvbiBvciBjYW5jZWxsYXRpb24gb3Bwb3J0dW5pdHkgdGhh +dCAgcmVxdWlyZXMgdGhlc2UgU2hhZG93cywKb24gYSAqcGVyIEZVIGJhc2lzKiwgYWNyb3NzIGFs +bCAqb3RoZXIqIEZVcy4KCmNvbnNlcXVlbnRseSBpIGRlc2lnbmVkIGEgIlNoYWRvdyBNYXRyaXgi +IHRoYXQgdGFrZXMgY2FyZSBvZiB0aGF0LgoKPiBCb3RoIHNjaGVtZXMgY2FuIGJlIGRlc2lnbmVk +IHRvIGFjaGlldmUgc2ltaWxhciBPT08gYmVoYXZpb3JzLgo+IFRodXMsIG9uZSBjYW5ub3QgZHJh +dyBhIHBlcmZvcm1hbmNlIGNvbmNsdXNpb24ganVzdCBieSBzZWVpbmcgd2hpY2gKPiBzY2hlbWUg +aXMgYmVpbmcgdXNlZC4KCm5vLiAgaGVuY2Ugd2h5IHdlIGhhdmVuJ3QgZG9uZSB0aGF0IGtpbmQg +b2YgYW5hbHlzaXM6IHdlJ3JlIGZvY3Vzc2luZwpvbiBpbXBsZW1lbnRhdGlvbi4KCj4gSWRlYWxs +eSB0aGUgYWJvdmUgdGV4dCBzaG91bGQgYmUgdW5jb250cm92ZXJzaWFsLCBwbGVhc2UgbGV0IG1l +IGtub3cKPiBpZiB0aGVyZSBpcyBhIGxhcmdlIG1pc3VuZGVyc3RhbmRpbmcgaGVyZS4KCm5vbm8g +bG9va3MgZ3JlYXQsIHJlYWxseSBhcHByZWNpYXRlIHRoZSBpbnNpZ2h0cyByYWlzZWQuICB0aGUg +bWlzc2luZyBwaWVjZQppcyB0aGUgdHJ1ZSBzaWduaWZpY2FuY2Ugb2YgdGhlIHJvbGUgb2YgdGhl +IFNoYWRvdyBNYXRyaWNlcyBhcyBiZWluZyAqdGhlKgpwcm92aXNpb24gb2YgcHJlY2lzZSBleGNl +cHRpb24gY2FwYWJpbGl0eSwgc3BlY3VsYXRpb24sIHByZWRpY2F0aW9uLCBldmVyeXRoaW5nLgoK +eWVzIGkgYW0gYXdhcmUgdGhhdCB3aXRob3V0ICJwcmVkaWNhdGlvbiBwcmVkaWN0aW9uIiB5ZXMg +dGhvc2UgYXJlIHR3bwpkaWZmZXJlbnQgd29yZHMgd2UgZW5kIHVwIHdpdGggZXhhY3RseSB0aGUg +c2FtZSBzaXR1YXRpb24gYXMgZm9yIEJyYW5jaApQcmVkaWN0aW9uOiBwcmVkaWNhdGVkIG9wZXJh +dGlvbnMgdGhhdCBhcmUgaXNzdWVkLCBjYXVzZSBGVXMgdG8gYmVjb21lCmZ1bGwgLyBhbGxvY2F0 +ZWQsIHRoYXQgYXJlIGNhbmNlbGxlZCBtb21lbnRzIGxhdGVyIGJlY2F1c2UgdGhlIG1ham9yaXR5 +Cm9mIHRoZSBwcmVkaWNhdGUgcmVnaXN0ZXIgdHVybnMgb3V0IHRvIGJlIGZ1bGwgb2YgemVyb3Mu +Cgp0aGlzIGlzICpub3QqIGEgaGlnaCBwcmlvcml0eSBpdGVtIHJpZ2h0IG5vdyA6KQoKPiBNeSBv +cGluaW9uIGlzIHRoYXQgVG9tYXN1bG8ncyBpcyBhIG1vcmUgZWxlZ2FudCBhbmQgd2VsbC1wcm92 +ZW4gc2NoZW1lCj4gZm9yIGFjaGlldmluZyBPT08gZXhlY3V0aW9uLCBjb21wYXJlZCB0byBhbiBl +eHRlbmRlZCBzY29yZWJvYXJkLiBJCj4gYWxzbyBhcmd1ZSB0aGF0IHRoZSBleHRlbmRlZCBzY29y +ZWJvYXJkIHNjaGVtZSBkb2VzIG5vdCBwcmVzZW50Cj4gc2lnbmlmaWNhbnQgcG93ZXIvYXJlYSBh +ZHZhbnRhZ2VzIGNvbXBhcmVkIHRvIFRvbWFzdWxvJ3MuCgpNaXRjaCBBbHN1cCBpcyBiZXR0ZXIg +ZXF1aXBwZWQsIGZyb20gNDAgeWVhcnMgZXhwZXJpZW5jZSBhdCBnYXRlLWxldmVsCmRlc2lnbiAo +d2hpY2ggaGUga2VwdCBhbmQgKnJlZmluZWQqIHdoZW4gd29ya2luZyBmb3IgQU1ELCBoZW5jZSBz +b21lCm9mIHRoZSBibGlzdGVyaW5nIHdpdGhlcmluZyB3b3JkcyB0byBsZXNzIGV4cGVyaWVuY2Vk +LCBsZXNzLWtub3dsZWRnZWFibGUKcGVvcGxlIHRyeWluZyB0byB0ZWxsIGhpbSB0aGF0IEhETHMg +d2VyZSBpbmhlcmVudGx5IGJldHRlciksIHRvIGFuc3dlciB0aGlzCm9uZS4KCj4gR2l2ZW4gdGhh +dAo+IGVzdGltYXRlcyBvbiBwb3dlci9hcmVhIHRlbmQgdG8gYmUgd2lsZGx5IGluYWNjdXJhdGUs +IEkgdGhpbmsgd2Ugd2lsbAo+IGhhdmUgdG8gd2FpdCBmb3IgcG93ZXIgYW5hbHlzaXMgb2YgTGli +cmVTb0MgdG8gZ2V0IGEgZGVmaW5pdGl2ZSBhbnN3ZXIKPiB0byB0aGlzIGRlYmF0ZSA6KS4KCmlm +IHdlIGhhdmUgdG8gdXNlIERGRnMgcmF0aGVyIHRoYW4gU1IgTkFORCwgdGhlIGFyZ3VtZW50IGlz +IGluc3RhbnRseQp3b24gYnkgVG9tYXN1bG8gYmVjYXVzZSB3ZSBoYXZlIHF1aXRlIGxpdGVyYWxs +eSBhIDUtZm9sZCBpbmNyZWFzZSBpbgpnYXRlIGNvdW50IHJpZ2h0IGFjcm9zcyB0aGUgYm9hcmQs +IGluIGV2ZXJ5IHNpbmdsZSBNYXRyaXguICBTaGFkb3csCkZVLVJlZ3MsIEZVLUZVIC0gdGhlIGxv +dC4gIGV2ZXJ5d2hlcmUgeW91IHNlZSBhbiBTUi1MYXRjaCBkaWFncmFtCigyIGdhdGVzKSwgaW5z +dGVhZCBhZGQgMTAgZ2F0ZXMgZm9yIGEgREZGLgoKZm9yIHRoZSAxODBubSBBU0lDIHRoaXMgd291 +bGQganVtcCBhcHByb3hpbWF0ZWx5Li4uLiBtbW0uLi4gMTAsMDAwIGdhdGVzCnVwIHRvIDUwLDAw +MC4KCndlIG1heSBoYXZlIHRvIGRvIHRoYXQuICBpdCB3aWxsIHN1Y2suCgo+IEkgZGVlcGx5IGFw +b2xvZ2l6ZSBpZiBhbnkgb2YgbXkgdGhvdWdodHMgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMKPiBj +cml0aWNpc20uIEkgZnVsbHkgc3VwcG9ydCB0aGlzIGtpbmQgb2YgZXhwbG9yYXRpb24gaW4gT09P +IGRlc2lnbi4gSQo+IGFsc28gYXBvbG9naXplIGlmIEkgc2VlbSB0byBzdWdnZXN0IGEgY2hhbmdl +IGluIGRlc2lnbiwgYXMgSQo+IHVuZGVyc3RhbmQgdGhhdCBoYXJkd2FyZSBkZXNpZ24gaXMgbm90 +IG5lYXJseSBhcyBmbGV4aWJsZSBhcyBzb2Z0d2FyZQo+IGRlc2lnbi4KCmFwcHJlY2lhdGVkLCBK +ZXJlbXkuICBpZiB0aGlzIGRpc2N1c3Npb24gd2FzIHRha2luZyBwbGFjZSA2IHRvIDEyIG1vbnRo +cyBhZ28KdGhlICJtb2RlIiB3ZSB3b3VsZCBiZSBpbiB3YXMgcmFkaWNhbGx5IGRpZmZlcmVudC4g +IG5vdyBpcyAiZnVsbC1ib3JlCnRpbWUtY3JpdGljYWwgaW1wbGVtZW50YXRpb24gbW9kZSIsIGFu +ZCB3aWxsIGJlIHVudGlsIHRoZSBvdGhlciBzaWRlCm9mIE9jdCAyMDIwLgoKbC4KCl9fX19fX19f +X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRldiBt +YWlsaW5nIGxpc3QKbGlicmUtcmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRwOi8v +bGlzdHMubGlicmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2Cg== + -- 2.30.2