From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CE960C433ED for ; Tue, 27 Apr 2021 12:16:04 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CBE9C611BE for ; Tue, 27 Apr 2021 12:16:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CBE9C611BE Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 728E86E94F; Tue, 27 Apr 2021 12:15:58 +0000 (UTC) Received: from mail-oi1-x22c.google.com (mail-oi1-x22c.google.com [IPv6:2607:f8b0:4864:20::22c]) by gabe.freedesktop.org (Postfix) with ESMTPS id 84AB96E957 for ; Tue, 27 Apr 2021 12:15:57 +0000 (UTC) Received: by mail-oi1-x22c.google.com with SMTP id e25so29556348oii.2 for ; Tue, 27 Apr 2021 05:15:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=2TRzev2RM+LMzob97hrfQLBIaGqMkZsQP5zHAkPuoHs=; b=VSpOx8SWpWe02NAZHe5f0tsL1xsIrFlvrygbp0DH0y+SdVmyb35cADy2OXSTETYe6D rewsliEdcBMw3dCoW8v6i8gyDYBCnXWN/ByRtEXcrwndmkzBnM6VNn6FpmGe6B5HzrXX C5yb3A62s2AFGXcNHmlcT0DOIOeiapwIjxmJo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=2TRzev2RM+LMzob97hrfQLBIaGqMkZsQP5zHAkPuoHs=; b=j7HAUvSB1CcvDvxD5QcfTk1epFeYadDMaMAZvM3XWZZObeAd44OXL4Wml/nUBx25m3 qD5i+hewSQvY9OQtOnQt+bIAT9vXBJ/0GdUWVbBVW5D8E3OI2PwrcUmeGZaXCmPpJxVM xhjj+Q9AnLEzGgO6GmTbMnCfVDfVI/YbFekSafypTQCE+WOv+bbilT8/pIF8PmyqDMn3 LPC7mZeIx5tCtaQdcLtrxR543Lwn4X4e9I4CkqM+xggsORsOLMnnq/aG3SOc+xTL8vrJ NAHSj4R2zwuGp8aKCk7FNOZ7qq0LNYRy0mxn72NeMueyzIAbeHBIhmKjTKVkYTw1vcBC JMPw== X-Gm-Message-State: AOAM532F5valMmE4KJaliTRWDEf6EV9G2BcBMPAIXPjs+wSoGF+XFffE 4R+wGm/nW0wmKc7gIT9fvZ9Y1atTmDu8EjbsCZvQGw== X-Google-Smtp-Source: ABdhPJw46OFD+kpBhtd0kEKg1p1wyk1s8NJDs1uGJd1ajIdsk7OYoFn07dvVLOYnA6Uiht210Gadjl5qD2D2NPkt12s= X-Received: by 2002:aca:2219:: with SMTP id b25mr2993011oic.14.1619525756733; Tue, 27 Apr 2021 05:15:56 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniel Vetter Date: Tue, 27 Apr 2021 14:15:45 +0200 Message-ID: Subject: Re: [Mesa-dev] [RFC] Linux Graphics Next: Explicit fences everywhere and no BO fences - initial proposal To: =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?Q?Christian_K=C3=B6nig?= , dri-devel , ML Mesa-dev Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVHVlLCBBcHIgMjcsIDIwMjEgYXQgMjoxMSBQTSBNYXJlayBPbMWhw6FrIDxtYXJhZW9AZ21h aWwuY29tPiB3cm90ZToKPiBPay4gSSdsbCBpbnRlcnByZXQgdGhpcyBhcyAieWVzLCBpdCB3aWxs IHdvcmssIGxldCdzIGRvIGl0Ii4KCkl0IHdvcmtzIGlmIGFsbCB5b3UgY2FyZSBhYm91dCBpcyBk cm0vYW1kZ3B1LiBJJ20gbm90IHN1cmUgdGhhdCdzIGEKcmVhc29uYWJsZSBhcHByb2FjaCBmb3Ig dXBzdHJlYW0sIGJ1dCBpdCBkZWZpbml0ZWx5IGlzIGFuIGFwcHJvYWNoIDotKQoKV2UndmUgYWxy ZWFkeSBnb25lIHNvbWV3aGF0IHRocm91Z2ggdGhlIHBhaW4gb2YgZHJtL2FtZGdwdSByZWRlZmlu aW5nCmhvdyBpbXBsaWNpdCBzeW5jIHdvcmtzIHdpdGhvdXQgc3VmZmljaWVudGx5IHRhbGtpbmcg d2l0aCBvdGhlcgpwZW9wbGUsIG1heWJlIHdlIHNob3VsZCBhdm9pZCBhIHJlcGVhdCBvZiB0aGlz IC4uLgotRGFuaWVsCgo+Cj4gTWFyZWsKPgo+IE9uIFR1ZS4sIEFwci4gMjcsIDIwMjEsIDA4OjA2 IENocmlzdGlhbiBLw7ZuaWcsIDxja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4gd3Jv dGU6Cj4+Cj4+IENvcnJlY3QsIHdlIHdvdWxkbid0IGhhdmUgc3luY2hyb25pemF0aW9uIGJldHdl ZW4gZGV2aWNlIHdpdGggYW5kIHdpdGhvdXQgdXNlciBxdWV1ZXMgYW55IG1vcmUuCj4+Cj4+IFRo YXQgY291bGQgb25seSBiZSBhIHByb2JsZW0gZm9yIEErSSBMYXB0b3BzLgo+Pgo+PiBNZW1vcnkg bWFuYWdlbWVudCB3aWxsIGp1c3Qgd29yayB3aXRoIHByZWVtcHRpb24gZmVuY2VzIHdoaWNoIHBh dXNlIHRoZSB1c2VyIHF1ZXVlcyBvZiBhIHByb2Nlc3MgYmVmb3JlIGV2aWN0aW5nIHNvbWV0aGlu Zy4gVGhhdCB3aWxsIGJlIGEgZG1hX2ZlbmNlLCBidXQgYWxzbyBhIHdlbGwga25vd24gYXBwcm9h Y2guCj4+Cj4+IENocmlzdGlhbi4KPj4KPj4gQW0gMjcuMDQuMjEgdW0gMTM6NDkgc2NocmllYiBN YXJlayBPbMWhw6FrOgo+Pgo+PiBJZiB3ZSBkb24ndCB1c2UgZnV0dXJlIGZlbmNlcyBmb3IgRE1B IGZlbmNlcyBhdCBhbGwsIGUuZy4gd2UgZG9uJ3QgdXNlIHRoZW0gZm9yIG1lbW9yeSBtYW5hZ2Vt ZW50LCBpdCBjYW4gd29yaywgcmlnaHQ/IE1lbW9yeSBtYW5hZ2VtZW50IGNhbiBzdXNwZW5kIHVz ZXIgcXVldWVzIGFueXRpbWUuIEl0IGRvZXNuJ3QgbmVlZCB0byB1c2UgRE1BIGZlbmNlcy4gVGhl cmUgbWlnaHQgYmUgc29tZXRoaW5nIHRoYXQgSSdtIG1pc3NpbmcgaGVyZS4KPj4KPj4gV2hhdCB3 b3VsZCB3ZSBsb3NlIHdpdGhvdXQgRE1BIGZlbmNlcz8gSnVzdCBpbnRlci1kZXZpY2Ugc3luY2hy b25pemF0aW9uPyBJIHRoaW5rIHRoYXQgbWlnaHQgYmUgYWNjZXB0YWJsZS4KPj4KPj4gVGhlIG9u bHkgY2FzZSB3aGVuIHRoZSBrZXJuZWwgd2lsbCB3YWl0IG9uIGEgZnV0dXJlIGZlbmNlIGlzIGJl Zm9yZSBhIHBhZ2UgZmxpcC4gRXZlcnl0aGluZyB0b2RheSBhbHJlYWR5IGRlcGVuZHMgb24gdXNl cnNwYWNlIG5vdCBoYW5naW5nIHRoZSBncHUsIHdoaWNoIG1ha2VzIGV2ZXJ5dGhpbmcgYSBmdXR1 cmUgZmVuY2UuCj4+Cj4+IE1hcmVrCj4+Cj4+IE9uIFR1ZS4sIEFwci4gMjcsIDIwMjEsIDA0OjAy IERhbmllbCBWZXR0ZXIsIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3RlOgo+Pj4KPj4+IE9uIE1vbiwg QXByIDI2LCAyMDIxIGF0IDA0OjU5OjI4UE0gLTA0MDAsIE1hcmVrIE9sxaHDoWsgd3JvdGU6Cj4+ PiA+IFRoYW5rcyBldmVyeWJvZHkuIFRoZSBpbml0aWFsIHByb3Bvc2FsIGlzIGRlYWQuIEhlcmUg YXJlIHNvbWUgdGhvdWdodHMgb24KPj4+ID4gaG93IHRvIGRvIGl0IGRpZmZlcmVudGx5Lgo+Pj4g Pgo+Pj4gPiBJIHRoaW5rIHdlIGNhbiBoYXZlIGRpcmVjdCBjb21tYW5kIHN1Ym1pc3Npb24gZnJv bSB1c2Vyc3BhY2UgdmlhCj4+PiA+IG1lbW9yeS1tYXBwZWQgcXVldWVzICgidXNlciBxdWV1ZXMi KSB3aXRob3V0IGNoYW5naW5nIHdpbmRvdyBzeXN0ZW1zLgo+Pj4gPgo+Pj4gPiBUaGUgbWVtb3J5 IG1hbmFnZW1lbnQgZG9lc24ndCBoYXZlIHRvIHVzZSBHUFUgcGFnZSBmYXVsdHMgbGlrZSBITU0u Cj4+PiA+IEluc3RlYWQsIGl0IGNhbiB3YWl0IGZvciB1c2VyIHF1ZXVlcyBvZiBhIHNwZWNpZmlj IHByb2Nlc3MgdG8gZ28gaWRsZSBhbmQKPj4+ID4gdGhlbiB1bm1hcCB0aGUgcXVldWVzLCBzbyB0 aGF0IHVzZXJzcGFjZSBjYW4ndCBzdWJtaXQgYW55dGhpbmcuIEJ1ZmZlcgo+Pj4gPiBldmljdGlv bnMsIHBpbm5pbmcsIGV0Yy4gY2FuIGJlIGV4ZWN1dGVkIHdoZW4gYWxsIHF1ZXVlcyBhcmUgdW5t YXBwZWQKPj4+ID4gKHN1c3BlbmRlZCkuIFRodXMsIG5vIEJPIGZlbmNlcyBhbmQgcGFnZSBmYXVs dHMgYXJlIG5lZWRlZC4KPj4+ID4KPj4+ID4gSW50ZXItcHJvY2VzcyBzeW5jaHJvbml6YXRpb24g Y2FuIHVzZSB0aW1lbGluZSBzZW1hcGhvcmVzLiBVc2Vyc3BhY2Ugd2lsbAo+Pj4gPiBxdWVyeSB0 aGUgd2FpdCBhbmQgc2lnbmFsIHZhbHVlIGZvciBhIHNoYXJlZCBidWZmZXIgZnJvbSB0aGUga2Vy bmVsLiBUaGUKPj4+ID4ga2VybmVsIHdpbGwga2VlcCBhIGhpc3Rvcnkgb2YgdGhvc2UgcXVlcmll cyB0byBrbm93IHdoaWNoIHByb2Nlc3MgaXMKPj4+ID4gcmVzcG9uc2libGUgZm9yIHNpZ25hbGxp bmcgd2hpY2ggYnVmZmVyLiBUaGVyZSBpcyBvbmx5IHRoZSB3YWl0LXRpbWVvdXQKPj4+ID4gaXNz dWUgYW5kIGhvdyB0byBpZGVudGlmeSB0aGUgY3VscHJpdC4gT25lIG9mIHRoZSBzb2x1dGlvbnMg aXMgdG8gaGF2ZSB0aGUKPj4+ID4gR1BVIHNlbmQgYWxsIEdQVSBzaWduYWwgY29tbWFuZHMgYW5k IGFsbCB0aW1lZCBvdXQgd2FpdCBjb21tYW5kcyB2aWEgYW4KPj4+ID4gaW50ZXJydXB0IHRvIHRo ZSBrZXJuZWwgZHJpdmVyIHRvIG1vbml0b3IgYW5kIHZhbGlkYXRlIHVzZXJzcGFjZSBiZWhhdmlv ci4KPj4+ID4gV2l0aCB0aGF0LCBpdCBjYW4gYmUgaWRlbnRpZmllZCB3aGV0aGVyIHRoZSBjdWxw cml0IGlzIHRoZSB3YWl0aW5nIHByb2Nlc3MKPj4+ID4gb3IgdGhlIHNpZ25hbGxpbmcgcHJvY2Vz cyBhbmQgd2hpY2ggb25lLiBJbnZhbGlkIHNpZ25hbC93YWl0IHBhcmFtZXRlcnMgY2FuCj4+PiA+ IGFsc28gYmUgZGV0ZWN0ZWQuIFRoZSBrZXJuZWwgY2FuIGZvcmNlLXNpZ25hbCBvbmx5IHRoZSBz ZW1hcGhvcmVzIHRoYXQgdGltZQo+Pj4gPiBvdXQsIGFuZCBwdW5pc2ggdGhlIHByb2Nlc3NlcyB3 aGljaCBjYXVzZWQgdGhlIHRpbWVvdXQgb3IgdXNlZCBpbnZhbGlkCj4+PiA+IHNpZ25hbC93YWl0 IHBhcmFtZXRlcnMuCj4+PiA+Cj4+PiA+IFRoZSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgc3lu Y2hyb25pemF0aW9uIHNvbHV0aW9uIGlzIHJvYnVzdCBlbm91Z2ggZm9yCj4+PiA+IGRtYV9mZW5j ZSBhbmQgd2hhdGV2ZXIgdGhlIGtlcm5lbCBhbmQgd2luZG93IHN5c3RlbXMgbmVlZC4KPj4+Cj4+ PiBUaGUgcHJvcGVyIG1vZGVsIGhlcmUgaXMgdGhlIHByZWVtcHQtY3R4IGRtYV9mZW5jZSB0aGF0 IGFtZGtmZCB1c2VzCj4+PiAod2l0aG91dCBwYWdlIGZhdWx0cykuIFRoYXQgbWVhbnMgZG1hX2Zl bmNlIGZvciBzeW5jaHJvbml6YXRpb24gaXMgZG9hLCBhdAo+Pj4gbGVhc3QgYXMtaXMsIGFuZCB3 ZSdyZSBiYWNrIHRvIGZpZ3VyaW5nIG91dCB0aGUgd2luc3lzIHByb2JsZW0uCj4+Pgo+Pj4gIldl J2xsIHNvbHZlIGl0IHdpdGggdGltZW91dHMiIGlzIHZlcnkgdGVtcHRpbmcsIGJ1dCBkb2Vzbid0 IHdvcmsuIEl0J3MKPj4+IGFraW4gdG8gc2F5aW5nIHRoYXQgd2UncmUgc29sdmluZyBkZWFkbG9j ayBpc3N1ZXMgaW4gYSBsb2NraW5nIGRlc2lnbiBieQo+Pj4gZG9pbmcgYSBnbG9iYWwgcy9tdXRl eF9sb2NrL211dGV4X2xvY2tfdGltZW91dC8gaW4gdGhlIGtlcm5lbC4gU3VyZSBpdAo+Pj4gYXZv aWRzIGhhdmluZyB0byByZWFjaCB0aGUgcmVzZXQgYnV0dG9uLCBidXQgdGhhdCdzIGFib3V0IGl0 Lgo+Pj4KPj4+IEFuZCB0aGUgZnVuZGFtZW50YWwgcHJvYmxlbSBpcyB0aGF0IG9uY2UgeW91IHRo cm93IGluIHVzZXJzcGFjZSBjb21tYW5kCj4+PiBzdWJtaXNzaW9uIChhbmQgc3luY2luZywgYXQg bGVhc3Qgd2l0aGluIHRoZSB1c2Vyc3BhY2UgZHJpdmVyLCBvdGhlcndpc2UKPj4+IHRoZXJlJ3Mg a2luZGEgbm8gcG9pbnQgaWYgeW91IHN0aWxsIG5lZWQgdGhlIGtlcm5lbCBmb3IgY3Jvc3MtZW5n aW5lIHN5bmMpCj4+PiBtZWFucyB5b3UgZ2V0IGRlYWRsb2NrcyBpZiB5b3Ugc3RpbGwgdXNlIGRt YV9mZW5jZSBmb3Igc3luYyB1bmRlcgo+Pj4gcGVyZmVjdGx5IGxlZ2l0IHVzZS1jYXNlLiBXZSd2 ZSBkaXNjdXNzZWQgdGhhdCBvbmUgYWQgbmF1c2VhbSBsYXN0IHN1bW1lcjoKPj4+Cj4+PiBodHRw czovL2RyaS5mcmVlZGVza3RvcC5vcmcvZG9jcy9kcm0vZHJpdmVyLWFwaS9kbWEtYnVmLmh0bWw/ aGlnaGxpZ2h0PWRtYV9mZW5jZSNpbmRlZmluaXRlLWRtYS1mZW5jZXMKPj4+Cj4+PiBTZWUgc2ls bHkgZGlhZ3JhbW0gYXQgdGhlIGJvdHRvbS4KPj4+Cj4+PiBOb3cgSSB0aGluayBhbGwgaXNuJ3Qg bG9zdCwgYmVjYXVzZSBpbW8gdGhlIGZpcnN0IHN0ZXAgdG8gZ2V0dGluZyB0byB0aGlzCj4+PiBi cmF2ZSBuZXcgd29ybGQgaXMgcmVidWlsZGluZyB0aGUgZHJpdmVyIG9uIHRvcCBvZiB1c2Vyc3Bh Y2UgZmVuY2VzLCBhbmQKPj4+IHdpdGggdGhlIGFkanVzdGVkIGNtZCBzdWJtaXQgbW9kZWwuIFlv dSBwcm9iYWJseSBkb24ndCB3YW50IHRvIHVzZSBhbWRrZmQsCj4+PiBidXQgcG9ydCB0aGF0IGFz IGEgY29udGV4dCBmbGFnIG9yIHNpbWlsYXIgdG8gcmVuZGVyIG5vZGVzIGZvciBnbC92ay4gT2YK Pj4+IGNvdXJzZSB0aGF0IG1lYW5zIHlvdSBjYW4gb25seSB1c2UgdGhpcyBtb2RlIGluIGhlYWRs ZXNzLCB3aXRob3V0Cj4+PiBnbHgvd2F5bGFuZCB3aW5zeXMgc3VwcG9ydCwgYnV0IGl0J3MgYSBz dGFydC4KPj4+IC1EYW5pZWwKPj4+Cj4+PiA+Cj4+PiA+IE1hcmVrCj4+PiA+Cj4+PiA+IE9uIFR1 ZSwgQXByIDIwLCAyMDIxIGF0IDQ6MzQgUE0gRGFuaWVsIFN0b25lIDxkYW5pZWxAZm9vaXNoYmFy Lm9yZz4gd3JvdGU6Cj4+PiA+Cj4+PiA+ID4gSGksCj4+PiA+ID4KPj4+ID4gPiBPbiBUdWUsIDIw IEFwciAyMDIxIGF0IDIwOjMwLCBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3Rl Ogo+Pj4gPiA+Cj4+PiA+ID4+IFRoZSB0aGluZyBpcywgeW91IGNhbid0IGRvIHRoaXMgaW4gZHJt L3NjaGVkdWxlci4gQXQgbGVhc3Qgbm90IHdpdGhvdXQKPj4+ID4gPj4gc3BsaXR0aW5nIHVwIHRo ZSBkbWFfZmVuY2UgaW4gdGhlIGtlcm5lbCBpbnRvIHNlcGFyYXRlIG1lbW9yeSBmZW5jZXMKPj4+ ID4gPj4gYW5kIHN5bmMgZmVuY2VzCj4+PiA+ID4KPj4+ID4gPgo+Pj4gPiA+IEknbSBzdGFydGlu ZyB0byB0aGluayB0aGlzIHRocmVhZCBuZWVkcyBpdHMgb3duIGdsb3NzYXJ5IC4uLgo+Pj4gPiA+ Cj4+PiA+ID4gSSBwcm9wb3NlIHdlIHVzZSAncmVzaWRlbmN5IGZlbmNlJyBmb3IgZXhlY3V0aW9u IGZlbmNlcyB3aGljaCBlbmFjdAo+Pj4gPiA+IG1lbW9yeS1yZXNpZGVuY3kgb3BlcmF0aW9ucywg ZS5nLiBmYXVsdGluZyBpbiBhIHBhZ2UgdWx0aW1hdGVseSBkZXBlbmRpbmcKPj4+ID4gPiBvbiBH UFUgd29yayByZXRpcmluZy4KPj4+ID4gPgo+Pj4gPiA+IEFuZCAndmFsdWUgZmVuY2UnIGZvciB0 aGUgcHVyZS11c2Vyc3BhY2UgbW9kZWwgc3VnZ2VzdGVkIGJ5IHRpbWVsaW5lCj4+PiA+ID4gc2Vt YXBob3JlcywgaS5lLiBmZW5jZXMgYmVpbmcgKCphZGRyID09IHZhbCkgcmF0aGVyIHRoYW4gYmVp bmcgYWJsZSB0byBsb29rCj4+PiA+ID4gYXQgY3R4IHNlcW5vLgo+Pj4gPiA+Cj4+PiA+ID4gQ2hl ZXJzLAo+Pj4gPiA+IERhbmllbAo+Pj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4+PiA+ID4gbWVzYS1kZXYgbWFpbGluZyBsaXN0Cj4+PiA+ID4g bWVzYS1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+PiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9tZXNhLWRldgo+Pj4gPiA+Cj4+Pgo+Pj4gLS0K Pj4+IERhbmllbCBWZXR0ZXIKPj4+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgo+Pj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPj4KPj4KPj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gbWVzYS1kZXYgbWFpbGluZyBsaXN0Cj4+IG1l c2EtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL21lc2EtZGV2Cj4+Cj4+CgoKLS0gCkRhbmllbCBWZXR0ZXIK U29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNo Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=