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=-0.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 21E88C433B4 for ; Wed, 12 May 2021 17:59:46 +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 8BC1461412 for ; Wed, 12 May 2021 17:59:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8BC1461412 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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 BC1CF6EC85; Wed, 12 May 2021 17:59:43 +0000 (UTC) Received: from mail-oi1-x233.google.com (mail-oi1-x233.google.com [IPv6:2607:f8b0:4864:20::233]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64B876E0DD; Wed, 12 May 2021 17:59:42 +0000 (UTC) Received: by mail-oi1-x233.google.com with SMTP id u16so23044135oiu.7; Wed, 12 May 2021 10:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=3L3FFAJbqlYPV686/jgJ78P2Ab6OGKsQUzPIFkt6RLU=; b=QoU/du1x3ZxVjgBl1z50GWLjnz77ZI9ff8GrmKZHLVyKMjq4+54x7gahDehpS3mbu5 Fhku0V8CWsLOPZ/EQFQeIyomfQKWNA4h0Lz0NBld2pioI4pXhBMXHRsU/8YKXcOmoW79 epCm9s0DYdF7F4UYV5VQA9tdVlxzBRENCxJCVholl3nHaYjBr9EWPXeM6uFCZTlf/OTv 7vKf0Fyn9mtmCx2/hVQj4e2OQkJp0y8kSp+dckU14mBCMsX5+f97BYNxYZaExMaJAn0v 50yupl2Z0uBo8VStmESwT49cp4te9rJK0KvYtGNfV7gdkJJJjf3lkXaRMM+z/GgRcmff TZSw== 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=3L3FFAJbqlYPV686/jgJ78P2Ab6OGKsQUzPIFkt6RLU=; b=ZPuGle4rdvA5F0xj8LU1htto4inQqCNnKiO+qmGpgElg1/gokwaQVLR69pNsu5AhF0 HByHDwf1QcOk0qpHAfj3ujZGc7Sr30awr2c1bcjK4CDoY9jEXdB3wLX4Yo6f6vlaNehz ITfrdgO4ilDlU/hMINS7sWnbfTZr9jiD02G6GwjHm+2xs+l22fenxP8yezNIxwx+17ww /SM81pc6j+2LaDnF/S+MLlbKikqzQLMCumRLUNyH0QxGfP+3U5IVLCRir3pfMMAU4BWd Wk6FAmnkkyTBCDfk+6pDvQ9ypcZArDrxOVsKl8GdkdWnS39VdmLVeEjj//mbLYPeHLK5 z3Zw== X-Gm-Message-State: AOAM533jQ+P2s3cM3ChLv9iI15M1ufphK7VavCK/7szvF9DsNHwqeyvf DbmqW2OCDBA8bBvwln8RG2Q8vz62u7rRM8sX5qc= X-Google-Smtp-Source: ABdhPJzOom4prFSokm7yd2nlVsxepWf6MV0xWL/+Bl7cFPfqUYsPgNGs2talEjIVHU5/ADtSL7f0tpg8YIFizKeeZb8= X-Received: by 2002:aca:fc50:: with SMTP id a77mr27253096oii.123.1620842381551; Wed, 12 May 2021 10:59:41 -0700 (PDT) MIME-Version: 1.0 References: <8c0d7ad8-7ade-bf8a-0414-cc795fbb6aa2@tuxedocomputers.com> In-Reply-To: From: Alex Deucher Date: Wed, 12 May 2021 13:59:30 -0400 Message-ID: Subject: Re: New uAPI for color management proposal and feedback request To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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: "Deucher, Alexander" , Intel Graphics Development , Maling list - DRI developers , amd-gfx list , Werner Sembach Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Wed, May 12, 2021 at 9:04 AM Ville Syrj=C3=A4l=C3=A4 wrote: > > On Wed, May 12, 2021 at 02:06:56PM +0200, Werner Sembach wrote: > > Hello, > > > > In addition to the existing "max bpc", and "Broadcast RGB/output_csc" d= rm properties I propose 4 new properties: > > "preferred pixel encoding", "active color depth", "active color range",= and "active pixel encoding" > > > > > > Motivation: > > > > Current monitors have a variety pixel encodings available: RGB, YCbCr 4= :4:4, YCbCr 4:2:2, YCbCr 4:2:0. > > > > In addition they might be full or limited RGB range and the monitors ac= cept different bit depths. > > > > Currently the kernel driver for AMD and Intel GPUs automatically config= ure the color settings automatically with little > > to no influence of the user. However there are several real world scena= rios where the user might disagree with the > > default chosen by the drivers and wants to set his or her own preferenc= e. > > > > Some examples: > > > > 1. While RGB and YCbCr 4:4:4 in theory carry the same amount of color i= nformation, some screens might look better on one > > than the other because of bad internal conversion. The driver currently= however has a fixed default that is chosen if > > available (RGB for Intel and YCbCr 4:4:4 for AMD). The only way to chan= ge this currently is by editing and overloading > > the edid reported by the monitor to the kernel. > > > > 2. RGB and YCbCr 4:4:4 need a higher port clock then YCbCr 4:2:0. Some = hardware might report that it supports the higher > > port clock, but because of bad shielding on the PC, the cable, or the m= onitor the screen cuts out every few seconds when > > RGB or YCbCr 4:4:4 encoding is used, while YCbCr 4:2:0 might just work = fine without changing hardware. The drivers > > currently however always default to the "best available" option even if= it might be broken. > > > > 3. Some screens natively only supporting 8-bit color, simulate 10-Bit c= olor by rapidly switching between 2 adjacent > > colors. They advertise themselves to the kernel as 10-bit monitors but = the user might not like the "fake" 10-bit effect > > and prefer running at the native 8-bit per color. > > > > 4. Some screens are falsely classified as full RGB range wile they actu= ally use limited RGB range. This results in > > washed out colors in dark and bright scenes. A user override can be hel= pful to manually fix this issue when it occurs. > > > > There already exist several requests, discussion, and patches regarding= the thematic: > > > > - https://gitlab.freedesktop.org/drm/amd/-/issues/476 > > > > - https://gitlab.freedesktop.org/drm/amd/-/issues/1548 > > > > - https://lkml.org/lkml/2021/5/7/695 > > > > - https://lkml.org/lkml/2021/5/11/416 > > > > > > Current State: > > > > I only know bits about the Intel i915 and AMD amdgpu driver. I don't kn= ow how other driver handle color management > > > > - "max bpc", global setting applied by both i915 (only on dp i think?) = and amdgpu. Default value is "8". For every > > resolution + frequency combination the highest possible even number bet= ween 6 and max_bpc is chosen. If the range > > doesn't contain a valid mode the resolution + frequency combination is = discarded (but I guess that would be a very > > special edge case, if existent at all, when 6 doesn't work but 10 would= work). Intel HDMI code always checks 8, 12, and > > 10 and does not check the max_bpc setting. > > i915 does limit things below max_bpc for both HDMI and DP. > > > > > - "Broadcast RGB" for i915 and "output_csc" for the old radeon driver (= not amdgpu), overwrites the kernel chosen color > > range setting (full or limited). If I recall correctly Intel HDMI code = defaults to full unless this property is set, > > Intel dp code tries to probe the monitor to find out what to use. amdgp= u has no corresponding setting (I don't know how > > it's decided there). > > i915 has the same behaviour for HDMI and DP, as per the CTA-861/DP > specs. Unfortunately as you already mentioned there are quite a few > monitors (DP monitors in particular) that don't implemnt the spec > correctly. IIRC later DP specs even relaxed the wording to say > that you can basically ignore the spec and do whatever you want. > Which I supose is just admitting defeat and concluding that there > is no way to get this right 100% of the time. > > > > > - RGB pixel encoding can be forced by overloading a Monitors edid with = one that tells the kernel that only RGB is > > possible. That doesn't work for YCbCr 4:4:4 however because of the edid= specification. Forcing YCbCr 4:2:0 would > > theoretically also be possible this way. amdgpu has a debugfs switch "f= orce_ycbcr_420" which makes the driver default to > > YCbCr 4:2:0 on all monitors if possible. > > > > > > Proposed Solution: > > > > 1. Add a new uAPI property "preferred pixel encoding", as a per port se= tting. > > > > - An amdgpu specific implementation was already shared here: https:= //gitlab.freedesktop.org/drm/amd/-/issues/476 > > > > - It also writes back the actually used encoding if the one request= ed was not possible, overwriting the requested > > value in the process. I think it would be better to have this feedback = channel as a different, read-only property. > > > > - Make this solution vendor agnostic by putting it in the drm_conne= ctor_state struct next do max_bpc > > https://elixir.bootlin.com/linux/v5.13-rc1/source/include/drm/drm_conne= ctor.h#L654 and add patches to amdgpu and i915 to > > respect this setting > > > > 2. Convert "Broadcast RGB" to a vendor agnostic setting/replace with a = vendor agnostic setting. > > > > - Imho the name is not very fitting, but it pops up in many tutoria= ls throughout the web (some other opinions? how > > could a rename be handled?". > > IIRC there was an attempt to unify this. Not sure what happened to it. Looks like this set could be resurrected: https://lists.freedesktop.org/archives/dri-devel/2020-April/262153.html Alex > > > > > - Also move it from Intel specific structs to the drm_connector_sta= te struct (please let me know if there is a > > better place) > > > > 3. Strive for full implementation of "max bpc" > > > > - I need to double check the Intel HDMI code. > > > > 4. Add 3 feedback channels "active color depth", "active color range", = and "active pixel encoding" as vendor agnostic > > settings in the drm_connector_state struct > > > > - Possible values are: > > > > - unknown, undefined, 6-bit, 8-bit, 9-bit, 10-bit, 11-bit, 12-b= it, 14-bit, 16-bit (alternatively: an integer > > from -1 (unknown), 0 (undefined) to 16, let me know what would be more = suitable) > > > > - unknown, undefined, full, limited > > > > - unknown, undefined, rgb, ycbcr444, ycbcr422, ycbcr420 > > > > - it's the responsibility of the driver to update the values once t= he port configuration changes > > > > - if the driver does not support the feedback channels they are set= to unknown > > > > - if the driver uses a non listed setting it should set the propert= y to undefined > > > > - A more detailed description why I think these feedback channel ar= e important and should be their own read-only > > property can be found here: https://lkml.org/lkml/2021/5/11/339 > > > > > > Adoption: > > > > A KDE dev wants to implement the settings in the KDE settings GUI: > > https://gitlab.freedesktop.org/drm/amd/-/issues/476#note_912370 > > > > Tuxedo Computers (my employer) wants to implement the settings desktop = environment agnostic in Tuxedo Control Center. I > > will start work on this in parallel to implementing the new kernel code= . > > I suspect everyone would be happier to accept new uapi if we had > multiple compositors signed up to implement it. > > > > > > > Questions: > > > > I'm very curious about feedback from the dri-devel community. Would the= concept outlaid above be accepted as new uAPI > > once it's fully implemented? > > > > Where would be the best way to store the new vendor agnostic settings? = Following the implementation of max_bpc i would > > put it in the drm_connector_state struct. > > > > My way forward would be to implement the feedback channels first, becau= se they can be very useful for debugging the > > setting properties afterwards. > > For debugging we have dmesg/debugfs/etc. If we add new uapi IMO > it will have to have some real world use cases beyond debugging. > > > I will split each of it up it in 3 or 5 patch sets: 1 for the vendor ag= nostic part, 1 for > > Intel (or 2 split up between HDMI and DP), and 1 for AMD (or 2 split up= between HDMI and DP) > > > > Kind regards, > > > > Werner Sembach > > > > -- > Ville Syrj=C3=A4l=C3=A4 > Intel 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=-0.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 52647C433B4 for ; Wed, 12 May 2021 17:59:50 +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 E1295613DF for ; Wed, 12 May 2021 17:59:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E1295613DF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AE3136EC81; Wed, 12 May 2021 17:59:43 +0000 (UTC) Received: from mail-oi1-x233.google.com (mail-oi1-x233.google.com [IPv6:2607:f8b0:4864:20::233]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64B876E0DD; Wed, 12 May 2021 17:59:42 +0000 (UTC) Received: by mail-oi1-x233.google.com with SMTP id u16so23044135oiu.7; Wed, 12 May 2021 10:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=3L3FFAJbqlYPV686/jgJ78P2Ab6OGKsQUzPIFkt6RLU=; b=QoU/du1x3ZxVjgBl1z50GWLjnz77ZI9ff8GrmKZHLVyKMjq4+54x7gahDehpS3mbu5 Fhku0V8CWsLOPZ/EQFQeIyomfQKWNA4h0Lz0NBld2pioI4pXhBMXHRsU/8YKXcOmoW79 epCm9s0DYdF7F4UYV5VQA9tdVlxzBRENCxJCVholl3nHaYjBr9EWPXeM6uFCZTlf/OTv 7vKf0Fyn9mtmCx2/hVQj4e2OQkJp0y8kSp+dckU14mBCMsX5+f97BYNxYZaExMaJAn0v 50yupl2Z0uBo8VStmESwT49cp4te9rJK0KvYtGNfV7gdkJJJjf3lkXaRMM+z/GgRcmff TZSw== 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=3L3FFAJbqlYPV686/jgJ78P2Ab6OGKsQUzPIFkt6RLU=; b=ZPuGle4rdvA5F0xj8LU1htto4inQqCNnKiO+qmGpgElg1/gokwaQVLR69pNsu5AhF0 HByHDwf1QcOk0qpHAfj3ujZGc7Sr30awr2c1bcjK4CDoY9jEXdB3wLX4Yo6f6vlaNehz ITfrdgO4ilDlU/hMINS7sWnbfTZr9jiD02G6GwjHm+2xs+l22fenxP8yezNIxwx+17ww /SM81pc6j+2LaDnF/S+MLlbKikqzQLMCumRLUNyH0QxGfP+3U5IVLCRir3pfMMAU4BWd Wk6FAmnkkyTBCDfk+6pDvQ9ypcZArDrxOVsKl8GdkdWnS39VdmLVeEjj//mbLYPeHLK5 z3Zw== X-Gm-Message-State: AOAM533jQ+P2s3cM3ChLv9iI15M1ufphK7VavCK/7szvF9DsNHwqeyvf DbmqW2OCDBA8bBvwln8RG2Q8vz62u7rRM8sX5qc= X-Google-Smtp-Source: ABdhPJzOom4prFSokm7yd2nlVsxepWf6MV0xWL/+Bl7cFPfqUYsPgNGs2talEjIVHU5/ADtSL7f0tpg8YIFizKeeZb8= X-Received: by 2002:aca:fc50:: with SMTP id a77mr27253096oii.123.1620842381551; Wed, 12 May 2021 10:59:41 -0700 (PDT) MIME-Version: 1.0 References: <8c0d7ad8-7ade-bf8a-0414-cc795fbb6aa2@tuxedocomputers.com> In-Reply-To: From: Alex Deucher Date: Wed, 12 May 2021 13:59:30 -0400 Message-ID: To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Subject: Re: [Intel-gfx] New uAPI for color management proposal and feedback request X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Deucher, Alexander" , Intel Graphics Development , Maling list - DRI developers , amd-gfx list Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCBNYXkgMTIsIDIwMjEgYXQgOTowNCBBTSBWaWxsZSBTeXJqw6Rsw6QKPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPiB3cm90ZToKPgo+IE9uIFdlZCwgTWF5IDEyLCAyMDIxIGF0 IDAyOjA2OjU2UE0gKzAyMDAsIFdlcm5lciBTZW1iYWNoIHdyb3RlOgo+ID4gSGVsbG8sCj4gPgo+ ID4gSW4gYWRkaXRpb24gdG8gdGhlIGV4aXN0aW5nICJtYXggYnBjIiwgYW5kICJCcm9hZGNhc3Qg UkdCL291dHB1dF9jc2MiIGRybSBwcm9wZXJ0aWVzIEkgcHJvcG9zZSA0IG5ldyBwcm9wZXJ0aWVz Ogo+ID4gInByZWZlcnJlZCBwaXhlbCBlbmNvZGluZyIsICJhY3RpdmUgY29sb3IgZGVwdGgiLCAi YWN0aXZlIGNvbG9yIHJhbmdlIiwgYW5kICJhY3RpdmUgcGl4ZWwgZW5jb2RpbmciCj4gPgo+ID4K PiA+IE1vdGl2YXRpb246Cj4gPgo+ID4gQ3VycmVudCBtb25pdG9ycyBoYXZlIGEgdmFyaWV0eSBw aXhlbCBlbmNvZGluZ3MgYXZhaWxhYmxlOiBSR0IsIFlDYkNyIDQ6NDo0LCBZQ2JDciA0OjI6Miwg WUNiQ3IgNDoyOjAuCj4gPgo+ID4gSW4gYWRkaXRpb24gdGhleSBtaWdodCBiZSBmdWxsIG9yIGxp bWl0ZWQgUkdCIHJhbmdlIGFuZCB0aGUgbW9uaXRvcnMgYWNjZXB0IGRpZmZlcmVudCBiaXQgZGVw dGhzLgo+ID4KPiA+IEN1cnJlbnRseSB0aGUga2VybmVsIGRyaXZlciBmb3IgQU1EIGFuZCBJbnRl bCBHUFVzIGF1dG9tYXRpY2FsbHkgY29uZmlndXJlIHRoZSBjb2xvciBzZXR0aW5ncyBhdXRvbWF0 aWNhbGx5IHdpdGggbGl0dGxlCj4gPiB0byBubyBpbmZsdWVuY2Ugb2YgdGhlIHVzZXIuIEhvd2V2 ZXIgdGhlcmUgYXJlIHNldmVyYWwgcmVhbCB3b3JsZCBzY2VuYXJpb3Mgd2hlcmUgdGhlIHVzZXIg bWlnaHQgZGlzYWdyZWUgd2l0aCB0aGUKPiA+IGRlZmF1bHQgY2hvc2VuIGJ5IHRoZSBkcml2ZXJz IGFuZCB3YW50cyB0byBzZXQgaGlzIG9yIGhlciBvd24gcHJlZmVyZW5jZS4KPiA+Cj4gPiBTb21l IGV4YW1wbGVzOgo+ID4KPiA+IDEuIFdoaWxlIFJHQiBhbmQgWUNiQ3IgNDo0OjQgaW4gdGhlb3J5 IGNhcnJ5IHRoZSBzYW1lIGFtb3VudCBvZiBjb2xvciBpbmZvcm1hdGlvbiwgc29tZSBzY3JlZW5z IG1pZ2h0IGxvb2sgYmV0dGVyIG9uIG9uZQo+ID4gdGhhbiB0aGUgb3RoZXIgYmVjYXVzZSBvZiBi YWQgaW50ZXJuYWwgY29udmVyc2lvbi4gVGhlIGRyaXZlciBjdXJyZW50bHkgaG93ZXZlciBoYXMg YSBmaXhlZCBkZWZhdWx0IHRoYXQgaXMgY2hvc2VuIGlmCj4gPiBhdmFpbGFibGUgKFJHQiBmb3Ig SW50ZWwgYW5kIFlDYkNyIDQ6NDo0IGZvciBBTUQpLiBUaGUgb25seSB3YXkgdG8gY2hhbmdlIHRo aXMgY3VycmVudGx5IGlzIGJ5IGVkaXRpbmcgYW5kIG92ZXJsb2FkaW5nCj4gPiB0aGUgZWRpZCBy ZXBvcnRlZCBieSB0aGUgbW9uaXRvciB0byB0aGUga2VybmVsLgo+ID4KPiA+IDIuIFJHQiBhbmQg WUNiQ3IgNDo0OjQgbmVlZCBhIGhpZ2hlciBwb3J0IGNsb2NrIHRoZW4gWUNiQ3IgNDoyOjAuIFNv bWUgaGFyZHdhcmUgbWlnaHQgcmVwb3J0IHRoYXQgaXQgc3VwcG9ydHMgdGhlIGhpZ2hlcgo+ID4g cG9ydCBjbG9jaywgYnV0IGJlY2F1c2Ugb2YgYmFkIHNoaWVsZGluZyBvbiB0aGUgUEMsIHRoZSBj YWJsZSwgb3IgdGhlIG1vbml0b3IgdGhlIHNjcmVlbiBjdXRzIG91dCBldmVyeSBmZXcgc2Vjb25k cyB3aGVuCj4gPiBSR0Igb3IgWUNiQ3IgNDo0OjQgZW5jb2RpbmcgaXMgdXNlZCwgd2hpbGUgWUNi Q3IgNDoyOjAgbWlnaHQganVzdCB3b3JrIGZpbmUgd2l0aG91dCBjaGFuZ2luZyBoYXJkd2FyZS4g VGhlIGRyaXZlcnMKPiA+IGN1cnJlbnRseSBob3dldmVyIGFsd2F5cyBkZWZhdWx0IHRvIHRoZSAi YmVzdCBhdmFpbGFibGUiIG9wdGlvbiBldmVuIGlmIGl0IG1pZ2h0IGJlIGJyb2tlbi4KPiA+Cj4g PiAzLiBTb21lIHNjcmVlbnMgbmF0aXZlbHkgb25seSBzdXBwb3J0aW5nIDgtYml0IGNvbG9yLCBz aW11bGF0ZSAxMC1CaXQgY29sb3IgYnkgcmFwaWRseSBzd2l0Y2hpbmcgYmV0d2VlbiAyIGFkamFj ZW50Cj4gPiBjb2xvcnMuIFRoZXkgYWR2ZXJ0aXNlIHRoZW1zZWx2ZXMgdG8gdGhlIGtlcm5lbCBh cyAxMC1iaXQgbW9uaXRvcnMgYnV0IHRoZSB1c2VyIG1pZ2h0IG5vdCBsaWtlIHRoZSAiZmFrZSIg MTAtYml0IGVmZmVjdAo+ID4gYW5kIHByZWZlciBydW5uaW5nIGF0IHRoZSBuYXRpdmUgOC1iaXQg cGVyIGNvbG9yLgo+ID4KPiA+IDQuIFNvbWUgc2NyZWVucyBhcmUgZmFsc2VseSBjbGFzc2lmaWVk IGFzIGZ1bGwgUkdCIHJhbmdlIHdpbGUgdGhleSBhY3R1YWxseSB1c2UgbGltaXRlZCBSR0IgcmFu Z2UuIFRoaXMgcmVzdWx0cyBpbgo+ID4gd2FzaGVkIG91dCBjb2xvcnMgaW4gZGFyayBhbmQgYnJp Z2h0IHNjZW5lcy4gQSB1c2VyIG92ZXJyaWRlIGNhbiBiZSBoZWxwZnVsIHRvIG1hbnVhbGx5IGZp eCB0aGlzIGlzc3VlIHdoZW4gaXQgb2NjdXJzLgo+ID4KPiA+IFRoZXJlIGFscmVhZHkgZXhpc3Qg c2V2ZXJhbCByZXF1ZXN0cywgZGlzY3Vzc2lvbiwgYW5kIHBhdGNoZXMgcmVnYXJkaW5nIHRoZSB0 aGVtYXRpYzoKPiA+Cj4gPiAtIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9kcm0vYW1k Ly0vaXNzdWVzLzQ3Ngo+ID4KPiA+IC0gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2Ry bS9hbWQvLS9pc3N1ZXMvMTU0OAo+ID4KPiA+IC0gaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMjEv NS83LzY5NQo+ID4KPiA+IC0gaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMjEvNS8xMS80MTYKPiA+ Cj4gPgo+ID4gQ3VycmVudCBTdGF0ZToKPiA+Cj4gPiBJIG9ubHkga25vdyBiaXRzIGFib3V0IHRo ZSBJbnRlbCBpOTE1IGFuZCBBTUQgYW1kZ3B1IGRyaXZlci4gSSBkb24ndCBrbm93IGhvdyBvdGhl ciBkcml2ZXIgaGFuZGxlIGNvbG9yIG1hbmFnZW1lbnQKPiA+Cj4gPiAtICJtYXggYnBjIiwgZ2xv YmFsIHNldHRpbmcgYXBwbGllZCBieSBib3RoIGk5MTUgKG9ubHkgb24gZHAgaSB0aGluaz8pIGFu ZCBhbWRncHUuIERlZmF1bHQgdmFsdWUgaXMgIjgiLiBGb3IgZXZlcnkKPiA+IHJlc29sdXRpb24g KyBmcmVxdWVuY3kgY29tYmluYXRpb24gdGhlIGhpZ2hlc3QgcG9zc2libGUgZXZlbiBudW1iZXIg YmV0d2VlbiA2IGFuZCBtYXhfYnBjIGlzIGNob3Nlbi4gSWYgdGhlIHJhbmdlCj4gPiBkb2Vzbid0 IGNvbnRhaW4gYSB2YWxpZCBtb2RlIHRoZSByZXNvbHV0aW9uICsgZnJlcXVlbmN5IGNvbWJpbmF0 aW9uIGlzIGRpc2NhcmRlZCAoYnV0IEkgZ3Vlc3MgdGhhdCB3b3VsZCBiZSBhIHZlcnkKPiA+IHNw ZWNpYWwgZWRnZSBjYXNlLCBpZiBleGlzdGVudCBhdCBhbGwsIHdoZW4gNiBkb2Vzbid0IHdvcmsg YnV0IDEwIHdvdWxkIHdvcmspLiBJbnRlbCBIRE1JIGNvZGUgYWx3YXlzIGNoZWNrcyA4LCAxMiwg YW5kCj4gPiAxMCBhbmQgZG9lcyBub3QgY2hlY2sgdGhlIG1heF9icGMgc2V0dGluZy4KPgo+IGk5 MTUgZG9lcyBsaW1pdCB0aGluZ3MgYmVsb3cgbWF4X2JwYyBmb3IgYm90aCBIRE1JIGFuZCBEUC4K Pgo+ID4KPiA+IC0gIkJyb2FkY2FzdCBSR0IiIGZvciBpOTE1IGFuZCAib3V0cHV0X2NzYyIgZm9y IHRoZSBvbGQgcmFkZW9uIGRyaXZlciAobm90IGFtZGdwdSksIG92ZXJ3cml0ZXMgdGhlIGtlcm5l bCBjaG9zZW4gY29sb3IKPiA+IHJhbmdlIHNldHRpbmcgKGZ1bGwgb3IgbGltaXRlZCkuIElmIEkg cmVjYWxsIGNvcnJlY3RseSBJbnRlbCBIRE1JIGNvZGUgZGVmYXVsdHMgdG8gZnVsbCB1bmxlc3Mg dGhpcyBwcm9wZXJ0eSBpcyBzZXQsCj4gPiBJbnRlbCBkcCBjb2RlIHRyaWVzIHRvIHByb2JlIHRo ZSBtb25pdG9yIHRvIGZpbmQgb3V0IHdoYXQgdG8gdXNlLiBhbWRncHUgaGFzIG5vIGNvcnJlc3Bv bmRpbmcgc2V0dGluZyAoSSBkb24ndCBrbm93IGhvdwo+ID4gaXQncyBkZWNpZGVkIHRoZXJlKS4K Pgo+IGk5MTUgaGFzIHRoZSBzYW1lIGJlaGF2aW91ciBmb3IgSERNSSBhbmQgRFAsIGFzIHBlciB0 aGUgQ1RBLTg2MS9EUAo+IHNwZWNzLiBVbmZvcnR1bmF0ZWx5IGFzIHlvdSBhbHJlYWR5IG1lbnRp b25lZCB0aGVyZSBhcmUgcXVpdGUgYSBmZXcKPiBtb25pdG9ycyAoRFAgbW9uaXRvcnMgaW4gcGFy dGljdWxhcikgdGhhdCBkb24ndCBpbXBsZW1udCB0aGUgc3BlYwo+IGNvcnJlY3RseS4gSUlSQyBs YXRlciBEUCBzcGVjcyBldmVuIHJlbGF4ZWQgdGhlIHdvcmRpbmcgdG8gc2F5Cj4gdGhhdCB5b3Ug Y2FuIGJhc2ljYWxseSBpZ25vcmUgdGhlIHNwZWMgYW5kIGRvIHdoYXRldmVyIHlvdSB3YW50Lgo+ IFdoaWNoIEkgc3Vwb3NlIGlzIGp1c3QgYWRtaXR0aW5nIGRlZmVhdCBhbmQgY29uY2x1ZGluZyB0 aGF0IHRoZXJlCj4gaXMgbm8gd2F5IHRvIGdldCB0aGlzIHJpZ2h0IDEwMCUgb2YgdGhlIHRpbWUu Cj4KPiA+Cj4gPiAtIFJHQiBwaXhlbCBlbmNvZGluZyBjYW4gYmUgZm9yY2VkIGJ5IG92ZXJsb2Fk aW5nIGEgTW9uaXRvcnMgZWRpZCB3aXRoIG9uZSB0aGF0IHRlbGxzIHRoZSBrZXJuZWwgdGhhdCBv bmx5IFJHQiBpcwo+ID4gcG9zc2libGUuIFRoYXQgZG9lc24ndCB3b3JrIGZvciBZQ2JDciA0OjQ6 NCBob3dldmVyIGJlY2F1c2Ugb2YgdGhlIGVkaWQgc3BlY2lmaWNhdGlvbi4gRm9yY2luZyBZQ2JD ciA0OjI6MCB3b3VsZAo+ID4gdGhlb3JldGljYWxseSBhbHNvIGJlIHBvc3NpYmxlIHRoaXMgd2F5 LiBhbWRncHUgaGFzIGEgZGVidWdmcyBzd2l0Y2ggImZvcmNlX3ljYmNyXzQyMCIgd2hpY2ggbWFr ZXMgdGhlIGRyaXZlciBkZWZhdWx0IHRvCj4gPiBZQ2JDciA0OjI6MCBvbiBhbGwgbW9uaXRvcnMg aWYgcG9zc2libGUuCj4gPgo+ID4KPiA+IFByb3Bvc2VkIFNvbHV0aW9uOgo+ID4KPiA+IDEuIEFk ZCBhIG5ldyB1QVBJIHByb3BlcnR5ICJwcmVmZXJyZWQgcGl4ZWwgZW5jb2RpbmciLCBhcyBhIHBl ciBwb3J0IHNldHRpbmcuCj4gPgo+ID4gICAgIC0gQW4gYW1kZ3B1IHNwZWNpZmljIGltcGxlbWVu dGF0aW9uIHdhcyBhbHJlYWR5IHNoYXJlZCBoZXJlOiBodHRwczovL2dpdGxhYi5mcmVlZGVza3Rv cC5vcmcvZHJtL2FtZC8tL2lzc3Vlcy80NzYKPiA+Cj4gPiAgICAgLSBJdCBhbHNvIHdyaXRlcyBi YWNrIHRoZSBhY3R1YWxseSB1c2VkIGVuY29kaW5nIGlmIHRoZSBvbmUgcmVxdWVzdGVkIHdhcyBu b3QgcG9zc2libGUsIG92ZXJ3cml0aW5nIHRoZSByZXF1ZXN0ZWQKPiA+IHZhbHVlIGluIHRoZSBw cm9jZXNzLiBJIHRoaW5rIGl0IHdvdWxkIGJlIGJldHRlciB0byBoYXZlIHRoaXMgZmVlZGJhY2sg Y2hhbm5lbCBhcyBhIGRpZmZlcmVudCwgcmVhZC1vbmx5IHByb3BlcnR5Lgo+ID4KPiA+ICAgICAt IE1ha2UgdGhpcyBzb2x1dGlvbiB2ZW5kb3IgYWdub3N0aWMgYnkgcHV0dGluZyBpdCBpbiB0aGUg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBzdHJ1Y3QgbmV4dCBkbyBtYXhfYnBjCj4gPiBodHRwczovL2Vs aXhpci5ib290bGluLmNvbS9saW51eC92NS4xMy1yYzEvc291cmNlL2luY2x1ZGUvZHJtL2RybV9j b25uZWN0b3IuaCNMNjU0IGFuZCBhZGQgcGF0Y2hlcyB0byBhbWRncHUgYW5kIGk5MTUgdG8KPiA+ IHJlc3BlY3QgdGhpcyBzZXR0aW5nCj4gPgo+ID4gMi4gQ29udmVydCAiQnJvYWRjYXN0IFJHQiIg dG8gYSB2ZW5kb3IgYWdub3N0aWMgc2V0dGluZy9yZXBsYWNlIHdpdGggYSB2ZW5kb3IgYWdub3N0 aWMgc2V0dGluZy4KPiA+Cj4gPiAgICAgLSBJbWhvIHRoZSBuYW1lIGlzIG5vdCB2ZXJ5IGZpdHRp bmcsIGJ1dCBpdCBwb3BzIHVwIGluIG1hbnkgdHV0b3JpYWxzIHRocm91Z2hvdXQgdGhlIHdlYiAo c29tZSBvdGhlciBvcGluaW9ucz8gaG93Cj4gPiBjb3VsZCBhIHJlbmFtZSBiZSBoYW5kbGVkPyIu Cj4KPiBJSVJDIHRoZXJlIHdhcyBhbiBhdHRlbXB0IHRvIHVuaWZ5IHRoaXMuIE5vdCBzdXJlIHdo YXQgaGFwcGVuZWQgdG8gaXQuCgpMb29rcyBsaWtlIHRoaXMgc2V0IGNvdWxkIGJlIHJlc3VycmVj dGVkOgpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAy MC1BcHJpbC8yNjIxNTMuaHRtbAoKQWxleAoKPgo+ID4KPiA+ICAgICAtIEFsc28gbW92ZSBpdCBm cm9tIEludGVsIHNwZWNpZmljIHN0cnVjdHMgdG8gdGhlIGRybV9jb25uZWN0b3Jfc3RhdGUgc3Ry dWN0IChwbGVhc2UgbGV0IG1lIGtub3cgaWYgdGhlcmUgaXMgYQo+ID4gYmV0dGVyIHBsYWNlKQo+ ID4KPiA+IDMuIFN0cml2ZSBmb3IgZnVsbCBpbXBsZW1lbnRhdGlvbiBvZiAibWF4IGJwYyIKPiA+ Cj4gPiAgICAgLSBJIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBJbnRlbCBIRE1JIGNvZGUuCj4g Pgo+ID4gNC4gQWRkIDMgZmVlZGJhY2sgY2hhbm5lbHMgImFjdGl2ZSBjb2xvciBkZXB0aCIsICJh Y3RpdmUgY29sb3IgcmFuZ2UiLCBhbmQgImFjdGl2ZSBwaXhlbCBlbmNvZGluZyIgYXMgdmVuZG9y IGFnbm9zdGljCj4gPiBzZXR0aW5ncyBpbiB0aGUgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBzdHJ1Y3QK PiA+Cj4gPiAgICAgLSBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo+ID4KPiA+ICAgICAgICAgLSB1bmtu b3duLCB1bmRlZmluZWQsIDYtYml0LCA4LWJpdCwgOS1iaXQsIDEwLWJpdCwgMTEtYml0LCAxMi1i aXQsIDE0LWJpdCwgMTYtYml0IChhbHRlcm5hdGl2ZWx5OiBhbiBpbnRlZ2VyCj4gPiBmcm9tIC0x ICh1bmtub3duKSwgMCAodW5kZWZpbmVkKSB0byAxNiwgbGV0IG1lIGtub3cgd2hhdCB3b3VsZCBi ZSBtb3JlIHN1aXRhYmxlKQo+ID4KPiA+ICAgICAgICAgLSB1bmtub3duLCB1bmRlZmluZWQsIGZ1 bGwsIGxpbWl0ZWQKPiA+Cj4gPiAgICAgICAgIC0gdW5rbm93biwgdW5kZWZpbmVkLCByZ2IsIHlj YmNyNDQ0LCB5Y2JjcjQyMiwgeWNiY3I0MjAKPiA+Cj4gPiAgICAgLSBpdCdzIHRoZSByZXNwb25z aWJpbGl0eSBvZiB0aGUgZHJpdmVyIHRvIHVwZGF0ZSB0aGUgdmFsdWVzIG9uY2UgdGhlIHBvcnQg Y29uZmlndXJhdGlvbiBjaGFuZ2VzCj4gPgo+ID4gICAgIC0gaWYgdGhlIGRyaXZlciBkb2VzIG5v dCBzdXBwb3J0IHRoZSBmZWVkYmFjayBjaGFubmVscyB0aGV5IGFyZSBzZXQgdG8gdW5rbm93bgo+ ID4KPiA+ICAgICAtIGlmIHRoZSBkcml2ZXIgdXNlcyBhIG5vbiBsaXN0ZWQgc2V0dGluZyBpdCBz aG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB0byB1bmRlZmluZWQKPiA+Cj4gPiAgICAgLSBBIG1vcmUg ZGV0YWlsZWQgZGVzY3JpcHRpb24gd2h5IEkgdGhpbmsgdGhlc2UgZmVlZGJhY2sgY2hhbm5lbCBh cmUgaW1wb3J0YW50IGFuZCBzaG91bGQgYmUgdGhlaXIgb3duIHJlYWQtb25seQo+ID4gcHJvcGVy dHkgY2FuIGJlIGZvdW5kIGhlcmU6IGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDIxLzUvMTEvMzM5 Cj4gPgo+ID4KPiA+IEFkb3B0aW9uOgo+ID4KPiA+IEEgS0RFIGRldiB3YW50cyB0byBpbXBsZW1l bnQgdGhlIHNldHRpbmdzIGluIHRoZSBLREUgc2V0dGluZ3MgR1VJOgo+ID4gaHR0cHM6Ly9naXRs YWIuZnJlZWRlc2t0b3Aub3JnL2RybS9hbWQvLS9pc3N1ZXMvNDc2I25vdGVfOTEyMzcwCj4gPgo+ ID4gVHV4ZWRvIENvbXB1dGVycyAobXkgZW1wbG95ZXIpIHdhbnRzIHRvIGltcGxlbWVudCB0aGUg c2V0dGluZ3MgZGVza3RvcCBlbnZpcm9ubWVudCBhZ25vc3RpYyBpbiBUdXhlZG8gQ29udHJvbCBD ZW50ZXIuIEkKPiA+IHdpbGwgc3RhcnQgd29yayBvbiB0aGlzIGluIHBhcmFsbGVsIHRvIGltcGxl bWVudGluZyB0aGUgbmV3IGtlcm5lbCBjb2RlLgo+Cj4gSSBzdXNwZWN0IGV2ZXJ5b25lIHdvdWxk IGJlIGhhcHBpZXIgdG8gYWNjZXB0IG5ldyB1YXBpIGlmIHdlIGhhZAo+IG11bHRpcGxlIGNvbXBv c2l0b3JzIHNpZ25lZCB1cCB0byBpbXBsZW1lbnQgaXQuCj4KPiA+Cj4gPgo+ID4gUXVlc3Rpb25z Ogo+ID4KPiA+IEknbSB2ZXJ5IGN1cmlvdXMgYWJvdXQgZmVlZGJhY2sgZnJvbSB0aGUgZHJpLWRl dmVsIGNvbW11bml0eS4gV291bGQgdGhlIGNvbmNlcHQgb3V0bGFpZCBhYm92ZSBiZSBhY2NlcHRl ZCBhcyBuZXcgdUFQSQo+ID4gb25jZSBpdCdzIGZ1bGx5IGltcGxlbWVudGVkPwo+ID4KPiA+IFdo ZXJlIHdvdWxkIGJlIHRoZSBiZXN0IHdheSB0byBzdG9yZSB0aGUgbmV3IHZlbmRvciBhZ25vc3Rp YyBzZXR0aW5ncz8gRm9sbG93aW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBtYXhfYnBjIGkgd291 bGQKPiA+IHB1dCBpdCBpbiB0aGUgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBzdHJ1Y3QuCj4gPgo+ID4g TXkgd2F5IGZvcndhcmQgd291bGQgYmUgdG8gaW1wbGVtZW50IHRoZSBmZWVkYmFjayBjaGFubmVs cyBmaXJzdCwgYmVjYXVzZSB0aGV5IGNhbiBiZSB2ZXJ5IHVzZWZ1bCBmb3IgZGVidWdnaW5nIHRo ZQo+ID4gc2V0dGluZyBwcm9wZXJ0aWVzIGFmdGVyd2FyZHMuCj4KPiBGb3IgZGVidWdnaW5nIHdl IGhhdmUgZG1lc2cvZGVidWdmcy9ldGMuIElmIHdlIGFkZCBuZXcgdWFwaSBJTU8KPiBpdCB3aWxs IGhhdmUgdG8gaGF2ZSBzb21lIHJlYWwgd29ybGQgdXNlIGNhc2VzIGJleW9uZCBkZWJ1Z2dpbmcu Cj4KPiA+IEkgd2lsbCBzcGxpdCBlYWNoIG9mIGl0IHVwIGl0IGluIDMgb3IgNSBwYXRjaCBzZXRz OiAxIGZvciB0aGUgdmVuZG9yIGFnbm9zdGljIHBhcnQsIDEgZm9yCj4gPiBJbnRlbCAob3IgMiBz cGxpdCB1cCBiZXR3ZWVuIEhETUkgYW5kIERQKSwgYW5kIDEgZm9yIEFNRCAob3IgMiBzcGxpdCB1 cCBiZXR3ZWVuIEhETUkgYW5kIERQKQo+ID4KPiA+IEtpbmQgcmVnYXJkcywKPiA+Cj4gPiBXZXJu ZXIgU2VtYmFjaAo+ID4KPgo+IC0tCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== 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=-0.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 DA36EC433ED for ; Wed, 12 May 2021 17:59:44 +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 69F1F61412 for ; Wed, 12 May 2021 17:59:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 69F1F61412 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A15896E0DD; Wed, 12 May 2021 17:59:43 +0000 (UTC) Received: from mail-oi1-x233.google.com (mail-oi1-x233.google.com [IPv6:2607:f8b0:4864:20::233]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64B876E0DD; Wed, 12 May 2021 17:59:42 +0000 (UTC) Received: by mail-oi1-x233.google.com with SMTP id u16so23044135oiu.7; Wed, 12 May 2021 10:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=3L3FFAJbqlYPV686/jgJ78P2Ab6OGKsQUzPIFkt6RLU=; b=QoU/du1x3ZxVjgBl1z50GWLjnz77ZI9ff8GrmKZHLVyKMjq4+54x7gahDehpS3mbu5 Fhku0V8CWsLOPZ/EQFQeIyomfQKWNA4h0Lz0NBld2pioI4pXhBMXHRsU/8YKXcOmoW79 epCm9s0DYdF7F4UYV5VQA9tdVlxzBRENCxJCVholl3nHaYjBr9EWPXeM6uFCZTlf/OTv 7vKf0Fyn9mtmCx2/hVQj4e2OQkJp0y8kSp+dckU14mBCMsX5+f97BYNxYZaExMaJAn0v 50yupl2Z0uBo8VStmESwT49cp4te9rJK0KvYtGNfV7gdkJJJjf3lkXaRMM+z/GgRcmff TZSw== 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=3L3FFAJbqlYPV686/jgJ78P2Ab6OGKsQUzPIFkt6RLU=; b=ZPuGle4rdvA5F0xj8LU1htto4inQqCNnKiO+qmGpgElg1/gokwaQVLR69pNsu5AhF0 HByHDwf1QcOk0qpHAfj3ujZGc7Sr30awr2c1bcjK4CDoY9jEXdB3wLX4Yo6f6vlaNehz ITfrdgO4ilDlU/hMINS7sWnbfTZr9jiD02G6GwjHm+2xs+l22fenxP8yezNIxwx+17ww /SM81pc6j+2LaDnF/S+MLlbKikqzQLMCumRLUNyH0QxGfP+3U5IVLCRir3pfMMAU4BWd Wk6FAmnkkyTBCDfk+6pDvQ9ypcZArDrxOVsKl8GdkdWnS39VdmLVeEjj//mbLYPeHLK5 z3Zw== X-Gm-Message-State: AOAM533jQ+P2s3cM3ChLv9iI15M1ufphK7VavCK/7szvF9DsNHwqeyvf DbmqW2OCDBA8bBvwln8RG2Q8vz62u7rRM8sX5qc= X-Google-Smtp-Source: ABdhPJzOom4prFSokm7yd2nlVsxepWf6MV0xWL/+Bl7cFPfqUYsPgNGs2talEjIVHU5/ADtSL7f0tpg8YIFizKeeZb8= X-Received: by 2002:aca:fc50:: with SMTP id a77mr27253096oii.123.1620842381551; Wed, 12 May 2021 10:59:41 -0700 (PDT) MIME-Version: 1.0 References: <8c0d7ad8-7ade-bf8a-0414-cc795fbb6aa2@tuxedocomputers.com> In-Reply-To: From: Alex Deucher Date: Wed, 12 May 2021 13:59:30 -0400 Message-ID: Subject: Re: New uAPI for color management proposal and feedback request To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Deucher, Alexander" , Intel Graphics Development , Maling list - DRI developers , amd-gfx list , Werner Sembach Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" T24gV2VkLCBNYXkgMTIsIDIwMjEgYXQgOTowNCBBTSBWaWxsZSBTeXJqw6Rsw6QKPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPiB3cm90ZToKPgo+IE9uIFdlZCwgTWF5IDEyLCAyMDIxIGF0 IDAyOjA2OjU2UE0gKzAyMDAsIFdlcm5lciBTZW1iYWNoIHdyb3RlOgo+ID4gSGVsbG8sCj4gPgo+ ID4gSW4gYWRkaXRpb24gdG8gdGhlIGV4aXN0aW5nICJtYXggYnBjIiwgYW5kICJCcm9hZGNhc3Qg UkdCL291dHB1dF9jc2MiIGRybSBwcm9wZXJ0aWVzIEkgcHJvcG9zZSA0IG5ldyBwcm9wZXJ0aWVz Ogo+ID4gInByZWZlcnJlZCBwaXhlbCBlbmNvZGluZyIsICJhY3RpdmUgY29sb3IgZGVwdGgiLCAi YWN0aXZlIGNvbG9yIHJhbmdlIiwgYW5kICJhY3RpdmUgcGl4ZWwgZW5jb2RpbmciCj4gPgo+ID4K PiA+IE1vdGl2YXRpb246Cj4gPgo+ID4gQ3VycmVudCBtb25pdG9ycyBoYXZlIGEgdmFyaWV0eSBw aXhlbCBlbmNvZGluZ3MgYXZhaWxhYmxlOiBSR0IsIFlDYkNyIDQ6NDo0LCBZQ2JDciA0OjI6Miwg WUNiQ3IgNDoyOjAuCj4gPgo+ID4gSW4gYWRkaXRpb24gdGhleSBtaWdodCBiZSBmdWxsIG9yIGxp bWl0ZWQgUkdCIHJhbmdlIGFuZCB0aGUgbW9uaXRvcnMgYWNjZXB0IGRpZmZlcmVudCBiaXQgZGVw dGhzLgo+ID4KPiA+IEN1cnJlbnRseSB0aGUga2VybmVsIGRyaXZlciBmb3IgQU1EIGFuZCBJbnRl bCBHUFVzIGF1dG9tYXRpY2FsbHkgY29uZmlndXJlIHRoZSBjb2xvciBzZXR0aW5ncyBhdXRvbWF0 aWNhbGx5IHdpdGggbGl0dGxlCj4gPiB0byBubyBpbmZsdWVuY2Ugb2YgdGhlIHVzZXIuIEhvd2V2 ZXIgdGhlcmUgYXJlIHNldmVyYWwgcmVhbCB3b3JsZCBzY2VuYXJpb3Mgd2hlcmUgdGhlIHVzZXIg bWlnaHQgZGlzYWdyZWUgd2l0aCB0aGUKPiA+IGRlZmF1bHQgY2hvc2VuIGJ5IHRoZSBkcml2ZXJz IGFuZCB3YW50cyB0byBzZXQgaGlzIG9yIGhlciBvd24gcHJlZmVyZW5jZS4KPiA+Cj4gPiBTb21l IGV4YW1wbGVzOgo+ID4KPiA+IDEuIFdoaWxlIFJHQiBhbmQgWUNiQ3IgNDo0OjQgaW4gdGhlb3J5 IGNhcnJ5IHRoZSBzYW1lIGFtb3VudCBvZiBjb2xvciBpbmZvcm1hdGlvbiwgc29tZSBzY3JlZW5z IG1pZ2h0IGxvb2sgYmV0dGVyIG9uIG9uZQo+ID4gdGhhbiB0aGUgb3RoZXIgYmVjYXVzZSBvZiBi YWQgaW50ZXJuYWwgY29udmVyc2lvbi4gVGhlIGRyaXZlciBjdXJyZW50bHkgaG93ZXZlciBoYXMg YSBmaXhlZCBkZWZhdWx0IHRoYXQgaXMgY2hvc2VuIGlmCj4gPiBhdmFpbGFibGUgKFJHQiBmb3Ig SW50ZWwgYW5kIFlDYkNyIDQ6NDo0IGZvciBBTUQpLiBUaGUgb25seSB3YXkgdG8gY2hhbmdlIHRo aXMgY3VycmVudGx5IGlzIGJ5IGVkaXRpbmcgYW5kIG92ZXJsb2FkaW5nCj4gPiB0aGUgZWRpZCBy ZXBvcnRlZCBieSB0aGUgbW9uaXRvciB0byB0aGUga2VybmVsLgo+ID4KPiA+IDIuIFJHQiBhbmQg WUNiQ3IgNDo0OjQgbmVlZCBhIGhpZ2hlciBwb3J0IGNsb2NrIHRoZW4gWUNiQ3IgNDoyOjAuIFNv bWUgaGFyZHdhcmUgbWlnaHQgcmVwb3J0IHRoYXQgaXQgc3VwcG9ydHMgdGhlIGhpZ2hlcgo+ID4g cG9ydCBjbG9jaywgYnV0IGJlY2F1c2Ugb2YgYmFkIHNoaWVsZGluZyBvbiB0aGUgUEMsIHRoZSBj YWJsZSwgb3IgdGhlIG1vbml0b3IgdGhlIHNjcmVlbiBjdXRzIG91dCBldmVyeSBmZXcgc2Vjb25k cyB3aGVuCj4gPiBSR0Igb3IgWUNiQ3IgNDo0OjQgZW5jb2RpbmcgaXMgdXNlZCwgd2hpbGUgWUNi Q3IgNDoyOjAgbWlnaHQganVzdCB3b3JrIGZpbmUgd2l0aG91dCBjaGFuZ2luZyBoYXJkd2FyZS4g VGhlIGRyaXZlcnMKPiA+IGN1cnJlbnRseSBob3dldmVyIGFsd2F5cyBkZWZhdWx0IHRvIHRoZSAi YmVzdCBhdmFpbGFibGUiIG9wdGlvbiBldmVuIGlmIGl0IG1pZ2h0IGJlIGJyb2tlbi4KPiA+Cj4g PiAzLiBTb21lIHNjcmVlbnMgbmF0aXZlbHkgb25seSBzdXBwb3J0aW5nIDgtYml0IGNvbG9yLCBz aW11bGF0ZSAxMC1CaXQgY29sb3IgYnkgcmFwaWRseSBzd2l0Y2hpbmcgYmV0d2VlbiAyIGFkamFj ZW50Cj4gPiBjb2xvcnMuIFRoZXkgYWR2ZXJ0aXNlIHRoZW1zZWx2ZXMgdG8gdGhlIGtlcm5lbCBh cyAxMC1iaXQgbW9uaXRvcnMgYnV0IHRoZSB1c2VyIG1pZ2h0IG5vdCBsaWtlIHRoZSAiZmFrZSIg MTAtYml0IGVmZmVjdAo+ID4gYW5kIHByZWZlciBydW5uaW5nIGF0IHRoZSBuYXRpdmUgOC1iaXQg cGVyIGNvbG9yLgo+ID4KPiA+IDQuIFNvbWUgc2NyZWVucyBhcmUgZmFsc2VseSBjbGFzc2lmaWVk IGFzIGZ1bGwgUkdCIHJhbmdlIHdpbGUgdGhleSBhY3R1YWxseSB1c2UgbGltaXRlZCBSR0IgcmFu Z2UuIFRoaXMgcmVzdWx0cyBpbgo+ID4gd2FzaGVkIG91dCBjb2xvcnMgaW4gZGFyayBhbmQgYnJp Z2h0IHNjZW5lcy4gQSB1c2VyIG92ZXJyaWRlIGNhbiBiZSBoZWxwZnVsIHRvIG1hbnVhbGx5IGZp eCB0aGlzIGlzc3VlIHdoZW4gaXQgb2NjdXJzLgo+ID4KPiA+IFRoZXJlIGFscmVhZHkgZXhpc3Qg c2V2ZXJhbCByZXF1ZXN0cywgZGlzY3Vzc2lvbiwgYW5kIHBhdGNoZXMgcmVnYXJkaW5nIHRoZSB0 aGVtYXRpYzoKPiA+Cj4gPiAtIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9kcm0vYW1k Ly0vaXNzdWVzLzQ3Ngo+ID4KPiA+IC0gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2Ry bS9hbWQvLS9pc3N1ZXMvMTU0OAo+ID4KPiA+IC0gaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMjEv NS83LzY5NQo+ID4KPiA+IC0gaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMjEvNS8xMS80MTYKPiA+ Cj4gPgo+ID4gQ3VycmVudCBTdGF0ZToKPiA+Cj4gPiBJIG9ubHkga25vdyBiaXRzIGFib3V0IHRo ZSBJbnRlbCBpOTE1IGFuZCBBTUQgYW1kZ3B1IGRyaXZlci4gSSBkb24ndCBrbm93IGhvdyBvdGhl ciBkcml2ZXIgaGFuZGxlIGNvbG9yIG1hbmFnZW1lbnQKPiA+Cj4gPiAtICJtYXggYnBjIiwgZ2xv YmFsIHNldHRpbmcgYXBwbGllZCBieSBib3RoIGk5MTUgKG9ubHkgb24gZHAgaSB0aGluaz8pIGFu ZCBhbWRncHUuIERlZmF1bHQgdmFsdWUgaXMgIjgiLiBGb3IgZXZlcnkKPiA+IHJlc29sdXRpb24g KyBmcmVxdWVuY3kgY29tYmluYXRpb24gdGhlIGhpZ2hlc3QgcG9zc2libGUgZXZlbiBudW1iZXIg YmV0d2VlbiA2IGFuZCBtYXhfYnBjIGlzIGNob3Nlbi4gSWYgdGhlIHJhbmdlCj4gPiBkb2Vzbid0 IGNvbnRhaW4gYSB2YWxpZCBtb2RlIHRoZSByZXNvbHV0aW9uICsgZnJlcXVlbmN5IGNvbWJpbmF0 aW9uIGlzIGRpc2NhcmRlZCAoYnV0IEkgZ3Vlc3MgdGhhdCB3b3VsZCBiZSBhIHZlcnkKPiA+IHNw ZWNpYWwgZWRnZSBjYXNlLCBpZiBleGlzdGVudCBhdCBhbGwsIHdoZW4gNiBkb2Vzbid0IHdvcmsg YnV0IDEwIHdvdWxkIHdvcmspLiBJbnRlbCBIRE1JIGNvZGUgYWx3YXlzIGNoZWNrcyA4LCAxMiwg YW5kCj4gPiAxMCBhbmQgZG9lcyBub3QgY2hlY2sgdGhlIG1heF9icGMgc2V0dGluZy4KPgo+IGk5 MTUgZG9lcyBsaW1pdCB0aGluZ3MgYmVsb3cgbWF4X2JwYyBmb3IgYm90aCBIRE1JIGFuZCBEUC4K Pgo+ID4KPiA+IC0gIkJyb2FkY2FzdCBSR0IiIGZvciBpOTE1IGFuZCAib3V0cHV0X2NzYyIgZm9y IHRoZSBvbGQgcmFkZW9uIGRyaXZlciAobm90IGFtZGdwdSksIG92ZXJ3cml0ZXMgdGhlIGtlcm5l bCBjaG9zZW4gY29sb3IKPiA+IHJhbmdlIHNldHRpbmcgKGZ1bGwgb3IgbGltaXRlZCkuIElmIEkg cmVjYWxsIGNvcnJlY3RseSBJbnRlbCBIRE1JIGNvZGUgZGVmYXVsdHMgdG8gZnVsbCB1bmxlc3Mg dGhpcyBwcm9wZXJ0eSBpcyBzZXQsCj4gPiBJbnRlbCBkcCBjb2RlIHRyaWVzIHRvIHByb2JlIHRo ZSBtb25pdG9yIHRvIGZpbmQgb3V0IHdoYXQgdG8gdXNlLiBhbWRncHUgaGFzIG5vIGNvcnJlc3Bv bmRpbmcgc2V0dGluZyAoSSBkb24ndCBrbm93IGhvdwo+ID4gaXQncyBkZWNpZGVkIHRoZXJlKS4K Pgo+IGk5MTUgaGFzIHRoZSBzYW1lIGJlaGF2aW91ciBmb3IgSERNSSBhbmQgRFAsIGFzIHBlciB0 aGUgQ1RBLTg2MS9EUAo+IHNwZWNzLiBVbmZvcnR1bmF0ZWx5IGFzIHlvdSBhbHJlYWR5IG1lbnRp b25lZCB0aGVyZSBhcmUgcXVpdGUgYSBmZXcKPiBtb25pdG9ycyAoRFAgbW9uaXRvcnMgaW4gcGFy dGljdWxhcikgdGhhdCBkb24ndCBpbXBsZW1udCB0aGUgc3BlYwo+IGNvcnJlY3RseS4gSUlSQyBs YXRlciBEUCBzcGVjcyBldmVuIHJlbGF4ZWQgdGhlIHdvcmRpbmcgdG8gc2F5Cj4gdGhhdCB5b3Ug Y2FuIGJhc2ljYWxseSBpZ25vcmUgdGhlIHNwZWMgYW5kIGRvIHdoYXRldmVyIHlvdSB3YW50Lgo+ IFdoaWNoIEkgc3Vwb3NlIGlzIGp1c3QgYWRtaXR0aW5nIGRlZmVhdCBhbmQgY29uY2x1ZGluZyB0 aGF0IHRoZXJlCj4gaXMgbm8gd2F5IHRvIGdldCB0aGlzIHJpZ2h0IDEwMCUgb2YgdGhlIHRpbWUu Cj4KPiA+Cj4gPiAtIFJHQiBwaXhlbCBlbmNvZGluZyBjYW4gYmUgZm9yY2VkIGJ5IG92ZXJsb2Fk aW5nIGEgTW9uaXRvcnMgZWRpZCB3aXRoIG9uZSB0aGF0IHRlbGxzIHRoZSBrZXJuZWwgdGhhdCBv bmx5IFJHQiBpcwo+ID4gcG9zc2libGUuIFRoYXQgZG9lc24ndCB3b3JrIGZvciBZQ2JDciA0OjQ6 NCBob3dldmVyIGJlY2F1c2Ugb2YgdGhlIGVkaWQgc3BlY2lmaWNhdGlvbi4gRm9yY2luZyBZQ2JD ciA0OjI6MCB3b3VsZAo+ID4gdGhlb3JldGljYWxseSBhbHNvIGJlIHBvc3NpYmxlIHRoaXMgd2F5 LiBhbWRncHUgaGFzIGEgZGVidWdmcyBzd2l0Y2ggImZvcmNlX3ljYmNyXzQyMCIgd2hpY2ggbWFr ZXMgdGhlIGRyaXZlciBkZWZhdWx0IHRvCj4gPiBZQ2JDciA0OjI6MCBvbiBhbGwgbW9uaXRvcnMg aWYgcG9zc2libGUuCj4gPgo+ID4KPiA+IFByb3Bvc2VkIFNvbHV0aW9uOgo+ID4KPiA+IDEuIEFk ZCBhIG5ldyB1QVBJIHByb3BlcnR5ICJwcmVmZXJyZWQgcGl4ZWwgZW5jb2RpbmciLCBhcyBhIHBl ciBwb3J0IHNldHRpbmcuCj4gPgo+ID4gICAgIC0gQW4gYW1kZ3B1IHNwZWNpZmljIGltcGxlbWVu dGF0aW9uIHdhcyBhbHJlYWR5IHNoYXJlZCBoZXJlOiBodHRwczovL2dpdGxhYi5mcmVlZGVza3Rv cC5vcmcvZHJtL2FtZC8tL2lzc3Vlcy80NzYKPiA+Cj4gPiAgICAgLSBJdCBhbHNvIHdyaXRlcyBi YWNrIHRoZSBhY3R1YWxseSB1c2VkIGVuY29kaW5nIGlmIHRoZSBvbmUgcmVxdWVzdGVkIHdhcyBu b3QgcG9zc2libGUsIG92ZXJ3cml0aW5nIHRoZSByZXF1ZXN0ZWQKPiA+IHZhbHVlIGluIHRoZSBw cm9jZXNzLiBJIHRoaW5rIGl0IHdvdWxkIGJlIGJldHRlciB0byBoYXZlIHRoaXMgZmVlZGJhY2sg Y2hhbm5lbCBhcyBhIGRpZmZlcmVudCwgcmVhZC1vbmx5IHByb3BlcnR5Lgo+ID4KPiA+ICAgICAt IE1ha2UgdGhpcyBzb2x1dGlvbiB2ZW5kb3IgYWdub3N0aWMgYnkgcHV0dGluZyBpdCBpbiB0aGUg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBzdHJ1Y3QgbmV4dCBkbyBtYXhfYnBjCj4gPiBodHRwczovL2Vs aXhpci5ib290bGluLmNvbS9saW51eC92NS4xMy1yYzEvc291cmNlL2luY2x1ZGUvZHJtL2RybV9j b25uZWN0b3IuaCNMNjU0IGFuZCBhZGQgcGF0Y2hlcyB0byBhbWRncHUgYW5kIGk5MTUgdG8KPiA+ IHJlc3BlY3QgdGhpcyBzZXR0aW5nCj4gPgo+ID4gMi4gQ29udmVydCAiQnJvYWRjYXN0IFJHQiIg dG8gYSB2ZW5kb3IgYWdub3N0aWMgc2V0dGluZy9yZXBsYWNlIHdpdGggYSB2ZW5kb3IgYWdub3N0 aWMgc2V0dGluZy4KPiA+Cj4gPiAgICAgLSBJbWhvIHRoZSBuYW1lIGlzIG5vdCB2ZXJ5IGZpdHRp bmcsIGJ1dCBpdCBwb3BzIHVwIGluIG1hbnkgdHV0b3JpYWxzIHRocm91Z2hvdXQgdGhlIHdlYiAo c29tZSBvdGhlciBvcGluaW9ucz8gaG93Cj4gPiBjb3VsZCBhIHJlbmFtZSBiZSBoYW5kbGVkPyIu Cj4KPiBJSVJDIHRoZXJlIHdhcyBhbiBhdHRlbXB0IHRvIHVuaWZ5IHRoaXMuIE5vdCBzdXJlIHdo YXQgaGFwcGVuZWQgdG8gaXQuCgpMb29rcyBsaWtlIHRoaXMgc2V0IGNvdWxkIGJlIHJlc3VycmVj dGVkOgpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAy MC1BcHJpbC8yNjIxNTMuaHRtbAoKQWxleAoKPgo+ID4KPiA+ICAgICAtIEFsc28gbW92ZSBpdCBm cm9tIEludGVsIHNwZWNpZmljIHN0cnVjdHMgdG8gdGhlIGRybV9jb25uZWN0b3Jfc3RhdGUgc3Ry dWN0IChwbGVhc2UgbGV0IG1lIGtub3cgaWYgdGhlcmUgaXMgYQo+ID4gYmV0dGVyIHBsYWNlKQo+ ID4KPiA+IDMuIFN0cml2ZSBmb3IgZnVsbCBpbXBsZW1lbnRhdGlvbiBvZiAibWF4IGJwYyIKPiA+ Cj4gPiAgICAgLSBJIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBJbnRlbCBIRE1JIGNvZGUuCj4g Pgo+ID4gNC4gQWRkIDMgZmVlZGJhY2sgY2hhbm5lbHMgImFjdGl2ZSBjb2xvciBkZXB0aCIsICJh Y3RpdmUgY29sb3IgcmFuZ2UiLCBhbmQgImFjdGl2ZSBwaXhlbCBlbmNvZGluZyIgYXMgdmVuZG9y IGFnbm9zdGljCj4gPiBzZXR0aW5ncyBpbiB0aGUgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBzdHJ1Y3QK PiA+Cj4gPiAgICAgLSBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo+ID4KPiA+ICAgICAgICAgLSB1bmtu b3duLCB1bmRlZmluZWQsIDYtYml0LCA4LWJpdCwgOS1iaXQsIDEwLWJpdCwgMTEtYml0LCAxMi1i aXQsIDE0LWJpdCwgMTYtYml0IChhbHRlcm5hdGl2ZWx5OiBhbiBpbnRlZ2VyCj4gPiBmcm9tIC0x ICh1bmtub3duKSwgMCAodW5kZWZpbmVkKSB0byAxNiwgbGV0IG1lIGtub3cgd2hhdCB3b3VsZCBi ZSBtb3JlIHN1aXRhYmxlKQo+ID4KPiA+ICAgICAgICAgLSB1bmtub3duLCB1bmRlZmluZWQsIGZ1 bGwsIGxpbWl0ZWQKPiA+Cj4gPiAgICAgICAgIC0gdW5rbm93biwgdW5kZWZpbmVkLCByZ2IsIHlj YmNyNDQ0LCB5Y2JjcjQyMiwgeWNiY3I0MjAKPiA+Cj4gPiAgICAgLSBpdCdzIHRoZSByZXNwb25z aWJpbGl0eSBvZiB0aGUgZHJpdmVyIHRvIHVwZGF0ZSB0aGUgdmFsdWVzIG9uY2UgdGhlIHBvcnQg Y29uZmlndXJhdGlvbiBjaGFuZ2VzCj4gPgo+ID4gICAgIC0gaWYgdGhlIGRyaXZlciBkb2VzIG5v dCBzdXBwb3J0IHRoZSBmZWVkYmFjayBjaGFubmVscyB0aGV5IGFyZSBzZXQgdG8gdW5rbm93bgo+ ID4KPiA+ICAgICAtIGlmIHRoZSBkcml2ZXIgdXNlcyBhIG5vbiBsaXN0ZWQgc2V0dGluZyBpdCBz aG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB0byB1bmRlZmluZWQKPiA+Cj4gPiAgICAgLSBBIG1vcmUg ZGV0YWlsZWQgZGVzY3JpcHRpb24gd2h5IEkgdGhpbmsgdGhlc2UgZmVlZGJhY2sgY2hhbm5lbCBh cmUgaW1wb3J0YW50IGFuZCBzaG91bGQgYmUgdGhlaXIgb3duIHJlYWQtb25seQo+ID4gcHJvcGVy dHkgY2FuIGJlIGZvdW5kIGhlcmU6IGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDIxLzUvMTEvMzM5 Cj4gPgo+ID4KPiA+IEFkb3B0aW9uOgo+ID4KPiA+IEEgS0RFIGRldiB3YW50cyB0byBpbXBsZW1l bnQgdGhlIHNldHRpbmdzIGluIHRoZSBLREUgc2V0dGluZ3MgR1VJOgo+ID4gaHR0cHM6Ly9naXRs YWIuZnJlZWRlc2t0b3Aub3JnL2RybS9hbWQvLS9pc3N1ZXMvNDc2I25vdGVfOTEyMzcwCj4gPgo+ ID4gVHV4ZWRvIENvbXB1dGVycyAobXkgZW1wbG95ZXIpIHdhbnRzIHRvIGltcGxlbWVudCB0aGUg c2V0dGluZ3MgZGVza3RvcCBlbnZpcm9ubWVudCBhZ25vc3RpYyBpbiBUdXhlZG8gQ29udHJvbCBD ZW50ZXIuIEkKPiA+IHdpbGwgc3RhcnQgd29yayBvbiB0aGlzIGluIHBhcmFsbGVsIHRvIGltcGxl bWVudGluZyB0aGUgbmV3IGtlcm5lbCBjb2RlLgo+Cj4gSSBzdXNwZWN0IGV2ZXJ5b25lIHdvdWxk IGJlIGhhcHBpZXIgdG8gYWNjZXB0IG5ldyB1YXBpIGlmIHdlIGhhZAo+IG11bHRpcGxlIGNvbXBv c2l0b3JzIHNpZ25lZCB1cCB0byBpbXBsZW1lbnQgaXQuCj4KPiA+Cj4gPgo+ID4gUXVlc3Rpb25z Ogo+ID4KPiA+IEknbSB2ZXJ5IGN1cmlvdXMgYWJvdXQgZmVlZGJhY2sgZnJvbSB0aGUgZHJpLWRl dmVsIGNvbW11bml0eS4gV291bGQgdGhlIGNvbmNlcHQgb3V0bGFpZCBhYm92ZSBiZSBhY2NlcHRl ZCBhcyBuZXcgdUFQSQo+ID4gb25jZSBpdCdzIGZ1bGx5IGltcGxlbWVudGVkPwo+ID4KPiA+IFdo ZXJlIHdvdWxkIGJlIHRoZSBiZXN0IHdheSB0byBzdG9yZSB0aGUgbmV3IHZlbmRvciBhZ25vc3Rp YyBzZXR0aW5ncz8gRm9sbG93aW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBtYXhfYnBjIGkgd291 bGQKPiA+IHB1dCBpdCBpbiB0aGUgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBzdHJ1Y3QuCj4gPgo+ID4g TXkgd2F5IGZvcndhcmQgd291bGQgYmUgdG8gaW1wbGVtZW50IHRoZSBmZWVkYmFjayBjaGFubmVs cyBmaXJzdCwgYmVjYXVzZSB0aGV5IGNhbiBiZSB2ZXJ5IHVzZWZ1bCBmb3IgZGVidWdnaW5nIHRo ZQo+ID4gc2V0dGluZyBwcm9wZXJ0aWVzIGFmdGVyd2FyZHMuCj4KPiBGb3IgZGVidWdnaW5nIHdl IGhhdmUgZG1lc2cvZGVidWdmcy9ldGMuIElmIHdlIGFkZCBuZXcgdWFwaSBJTU8KPiBpdCB3aWxs IGhhdmUgdG8gaGF2ZSBzb21lIHJlYWwgd29ybGQgdXNlIGNhc2VzIGJleW9uZCBkZWJ1Z2dpbmcu Cj4KPiA+IEkgd2lsbCBzcGxpdCBlYWNoIG9mIGl0IHVwIGl0IGluIDMgb3IgNSBwYXRjaCBzZXRz OiAxIGZvciB0aGUgdmVuZG9yIGFnbm9zdGljIHBhcnQsIDEgZm9yCj4gPiBJbnRlbCAob3IgMiBz cGxpdCB1cCBiZXR3ZWVuIEhETUkgYW5kIERQKSwgYW5kIDEgZm9yIEFNRCAob3IgMiBzcGxpdCB1 cCBiZXR3ZWVuIEhETUkgYW5kIERQKQo+ID4KPiA+IEtpbmQgcmVnYXJkcywKPiA+Cj4gPiBXZXJu ZXIgU2VtYmFjaAo+ID4KPgo+IC0tCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxp c3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==