Return-path: Envelope-to: publicinbox@libre-riscv.org Delivery-date: Tue, 24 Mar 2020 16:05:50 +0000 Received: from localhost ([::1] helo=libre-riscv.org) by libre-riscv.org with esmtp (Exim 4.89) (envelope-from ) id 1jGm3q-0004U7-CT; Tue, 24 Mar 2020 16:05:50 +0000 Received: from lkcl.net ([217.147.94.29]) by libre-riscv.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1jGm3o-0004U1-P2 for libre-riscv-dev@lists.libre-riscv.org; Tue, 24 Mar 2020 16:05:48 +0000 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=/vYjM3WcKB2HS/8yHM9GETPVFDNFRNIGM+qcBIrFEds=; b=Ji3SODVzzk0qn/aFdUdMNRSUI3oU0k6rmlNHDMm6qNNjZc/Vd/rKZj7o2hxCdi/5DzzLnahP7BjOH7a5OpDzYESoGwUNVlnLbD/xSlJZIxjXVtLX1TFWgKkYA67VxCf8bSftPnPrd3rbJ0n7+rvGwPPZrt18ilO1zILdjGWR0Iw=; Received: from mail-lf1-f54.google.com ([209.85.167.54]) by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1jGm3o-0006TX-DL for libre-riscv-dev@lists.libre-riscv.org; Tue, 24 Mar 2020 16:05:48 +0000 Received: by mail-lf1-f54.google.com with SMTP id j17so13694249lfe.7 for ; Tue, 24 Mar 2020 09:05:32 -0700 (PDT) X-Gm-Message-State: ANhLgQ3Ov2xf7rr1dKB9/7fnXxTn4WZyFCg6zPTLC/25+DDUg5lKu3lg ZtNEECD6E8ot93rftSpZznxfN9uTkfIVD90ApK4= X-Google-Smtp-Source: ADFU+vsS5Ckwa/lzQKHAaLArjLrcyDQz7dRHOenZfsmceuq1KEr2aaCcSqQq+AlabsiYGb5A5ASGVHs3NzM8ZoTcpas= X-Received: by 2002:a19:a93:: with SMTP id 141mr8176743lfk.107.1585065927308; Tue, 24 Mar 2020 09:05:27 -0700 (PDT) MIME-Version: 1.0 References: <69ea9c9d-431c-4b76-ad86-a8eec897ab44@googlegroups.com> <7dcb89ad-c6b2-43dc-8ea9-e72342a2719b@googlegroups.com> In-Reply-To: <7dcb89ad-c6b2-43dc-8ea9-e72342a2719b@googlegroups.com> From: Luke Kenneth Casson Leighton Date: Tue, 24 Mar 2020 16:05:16 +0000 X-Gmail-Original-Message-ID: Message-ID: To: Libre-RISCV General Development , Staf Verhaegen Subject: [libre-riscv-dev] Fwd: multi-way LOAD/STORE buffers and misalignment 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" c3RhZiwgaGksIHRoaXMgY2FtZSBpbiBmcm9tIG1pdGNoIGFsc3VwLCBmcm9tIGNvbXAuYXJjaC4K CnRoZSBMMSBjYWNoZSBtZW1vcnkgU1JBTSB0aGF0IHlvdSBhcmUgZG9pbmc6IGlzIGl0LCBhcyBN aXRjaCBzdWdnZXN0cywKMVIgKm9yKiAxVywgYW5kIHRodXMgc2luZ2xlLWNsb2NrLWN5Y2xlPyAg aSBnYXRoZXIgZnJvbSB3aGF0IGhlJ3MKc2F5aW5nIHRoYXQgaWYgeW91IGhhdmUgYSAxUjFXIFNS QU0sIHRoYXQgZWZmZWN0aXZlbHkgbmVlZHMgMiBjbG9jawpjeWNsZXMgdG8gYWNjZXNzLgoKbC4K Ci0tLQpjcm93ZC1mdW5kZWQgZWNvLWNvbnNjaW91cyBoYXJkd2FyZTogaHR0cHM6Ly93d3cuY3Jv d2RzdXBwbHkuY29tL2VvbWE2OAoKCi0tLS0tLS0tLS0gRm9yd2FyZGVkIG1lc3NhZ2UgLS0tLS0t LS0tCkZyb206ICdNaXRjaEFsc3VwJyB2aWEgY29tcC5hcmNoIDxjb21wLmFyY2hAZ29vZ2xlZ3Jv dXBzLmNvbT4KRGF0ZTogVHVlLCBNYXIgMjQsIDIwMjAgYXQgMzoyNyBQTQpTdWJqZWN0OiBSZTog bXVsdGktd2F5IExPQUQvU1RPUkUgYnVmZmVycyBhbmQgbWlzYWxpZ25tZW50ClRvOgoKCk9uIFR1 ZXNkYXksIE1hcmNoIDI0LCAyMDIwIGF0IDY6NTM6MjkgQU0gVVRDLTUsIGxrY2wgd3JvdGU6Cj4g d2UncmUgZG9pbmcgYSBMRC9TVCBidWZmZXIgYXQgdGhlIG1vbWVudCwgYW5kIHNvbWUgZGVzaWdu IHJldmlldyBhbmQKPiBjb25zdHJ1Y3RpdmUgZmVlZGJhY2sgYW5kIGFkdmljZSB3b3VsZCBiZSBn cmVhdGx5IGFwcHJlY2lhdGVkLgo+IHVubGlrZSBtYW55ICJmaXJzdCB0aW1lIHByb2Nlc3NvcnMi LCB3ZSBjYW5ub3QgcG9zc2libHkgZ2V0IGF3YXkKPiB3aXRoIGEgc2ltcGxlIHNpbmdsZS1pc3N1 ZSBMRC9TVCBkZXNpZ24gYXMgdGhlIGZpcnN0IGl0ZXJhdGlvbiBiZWNhdXNlCj4gb2YgdGhlIHZl Y3RvciBlbmdpbmUgYmVpbmcgZWZmZWN0aXZlbHkgYSBtdWx0aS1pc3N1ZSBtdWx0aXBsaWVyIHRo YXQsCj4gZnJvbSBhIHNpbmdsZSBpbnN0cnVjdGlvbiwgaGFtbWVycyB0aGUgaW50ZXJuYWwgZW5n aW5lIHdpdGggYSAqYmF0Y2gqCj4gb2YgYWN0dWFsIG9wZXJhdGlvbnMuCj4KPiB0aGlzIGluY2x1 ZGVzIExEL1NUIGFuZCBzbyBjb25zZXF1ZW50bHkgd2UgbmVlZCBhIG11bHRpLWlzc3VlLWNhcGFi bGUKPiBMRC9TVCBidWZmZXIgcmlnaHQgZnJvbSB0aGUgc3RhcnQuICBpdCBpcyBiZWluZyBkb2N1 bWVudGVkLCBoZXJlOgo+Cj4gaHR0cHM6Ly9saWJyZS1yaXNjdi5vcmcvM2RfZ3B1L2FyY2hpdGVj dHVyZS82NjAwc2NvcmVib2FyZC8KPgo+IHdpdGggTWl0Y2gncyBoZWxwIGkgYWxyZWFkeSBoYXZl IGEgUkFXIC8gV0FSIGRlcGVuZGVuY3kgZGV0ZWN0aW9uIG1hdHJpeAo+IGluIHBsYWNlLCB3aGlj aCBkZXRlY3RzIChpbi1vcmRlcikgKmJhdGNoZXMqIG9mIExEcywgKmJhdGNoZXMqIG9mIFNUcywK PiBhbmQgKmJhdGNoZXMqIG9mIGF0b21pYyBvcGVyYXRpb25zIChkZWZpbmVkIGJ5IGhhdmluZyBM RC9TVCBib3RoIHNldCkuCj4KPiBhZGRpdGlvbmFsbHksIHdlIGhhdmUgKGFnYWluLCB0aGFua3Mg dG8gTWl0Y2gpLCBhbiAiYWRkcmVzcyBjbGFzaCBkZXRlY3Rpb24iCj4gTWF0cml4LCB3aGVyZSB0 aGUgb3JpZ2luYWwgZGVzaWduIGNvbmNlcHQgZnJvbSBNaXRjaCB1c2VzIGJpdHMgNCB0aHJ1IDEx Cj4gKHN0b3BwaW5nIGF0IGEgVk0gcGFnZSkgdG8gc2F5ICJ0aGlzIExEL1NUIGRlZmluaXRlbHkg ZG9lc24ndCBvdmVybGFwIHdpdGgKPiBhbnkgb3RoZXJzLCBidXQgaXQgbWlnaHQgaGF2ZSBwaWNr ZWQgdXAgYSBmZXcgdGhhdCAqcG90ZW50aWFsbHkqIGRvbid0Cj4gb3ZlcmxhcCwgYnV0IGhleSBi ZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5Ii4KPgo+IHRoaXMgaXMgcXVpdGUgZWZmaWNpZW50IGJlY2F1 c2UgdGhlIG51bWJlciBvZiBiaXRzIHVzZWQgdG8gZGV0ZWN0IGEgY2xhc2gKPiBpcyBkcmFzdGlj YWxseSByZWR1Y2VkLCB3aGljaCBpcyBpbXBvcnRhbnQgZ2l2ZW4gdGhhdCBpdCdzIGFuIE54Ti8y IHNldCBvZgo+IGJpbmFyeS1hZGRyZXNzIGNvbXBhcmF0b3JzIGludm9sdmVkLgo+Cj4gaG93ZXZl ciB3ZSAqbW9kaWZpZWQqIHRoaXMgaWRlYSwgYnkgdHVybmluZyB0aGUgYWRkcitsZW4gKGxlbj0x LzIvNC84IGJ5dGUpCj4gaW50byBhICpieXRlLW1hc2sqLCB3aGVyZSB0aGUgYnl0ZS1tYXNrIGlz IGVmZmVjdGl2ZWx5IG5vdGhpbmcgbW9yZSB0aGFuCj4gKG9yLCAiY2FuIGJlIHVzZWQgYXMiKSBi eXRlLWVuYWJsZSBsaW5lcyBvbiB0aGUgTDEgY2FjaGUgbWVtb3J5IHJlYWQvd3JpdGUuCj4KPiB0 aGlzIG1lYW5zIHR1cm5pbmcgbGVuPTEgaW50byAwYjEsIGxlbj0yIGludG8gMGIxMSwgbGVuPTQg aW50byAwYjExMTEKPiBvciBsZW49OCBpbnRvIDBiMTExMSAxMTExIGFuZCB0aGVuIHNoaWZ0aW5n IGl0IGJ5IHRoZSBMU0JzIG9mIHRoZSBhZGRyZXNzCj4gKGJpdHMgMC0zKS4KPgo+IGhvd2V2ZXIg b2YgY291cnNlLCB0aGF0IGNvdWxkICJ3cmFwIG92ZXIiIHRvIGEgc2Vjb25kIGNhY2hlIGxpbmUs IHRoZXJlZm9yZQo+IHdlIHNwbGl0IGl0IGludG8gdHdvOgo+Cj4gKiAxc3QgY2FjaGUgbGluZSwg dGFrZSBiaXRzIDAuLjE1IG9mIHRoZSBtYXNrLCB1c2UgYWRkcls0Ol0gYXMgdGhlIGFkZHJlc3MK PiAqIDFuZCBjYWNoZSBsaW5lLCB0YWtlIGJpdHMgMTUuLjI3IG9mIHRoZSBtYXNrLCB1c2UgYWRk cls0Ol0gUExVUyBPTkUgYXMgYWRkcmVzcwo+Cj4gbm93IGFsbCBMRHMgYXJlIHBvdGVudGlhbGx5 ICp0d28qIExEcywgYW5kIGFsbCBTVHMgYXJlIHBvdGVudGlhbGx5ICp0d28qIFNUcywKPiByZXF1 aXJpbmcgc3luY2hyb25pc2F0aW9uLgo+Cj4gdGhpcyBkb2VzIGludGVyZXN0aW5nbHkgbWVhbiB0 aGF0IHRoZSAiYWRkcmVzcyBjbGFzaCBkZXRlY3Rpb24iIE1hdHJpeCBpcwo+IG5vdyBkb3VibGVk IGluIHNpemUsIGJlY2F1c2UgZWFjaCBMRC9TVCBDb21wdXRhdGlvbiBVbml0IGNhbiBub3cgaXNz dWUgKnR3byoKPiBMRHMvU1RzLCBub3Qgb25lLgo+Cj4gdGhlcmUgaXMgYSBiaWcgYWR2YW50YWdl IHRvIHBhcnRpYWwtY29udmVyc2lvbiBvZiB0aGUgTEQvU1RzIHRvIHVuYXJ5LW1hc2tlZAo+IGZv cm1hdDoKPgo+IDEpIHRob3NlICJtYXNrcyIgd2UgY2FuIG5vdyBkZXRlY3QgaW4gdGhlIGFkZHJl c3MtY2xhc2ggdW5pdCwgd2hldGhlciB0aGVyZQo+ICAgIGFyZSBvdmVybGFwcywgYnkgc2ltcGxl ICJ1bmFyeSIgKEFORGluZykuCj4KPiAyKSBvbmNlIGEgYmF0Y2ggb2YgZ3VhcmFudGVlZC1ub24t b3ZlcmxhcHBpbmcgTERzIChvciBTVHMsIGJ1dCBub3QgYm90aCBhdAo+ICAgIG9uY2UpIGhhdmUg YmVlbiBpZGVudGlmaWVkLCB0aGUgT1Jpbmcgb2YgdGhvc2UgbWFza3MgKnByZS1pZGVudGlmaWVz KiwKPiAgICB3aGVyZSB0aGUgcmVtYWluaW5nIE1TQnMgYXJlIGlkZW50aWNhbCwgd2hpY2ggTERz IGFuZCB3aGljaCBTVHMgYXJlCj4gICAgKnBhcnQgb2YgdGhlIHNhbWUgY2FjaGUgbGluZSouCj4K PiAzKSB0aGUgT1JlZCBtYXNrcyBjYW4gYmUgZHJvcHBlZCAtIGFzLWlzIC0gZGlyZWN0bHkgb250 byBieXRlLWxldmVsCj4gICAgcmVhZC93cml0ZS1lbmFibGUgbGluZXMgb24gdGhlIEwxIENhY2hl IHVuZGVybHlpbmcgbWVtb3J5IC0gd2l0aCB6ZXJvCj4gICAgc2hpZnRpbmcgb3Igb3RoZXIgbWVz c2luZyBhYm91dC4KPgo+IHNvIHRoYXQncyB0aGUgYml0cyB0aGF0IHdlICJrbm93Ii4KPgo+IHRo ZSBiaXRzIHRoYXQgd2UgKmRvbid0KiBrbm93IGFyZSB3aGF0IGlzIHRoZSBiZXN0IEwxIGNhY2hl IGFycmFuZ2VtZW50Cj4gdG8gdXNlLiAgd2UgZGlzY3Vzc2VkIHRoZSBwb3NzaWJpbGl0eSBvZiBh biA4LXdheSBzZXQtYXNzb2NpYXRpdmUgY2FjaGUKPiB3aXRoIDUxMi1iaXQgd2lkZSBkYXRhICgh ISEpIC0geWVzLCByZWFsbHksIGJlY2F1c2Ugd2Ugd2lsbCBoYXZlIGEgbWluaW11bQo+IG9mIDQg TEQvU1Qgb3BlcmF0aW9ucyBAIDY0LWJpdCBvY2N1cnJpbmcgZXZlcnkgY3ljbGUgKGluIHRoZSBm aXJzdCB2ZXJzaW9uCj4gb2YgdGhlIHByb2Nlc3NvcjogdGhpcyAqd2lsbCogZ28gdXAgaW4gbGF0 ZXIgaXRlcmF0aW9ucykuCj4KPiBvbmUgdGhpbmcgdGhhdCB3b3VsZCBiZSBwYXJ0aWN1bGFybHkg bmljZSB0byBhdm9pZCB3b3VsZCBiZSBtdWx0aS1wb3J0ZWQKPiBTUkFNIG9uIHRoZSBMMSBDYWNo ZSBNZW1vcmllcy4gIGkgdGhvdWdodCB0aGVyZSBpdCBtYXkgYmUgcG9zc2libGUgdG8KPiAic3Ry aXBlIiB0aGUgTDEgQ2FjaGUsIHN1Y2ggdGhhdCBiaXRzIDQtNSBvZiBldmVyeSBhZGRyZXNzIGdv IHRocm91Z2ggdG8sCj4gZWZmZWN0aXZlbHksIGEgY29tcGxldGVseSBzZXBhcmF0ZSAoaXNvbGF0 ZWQsIGluZGVwZW5kZW50KSBMMSBDYWNoZS4KPgo+ICogQWRkciBiaXRzIFswOjNdIGFscmVhZHkg dHVybmVkIGludG8gYnl0ZS1tYXAgbWFzayAoZW5hYmxlIGxpbmVzKQo+ICogQWRkciBiaXRzIFs0 OjVdIHVzZWQgdG8gc2VsZWN0IG9uZSBvZiBmb3VyIElOREVQRU5ERU5UIGNhY2hlcwo+ICogQWRk ciBiaXRzIFs2OmVuZF0gdXNlZCAiYXMgbm9ybWFsIgo+Cj4gdGhlIG9ubHkgZG93bnNpZGUgb2Yg dGhpcyBiZWluZzogTEQvU1RzIHRoYXQgaGFwcGVuIHRvIGJlIG9uIHRoZSBzYW1lCj4gNjQtYnl0 ZSBib3VuZGFyeSB3b3VsZCBiZSAicGVuYWxpc2VkIiBieSBiZWluZyBvbmx5IHNpbmdsZS1pc3N1 ZS1jYXBhYmxlLgo+Cj4gZG8gd2UgY2FyZT8gIGknbSBub3Qgc3VyZSB0aGF0IHdlIGRvIQoKWWVz LCB5b3UgZG8gd2FudCB0byBjYXJlOjogeW91IHdhbnQgdG8gY2FyZSB0byAiZ2V0IGl0IGNvcnJl Y3QiIGV2ZW4KYXQgc29tZSBtaW5vciBjb3N0IGluIHBlcmYuCj4KPiBfc2hvdWxkXyB3ZSBjYXJl PyAgdGhhdCdzIHRoZSBxdWVzdGlvbiBpJ2QgbGlrZSB0byBrbm93IHRoZSBhbnN3ZXIgdG8gOikK PiBhbiBhbHRlcm5hdGl2ZSBpcyB0aGF0IHdlIGhhdmUgdG8gbXVsdGktcG9ydCB0aGUgTDEgQ2Fj aGUgbWVtb3J5LCB3aGljaAo+IHdvdWxkIGJlIHF1aXRlIGV4cGVuc2l2ZS4KPgo+IHdoYXQgYWx0 ZXJuYXRpdmVzIGFyZSB0aGVyZT8gIGlzIHRoZXJlIGEgd2F5IHRvLCBmb3IgZXhhbXBsZSwgaGF2 ZSBhbgo+IDgtd2F5IHNldC1hc3NvY2lhdGl2ZSBjYWNoZSB3aXRoIDggaW5kZXBlbmRlbnQgaW5w dXQvb3V0cHV0IGRhdGEgcGF0aHMsCj4geWV0IHRoZXkgZG8gbm90IHJlcXVpcmUgdGhlIHRyaWNr IG9mIGEgZnVsbCBzcGxpdCB1c2luZyBhZGRyIGJpdHMgWzQ6NV0sCj4gYnV0IGF0IHRoZSBzYW1l IHRpbWUgZG8gbm90IHJlcXVpcmUgNFI0VyBTUkFNcz8KCldoYXQgeW91IHdhbnQgdG8ga25vdyBh cmUgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIFNSQU0gbWFjcm9zLiBHaXZlbiB0aGVzZQpkaW1lbnNp b25zIHlvdSBhcmUgaW4gYSBwb3NpdGlvbiB0byBzdGFydCBtYWtpbmcgZ29vZCBjaG9pY2VzLCB3 aXRob3V0CnlvdSBhcmUgbm90LiBBIHR5cGljYWwgU1JBTSBkaW1lbnNpb24gbWlnaHQgYmUgMjU2 LWJpdHMgd2lkZSBhbmQgNjQtd29yZHMKZGVhcCAoMktCeXRlcykuCgpTaW5jZSB5b3Ugd2FudCB0 byByZWFkL3dyaXRlIDUxMi1iaXRzIHBlciBwb3J0LCB5b3Ugd2lsbCBuZWVkIDIgU1JBTQptYWNy b3MgcGVyIHBvcnQgKHBlciBjeWNsZSkuIFNvIGlmIHlvdSBhcmUgbWFraW5nIDgtd2F5IFNBIGNh Y2hlLCB5b3UKd2lsbCBuZWVkIGF0IGxlYXN0IDE2IFNSQU0gbWFjcm9zICgzMktCeXRlcyktLWFu ZCAoQSBOIEQpIHlvdSBzdGlsbApoYXZlIGJ1dCBhIHNpbmdsZSBwb3J0IQoKT24gdGhlIG90aGVy IGhhbmQsIGRyb3BwaW5nIGJhY2sgdG8gNC13YXkgc2V0LCBhbmQgdGhhdCBzYW1lIFNSQU0gYXJy YXkKY2FuIG5vdyBzdXBwb3J0IDItcG9ydHMgb2YgNC13YXkgU0EgZWFjaC4gSW4gdGhpcyBvcmdh bml6YXRpb24geW91IHdpbGwKYmUgdXNpbmcgbW9yZSBsb3dlci1hZGRyZXNzIGJpdHMgdG8gY2hv b3NlIHBvcnRbMF0gdmVyc3VzIHBvcnRbMV0uIEFuZAp5b3Ugd2lsbCBzZWUgNDAlIGNvbmZsaWN0 cyBpZiB5b3UgYXJlIHJlYWxseSBydW5uaW5nIDIgcmVxdWVzdCBwZXIgY3ljbGUuCgpIb3dldmVy LCBpZiB5b3Uga25vdyB0aGUgYWNjZXNzIHBhdHRlcm4gaXMgImRlbnNlIiwgdGhlbiB5b3Uga25v dyB0aGF0CkxEW2ldW2suLmsrM10gYXJlIGFsbCBpbiB0aGUgc2FtZSBsaW5lLCBhbmQgeW91IGNh biBUSEVOIG1ha2Ugb25lIGFjY2Vzcwpmb3IgZXZlcnkgNCBhY3R1YWwgTERzIGFuIHRoZW4gc29y dCBpdCBvdXQgd2l0aCBtdWx0aXBsZXhlcnMuIEFuZCBOT1cgd2UKaGF2ZSBlbm91Z2ggcG9ydHMg YW5kIHdpZHRoIHRvIHVzZSAxMDI0IGJpdHMgcGVyIGN5Y2xlIHRocm91Z2hwdXQgaW4gdGhlCmNh Y2hlLiB7WW91IGNhbiBkZXRlcm1pbmUgYW4gYWNjZXNzIHBhdHRlcm4gd2lsbCBiZSBkZW5zZSB3 aGVuIHRoZSBsb29wCmluY3JlbWVudCBpcyArMSAob3IgLTEpIGFuZCB0aGUgbG9vcCBpbmRleCBp cyB1c2VkIGluIHNjYWxlZCBmb3JtIGluCm1lbXJlZiBpbnN0cnVjdGlvbnM6CgogICAgIExEICAg UngsW1JiK1JpPDxzY2FsZStESVNQXQoKfSBPdGhlciBmb3JtcyBvZiBkZW5zZSBhY2Nlc3MgYXJl IGhhcmRlciBmb3IgSFcgdG8gZGV0ZWN0IGFuZCB1dGlsaXplLgo+Cj4gaSAqdGhpbmsqIHRoaXMg aXMgZG9hYmxlLCB3aXRoIHRoZSBwb3RlbnRpYWwgZm9yIHNvbWUgd2FpdCBjeWNsZXMgaWYKPiBv bmUgb2YgdGhlIDggd2F5cyBoYXBwZW5zIHRvIGhhdmUgcmVxdWVzdCBjb250ZW50aW9uLiAgaG9u ZXN0bHkgaSBkb24ndCBrbm93Cj4gd2hhdCdzIGJlc3QgaGVyZS4KPgo+IGFkdmljZSBhbmQgZGlz Y3Vzc2lvbiBhcHByZWNpYXRlZCBhcyBhbHdheXMsCj4KPiBsLgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlzY3YtZGV2IG1haWxpbmcgbGlz dApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCmh0dHA6Ly9saXN0cy5saWJy ZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1kZXYK