From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE0602C80 for ; Tue, 16 Nov 2021 08:09:50 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: andrzej.p) with ESMTPSA id 044A11F4542E DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=collabora.com; s=mail; t=1637050188; bh=LEicCsC4sTpMlpJrwfp3CWJxvgPG6cotp+f0OL83y1E=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=GwRnZNUOMzcJSRXXNSjo60/T640lFlxBBs7PkBjfVlRZV/u6nt4eN+pc3aKHNz/+U 20yGoMztPRoQ4xE4NZ+3Sekml4fPzW+Zgmn9q83h/n63BUBIoBDQ4WFBRd5WWeSrS8 zXSSKn2Ly6MLVr0w+7WE9oGviquR5rm4GaquEXQDnOd0cwmkyjZV/rKgUJrQ6h3HSb Hil5n1u3NDkIn420abUz/YUEnfhPho0qIAx+kvkRpic1tHIdKuuEyjikGoGqMu1KyI fgVPTSl8EFbQ7kkvhwR7iOzA70KC0lVJakfpLQ0tYTLr+LT3aqbgjU79NNiGlDB5Tc pnVEhb5TK3hDA== Subject: Re: [PATCH v7 00/11] VP9 codec V4L2 control interface To: Hans Verkuil , linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev Cc: Benjamin Gaignard , Boris Brezillon , Ezequiel Garcia , Fabio Estevam , Greg Kroah-Hartman , Heiko Stuebner , Jernej Skrabec , Mauro Carvalho Chehab , Nicolas Dufresne , NXP Linux Team , Pengutronix Kernel Team , Philipp Zabel , Sascha Hauer , Shawn Guo , kernel@collabora.com References: <20210929160439.6601-1-andrzej.p@collabora.com> <9db47ebc-cb95-872d-feb4-d6432a74f2cb@xs4all.nl> <29f27bad-28ae-12ff-eed6-79902bd5b722@collabora.com> From: Andrzej Pietrasiewicz Message-ID: Date: Tue, 16 Nov 2021 09:09:45 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Hi Hans, W dniu 15.11.2021 o 22:16, Hans Verkuil pisze: > On 15/11/2021 18:14, Andrzej Pietrasiewicz wrote: >> Hi Hans, >> >> W dniu 15.11.2021 o 16:07, Hans Verkuil pisze: >>> Andrzej, >>> >>> Can you rebase this series on top of the master branch of >>> https://git.linuxtv.org/media_stage.git/ ? Unfortunately this v7 no longer >>> applies. Specifically "rkvdec: Add the VP9 backend" failed in a non-trivial >>> manner. >> >> This is a branch for you: >> >> https://gitlab.collabora.com/linux/for-upstream/-/tree/vp9-uapi > > I'm getting a bunch of sparse/smatch warnings: > Thanks for finding this, I will re-create the branch and let you know on irc. Some of the below are "false positives, namely: drivers/media/platform/omap3isp/omap3isp.h drivers/media/platform/qcom/venus/core.h which are not touched by the series. Regards, Andrzej > sparse: > rkvdec/rkvdec-vp9.c:190:43: warning: variable 'dec_params' set but not used [-Wunused-but-set-variable] > rkvdec/rkvdec-vp9.c:245:43: warning: variable 'dec_params' set but not used [-Wunused-but-set-variable] > SPARSE:hantro/hantro_postproc.c hantro/hantro_postproc.c:37:35: warning: symbol 'hantro_g1_postproc_regs' was not declared. Should it be static? > > smatch: > rkvdec/rkvdec-vp9.c:190:43: warning: variable 'dec_params' set but not used [-Wunused-but-set-variable] > rkvdec/rkvdec-vp9.c:245:43: warning: variable 'dec_params' set but not used [-Wunused-but-set-variable] > rkvdec/rkvdec-vp9.c: rkvdec/rkvdec-vp9.c:236 init_intra_only_probs() error: buffer overflow 'ptr' 90 <= 91 > hantro/hantro_g2_vp9_dec.c: hantro/hantro_g2_vp9_dec.c:670 config_probs() error: memcpy() 'adaptive->inter_mode[i]' too small (4 vs 21) > hantro/hantro_g2_vp9_dec.c: hantro/hantro_g2_vp9_dec.c:670 config_probs() error: memcpy() 'probs->inter_mode[i]' too small (3 vs 21 > > Also a bunch of kerneldoc warnings: > > include/media/v4l2-vp9.h:30: warning: Function parameter or member 'joint' not described in 'v4l2_vp9_frame_mv_context' > include/media/v4l2-vp9.h:30: warning: Function parameter or member 'sign' not described in 'v4l2_vp9_frame_mv_context' > include/media/v4l2-vp9.h:30: warning: Function parameter or member 'classes' not described in 'v4l2_vp9_frame_mv_context' > include/media/v4l2-vp9.h:30: warning: Function parameter or member 'class0_bit' not described in 'v4l2_vp9_frame_mv_context' > include/media/v4l2-vp9.h:30: warning: Function parameter or member 'bits' not described in 'v4l2_vp9_frame_mv_context' > include/media/v4l2-vp9.h:30: warning: Function parameter or member 'class0_fr' not described in 'v4l2_vp9_frame_mv_context' > include/media/v4l2-vp9.h:30: warning: Function parameter or member 'fr' not described in 'v4l2_vp9_frame_mv_context' > include/media/v4l2-vp9.h:30: warning: Function parameter or member 'class0_hp' not described in 'v4l2_vp9_frame_mv_context' > include/media/v4l2-vp9.h:30: warning: Function parameter or member 'hp' not described in 'v4l2_vp9_frame_mv_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'tx8' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'tx16' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'tx32' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'coef' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'skip' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'inter_mode' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'interp_filter' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'is_inter' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'comp_mode' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'single_ref' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'comp_ref' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'y_mode' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'uv_mode' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'partition' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:58: warning: Function parameter or member 'mv' not described in 'v4l2_vp9_frame_context' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'partition' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'skip' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'intra_inter' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'tx32p' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'tx16p' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'tx8p' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'y_mode' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'uv_mode' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'comp' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'comp_ref' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'single_ref' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'mv_mode' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'filter' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'mv_joint' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'sign' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'classes' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'class0' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'bits' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'class0_fp' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'fp' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'class0_hp' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'hp' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'coeff' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:93: warning: Function parameter or member 'eob' not described in 'v4l2_vp9_frame_symbol_counts' > include/media/v4l2-vp9.h:166: warning: expecting prototype for v4l2_vp9_adapt_coef_probs(). Prototype was for v4l2_vp9_adapt_noncoef_probs() > instead > drivers/media/platform/omap3isp/omap3isp.h:107: warning: Function parameter or member 'vp_clk_pol' not described in 'isp_ccp2_cfg' > drivers/media/platform/omap3isp/omap3isp.h:107: warning: Function parameter or member 'lanecfg' not described in 'isp_ccp2_cfg' > drivers/media/platform/qcom/venus/core.h:202: warning: Function parameter or member 'sys_err_done' not described in 'venus_core' > drivers/media/platform/qcom/venus/core.h:462: warning: Function parameter or member 'fw_min_cnt' not described in 'venus_inst' > drivers/media/platform/qcom/venus/core.h:462: warning: Function parameter or member 'flags' not described in 'venus_inst' > drivers/media/platform/qcom/venus/core.h:462: warning: Function parameter or member 'dpb_ids' not described in 'venus_inst' > drivers/staging/media/hantro/hantro.h:115: warning: Enum value 'HANTRO_MODE_VP9_DEC' not described in enum 'hantro_codec_mode' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'tile_edge' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'segment_map' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'misc' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'cnts' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'probability_tables' not described in > 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'frame_context' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'cur' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'last' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'bsd_ctrl_offset' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'segment_map_size' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'ctx_counters_offset' not described in > 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'tile_info_offset' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'tile_r_info' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'tile_c_info' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'last_tile_r' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'last_tile_c' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'last_sbs_r' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'last_sbs_c' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'active_segment' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'feature_enabled' not described in 'hantro_vp9_dec_hw_ctx' > drivers/staging/media/hantro/hantro_hw.h:211: warning: Function parameter or member 'feature_data' not described in 'hantro_vp9_dec_hw_ctx' > > You can test kerneldoc yourself with: scripts/kernel-doc -none include/media/v4l2-vp9.h > > Regards, > > Hans > >> >> Regards, >> >> Andrzej >> >> >>> >>> Regards, >>> >>> Hans >>> >>> On 29/09/2021 18:04, Andrzej Pietrasiewicz wrote: >>>> Dear all, >>>> >>>> This patch series adds VP9 codec V4L2 control interface and two drivers >>>> using the new controls. It is a follow-up of previous v6 series [1]. >>>> >>>> In this iteration, we've implemented VP9 hardware decoding on two devices: >>>> Rockchip VDEC and Hantro G2, and tested on RK3399, i.MX8MQ and i.MX8MP. >>>> The i.MX8M driver needs proper power domains support, though, which is a >>>> subject of a different effort, but in all 3 cases we were able to run the >>>> drivers. >>>> >>>> GStreamer support is also available, the needed changes have been submitted >>>> by Daniel Almeida [2]. This MR is ready to be merged, and just needs the >>>> VP9 V4L2 controls to be merged and released. >>>> >>>> Both rkvdec and hantro drivers are passing a significant number of VP9 tests >>>> using Fluster[3]. There are still a few tests that are not passing, due to >>>> dynamic frame resize (not yet supported by V4L2) and small size videos >>>> (due to IP block limitations). >>>> >>>> The series adds the VP9 codec V4L2 control API as uAPI, so it aims at being >>>> merged without passing through staging, as agreed[4]. The ABI has been checked >>>> for padding and verified to contain no holes. >>>> >>>> [1] https://patchwork.linuxtv.org/project/linux-media/list/?series=6377 >>>> [2] https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2144 >>>> [3] https://github.com/fluendo/fluster >>>> [4] https://lore.kernel.org/linux-media/b8f83c93-67fd-09f5-9314-15746cbfdc61@xs4all.nl/ >>>> >>>> The series depends on the YUV tiled format support prepared by Ezequiel: >>>> https://www.spinics.net/lists/linux-media/msg197047.html >>>> >>>> Rebased onto latest media_tree. >>>> >>>> Changes related to v6: >>>> - moved setting tile filter and tile bsd auxiliary buffer addresses so >>>> that they are always set, even if no tiles are used (thanks, Jernej) >>>> - added a comment near the place where the 32-bit DMA mask is applied >>>> (thanks, Nicolas) >>>> - improved consistency in register names (thanks, Nicolas) >>>> >>>> Changes related to v5: >>>> - improved the doc comments as per Ezequiel's review (thanks, Ezequiel) >>>> - improved pdf output of documentation >>>> - added Benjamin's Reviewed-by (thanks, Benjamin) >>>> >>>> Changes related to v4: >>>> - removed unused enum v4l2_vp9_intra_prediction_mode >>>> - converted remaining enums to defines to follow the convention >>>> - improved the documentation, in particular better documented how to use segmentation >>>> features >>>> >>>> Changes related to v3: >>>> >>>> Apply suggestions from Jernej's review (thanks, Jernej): >>>> - renamed a control and two structs: >>>> V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR_PROBS => >>>> V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR >>>> v4l2_ctrl_vp9_compressed_hdr_probs => >>>> v4l2_ctrl_vp9_compressed_hdr >>>> v4l2_vp9_mv_compressed_hdr_probs => v4l2_vp9_mv_probs >>>> - moved tx_mode to v4l2_ctrl_vp9_compressed_hdr >>>> - fixed enum v4l2_vp9_ref_frame_sign_bias values (which are used to test a bitfield) >>>> - explicitly assigned values to all other vp9 enums >>>> >>>> Apply suggestion from Nicolas's review (thanks, Nicolas): >>>> - explicitly stated that the v4l2_ctrl_vp9_compressed_hdr control is optional >>>> and implemented only by drivers which need it >>>> >>>> Changes related to the RFC v2: >>>> >>>> - added another driver including a postprocessor to de-tile >>>> codec-specific tiling >>>> - reworked uAPI structs layout to follow VP8 style >>>> - changed validation of loop filter params >>>> - changed validation of segmentation params >>>> - changed validation of VP9 frame params >>>> - removed level lookup array from loop filter struct >>>> (can be computed by drivers) >>>> - renamed some enum values to match the spec more closely >>>> - V4L2 VP9 library changed the 'eob' member of >>>> 'struct v4l2_vp9_frame_symbol_counts' so that it is an array >>>> of pointers instead of an array of pointers to arrays >>>> (IPs such as g2 creatively pass parts of the 'eob' counts in >>>> the 'coeff' counts) >>>> - factored out several repeated portions of code >>>> - minor nitpicks and cleanups >>>> >>>> Andrzej Pietrasiewicz (6): >>>> media: uapi: Add VP9 stateless decoder controls >>>> media: Add VP9 v4l2 library >>>> media: hantro: Rename registers >>>> media: hantro: Prepare for other G2 codecs >>>> media: hantro: Support VP9 on the G2 core >>>> media: hantro: Support NV12 on the G2 core >>>> >>>> Boris Brezillon (1): >>>> media: rkvdec: Add the VP9 backend >>>> >>>> Ezequiel Garcia (4): >>>> hantro: postproc: Fix motion vector space size >>>> hantro: postproc: Introduce struct hantro_postproc_ops >>>> hantro: Simplify postprocessor >>>> hantro: Add quirk for NV12/NV12_4L4 capture format >>>> >>>> .../userspace-api/media/v4l/biblio.rst | 10 + >>>> .../media/v4l/ext-ctrls-codec-stateless.rst | 573 +++++ >>>> .../media/v4l/pixfmt-compressed.rst | 15 + >>>> .../media/v4l/vidioc-g-ext-ctrls.rst | 8 + >>>> .../media/v4l/vidioc-queryctrl.rst | 12 + >>>> .../media/videodev2.h.rst.exceptions | 2 + >>>> drivers/media/v4l2-core/Kconfig | 4 + >>>> drivers/media/v4l2-core/Makefile | 1 + >>>> drivers/media/v4l2-core/v4l2-ctrls-core.c | 180 ++ >>>> drivers/media/v4l2-core/v4l2-ctrls-defs.c | 8 + >>>> drivers/media/v4l2-core/v4l2-ioctl.c | 1 + >>>> drivers/media/v4l2-core/v4l2-vp9.c | 1850 +++++++++++++++++ >>>> drivers/staging/media/hantro/Kconfig | 1 + >>>> drivers/staging/media/hantro/Makefile | 7 +- >>>> drivers/staging/media/hantro/hantro.h | 40 +- >>>> drivers/staging/media/hantro/hantro_drv.c | 23 +- >>>> drivers/staging/media/hantro/hantro_g2.c | 27 + >>>> .../staging/media/hantro/hantro_g2_hevc_dec.c | 69 +- >>>> drivers/staging/media/hantro/hantro_g2_regs.h | 132 +- >>>> .../staging/media/hantro/hantro_g2_vp9_dec.c | 980 +++++++++ >>>> drivers/staging/media/hantro/hantro_hw.h | 83 +- >>>> .../staging/media/hantro/hantro_postproc.c | 79 +- >>>> drivers/staging/media/hantro/hantro_v4l2.c | 20 + >>>> drivers/staging/media/hantro/hantro_vp9.c | 240 +++ >>>> drivers/staging/media/hantro/hantro_vp9.h | 103 + >>>> drivers/staging/media/hantro/imx8m_vpu_hw.c | 38 +- >>>> .../staging/media/hantro/rockchip_vpu_hw.c | 7 +- >>>> .../staging/media/hantro/sama5d4_vdec_hw.c | 3 +- >>>> drivers/staging/media/rkvdec/Kconfig | 1 + >>>> drivers/staging/media/rkvdec/Makefile | 2 +- >>>> drivers/staging/media/rkvdec/rkvdec-vp9.c | 1078 ++++++++++ >>>> drivers/staging/media/rkvdec/rkvdec.c | 52 +- >>>> drivers/staging/media/rkvdec/rkvdec.h | 12 +- >>>> include/media/v4l2-ctrls.h | 4 + >>>> include/media/v4l2-vp9.h | 182 ++ >>>> include/uapi/linux/v4l2-controls.h | 284 +++ >>>> include/uapi/linux/videodev2.h | 6 + >>>> 37 files changed, 6033 insertions(+), 104 deletions(-) >>>> create mode 100644 drivers/media/v4l2-core/v4l2-vp9.c >>>> create mode 100644 drivers/staging/media/hantro/hantro_g2.c >>>> create mode 100644 drivers/staging/media/hantro/hantro_g2_vp9_dec.c >>>> create mode 100644 drivers/staging/media/hantro/hantro_vp9.c >>>> create mode 100644 drivers/staging/media/hantro/hantro_vp9.h >>>> create mode 100644 drivers/staging/media/rkvdec/rkvdec-vp9.c >>>> create mode 100644 include/media/v4l2-vp9.h >>>> >>>> >>>> base-commit: e4e737bb5c170df6135a127739a9e6148ee3da82 >>>> >>> >> > 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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 40C92C433F5 for ; Tue, 16 Nov 2021 08:10:11 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 DC7C361041 for ; Tue, 16 Nov 2021 08:10:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org DC7C361041 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=H/E+TDc0AFkypBqHI3P40xUa7jrvMSBpNIdMpeVQoqs=; b=si1ZfRsxqi2aOSOrCcowAJavLm Z8MvNJ+ZKo5T3kWIOO9edsjK7eihbb4YYKEhJYPn5twDLYixVlx31rdAildBvjEnXraxfoHh2q4/k RLZOzI8OQo8OkaGObxNUYG1RRz6oRfYF6A4eJVy2RIXGNH0gpVkEjpkhaJDRCVhm5XVfHORxlXIUy bVSp1E1n31sBfEWbtfJvxAnJ+dTS/uKiXJSjIPj0nt/gLudvfPzsTDqLjuwiPFzyz8XIArEmFvxLY iwT6OuiBvIyoLfn1H850p2oJwiON/VJBaI+e2fUZcAGQd8e+YbX52eojZySJ6BC58tgecHFNwJO3q fHlv9NEA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mmtXZ-000ePF-DP; Tue, 16 Nov 2021 08:10:05 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mmtXL-000eNA-1R; Tue, 16 Nov 2021 08:09:54 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: andrzej.p) with ESMTPSA id 044A11F4542E DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=collabora.com; s=mail; t=1637050188; bh=LEicCsC4sTpMlpJrwfp3CWJxvgPG6cotp+f0OL83y1E=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=GwRnZNUOMzcJSRXXNSjo60/T640lFlxBBs7PkBjfVlRZV/u6nt4eN+pc3aKHNz/+U 20yGoMztPRoQ4xE4NZ+3Sekml4fPzW+Zgmn9q83h/n63BUBIoBDQ4WFBRd5WWeSrS8 zXSSKn2Ly6MLVr0w+7WE9oGviquR5rm4GaquEXQDnOd0cwmkyjZV/rKgUJrQ6h3HSb Hil5n1u3NDkIn420abUz/YUEnfhPho0qIAx+kvkRpic1tHIdKuuEyjikGoGqMu1KyI fgVPTSl8EFbQ7kkvhwR7iOzA70KC0lVJakfpLQ0tYTLr+LT3aqbgjU79NNiGlDB5Tc pnVEhb5TK3hDA== Subject: Re: [PATCH v7 00/11] VP9 codec V4L2 control interface To: Hans Verkuil , linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev Cc: Benjamin Gaignard , Boris Brezillon , Ezequiel Garcia , Fabio Estevam , Greg Kroah-Hartman , Heiko Stuebner , Jernej Skrabec , Mauro Carvalho Chehab , Nicolas Dufresne , NXP Linux Team , Pengutronix Kernel Team , Philipp Zabel , Sascha Hauer , Shawn Guo , kernel@collabora.com References: <20210929160439.6601-1-andrzej.p@collabora.com> <9db47ebc-cb95-872d-feb4-d6432a74f2cb@xs4all.nl> <29f27bad-28ae-12ff-eed6-79902bd5b722@collabora.com> From: Andrzej Pietrasiewicz Message-ID: Date: Tue, 16 Nov 2021 09:09:45 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211116_000951_429358_41D1D0B1 X-CRM114-Status: GOOD ( 23.18 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org SGkgSGFucywKClcgZG5pdSAxNS4xMS4yMDIxIG/CoDIyOjE2LCBIYW5zIFZlcmt1aWwgcGlzemU6 Cj4gT24gMTUvMTEvMjAyMSAxODoxNCwgQW5kcnplaiBQaWV0cmFzaWV3aWN6IHdyb3RlOgo+PiBI aSBIYW5zLAo+Pgo+PiBXIGRuaXUgMTUuMTEuMjAyMSBvwqAxNjowNywgSGFucyBWZXJrdWlsIHBp c3plOgo+Pj4gQW5kcnplaiwKPj4+Cj4+PiBDYW4geW91IHJlYmFzZSB0aGlzIHNlcmllcyBvbiB0 b3Agb2YgdGhlIG1hc3RlciBicmFuY2ggb2YKPj4+IGh0dHBzOi8vZ2l0LmxpbnV4dHYub3JnL21l ZGlhX3N0YWdlLmdpdC8gPyBVbmZvcnR1bmF0ZWx5IHRoaXMgdjcgbm8gbG9uZ2VyCj4+PiBhcHBs aWVzLiBTcGVjaWZpY2FsbHkgInJrdmRlYzogQWRkIHRoZSBWUDkgYmFja2VuZCIgZmFpbGVkIGlu IGEgbm9uLXRyaXZpYWwKPj4+IG1hbm5lci4KPj4KPj4gVGhpcyBpcyBhIGJyYW5jaCBmb3IgeW91 Ogo+Pgo+PiBodHRwczovL2dpdGxhYi5jb2xsYWJvcmEuY29tL2xpbnV4L2Zvci11cHN0cmVhbS8t L3RyZWUvdnA5LXVhcGkKPiAKPiBJJ20gZ2V0dGluZyBhIGJ1bmNoIG9mIHNwYXJzZS9zbWF0Y2gg d2FybmluZ3M6Cj4gCgpUaGFua3MgZm9yIGZpbmRpbmcgdGhpcywgSSB3aWxsIHJlLWNyZWF0ZSB0 aGUgYnJhbmNoIGFuZCBsZXQgeW91IGtub3cgb24gaXJjLgpTb21lIG9mIHRoZSBiZWxvdyBhcmUg ImZhbHNlIHBvc2l0aXZlcywgbmFtZWx5OgoKZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9vbWFwM2lz cC9vbWFwM2lzcC5oCmRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcWNvbS92ZW51cy9jb3JlLmgKCndo aWNoIGFyZSBub3QgdG91Y2hlZCBieSB0aGUgc2VyaWVzLgoKUmVnYXJkcywKCkFuZHJ6ZWoKCj4g c3BhcnNlOgo+IHJrdmRlYy9ya3ZkZWMtdnA5LmM6MTkwOjQzOiB3YXJuaW5nOiB2YXJpYWJsZSAn ZGVjX3BhcmFtcycgc2V0IGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0K PiBya3ZkZWMvcmt2ZGVjLXZwOS5jOjI0NTo0Mzogd2FybmluZzogdmFyaWFibGUgJ2RlY19wYXJh bXMnIHNldCBidXQgbm90IHVzZWQgWy1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCj4gU1BBUlNF OmhhbnRyby9oYW50cm9fcG9zdHByb2MuYyBoYW50cm8vaGFudHJvX3Bvc3Rwcm9jLmM6Mzc6MzU6 IHdhcm5pbmc6IHN5bWJvbCAnaGFudHJvX2cxX3Bvc3Rwcm9jX3JlZ3MnIHdhcyBub3QgZGVjbGFy ZWQuIFNob3VsZCBpdCBiZSBzdGF0aWM/Cj4gCj4gc21hdGNoOgo+IHJrdmRlYy9ya3ZkZWMtdnA5 LmM6MTkwOjQzOiB3YXJuaW5nOiB2YXJpYWJsZSAnZGVjX3BhcmFtcycgc2V0IGJ1dCBub3QgdXNl ZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KPiBya3ZkZWMvcmt2ZGVjLXZwOS5jOjI0NTo0 Mzogd2FybmluZzogdmFyaWFibGUgJ2RlY19wYXJhbXMnIHNldCBidXQgbm90IHVzZWQgWy1XdW51 c2VkLWJ1dC1zZXQtdmFyaWFibGVdCj4gcmt2ZGVjL3JrdmRlYy12cDkuYzogcmt2ZGVjL3JrdmRl Yy12cDkuYzoyMzYgaW5pdF9pbnRyYV9vbmx5X3Byb2JzKCkgZXJyb3I6IGJ1ZmZlciBvdmVyZmxv dyAncHRyJyA5MCA8PSA5MQo+IGhhbnRyby9oYW50cm9fZzJfdnA5X2RlYy5jOiBoYW50cm8vaGFu dHJvX2cyX3ZwOV9kZWMuYzo2NzAgY29uZmlnX3Byb2JzKCkgZXJyb3I6IG1lbWNweSgpICdhZGFw dGl2ZS0+aW50ZXJfbW9kZVtpXScgdG9vIHNtYWxsICg0IHZzIDIxKQo+IGhhbnRyby9oYW50cm9f ZzJfdnA5X2RlYy5jOiBoYW50cm8vaGFudHJvX2cyX3ZwOV9kZWMuYzo2NzAgY29uZmlnX3Byb2Jz KCkgZXJyb3I6IG1lbWNweSgpICdwcm9icy0+aW50ZXJfbW9kZVtpXScgdG9vIHNtYWxsICgzIHZz IDIxCj4gCj4gQWxzbyBhIGJ1bmNoIG9mIGtlcm5lbGRvYyB3YXJuaW5nczoKPiAKPiBpbmNsdWRl L21lZGlhL3Y0bDItdnA5Lmg6MzA6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1i ZXIgJ2pvaW50JyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9tdl9jb250ZXh0Jwo+ IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDozMDogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVy IG9yIG1lbWJlciAnc2lnbicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfbXZfY29u dGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6MzA6IHdhcm5pbmc6IEZ1bmN0aW9uIHBh cmFtZXRlciBvciBtZW1iZXIgJ2NsYXNzZXMnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2Zy YW1lX212X2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjMwOiB3YXJuaW5nOiBG dW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdjbGFzczBfYml0JyBub3QgZGVzY3JpYmVkIGlu ICd2NGwyX3ZwOV9mcmFtZV9tdl9jb250ZXh0Jwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDoz MDogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnYml0cycgbm90IGRlc2Ny aWJlZCBpbiAndjRsMl92cDlfZnJhbWVfbXZfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDIt dnA5Lmg6MzA6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2NsYXNzMF9m cicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfbXZfY29udGV4dCcKPiBpbmNsdWRl L21lZGlhL3Y0bDItdnA5Lmg6MzA6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1i ZXIgJ2ZyJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9tdl9jb250ZXh0Jwo+IGlu Y2x1ZGUvbWVkaWEvdjRsMi12cDkuaDozMDogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9y IG1lbWJlciAnY2xhc3MwX2hwJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9tdl9j b250ZXh0Jwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDozMDogd2FybmluZzogRnVuY3Rpb24g cGFyYW1ldGVyIG9yIG1lbWJlciAnaHAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1l X212X2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBGdW5j dGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICd0eDgnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5 X2ZyYW1lX2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBG dW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICd0eDE2JyBub3QgZGVzY3JpYmVkIGluICd2NGwy X3ZwOV9mcmFtZV9jb250ZXh0Jwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo1ODogd2Fybmlu ZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAndHgzMicgbm90IGRlc2NyaWJlZCBpbiAn djRsMl92cDlfZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6NTg6IHdh cm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2NvZWYnIG5vdCBkZXNjcmliZWQg aW4gJ3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4 OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdza2lwJyBub3QgZGVzY3Jp YmVkIGluICd2NGwyX3ZwOV9mcmFtZV9jb250ZXh0Jwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDku aDo1ODogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnaW50ZXJfbW9kZScg bm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlh L3Y0bDItdnA5Lmg6NTg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2lu dGVycF9maWx0ZXInIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4g aW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdpc19pbnRlcicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29u dGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6NTg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBh cmFtZXRlciBvciBtZW1iZXIgJ2NvbXBfbW9kZScgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlf ZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6NTg6IHdhcm5pbmc6IEZ1 bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3NpbmdsZV9yZWYnIG5vdCBkZXNjcmliZWQgaW4g J3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3 YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdjb21wX3JlZicgbm90IGRlc2Ny aWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5 Lmg6NTg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3lfbW9kZScgbm90 IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0 bDItdnA5Lmg6NTg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3V2X21v ZGUnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4gaW5jbHVkZS9t ZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVy ICdwYXJ0aXRpb24nIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4g aW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdtdicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29udGV4dCcK PiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRl ciBvciBtZW1iZXIgJ3BhcnRpdGlvbicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVf c3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1 bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3NraXAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJf dnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3 YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdpbnRyYV9pbnRlcicgbm90IGRl c2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlh L3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3R4 MzJwJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGlu Y2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo5Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9y IG1lbWJlciAndHgxNnAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9j b3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBw YXJhbWV0ZXIgb3IgbWVtYmVyICd0eDhwJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFt ZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo5Mzogd2FybmluZzog RnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAneV9tb2RlJyBub3QgZGVzY3JpYmVkIGluICd2 NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo5 Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAndXZfbW9kZScgbm90IGRl c2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlh L3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2Nv bXAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5j bHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3Ig bWVtYmVyICdjb21wX3JlZicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfc3ltYm9s X2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9u IHBhcmFtZXRlciBvciBtZW1iZXIgJ3NpbmdsZV9yZWYnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJf dnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3 YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdtdl9tb2RlJyBub3QgZGVzY3Jp YmVkIGluICd2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEvdjRs Mi12cDkuaDo5Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnZmlsdGVy JyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGluY2x1 ZGUvbWVkaWEvdjRsMi12cDkuaDo5Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1l bWJlciAnbXZfam9pbnQnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9j b3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBw YXJhbWV0ZXIgb3IgbWVtYmVyICdzaWduJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFt ZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo5Mzogd2FybmluZzog RnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnY2xhc3Nlcycgbm90IGRlc2NyaWJlZCBpbiAn djRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6 OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2NsYXNzMCcgbm90IGRl c2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlh L3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2Jp dHMnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5j bHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3Ig bWVtYmVyICdjbGFzczBfZnAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJv bF9jb3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlv biBwYXJhbWV0ZXIgb3IgbWVtYmVyICdmcCcgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJh bWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6 IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2NsYXNzMF9ocCcgbm90IGRlc2NyaWJlZCBp biAndjRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5 Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2hwJyBub3QgZGVz Y3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEv djRsMi12cDkuaDo5Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnY29l ZmYnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5j bHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3Ig bWVtYmVyICdlb2InIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9jb3Vu dHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjE2Njogd2FybmluZzogZXhwZWN0aW5nIHBy b3RvdHlwZSBmb3IgdjRsMl92cDlfYWRhcHRfY29lZl9wcm9icygpLiBQcm90b3R5cGUgd2FzIGZv ciB2NGwyX3ZwOV9hZGFwdF9ub25jb2VmX3Byb2JzKCkKPiBpbnN0ZWFkCj4gZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9vbWFwM2lzcC9vbWFwM2lzcC5oOjEwNzogd2FybmluZzogRnVuY3Rpb24gcGFy YW1ldGVyIG9yIG1lbWJlciAndnBfY2xrX3BvbCcgbm90IGRlc2NyaWJlZCBpbiAnaXNwX2NjcDJf Y2ZnJwo+IGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21hcDNpc3Avb21hcDNpc3AuaDoxMDc6IHdh cm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2xhbmVjZmcnIG5vdCBkZXNjcmli ZWQgaW4gJ2lzcF9jY3AyX2NmZycKPiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vdmVudXMv Y29yZS5oOjIwMjogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnc3lzX2Vy cl9kb25lJyBub3QgZGVzY3JpYmVkIGluICd2ZW51c19jb3JlJwo+IGRyaXZlcnMvbWVkaWEvcGxh dGZvcm0vcWNvbS92ZW51cy9jb3JlLmg6NDYyOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdmd19taW5fY250JyBub3QgZGVzY3JpYmVkIGluICd2ZW51c19pbnN0Jwo+IGRy aXZlcnMvbWVkaWEvcGxhdGZvcm0vcWNvbS92ZW51cy9jb3JlLmg6NDYyOiB3YXJuaW5nOiBGdW5j dGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdmbGFncycgbm90IGRlc2NyaWJlZCBpbiAndmVudXNf aW5zdCcKPiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vdmVudXMvY29yZS5oOjQ2Mjogd2Fy bmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnZHBiX2lkcycgbm90IGRlc2NyaWJl ZCBpbiAndmVudXNfaW5zdCcKPiBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyby5o OjExNTogd2FybmluZzogRW51bSB2YWx1ZSAnSEFOVFJPX01PREVfVlA5X0RFQycgbm90IGRlc2Ny aWJlZCBpbiBlbnVtICdoYW50cm9fY29kZWNfbW9kZScKPiBkcml2ZXJzL3N0YWdpbmcvbWVkaWEv aGFudHJvL2hhbnRyb19ody5oOjIxMTogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1l bWJlciAndGlsZV9lZGdlJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgn Cj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6 IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3NlZ21lbnRfbWFwJyBub3QgZGVzY3JpYmVk IGluICdoYW50cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRy by9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIg J21pc2MnIG5vdCBkZXNjcmliZWQgaW4gJ2hhbnRyb192cDlfZGVjX2h3X2N0eCcKPiBkcml2ZXJz L3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19ody5oOjIxMTogd2FybmluZzogRnVuY3Rpb24g cGFyYW1ldGVyIG9yIG1lbWJlciAnY250cycgbm90IGRlc2NyaWJlZCBpbiAnaGFudHJvX3ZwOV9k ZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjEx OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdwcm9iYWJpbGl0eV90YWJs ZXMnIG5vdCBkZXNjcmliZWQgaW4KPiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMv c3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBw YXJhbWV0ZXIgb3IgbWVtYmVyICdmcmFtZV9jb250ZXh0JyBub3QgZGVzY3JpYmVkIGluICdoYW50 cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9f aHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2N1cicgbm90 IGRlc2NyaWJlZCBpbiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdsYXN0JyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgn Cj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6 IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2JzZF9jdHJsX29mZnNldCcgbm90IGRlc2Ny aWJlZCBpbiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9o YW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVt YmVyICdzZWdtZW50X21hcF9zaXplJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19o d19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdh cm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2N0eF9jb3VudGVyc19vZmZzZXQn IG5vdCBkZXNjcmliZWQgaW4KPiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3Rh Z2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJh bWV0ZXIgb3IgbWVtYmVyICd0aWxlX2luZm9fb2Zmc2V0JyBub3QgZGVzY3JpYmVkIGluICdoYW50 cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9f aHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3RpbGVfcl9p bmZvJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9z dGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBh cmFtZXRlciBvciBtZW1iZXIgJ3RpbGVfY19pbmZvJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9f dnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcu aDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2xhc3RfdGlsZV9y JyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFn aW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFt ZXRlciBvciBtZW1iZXIgJ2xhc3RfdGlsZV9jJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5 X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoy MTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2xhc3Rfc2JzX3InIG5v dCBkZXNjcmliZWQgaW4gJ2hhbnRyb192cDlfZGVjX2h3X2N0eCcKPiBkcml2ZXJzL3N0YWdpbmcv bWVkaWEvaGFudHJvL2hhbnRyb19ody5oOjIxMTogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVy IG9yIG1lbWJlciAnbGFzdF9zYnNfYycgbm90IGRlc2NyaWJlZCBpbiAnaGFudHJvX3ZwOV9kZWNf aHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3 YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdhY3RpdmVfc2VnbWVudCcgbm90 IGRlc2NyaWJlZCBpbiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdmZWF0dXJlX2VuYWJsZWQnIG5vdCBkZXNjcmliZWQgaW4gJ2hhbnRyb192cDlf ZGVjX2h3X2N0eCcKPiBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19ody5oOjIx MTogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnZmVhdHVyZV9kYXRhJyBu b3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgnCj4gCj4gWW91IGNhbiB0ZXN0 IGtlcm5lbGRvYyB5b3Vyc2VsZiB3aXRoOiBzY3JpcHRzL2tlcm5lbC1kb2MgLW5vbmUgaW5jbHVk ZS9tZWRpYS92NGwyLXZwOS5oCj4gCj4gUmVnYXJkcywKPiAKPiAJSGFucwo+IAo+Pgo+PiBSZWdh cmRzLAo+Pgo+PiBBbmRyemVqCj4+Cj4+Cj4+Pgo+Pj4gUmVnYXJkcywKPj4+Cj4+PiAJSGFucwo+ Pj4KPj4+IE9uIDI5LzA5LzIwMjEgMTg6MDQsIEFuZHJ6ZWogUGlldHJhc2lld2ljeiB3cm90ZToK Pj4+PiBEZWFyIGFsbCwKPj4+Pgo+Pj4+IFRoaXMgcGF0Y2ggc2VyaWVzIGFkZHMgVlA5IGNvZGVj IFY0TDIgY29udHJvbCBpbnRlcmZhY2UgYW5kIHR3byBkcml2ZXJzCj4+Pj4gdXNpbmcgdGhlIG5l dyBjb250cm9scy4gSXQgaXMgYSBmb2xsb3ctdXAgb2YgcHJldmlvdXMgdjYgc2VyaWVzIFsxXS4K Pj4+Pgo+Pj4+IEluIHRoaXMgaXRlcmF0aW9uLCB3ZSd2ZSBpbXBsZW1lbnRlZCBWUDkgaGFyZHdh cmUgZGVjb2Rpbmcgb24gdHdvIGRldmljZXM6Cj4+Pj4gUm9ja2NoaXAgVkRFQyBhbmQgSGFudHJv IEcyLCBhbmQgdGVzdGVkIG9uIFJLMzM5OSwgaS5NWDhNUSBhbmQgaS5NWDhNUC4KPj4+PiBUaGUg aS5NWDhNIGRyaXZlciBuZWVkcyBwcm9wZXIgcG93ZXIgZG9tYWlucyBzdXBwb3J0LCB0aG91Z2gs IHdoaWNoIGlzIGEKPj4+PiBzdWJqZWN0IG9mIGEgZGlmZmVyZW50IGVmZm9ydCwgYnV0IGluIGFs bCAzIGNhc2VzIHdlIHdlcmUgYWJsZSB0byBydW4gdGhlCj4+Pj4gZHJpdmVycy4KPj4+Pgo+Pj4+ IEdTdHJlYW1lciBzdXBwb3J0IGlzIGFsc28gYXZhaWxhYmxlLCB0aGUgbmVlZGVkIGNoYW5nZXMg aGF2ZSBiZWVuIHN1Ym1pdHRlZAo+Pj4+IGJ5IERhbmllbCBBbG1laWRhIFsyXS4gVGhpcyBNUiBp cyByZWFkeSB0byBiZSBtZXJnZWQsIGFuZCBqdXN0IG5lZWRzIHRoZQo+Pj4+IFZQOSBWNEwyIGNv bnRyb2xzIHRvIGJlIG1lcmdlZCBhbmQgcmVsZWFzZWQuCj4+Pj4KPj4+PiBCb3RoIHJrdmRlYyBh bmQgaGFudHJvIGRyaXZlcnMgYXJlIHBhc3NpbmcgYSBzaWduaWZpY2FudCBudW1iZXIgb2YgVlA5 IHRlc3RzCj4+Pj4gdXNpbmcgRmx1c3RlclszXS4gVGhlcmUgYXJlIHN0aWxsIGEgZmV3IHRlc3Rz IHRoYXQgYXJlIG5vdCBwYXNzaW5nLCBkdWUgdG8KPj4+PiBkeW5hbWljIGZyYW1lIHJlc2l6ZSAo bm90IHlldCBzdXBwb3J0ZWQgYnkgVjRMMikgYW5kIHNtYWxsIHNpemUgdmlkZW9zCj4+Pj4gKGR1 ZSB0byBJUCBibG9jayBsaW1pdGF0aW9ucykuCj4+Pj4KPj4+PiBUaGUgc2VyaWVzIGFkZHMgdGhl IFZQOSBjb2RlYyBWNEwyIGNvbnRyb2wgQVBJIGFzIHVBUEksIHNvIGl0IGFpbXMgYXQgYmVpbmcK Pj4+PiBtZXJnZWQgd2l0aG91dCBwYXNzaW5nIHRocm91Z2ggc3RhZ2luZywgYXMgYWdyZWVkWzRd LiBUaGUgQUJJIGhhcyBiZWVuIGNoZWNrZWQKPj4+PiBmb3IgcGFkZGluZyBhbmQgdmVyaWZpZWQg dG8gY29udGFpbiBubyBob2xlcy4KPj4+Pgo+Pj4+IFsxXSBodHRwczovL3BhdGNod29yay5saW51 eHR2Lm9yZy9wcm9qZWN0L2xpbnV4LW1lZGlhL2xpc3QvP3Nlcmllcz02Mzc3Cj4+Pj4gWzJdIGh0 dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIvZ3N0LXBsdWdpbnMtYmFkLy0v bWVyZ2VfcmVxdWVzdHMvMjE0NAo+Pj4+IFszXSBodHRwczovL2dpdGh1Yi5jb20vZmx1ZW5kby9m bHVzdGVyCj4+Pj4gWzRdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LW1lZGlhL2I4Zjgz YzkzLTY3ZmQtMDlmNS05MzE0LTE1NzQ2Y2JmZGM2MUB4czRhbGwubmwvCj4+Pj4KPj4+PiBUaGUg c2VyaWVzIGRlcGVuZHMgb24gdGhlIFlVViB0aWxlZCBmb3JtYXQgc3VwcG9ydCBwcmVwYXJlZCBi eSBFemVxdWllbDoKPj4+PiBodHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9saW51eC1tZWRp YS9tc2cxOTcwNDcuaHRtbAo+Pj4+Cj4+Pj4gUmViYXNlZCBvbnRvIGxhdGVzdCBtZWRpYV90cmVl Lgo+Pj4+Cj4+Pj4gQ2hhbmdlcyByZWxhdGVkIHRvIHY2Ogo+Pj4+IC0gbW92ZWQgc2V0dGluZyB0 aWxlIGZpbHRlciBhbmQgdGlsZSBic2QgYXV4aWxpYXJ5IGJ1ZmZlciBhZGRyZXNzZXMgc28KPj4+ PiB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzZXQsIGV2ZW4gaWYgbm8gdGlsZXMgYXJlIHVzZWQgKHRo YW5rcywgSmVybmVqKQo+Pj4+IC0gYWRkZWQgYSBjb21tZW50IG5lYXIgdGhlIHBsYWNlIHdoZXJl IHRoZSAzMi1iaXQgRE1BIG1hc2sgaXMgYXBwbGllZAo+Pj4+ICAgICAodGhhbmtzLCBOaWNvbGFz KQo+Pj4+IC0gaW1wcm92ZWQgY29uc2lzdGVuY3kgaW4gcmVnaXN0ZXIgbmFtZXMgKHRoYW5rcywg Tmljb2xhcykKPj4+Pgo+Pj4+IENoYW5nZXMgcmVsYXRlZCB0byB2NToKPj4+PiAtIGltcHJvdmVk IHRoZSBkb2MgY29tbWVudHMgYXMgcGVyIEV6ZXF1aWVsJ3MgcmV2aWV3ICh0aGFua3MsIEV6ZXF1 aWVsKQo+Pj4+IC0gaW1wcm92ZWQgcGRmIG91dHB1dCBvZiBkb2N1bWVudGF0aW9uCj4+Pj4gLSBh ZGRlZCBCZW5qYW1pbidzIFJldmlld2VkLWJ5ICh0aGFua3MsIEJlbmphbWluKQo+Pj4+Cj4+Pj4g Q2hhbmdlcyByZWxhdGVkIHRvIHY0Ogo+Pj4+IC0gcmVtb3ZlZCB1bnVzZWQgZW51bSB2NGwyX3Zw OV9pbnRyYV9wcmVkaWN0aW9uX21vZGUKPj4+PiAtIGNvbnZlcnRlZCByZW1haW5pbmcgZW51bXMg dG8gZGVmaW5lcyB0byBmb2xsb3cgdGhlIGNvbnZlbnRpb24KPj4+PiAtIGltcHJvdmVkIHRoZSBk b2N1bWVudGF0aW9uLCBpbiBwYXJ0aWN1bGFyIGJldHRlciBkb2N1bWVudGVkIGhvdyB0byB1c2Ug c2VnbWVudGF0aW9uCj4+Pj4gZmVhdHVyZXMKPj4+Pgo+Pj4+IENoYW5nZXMgcmVsYXRlZCB0byB2 MzoKPj4+Pgo+Pj4+IEFwcGx5IHN1Z2dlc3Rpb25zIGZyb20gSmVybmVqJ3MgcmV2aWV3ICh0aGFu a3MsIEplcm5laik6Cj4+Pj4gLSByZW5hbWVkIGEgY29udHJvbCBhbmQgdHdvIHN0cnVjdHM6Cj4+ Pj4gCVY0TDJfQ1RSTF9UWVBFX1ZQOV9DT01QUkVTU0VEX0hEUl9QUk9CUyA9Pgo+Pj4+IAkJVjRM Ml9DVFJMX1RZUEVfVlA5X0NPTVBSRVNTRURfSERSCj4+Pj4gCXY0bDJfY3RybF92cDlfY29tcHJl c3NlZF9oZHJfcHJvYnMgPT4KPj4+PiAJCXY0bDJfY3RybF92cDlfY29tcHJlc3NlZF9oZHIKPj4+ PiAJdjRsMl92cDlfbXZfY29tcHJlc3NlZF9oZHJfcHJvYnMgPT4gdjRsMl92cDlfbXZfcHJvYnMK Pj4+PiAtIG1vdmVkIHR4X21vZGUgdG8gdjRsMl9jdHJsX3ZwOV9jb21wcmVzc2VkX2hkcgo+Pj4+ IC0gZml4ZWQgZW51bSB2NGwyX3ZwOV9yZWZfZnJhbWVfc2lnbl9iaWFzIHZhbHVlcyAod2hpY2gg YXJlIHVzZWQgdG8gdGVzdCBhIGJpdGZpZWxkKQo+Pj4+IC0gZXhwbGljaXRseSBhc3NpZ25lZCB2 YWx1ZXMgdG8gYWxsIG90aGVyIHZwOSBlbnVtcwo+Pj4+Cj4+Pj4gQXBwbHkgc3VnZ2VzdGlvbiBm cm9tIE5pY29sYXMncyByZXZpZXcgKHRoYW5rcywgTmljb2xhcyk6Cj4+Pj4gLSBleHBsaWNpdGx5 IHN0YXRlZCB0aGF0IHRoZSB2NGwyX2N0cmxfdnA5X2NvbXByZXNzZWRfaGRyIGNvbnRyb2wgaXMg b3B0aW9uYWwKPj4+PiBhbmQgaW1wbGVtZW50ZWQgb25seSBieSBkcml2ZXJzIHdoaWNoIG5lZWQg aXQKPj4+Pgo+Pj4+IENoYW5nZXMgcmVsYXRlZCB0byB0aGUgUkZDIHYyOgo+Pj4+Cj4+Pj4gLSBh ZGRlZCBhbm90aGVyIGRyaXZlciBpbmNsdWRpbmcgYSBwb3N0cHJvY2Vzc29yIHRvIGRlLXRpbGUK Pj4+PiAgICAgICAgICAgY29kZWMtc3BlY2lmaWMgdGlsaW5nCj4+Pj4gLSByZXdvcmtlZCB1QVBJ IHN0cnVjdHMgbGF5b3V0IHRvIGZvbGxvdyBWUDggc3R5bGUKPj4+PiAtIGNoYW5nZWQgdmFsaWRh dGlvbiBvZiBsb29wIGZpbHRlciBwYXJhbXMKPj4+PiAtIGNoYW5nZWQgdmFsaWRhdGlvbiBvZiBz ZWdtZW50YXRpb24gcGFyYW1zCj4+Pj4gLSBjaGFuZ2VkIHZhbGlkYXRpb24gb2YgVlA5IGZyYW1l IHBhcmFtcwo+Pj4+IC0gcmVtb3ZlZCBsZXZlbCBsb29rdXAgYXJyYXkgZnJvbSBsb29wIGZpbHRl ciBzdHJ1Y3QKPj4+PiAgICAgICAgICAgKGNhbiBiZSBjb21wdXRlZCBieSBkcml2ZXJzKQo+Pj4+ IC0gcmVuYW1lZCBzb21lIGVudW0gdmFsdWVzIHRvIG1hdGNoIHRoZSBzcGVjIG1vcmUgY2xvc2Vs eQo+Pj4+IC0gVjRMMiBWUDkgbGlicmFyeSBjaGFuZ2VkIHRoZSAnZW9iJyBtZW1iZXIgb2YKPj4+ PiAgICAgICAgICAgJ3N0cnVjdCB2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJyBzbyB0aGF0 IGl0IGlzIGFuIGFycmF5Cj4+Pj4gICAgICAgICAgIG9mIHBvaW50ZXJzIGluc3RlYWQgb2YgYW4g YXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzCj4+Pj4gICAgICAgICAgIChJUHMgc3VjaCBhcyBn MiBjcmVhdGl2ZWx5IHBhc3MgcGFydHMgb2YgdGhlICdlb2InIGNvdW50cyBpbgo+Pj4+ICAgICAg ICAgICB0aGUgJ2NvZWZmJyBjb3VudHMpCj4+Pj4gLSBmYWN0b3JlZCBvdXQgc2V2ZXJhbCByZXBl YXRlZCBwb3J0aW9ucyBvZiBjb2RlCj4+Pj4gLSBtaW5vciBuaXRwaWNrcyBhbmQgY2xlYW51cHMK Pj4+Pgo+Pj4+IEFuZHJ6ZWogUGlldHJhc2lld2ljeiAoNik6Cj4+Pj4gICAgIG1lZGlhOiB1YXBp OiBBZGQgVlA5IHN0YXRlbGVzcyBkZWNvZGVyIGNvbnRyb2xzCj4+Pj4gICAgIG1lZGlhOiBBZGQg VlA5IHY0bDIgbGlicmFyeQo+Pj4+ICAgICBtZWRpYTogaGFudHJvOiBSZW5hbWUgcmVnaXN0ZXJz Cj4+Pj4gICAgIG1lZGlhOiBoYW50cm86IFByZXBhcmUgZm9yIG90aGVyIEcyIGNvZGVjcwo+Pj4+ ICAgICBtZWRpYTogaGFudHJvOiBTdXBwb3J0IFZQOSBvbiB0aGUgRzIgY29yZQo+Pj4+ICAgICBt ZWRpYTogaGFudHJvOiBTdXBwb3J0IE5WMTIgb24gdGhlIEcyIGNvcmUKPj4+Pgo+Pj4+IEJvcmlz IEJyZXppbGxvbiAoMSk6Cj4+Pj4gICAgIG1lZGlhOiBya3ZkZWM6IEFkZCB0aGUgVlA5IGJhY2tl bmQKPj4+Pgo+Pj4+IEV6ZXF1aWVsIEdhcmNpYSAoNCk6Cj4+Pj4gICAgIGhhbnRybzogcG9zdHBy b2M6IEZpeCBtb3Rpb24gdmVjdG9yIHNwYWNlIHNpemUKPj4+PiAgICAgaGFudHJvOiBwb3N0cHJv YzogSW50cm9kdWNlIHN0cnVjdCBoYW50cm9fcG9zdHByb2Nfb3BzCj4+Pj4gICAgIGhhbnRybzog U2ltcGxpZnkgcG9zdHByb2Nlc3Nvcgo+Pj4+ICAgICBoYW50cm86IEFkZCBxdWlyayBmb3IgTlYx Mi9OVjEyXzRMNCBjYXB0dXJlIGZvcm1hdAo+Pj4+Cj4+Pj4gICAgLi4uL3VzZXJzcGFjZS1hcGkv bWVkaWEvdjRsL2JpYmxpby5yc3QgICAgICAgIHwgICAxMCArCj4+Pj4gICAgLi4uL21lZGlhL3Y0 bC9leHQtY3RybHMtY29kZWMtc3RhdGVsZXNzLnJzdCAgIHwgIDU3MyArKysrKwo+Pj4+ICAgIC4u Li9tZWRpYS92NGwvcGl4Zm10LWNvbXByZXNzZWQucnN0ICAgICAgICAgICB8ICAgMTUgKwo+Pj4+ ICAgIC4uLi9tZWRpYS92NGwvdmlkaW9jLWctZXh0LWN0cmxzLnJzdCAgICAgICAgICB8ICAgIDgg Kwo+Pj4+ICAgIC4uLi9tZWRpYS92NGwvdmlkaW9jLXF1ZXJ5Y3RybC5yc3QgICAgICAgICAgICB8 ICAgMTIgKwo+Pj4+ICAgIC4uLi9tZWRpYS92aWRlb2RldjIuaC5yc3QuZXhjZXB0aW9ucyAgICAg ICAgICB8ICAgIDIgKwo+Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL0tjb25maWcgICAg ICAgICAgICAgICB8ICAgIDQgKwo+Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL01ha2Vm aWxlICAgICAgICAgICAgICB8ICAgIDEgKwo+Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3Jl L3Y0bDItY3RybHMtY29yZS5jICAgICB8ICAxODAgKysKPj4+PiAgICBkcml2ZXJzL21lZGlhL3Y0 bDItY29yZS92NGwyLWN0cmxzLWRlZnMuYyAgICAgfCAgICA4ICsKPj4+PiAgICBkcml2ZXJzL21l ZGlhL3Y0bDItY29yZS92NGwyLWlvY3RsLmMgICAgICAgICAgfCAgICAxICsKPj4+PiAgICBkcml2 ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLXZwOS5jICAgICAgICAgICAgfCAxODUwICsrKysrKysr KysrKysrKysrCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9LY29uZmlnICAg ICAgICAgIHwgICAgMSArCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9NYWtl ZmlsZSAgICAgICAgIHwgICAgNyArLQo+Pj4+ICAgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50 cm8vaGFudHJvLmggICAgICAgICB8ICAgNDAgKy0KPj4+PiAgICBkcml2ZXJzL3N0YWdpbmcvbWVk aWEvaGFudHJvL2hhbnRyb19kcnYuYyAgICAgfCAgIDIzICstCj4+Pj4gICAgZHJpdmVycy9zdGFn aW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzIuYyAgICAgIHwgICAyNyArCj4+Pj4gICAgLi4uL3N0 YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMl9oZXZjX2RlYy5jIHwgICA2OSArLQo+Pj4+ICAg IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cyX3JlZ3MuaCB8ICAxMzIgKy0K Pj4+PiAgICAuLi4vc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cyX3ZwOV9kZWMuYyAgfCAg OTgwICsrKysrKysrKwo+Pj4+ICAgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJv X2h3LmggICAgICB8ICAgODMgKy0KPj4+PiAgICAuLi4vc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX3Bvc3Rwcm9jLmMgICAgfCAgIDc5ICstCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5nL21lZGlh L2hhbnRyby9oYW50cm9fdjRsMi5jICAgIHwgICAyMCArCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5n L21lZGlhL2hhbnRyby9oYW50cm9fdnA5LmMgICAgIHwgIDI0MCArKysKPj4+PiAgICBkcml2ZXJz L3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb192cDkuaCAgICAgfCAgMTAzICsKPj4+PiAgICBk cml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9ody5jICAgfCAgIDM4ICstCj4+ Pj4gICAgLi4uL3N0YWdpbmcvbWVkaWEvaGFudHJvL3JvY2tjaGlwX3ZwdV9ody5jICAgIHwgICAg NyArLQo+Pj4+ICAgIC4uLi9zdGFnaW5nL21lZGlhL2hhbnRyby9zYW1hNWQ0X3ZkZWNfaHcuYyAg ICB8ICAgIDMgKy0KPj4+PiAgICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL0tjb25maWcg ICAgICAgICAgfCAgICAxICsKPj4+PiAgICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL01h a2VmaWxlICAgICAgICAgfCAgICAyICstCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5nL21lZGlhL3Jr dmRlYy9ya3ZkZWMtdnA5LmMgICAgIHwgMTA3OCArKysrKysrKysrCj4+Pj4gICAgZHJpdmVycy9z dGFnaW5nL21lZGlhL3JrdmRlYy9ya3ZkZWMuYyAgICAgICAgIHwgICA1MiArLQo+Pj4+ICAgIGRy aXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLmggICAgICAgICB8ICAgMTIgKy0KPj4+ PiAgICBpbmNsdWRlL21lZGlhL3Y0bDItY3RybHMuaCAgICAgICAgICAgICAgICAgICAgfCAgICA0 ICsKPj4+PiAgICBpbmNsdWRlL21lZGlhL3Y0bDItdnA5LmggICAgICAgICAgICAgICAgICAgICAg fCAgMTgyICsrCj4+Pj4gICAgaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDItY29udHJvbHMuaCAgICAg ICAgICAgIHwgIDI4NCArKysKPj4+PiAgICBpbmNsdWRlL3VhcGkvbGludXgvdmlkZW9kZXYyLmgg ICAgICAgICAgICAgICAgfCAgICA2ICsKPj4+PiAgICAzNyBmaWxlcyBjaGFuZ2VkLCA2MDMzIGlu c2VydGlvbnMoKyksIDEwNCBkZWxldGlvbnMoLSkKPj4+PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi12cDkuYwo+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMi5jCj4+Pj4gICAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cyX3Zw OV9kZWMuYwo+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3N0YWdpbmcvbWVkaWEv aGFudHJvL2hhbnRyb192cDkuYwo+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3N0 YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb192cDkuaAo+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy12cDkuYwo+Pj4+ICAgIGNyZWF0 ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL21lZGlhL3Y0bDItdnA5LmgKPj4+Pgo+Pj4+Cj4+Pj4gYmFz ZS1jb21taXQ6IGU0ZTczN2JiNWMxNzBkZjYxMzVhMTI3NzM5YTllNjE0OGVlM2RhODIKPj4+Pgo+ Pj4KPj4KPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LXJvY2tjaGlwCg== 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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E5B2C433F5 for ; Tue, 16 Nov 2021 08:11:27 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 CCE0561041 for ; Tue, 16 Nov 2021 08:11:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org CCE0561041 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=EWvcU3Q+DSXjWN52Dz02mXEvt/8xMCbrYkmwZv7mNtA=; b=F4YYc2KdDqKZlbPJdBr6uJTT7H j/5oEj1VVm3urfiZb9jStY6BJduuOz8VaiyfBAGShCHO+VsnHQKBoFMDqeIg3DqeVz6GP8TvDpl9M Pi4ly0lkj2g4yafDsP6HEbItHDkQxUH3jD1TtsPFqncDJxiins+IbrcpT6Wzp8Y/kFKVeeg/dsWdK RP14YhaCcFDSBcetK+izHyH4xQYPQqQpycuPCi38yzSE8zV9aM7hXNaB0NQG/7ExvTS9NHqu7VIPo nZ+u9mLU6e+akgOYjStwNlySRVBg/6QuU+qF59YDFyXDgPQZRKTY/Ox3PcIOzhuOpSgPMlb184DH0 xWyEIRPQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mmtXQ-000eOB-AJ; Tue, 16 Nov 2021 08:09:56 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mmtXL-000eNA-1R; Tue, 16 Nov 2021 08:09:54 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: andrzej.p) with ESMTPSA id 044A11F4542E DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=collabora.com; s=mail; t=1637050188; bh=LEicCsC4sTpMlpJrwfp3CWJxvgPG6cotp+f0OL83y1E=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=GwRnZNUOMzcJSRXXNSjo60/T640lFlxBBs7PkBjfVlRZV/u6nt4eN+pc3aKHNz/+U 20yGoMztPRoQ4xE4NZ+3Sekml4fPzW+Zgmn9q83h/n63BUBIoBDQ4WFBRd5WWeSrS8 zXSSKn2Ly6MLVr0w+7WE9oGviquR5rm4GaquEXQDnOd0cwmkyjZV/rKgUJrQ6h3HSb Hil5n1u3NDkIn420abUz/YUEnfhPho0qIAx+kvkRpic1tHIdKuuEyjikGoGqMu1KyI fgVPTSl8EFbQ7kkvhwR7iOzA70KC0lVJakfpLQ0tYTLr+LT3aqbgjU79NNiGlDB5Tc pnVEhb5TK3hDA== Subject: Re: [PATCH v7 00/11] VP9 codec V4L2 control interface To: Hans Verkuil , linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev Cc: Benjamin Gaignard , Boris Brezillon , Ezequiel Garcia , Fabio Estevam , Greg Kroah-Hartman , Heiko Stuebner , Jernej Skrabec , Mauro Carvalho Chehab , Nicolas Dufresne , NXP Linux Team , Pengutronix Kernel Team , Philipp Zabel , Sascha Hauer , Shawn Guo , kernel@collabora.com References: <20210929160439.6601-1-andrzej.p@collabora.com> <9db47ebc-cb95-872d-feb4-d6432a74f2cb@xs4all.nl> <29f27bad-28ae-12ff-eed6-79902bd5b722@collabora.com> From: Andrzej Pietrasiewicz Message-ID: Date: Tue, 16 Nov 2021 09:09:45 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211116_000951_429358_41D1D0B1 X-CRM114-Status: GOOD ( 23.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgSGFucywKClcgZG5pdSAxNS4xMS4yMDIxIG/CoDIyOjE2LCBIYW5zIFZlcmt1aWwgcGlzemU6 Cj4gT24gMTUvMTEvMjAyMSAxODoxNCwgQW5kcnplaiBQaWV0cmFzaWV3aWN6IHdyb3RlOgo+PiBI aSBIYW5zLAo+Pgo+PiBXIGRuaXUgMTUuMTEuMjAyMSBvwqAxNjowNywgSGFucyBWZXJrdWlsIHBp c3plOgo+Pj4gQW5kcnplaiwKPj4+Cj4+PiBDYW4geW91IHJlYmFzZSB0aGlzIHNlcmllcyBvbiB0 b3Agb2YgdGhlIG1hc3RlciBicmFuY2ggb2YKPj4+IGh0dHBzOi8vZ2l0LmxpbnV4dHYub3JnL21l ZGlhX3N0YWdlLmdpdC8gPyBVbmZvcnR1bmF0ZWx5IHRoaXMgdjcgbm8gbG9uZ2VyCj4+PiBhcHBs aWVzLiBTcGVjaWZpY2FsbHkgInJrdmRlYzogQWRkIHRoZSBWUDkgYmFja2VuZCIgZmFpbGVkIGlu IGEgbm9uLXRyaXZpYWwKPj4+IG1hbm5lci4KPj4KPj4gVGhpcyBpcyBhIGJyYW5jaCBmb3IgeW91 Ogo+Pgo+PiBodHRwczovL2dpdGxhYi5jb2xsYWJvcmEuY29tL2xpbnV4L2Zvci11cHN0cmVhbS8t L3RyZWUvdnA5LXVhcGkKPiAKPiBJJ20gZ2V0dGluZyBhIGJ1bmNoIG9mIHNwYXJzZS9zbWF0Y2gg d2FybmluZ3M6Cj4gCgpUaGFua3MgZm9yIGZpbmRpbmcgdGhpcywgSSB3aWxsIHJlLWNyZWF0ZSB0 aGUgYnJhbmNoIGFuZCBsZXQgeW91IGtub3cgb24gaXJjLgpTb21lIG9mIHRoZSBiZWxvdyBhcmUg ImZhbHNlIHBvc2l0aXZlcywgbmFtZWx5OgoKZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9vbWFwM2lz cC9vbWFwM2lzcC5oCmRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcWNvbS92ZW51cy9jb3JlLmgKCndo aWNoIGFyZSBub3QgdG91Y2hlZCBieSB0aGUgc2VyaWVzLgoKUmVnYXJkcywKCkFuZHJ6ZWoKCj4g c3BhcnNlOgo+IHJrdmRlYy9ya3ZkZWMtdnA5LmM6MTkwOjQzOiB3YXJuaW5nOiB2YXJpYWJsZSAn ZGVjX3BhcmFtcycgc2V0IGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0K PiBya3ZkZWMvcmt2ZGVjLXZwOS5jOjI0NTo0Mzogd2FybmluZzogdmFyaWFibGUgJ2RlY19wYXJh bXMnIHNldCBidXQgbm90IHVzZWQgWy1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCj4gU1BBUlNF OmhhbnRyby9oYW50cm9fcG9zdHByb2MuYyBoYW50cm8vaGFudHJvX3Bvc3Rwcm9jLmM6Mzc6MzU6 IHdhcm5pbmc6IHN5bWJvbCAnaGFudHJvX2cxX3Bvc3Rwcm9jX3JlZ3MnIHdhcyBub3QgZGVjbGFy ZWQuIFNob3VsZCBpdCBiZSBzdGF0aWM/Cj4gCj4gc21hdGNoOgo+IHJrdmRlYy9ya3ZkZWMtdnA5 LmM6MTkwOjQzOiB3YXJuaW5nOiB2YXJpYWJsZSAnZGVjX3BhcmFtcycgc2V0IGJ1dCBub3QgdXNl ZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KPiBya3ZkZWMvcmt2ZGVjLXZwOS5jOjI0NTo0 Mzogd2FybmluZzogdmFyaWFibGUgJ2RlY19wYXJhbXMnIHNldCBidXQgbm90IHVzZWQgWy1XdW51 c2VkLWJ1dC1zZXQtdmFyaWFibGVdCj4gcmt2ZGVjL3JrdmRlYy12cDkuYzogcmt2ZGVjL3JrdmRl Yy12cDkuYzoyMzYgaW5pdF9pbnRyYV9vbmx5X3Byb2JzKCkgZXJyb3I6IGJ1ZmZlciBvdmVyZmxv dyAncHRyJyA5MCA8PSA5MQo+IGhhbnRyby9oYW50cm9fZzJfdnA5X2RlYy5jOiBoYW50cm8vaGFu dHJvX2cyX3ZwOV9kZWMuYzo2NzAgY29uZmlnX3Byb2JzKCkgZXJyb3I6IG1lbWNweSgpICdhZGFw dGl2ZS0+aW50ZXJfbW9kZVtpXScgdG9vIHNtYWxsICg0IHZzIDIxKQo+IGhhbnRyby9oYW50cm9f ZzJfdnA5X2RlYy5jOiBoYW50cm8vaGFudHJvX2cyX3ZwOV9kZWMuYzo2NzAgY29uZmlnX3Byb2Jz KCkgZXJyb3I6IG1lbWNweSgpICdwcm9icy0+aW50ZXJfbW9kZVtpXScgdG9vIHNtYWxsICgzIHZz IDIxCj4gCj4gQWxzbyBhIGJ1bmNoIG9mIGtlcm5lbGRvYyB3YXJuaW5nczoKPiAKPiBpbmNsdWRl L21lZGlhL3Y0bDItdnA5Lmg6MzA6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1i ZXIgJ2pvaW50JyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9tdl9jb250ZXh0Jwo+ IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDozMDogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVy IG9yIG1lbWJlciAnc2lnbicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfbXZfY29u dGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6MzA6IHdhcm5pbmc6IEZ1bmN0aW9uIHBh cmFtZXRlciBvciBtZW1iZXIgJ2NsYXNzZXMnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2Zy YW1lX212X2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjMwOiB3YXJuaW5nOiBG dW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdjbGFzczBfYml0JyBub3QgZGVzY3JpYmVkIGlu ICd2NGwyX3ZwOV9mcmFtZV9tdl9jb250ZXh0Jwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDoz MDogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnYml0cycgbm90IGRlc2Ny aWJlZCBpbiAndjRsMl92cDlfZnJhbWVfbXZfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDIt dnA5Lmg6MzA6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2NsYXNzMF9m cicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfbXZfY29udGV4dCcKPiBpbmNsdWRl L21lZGlhL3Y0bDItdnA5Lmg6MzA6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1i ZXIgJ2ZyJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9tdl9jb250ZXh0Jwo+IGlu Y2x1ZGUvbWVkaWEvdjRsMi12cDkuaDozMDogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9y IG1lbWJlciAnY2xhc3MwX2hwJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9tdl9j b250ZXh0Jwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDozMDogd2FybmluZzogRnVuY3Rpb24g cGFyYW1ldGVyIG9yIG1lbWJlciAnaHAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1l X212X2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBGdW5j dGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICd0eDgnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5 X2ZyYW1lX2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBG dW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICd0eDE2JyBub3QgZGVzY3JpYmVkIGluICd2NGwy X3ZwOV9mcmFtZV9jb250ZXh0Jwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo1ODogd2Fybmlu ZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAndHgzMicgbm90IGRlc2NyaWJlZCBpbiAn djRsMl92cDlfZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6NTg6IHdh cm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2NvZWYnIG5vdCBkZXNjcmliZWQg aW4gJ3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4 OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdza2lwJyBub3QgZGVzY3Jp YmVkIGluICd2NGwyX3ZwOV9mcmFtZV9jb250ZXh0Jwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDku aDo1ODogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnaW50ZXJfbW9kZScg bm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlh L3Y0bDItdnA5Lmg6NTg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2lu dGVycF9maWx0ZXInIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4g aW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdpc19pbnRlcicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29u dGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6NTg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBh cmFtZXRlciBvciBtZW1iZXIgJ2NvbXBfbW9kZScgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlf ZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6NTg6IHdhcm5pbmc6IEZ1 bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3NpbmdsZV9yZWYnIG5vdCBkZXNjcmliZWQgaW4g J3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3 YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdjb21wX3JlZicgbm90IGRlc2Ny aWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5 Lmg6NTg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3lfbW9kZScgbm90 IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29udGV4dCcKPiBpbmNsdWRlL21lZGlhL3Y0 bDItdnA5Lmg6NTg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3V2X21v ZGUnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4gaW5jbHVkZS9t ZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVy ICdwYXJ0aXRpb24nIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX2NvbnRleHQnCj4g aW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjU4OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdtdicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfY29udGV4dCcK PiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRl ciBvciBtZW1iZXIgJ3BhcnRpdGlvbicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVf c3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1 bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3NraXAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJf dnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3 YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdpbnRyYV9pbnRlcicgbm90IGRl c2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlh L3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3R4 MzJwJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGlu Y2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo5Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9y IG1lbWJlciAndHgxNnAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9j b3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBw YXJhbWV0ZXIgb3IgbWVtYmVyICd0eDhwJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFt ZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo5Mzogd2FybmluZzog RnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAneV9tb2RlJyBub3QgZGVzY3JpYmVkIGluICd2 NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo5 Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAndXZfbW9kZScgbm90IGRl c2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlh L3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2Nv bXAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5j bHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3Ig bWVtYmVyICdjb21wX3JlZicgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfc3ltYm9s X2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9u IHBhcmFtZXRlciBvciBtZW1iZXIgJ3NpbmdsZV9yZWYnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJf dnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3 YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdtdl9tb2RlJyBub3QgZGVzY3Jp YmVkIGluICd2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEvdjRs Mi12cDkuaDo5Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnZmlsdGVy JyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGluY2x1 ZGUvbWVkaWEvdjRsMi12cDkuaDo5Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1l bWJlciAnbXZfam9pbnQnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9j b3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBw YXJhbWV0ZXIgb3IgbWVtYmVyICdzaWduJyBub3QgZGVzY3JpYmVkIGluICd2NGwyX3ZwOV9mcmFt ZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEvdjRsMi12cDkuaDo5Mzogd2FybmluZzog RnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnY2xhc3Nlcycgbm90IGRlc2NyaWJlZCBpbiAn djRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6 OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2NsYXNzMCcgbm90IGRl c2NyaWJlZCBpbiAndjRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlh L3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2Jp dHMnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5j bHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3Ig bWVtYmVyICdjbGFzczBfZnAnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJv bF9jb3VudHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlv biBwYXJhbWV0ZXIgb3IgbWVtYmVyICdmcCcgbm90IGRlc2NyaWJlZCBpbiAndjRsMl92cDlfZnJh bWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5Lmg6OTM6IHdhcm5pbmc6 IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2NsYXNzMF9ocCcgbm90IGRlc2NyaWJlZCBp biAndjRsMl92cDlfZnJhbWVfc3ltYm9sX2NvdW50cycKPiBpbmNsdWRlL21lZGlhL3Y0bDItdnA5 Lmg6OTM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2hwJyBub3QgZGVz Y3JpYmVkIGluICd2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJwo+IGluY2x1ZGUvbWVkaWEv djRsMi12cDkuaDo5Mzogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnY29l ZmYnIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9jb3VudHMnCj4gaW5j bHVkZS9tZWRpYS92NGwyLXZwOS5oOjkzOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3Ig bWVtYmVyICdlb2InIG5vdCBkZXNjcmliZWQgaW4gJ3Y0bDJfdnA5X2ZyYW1lX3N5bWJvbF9jb3Vu dHMnCj4gaW5jbHVkZS9tZWRpYS92NGwyLXZwOS5oOjE2Njogd2FybmluZzogZXhwZWN0aW5nIHBy b3RvdHlwZSBmb3IgdjRsMl92cDlfYWRhcHRfY29lZl9wcm9icygpLiBQcm90b3R5cGUgd2FzIGZv ciB2NGwyX3ZwOV9hZGFwdF9ub25jb2VmX3Byb2JzKCkKPiBpbnN0ZWFkCj4gZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9vbWFwM2lzcC9vbWFwM2lzcC5oOjEwNzogd2FybmluZzogRnVuY3Rpb24gcGFy YW1ldGVyIG9yIG1lbWJlciAndnBfY2xrX3BvbCcgbm90IGRlc2NyaWJlZCBpbiAnaXNwX2NjcDJf Y2ZnJwo+IGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21hcDNpc3Avb21hcDNpc3AuaDoxMDc6IHdh cm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2xhbmVjZmcnIG5vdCBkZXNjcmli ZWQgaW4gJ2lzcF9jY3AyX2NmZycKPiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vdmVudXMv Y29yZS5oOjIwMjogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnc3lzX2Vy cl9kb25lJyBub3QgZGVzY3JpYmVkIGluICd2ZW51c19jb3JlJwo+IGRyaXZlcnMvbWVkaWEvcGxh dGZvcm0vcWNvbS92ZW51cy9jb3JlLmg6NDYyOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdmd19taW5fY250JyBub3QgZGVzY3JpYmVkIGluICd2ZW51c19pbnN0Jwo+IGRy aXZlcnMvbWVkaWEvcGxhdGZvcm0vcWNvbS92ZW51cy9jb3JlLmg6NDYyOiB3YXJuaW5nOiBGdW5j dGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdmbGFncycgbm90IGRlc2NyaWJlZCBpbiAndmVudXNf aW5zdCcKPiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vdmVudXMvY29yZS5oOjQ2Mjogd2Fy bmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnZHBiX2lkcycgbm90IGRlc2NyaWJl ZCBpbiAndmVudXNfaW5zdCcKPiBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyby5o OjExNTogd2FybmluZzogRW51bSB2YWx1ZSAnSEFOVFJPX01PREVfVlA5X0RFQycgbm90IGRlc2Ny aWJlZCBpbiBlbnVtICdoYW50cm9fY29kZWNfbW9kZScKPiBkcml2ZXJzL3N0YWdpbmcvbWVkaWEv aGFudHJvL2hhbnRyb19ody5oOjIxMTogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1l bWJlciAndGlsZV9lZGdlJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgn Cj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6 IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3NlZ21lbnRfbWFwJyBub3QgZGVzY3JpYmVk IGluICdoYW50cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRy by9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIg J21pc2MnIG5vdCBkZXNjcmliZWQgaW4gJ2hhbnRyb192cDlfZGVjX2h3X2N0eCcKPiBkcml2ZXJz L3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19ody5oOjIxMTogd2FybmluZzogRnVuY3Rpb24g cGFyYW1ldGVyIG9yIG1lbWJlciAnY250cycgbm90IGRlc2NyaWJlZCBpbiAnaGFudHJvX3ZwOV9k ZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjEx OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdwcm9iYWJpbGl0eV90YWJs ZXMnIG5vdCBkZXNjcmliZWQgaW4KPiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMv c3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBw YXJhbWV0ZXIgb3IgbWVtYmVyICdmcmFtZV9jb250ZXh0JyBub3QgZGVzY3JpYmVkIGluICdoYW50 cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9f aHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2N1cicgbm90 IGRlc2NyaWJlZCBpbiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdsYXN0JyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgn Cj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6 IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2JzZF9jdHJsX29mZnNldCcgbm90IGRlc2Ny aWJlZCBpbiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9o YW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVt YmVyICdzZWdtZW50X21hcF9zaXplJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19o d19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdh cm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2N0eF9jb3VudGVyc19vZmZzZXQn IG5vdCBkZXNjcmliZWQgaW4KPiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3Rh Z2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJh bWV0ZXIgb3IgbWVtYmVyICd0aWxlX2luZm9fb2Zmc2V0JyBub3QgZGVzY3JpYmVkIGluICdoYW50 cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9f aHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3RpbGVfcl9p bmZvJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9z dGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBh cmFtZXRlciBvciBtZW1iZXIgJ3RpbGVfY19pbmZvJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9f dnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcu aDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2xhc3RfdGlsZV9y JyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFn aW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoyMTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFt ZXRlciBvciBtZW1iZXIgJ2xhc3RfdGlsZV9jJyBub3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5 X2RlY19od19jdHgnCj4gZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaDoy MTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2xhc3Rfc2JzX3InIG5v dCBkZXNjcmliZWQgaW4gJ2hhbnRyb192cDlfZGVjX2h3X2N0eCcKPiBkcml2ZXJzL3N0YWdpbmcv bWVkaWEvaGFudHJvL2hhbnRyb19ody5oOjIxMTogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVy IG9yIG1lbWJlciAnbGFzdF9zYnNfYycgbm90IGRlc2NyaWJlZCBpbiAnaGFudHJvX3ZwOV9kZWNf aHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3 YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdhY3RpdmVfc2VnbWVudCcgbm90 IGRlc2NyaWJlZCBpbiAnaGFudHJvX3ZwOV9kZWNfaHdfY3R4Jwo+IGRyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaGFudHJvX2h3Lmg6MjExOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIg b3IgbWVtYmVyICdmZWF0dXJlX2VuYWJsZWQnIG5vdCBkZXNjcmliZWQgaW4gJ2hhbnRyb192cDlf ZGVjX2h3X2N0eCcKPiBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19ody5oOjIx MTogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnZmVhdHVyZV9kYXRhJyBu b3QgZGVzY3JpYmVkIGluICdoYW50cm9fdnA5X2RlY19od19jdHgnCj4gCj4gWW91IGNhbiB0ZXN0 IGtlcm5lbGRvYyB5b3Vyc2VsZiB3aXRoOiBzY3JpcHRzL2tlcm5lbC1kb2MgLW5vbmUgaW5jbHVk ZS9tZWRpYS92NGwyLXZwOS5oCj4gCj4gUmVnYXJkcywKPiAKPiAJSGFucwo+IAo+Pgo+PiBSZWdh cmRzLAo+Pgo+PiBBbmRyemVqCj4+Cj4+Cj4+Pgo+Pj4gUmVnYXJkcywKPj4+Cj4+PiAJSGFucwo+ Pj4KPj4+IE9uIDI5LzA5LzIwMjEgMTg6MDQsIEFuZHJ6ZWogUGlldHJhc2lld2ljeiB3cm90ZToK Pj4+PiBEZWFyIGFsbCwKPj4+Pgo+Pj4+IFRoaXMgcGF0Y2ggc2VyaWVzIGFkZHMgVlA5IGNvZGVj IFY0TDIgY29udHJvbCBpbnRlcmZhY2UgYW5kIHR3byBkcml2ZXJzCj4+Pj4gdXNpbmcgdGhlIG5l dyBjb250cm9scy4gSXQgaXMgYSBmb2xsb3ctdXAgb2YgcHJldmlvdXMgdjYgc2VyaWVzIFsxXS4K Pj4+Pgo+Pj4+IEluIHRoaXMgaXRlcmF0aW9uLCB3ZSd2ZSBpbXBsZW1lbnRlZCBWUDkgaGFyZHdh cmUgZGVjb2Rpbmcgb24gdHdvIGRldmljZXM6Cj4+Pj4gUm9ja2NoaXAgVkRFQyBhbmQgSGFudHJv IEcyLCBhbmQgdGVzdGVkIG9uIFJLMzM5OSwgaS5NWDhNUSBhbmQgaS5NWDhNUC4KPj4+PiBUaGUg aS5NWDhNIGRyaXZlciBuZWVkcyBwcm9wZXIgcG93ZXIgZG9tYWlucyBzdXBwb3J0LCB0aG91Z2gs IHdoaWNoIGlzIGEKPj4+PiBzdWJqZWN0IG9mIGEgZGlmZmVyZW50IGVmZm9ydCwgYnV0IGluIGFs bCAzIGNhc2VzIHdlIHdlcmUgYWJsZSB0byBydW4gdGhlCj4+Pj4gZHJpdmVycy4KPj4+Pgo+Pj4+ IEdTdHJlYW1lciBzdXBwb3J0IGlzIGFsc28gYXZhaWxhYmxlLCB0aGUgbmVlZGVkIGNoYW5nZXMg aGF2ZSBiZWVuIHN1Ym1pdHRlZAo+Pj4+IGJ5IERhbmllbCBBbG1laWRhIFsyXS4gVGhpcyBNUiBp cyByZWFkeSB0byBiZSBtZXJnZWQsIGFuZCBqdXN0IG5lZWRzIHRoZQo+Pj4+IFZQOSBWNEwyIGNv bnRyb2xzIHRvIGJlIG1lcmdlZCBhbmQgcmVsZWFzZWQuCj4+Pj4KPj4+PiBCb3RoIHJrdmRlYyBh bmQgaGFudHJvIGRyaXZlcnMgYXJlIHBhc3NpbmcgYSBzaWduaWZpY2FudCBudW1iZXIgb2YgVlA5 IHRlc3RzCj4+Pj4gdXNpbmcgRmx1c3RlclszXS4gVGhlcmUgYXJlIHN0aWxsIGEgZmV3IHRlc3Rz IHRoYXQgYXJlIG5vdCBwYXNzaW5nLCBkdWUgdG8KPj4+PiBkeW5hbWljIGZyYW1lIHJlc2l6ZSAo bm90IHlldCBzdXBwb3J0ZWQgYnkgVjRMMikgYW5kIHNtYWxsIHNpemUgdmlkZW9zCj4+Pj4gKGR1 ZSB0byBJUCBibG9jayBsaW1pdGF0aW9ucykuCj4+Pj4KPj4+PiBUaGUgc2VyaWVzIGFkZHMgdGhl IFZQOSBjb2RlYyBWNEwyIGNvbnRyb2wgQVBJIGFzIHVBUEksIHNvIGl0IGFpbXMgYXQgYmVpbmcK Pj4+PiBtZXJnZWQgd2l0aG91dCBwYXNzaW5nIHRocm91Z2ggc3RhZ2luZywgYXMgYWdyZWVkWzRd LiBUaGUgQUJJIGhhcyBiZWVuIGNoZWNrZWQKPj4+PiBmb3IgcGFkZGluZyBhbmQgdmVyaWZpZWQg dG8gY29udGFpbiBubyBob2xlcy4KPj4+Pgo+Pj4+IFsxXSBodHRwczovL3BhdGNod29yay5saW51 eHR2Lm9yZy9wcm9qZWN0L2xpbnV4LW1lZGlhL2xpc3QvP3Nlcmllcz02Mzc3Cj4+Pj4gWzJdIGh0 dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIvZ3N0LXBsdWdpbnMtYmFkLy0v bWVyZ2VfcmVxdWVzdHMvMjE0NAo+Pj4+IFszXSBodHRwczovL2dpdGh1Yi5jb20vZmx1ZW5kby9m bHVzdGVyCj4+Pj4gWzRdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LW1lZGlhL2I4Zjgz YzkzLTY3ZmQtMDlmNS05MzE0LTE1NzQ2Y2JmZGM2MUB4czRhbGwubmwvCj4+Pj4KPj4+PiBUaGUg c2VyaWVzIGRlcGVuZHMgb24gdGhlIFlVViB0aWxlZCBmb3JtYXQgc3VwcG9ydCBwcmVwYXJlZCBi eSBFemVxdWllbDoKPj4+PiBodHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9saW51eC1tZWRp YS9tc2cxOTcwNDcuaHRtbAo+Pj4+Cj4+Pj4gUmViYXNlZCBvbnRvIGxhdGVzdCBtZWRpYV90cmVl Lgo+Pj4+Cj4+Pj4gQ2hhbmdlcyByZWxhdGVkIHRvIHY2Ogo+Pj4+IC0gbW92ZWQgc2V0dGluZyB0 aWxlIGZpbHRlciBhbmQgdGlsZSBic2QgYXV4aWxpYXJ5IGJ1ZmZlciBhZGRyZXNzZXMgc28KPj4+ PiB0aGF0IHRoZXkgYXJlIGFsd2F5cyBzZXQsIGV2ZW4gaWYgbm8gdGlsZXMgYXJlIHVzZWQgKHRo YW5rcywgSmVybmVqKQo+Pj4+IC0gYWRkZWQgYSBjb21tZW50IG5lYXIgdGhlIHBsYWNlIHdoZXJl IHRoZSAzMi1iaXQgRE1BIG1hc2sgaXMgYXBwbGllZAo+Pj4+ICAgICAodGhhbmtzLCBOaWNvbGFz KQo+Pj4+IC0gaW1wcm92ZWQgY29uc2lzdGVuY3kgaW4gcmVnaXN0ZXIgbmFtZXMgKHRoYW5rcywg Tmljb2xhcykKPj4+Pgo+Pj4+IENoYW5nZXMgcmVsYXRlZCB0byB2NToKPj4+PiAtIGltcHJvdmVk IHRoZSBkb2MgY29tbWVudHMgYXMgcGVyIEV6ZXF1aWVsJ3MgcmV2aWV3ICh0aGFua3MsIEV6ZXF1 aWVsKQo+Pj4+IC0gaW1wcm92ZWQgcGRmIG91dHB1dCBvZiBkb2N1bWVudGF0aW9uCj4+Pj4gLSBh ZGRlZCBCZW5qYW1pbidzIFJldmlld2VkLWJ5ICh0aGFua3MsIEJlbmphbWluKQo+Pj4+Cj4+Pj4g Q2hhbmdlcyByZWxhdGVkIHRvIHY0Ogo+Pj4+IC0gcmVtb3ZlZCB1bnVzZWQgZW51bSB2NGwyX3Zw OV9pbnRyYV9wcmVkaWN0aW9uX21vZGUKPj4+PiAtIGNvbnZlcnRlZCByZW1haW5pbmcgZW51bXMg dG8gZGVmaW5lcyB0byBmb2xsb3cgdGhlIGNvbnZlbnRpb24KPj4+PiAtIGltcHJvdmVkIHRoZSBk b2N1bWVudGF0aW9uLCBpbiBwYXJ0aWN1bGFyIGJldHRlciBkb2N1bWVudGVkIGhvdyB0byB1c2Ug c2VnbWVudGF0aW9uCj4+Pj4gZmVhdHVyZXMKPj4+Pgo+Pj4+IENoYW5nZXMgcmVsYXRlZCB0byB2 MzoKPj4+Pgo+Pj4+IEFwcGx5IHN1Z2dlc3Rpb25zIGZyb20gSmVybmVqJ3MgcmV2aWV3ICh0aGFu a3MsIEplcm5laik6Cj4+Pj4gLSByZW5hbWVkIGEgY29udHJvbCBhbmQgdHdvIHN0cnVjdHM6Cj4+ Pj4gCVY0TDJfQ1RSTF9UWVBFX1ZQOV9DT01QUkVTU0VEX0hEUl9QUk9CUyA9Pgo+Pj4+IAkJVjRM Ml9DVFJMX1RZUEVfVlA5X0NPTVBSRVNTRURfSERSCj4+Pj4gCXY0bDJfY3RybF92cDlfY29tcHJl c3NlZF9oZHJfcHJvYnMgPT4KPj4+PiAJCXY0bDJfY3RybF92cDlfY29tcHJlc3NlZF9oZHIKPj4+ PiAJdjRsMl92cDlfbXZfY29tcHJlc3NlZF9oZHJfcHJvYnMgPT4gdjRsMl92cDlfbXZfcHJvYnMK Pj4+PiAtIG1vdmVkIHR4X21vZGUgdG8gdjRsMl9jdHJsX3ZwOV9jb21wcmVzc2VkX2hkcgo+Pj4+ IC0gZml4ZWQgZW51bSB2NGwyX3ZwOV9yZWZfZnJhbWVfc2lnbl9iaWFzIHZhbHVlcyAod2hpY2gg YXJlIHVzZWQgdG8gdGVzdCBhIGJpdGZpZWxkKQo+Pj4+IC0gZXhwbGljaXRseSBhc3NpZ25lZCB2 YWx1ZXMgdG8gYWxsIG90aGVyIHZwOSBlbnVtcwo+Pj4+Cj4+Pj4gQXBwbHkgc3VnZ2VzdGlvbiBm cm9tIE5pY29sYXMncyByZXZpZXcgKHRoYW5rcywgTmljb2xhcyk6Cj4+Pj4gLSBleHBsaWNpdGx5 IHN0YXRlZCB0aGF0IHRoZSB2NGwyX2N0cmxfdnA5X2NvbXByZXNzZWRfaGRyIGNvbnRyb2wgaXMg b3B0aW9uYWwKPj4+PiBhbmQgaW1wbGVtZW50ZWQgb25seSBieSBkcml2ZXJzIHdoaWNoIG5lZWQg aXQKPj4+Pgo+Pj4+IENoYW5nZXMgcmVsYXRlZCB0byB0aGUgUkZDIHYyOgo+Pj4+Cj4+Pj4gLSBh ZGRlZCBhbm90aGVyIGRyaXZlciBpbmNsdWRpbmcgYSBwb3N0cHJvY2Vzc29yIHRvIGRlLXRpbGUK Pj4+PiAgICAgICAgICAgY29kZWMtc3BlY2lmaWMgdGlsaW5nCj4+Pj4gLSByZXdvcmtlZCB1QVBJ IHN0cnVjdHMgbGF5b3V0IHRvIGZvbGxvdyBWUDggc3R5bGUKPj4+PiAtIGNoYW5nZWQgdmFsaWRh dGlvbiBvZiBsb29wIGZpbHRlciBwYXJhbXMKPj4+PiAtIGNoYW5nZWQgdmFsaWRhdGlvbiBvZiBz ZWdtZW50YXRpb24gcGFyYW1zCj4+Pj4gLSBjaGFuZ2VkIHZhbGlkYXRpb24gb2YgVlA5IGZyYW1l IHBhcmFtcwo+Pj4+IC0gcmVtb3ZlZCBsZXZlbCBsb29rdXAgYXJyYXkgZnJvbSBsb29wIGZpbHRl ciBzdHJ1Y3QKPj4+PiAgICAgICAgICAgKGNhbiBiZSBjb21wdXRlZCBieSBkcml2ZXJzKQo+Pj4+ IC0gcmVuYW1lZCBzb21lIGVudW0gdmFsdWVzIHRvIG1hdGNoIHRoZSBzcGVjIG1vcmUgY2xvc2Vs eQo+Pj4+IC0gVjRMMiBWUDkgbGlicmFyeSBjaGFuZ2VkIHRoZSAnZW9iJyBtZW1iZXIgb2YKPj4+ PiAgICAgICAgICAgJ3N0cnVjdCB2NGwyX3ZwOV9mcmFtZV9zeW1ib2xfY291bnRzJyBzbyB0aGF0 IGl0IGlzIGFuIGFycmF5Cj4+Pj4gICAgICAgICAgIG9mIHBvaW50ZXJzIGluc3RlYWQgb2YgYW4g YXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzCj4+Pj4gICAgICAgICAgIChJUHMgc3VjaCBhcyBn MiBjcmVhdGl2ZWx5IHBhc3MgcGFydHMgb2YgdGhlICdlb2InIGNvdW50cyBpbgo+Pj4+ICAgICAg ICAgICB0aGUgJ2NvZWZmJyBjb3VudHMpCj4+Pj4gLSBmYWN0b3JlZCBvdXQgc2V2ZXJhbCByZXBl YXRlZCBwb3J0aW9ucyBvZiBjb2RlCj4+Pj4gLSBtaW5vciBuaXRwaWNrcyBhbmQgY2xlYW51cHMK Pj4+Pgo+Pj4+IEFuZHJ6ZWogUGlldHJhc2lld2ljeiAoNik6Cj4+Pj4gICAgIG1lZGlhOiB1YXBp OiBBZGQgVlA5IHN0YXRlbGVzcyBkZWNvZGVyIGNvbnRyb2xzCj4+Pj4gICAgIG1lZGlhOiBBZGQg VlA5IHY0bDIgbGlicmFyeQo+Pj4+ICAgICBtZWRpYTogaGFudHJvOiBSZW5hbWUgcmVnaXN0ZXJz Cj4+Pj4gICAgIG1lZGlhOiBoYW50cm86IFByZXBhcmUgZm9yIG90aGVyIEcyIGNvZGVjcwo+Pj4+ ICAgICBtZWRpYTogaGFudHJvOiBTdXBwb3J0IFZQOSBvbiB0aGUgRzIgY29yZQo+Pj4+ICAgICBt ZWRpYTogaGFudHJvOiBTdXBwb3J0IE5WMTIgb24gdGhlIEcyIGNvcmUKPj4+Pgo+Pj4+IEJvcmlz IEJyZXppbGxvbiAoMSk6Cj4+Pj4gICAgIG1lZGlhOiBya3ZkZWM6IEFkZCB0aGUgVlA5IGJhY2tl bmQKPj4+Pgo+Pj4+IEV6ZXF1aWVsIEdhcmNpYSAoNCk6Cj4+Pj4gICAgIGhhbnRybzogcG9zdHBy b2M6IEZpeCBtb3Rpb24gdmVjdG9yIHNwYWNlIHNpemUKPj4+PiAgICAgaGFudHJvOiBwb3N0cHJv YzogSW50cm9kdWNlIHN0cnVjdCBoYW50cm9fcG9zdHByb2Nfb3BzCj4+Pj4gICAgIGhhbnRybzog U2ltcGxpZnkgcG9zdHByb2Nlc3Nvcgo+Pj4+ICAgICBoYW50cm86IEFkZCBxdWlyayBmb3IgTlYx Mi9OVjEyXzRMNCBjYXB0dXJlIGZvcm1hdAo+Pj4+Cj4+Pj4gICAgLi4uL3VzZXJzcGFjZS1hcGkv bWVkaWEvdjRsL2JpYmxpby5yc3QgICAgICAgIHwgICAxMCArCj4+Pj4gICAgLi4uL21lZGlhL3Y0 bC9leHQtY3RybHMtY29kZWMtc3RhdGVsZXNzLnJzdCAgIHwgIDU3MyArKysrKwo+Pj4+ICAgIC4u Li9tZWRpYS92NGwvcGl4Zm10LWNvbXByZXNzZWQucnN0ICAgICAgICAgICB8ICAgMTUgKwo+Pj4+ ICAgIC4uLi9tZWRpYS92NGwvdmlkaW9jLWctZXh0LWN0cmxzLnJzdCAgICAgICAgICB8ICAgIDgg Kwo+Pj4+ICAgIC4uLi9tZWRpYS92NGwvdmlkaW9jLXF1ZXJ5Y3RybC5yc3QgICAgICAgICAgICB8 ICAgMTIgKwo+Pj4+ICAgIC4uLi9tZWRpYS92aWRlb2RldjIuaC5yc3QuZXhjZXB0aW9ucyAgICAg ICAgICB8ICAgIDIgKwo+Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL0tjb25maWcgICAg ICAgICAgICAgICB8ICAgIDQgKwo+Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL01ha2Vm aWxlICAgICAgICAgICAgICB8ICAgIDEgKwo+Pj4+ICAgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3Jl L3Y0bDItY3RybHMtY29yZS5jICAgICB8ICAxODAgKysKPj4+PiAgICBkcml2ZXJzL21lZGlhL3Y0 bDItY29yZS92NGwyLWN0cmxzLWRlZnMuYyAgICAgfCAgICA4ICsKPj4+PiAgICBkcml2ZXJzL21l ZGlhL3Y0bDItY29yZS92NGwyLWlvY3RsLmMgICAgICAgICAgfCAgICAxICsKPj4+PiAgICBkcml2 ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLXZwOS5jICAgICAgICAgICAgfCAxODUwICsrKysrKysr KysrKysrKysrCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9LY29uZmlnICAg ICAgICAgIHwgICAgMSArCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9NYWtl ZmlsZSAgICAgICAgIHwgICAgNyArLQo+Pj4+ICAgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50 cm8vaGFudHJvLmggICAgICAgICB8ICAgNDAgKy0KPj4+PiAgICBkcml2ZXJzL3N0YWdpbmcvbWVk aWEvaGFudHJvL2hhbnRyb19kcnYuYyAgICAgfCAgIDIzICstCj4+Pj4gICAgZHJpdmVycy9zdGFn aW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzIuYyAgICAgIHwgICAyNyArCj4+Pj4gICAgLi4uL3N0 YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMl9oZXZjX2RlYy5jIHwgICA2OSArLQo+Pj4+ICAg IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cyX3JlZ3MuaCB8ICAxMzIgKy0K Pj4+PiAgICAuLi4vc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cyX3ZwOV9kZWMuYyAgfCAg OTgwICsrKysrKysrKwo+Pj4+ICAgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJv X2h3LmggICAgICB8ICAgODMgKy0KPj4+PiAgICAuLi4vc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX3Bvc3Rwcm9jLmMgICAgfCAgIDc5ICstCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5nL21lZGlh L2hhbnRyby9oYW50cm9fdjRsMi5jICAgIHwgICAyMCArCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5n L21lZGlhL2hhbnRyby9oYW50cm9fdnA5LmMgICAgIHwgIDI0MCArKysKPj4+PiAgICBkcml2ZXJz L3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb192cDkuaCAgICAgfCAgMTAzICsKPj4+PiAgICBk cml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9ody5jICAgfCAgIDM4ICstCj4+ Pj4gICAgLi4uL3N0YWdpbmcvbWVkaWEvaGFudHJvL3JvY2tjaGlwX3ZwdV9ody5jICAgIHwgICAg NyArLQo+Pj4+ICAgIC4uLi9zdGFnaW5nL21lZGlhL2hhbnRyby9zYW1hNWQ0X3ZkZWNfaHcuYyAg ICB8ICAgIDMgKy0KPj4+PiAgICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL0tjb25maWcg ICAgICAgICAgfCAgICAxICsKPj4+PiAgICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL01h a2VmaWxlICAgICAgICAgfCAgICAyICstCj4+Pj4gICAgZHJpdmVycy9zdGFnaW5nL21lZGlhL3Jr dmRlYy9ya3ZkZWMtdnA5LmMgICAgIHwgMTA3OCArKysrKysrKysrCj4+Pj4gICAgZHJpdmVycy9z dGFnaW5nL21lZGlhL3JrdmRlYy9ya3ZkZWMuYyAgICAgICAgIHwgICA1MiArLQo+Pj4+ICAgIGRy aXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLmggICAgICAgICB8ICAgMTIgKy0KPj4+ PiAgICBpbmNsdWRlL21lZGlhL3Y0bDItY3RybHMuaCAgICAgICAgICAgICAgICAgICAgfCAgICA0 ICsKPj4+PiAgICBpbmNsdWRlL21lZGlhL3Y0bDItdnA5LmggICAgICAgICAgICAgICAgICAgICAg fCAgMTgyICsrCj4+Pj4gICAgaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDItY29udHJvbHMuaCAgICAg ICAgICAgIHwgIDI4NCArKysKPj4+PiAgICBpbmNsdWRlL3VhcGkvbGludXgvdmlkZW9kZXYyLmgg ICAgICAgICAgICAgICAgfCAgICA2ICsKPj4+PiAgICAzNyBmaWxlcyBjaGFuZ2VkLCA2MDMzIGlu c2VydGlvbnMoKyksIDEwNCBkZWxldGlvbnMoLSkKPj4+PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi12cDkuYwo+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMi5jCj4+Pj4gICAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cyX3Zw OV9kZWMuYwo+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3N0YWdpbmcvbWVkaWEv aGFudHJvL2hhbnRyb192cDkuYwo+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3N0 YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb192cDkuaAo+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3JrdmRlYy12cDkuYwo+Pj4+ICAgIGNyZWF0 ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL21lZGlhL3Y0bDItdnA5LmgKPj4+Pgo+Pj4+Cj4+Pj4gYmFz ZS1jb21taXQ6IGU0ZTczN2JiNWMxNzBkZjYxMzVhMTI3NzM5YTllNjE0OGVlM2RhODIKPj4+Pgo+ Pj4KPj4KPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==