From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from lb1-smtp-cloud9.xs4all.net ([194.109.24.22]:35795 "EHLO lb1-smtp-cloud9.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726992AbeIMQ4q (ORCPT ); Thu, 13 Sep 2018 12:56:46 -0400 From: Hans Verkuil To: linux-media@vger.kernel.org Cc: dri-devel@lists.freedesktop.org, Hans Verkuil Subject: [PATCH 1/5] media: replace ADOBERGB by OPRGB Date: Thu, 13 Sep 2018 13:47:27 +0200 Message-Id: <20180913114731.16500-2-hverkuil@xs4all.nl> In-Reply-To: <20180913114731.16500-1-hverkuil@xs4all.nl> References: <20180913114731.16500-1-hverkuil@xs4all.nl> Sender: linux-media-owner@vger.kernel.org List-ID: From: Hans Verkuil The CTA-861 standards have been updated to refer to opRGB instead of AdobeRGB. The official standard is in fact named opRGB, so switch to that. The two old defines referring to ADOBERGB in the public API are put under #ifndef __KERNEL__ and a comment mentions that they are deprecated. Signed-off-by: Hans Verkuil --- .../media/videodev2.h.rst.exceptions | 2 + .../media/common/v4l2-tpg/v4l2-tpg-colors.c | 262 +++++++++--------- drivers/media/i2c/adv7511.c | 2 +- drivers/media/i2c/adv7604.c | 2 +- drivers/media/i2c/tc358743.c | 4 +- drivers/media/platform/vivid/vivid-core.h | 2 +- drivers/media/platform/vivid/vivid-ctrls.c | 6 +- drivers/media/platform/vivid/vivid-vid-out.c | 2 +- drivers/media/v4l2-core/v4l2-dv-timings.c | 8 +- include/uapi/linux/videodev2.h | 16 +- 10 files changed, 158 insertions(+), 148 deletions(-) diff --git a/Documentation/media/videodev2.h.rst.exceptions b/Documentation/media/videodev2.h.rst.exceptions index 63fa131729c0..fe6830584514 100644 --- a/Documentation/media/videodev2.h.rst.exceptions +++ b/Documentation/media/videodev2.h.rst.exceptions @@ -56,6 +56,7 @@ replace symbol V4L2_MEMORY_USERPTR :c:type:`v4l2_memory` # Documented enum v4l2_colorspace replace symbol V4L2_COLORSPACE_470_SYSTEM_BG :c:type:`v4l2_colorspace` replace symbol V4L2_COLORSPACE_470_SYSTEM_M :c:type:`v4l2_colorspace` +replace symbol V4L2_COLORSPACE_OPRGB :c:type:`v4l2_colorspace` replace symbol V4L2_COLORSPACE_ADOBERGB :c:type:`v4l2_colorspace` replace symbol V4L2_COLORSPACE_BT2020 :c:type:`v4l2_colorspace` replace symbol V4L2_COLORSPACE_DCI_P3 :c:type:`v4l2_colorspace` @@ -69,6 +70,7 @@ replace symbol V4L2_COLORSPACE_SRGB :c:type:`v4l2_colorspace` # Documented enum v4l2_xfer_func replace symbol V4L2_XFER_FUNC_709 :c:type:`v4l2_xfer_func` +replace symbol V4L2_XFER_FUNC_OPRGB :c:type:`v4l2_xfer_func` replace symbol V4L2_XFER_FUNC_ADOBERGB :c:type:`v4l2_xfer_func` replace symbol V4L2_XFER_FUNC_DCI_P3 :c:type:`v4l2_xfer_func` replace symbol V4L2_XFER_FUNC_DEFAULT :c:type:`v4l2_xfer_func` diff --git a/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c b/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c index 3a3dc23c560c..a4341205c197 100644 --- a/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c +++ b/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c @@ -602,14 +602,14 @@ const struct tpg_rbg_color16 tpg_csc_colors[V4L2_COLORSPACE_DCI_P3 + 1][V4L2_XFE [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_SRGB][5] = { 3138, 657, 810 }, [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_SRGB][6] = { 731, 680, 3048 }, [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_SRGB][7] = { 800, 799, 800 }, - [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_ADOBERGB][0] = { 3033, 3033, 3033 }, - [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_ADOBERGB][1] = { 3046, 3054, 886 }, - [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_ADOBERGB][2] = { 0, 3058, 3031 }, - [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_ADOBERGB][3] = { 360, 3079, 877 }, - [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_ADOBERGB][4] = { 3103, 587, 3027 }, - [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_ADOBERGB][5] = { 3116, 723, 861 }, - [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_ADOBERGB][6] = { 789, 744, 3025 }, - [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_ADOBERGB][7] = { 851, 851, 851 }, + [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_OPRGB][0] = { 3033, 3033, 3033 }, + [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_OPRGB][1] = { 3046, 3054, 886 }, + [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_OPRGB][2] = { 0, 3058, 3031 }, + [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_OPRGB][3] = { 360, 3079, 877 }, + [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_OPRGB][4] = { 3103, 587, 3027 }, + [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_OPRGB][5] = { 3116, 723, 861 }, + [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_OPRGB][6] = { 789, 744, 3025 }, + [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_OPRGB][7] = { 851, 851, 851 }, [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_SMPTE240M][1] = { 2941, 2950, 546 }, [V4L2_COLORSPACE_SMPTE170M][V4L2_XFER_FUNC_SMPTE240M][2] = { 0, 2954, 2924 }, @@ -658,14 +658,14 @@ const struct tpg_rbg_color16 tpg_csc_colors[V4L2_COLORSPACE_DCI_P3 + 1][V4L2_XFE [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_SRGB][5] = { 3138, 657, 810 }, [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_SRGB][6] = { 731, 680, 3048 }, [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_SRGB][7] = { 800, 799, 800 }, - [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_ADOBERGB][0] = { 3033, 3033, 3033 }, - [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_ADOBERGB][1] = { 3046, 3054, 886 }, - [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_ADOBERGB][2] = { 0, 3058, 3031 }, - [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_ADOBERGB][3] = { 360, 3079, 877 }, - [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_ADOBERGB][4] = { 3103, 587, 3027 }, - [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_ADOBERGB][5] = { 3116, 723, 861 }, - [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_ADOBERGB][6] = { 789, 744, 3025 }, - [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_ADOBERGB][7] = { 851, 851, 851 }, + [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_OPRGB][0] = { 3033, 3033, 3033 }, + [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_OPRGB][1] = { 3046, 3054, 886 }, + [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_OPRGB][2] = { 0, 3058, 3031 }, + [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_OPRGB][3] = { 360, 3079, 877 }, + [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_OPRGB][4] = { 3103, 587, 3027 }, + [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_OPRGB][5] = { 3116, 723, 861 }, + [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_OPRGB][6] = { 789, 744, 3025 }, + [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_OPRGB][7] = { 851, 851, 851 }, [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_SMPTE240M][1] = { 2941, 2950, 546 }, [V4L2_COLORSPACE_SMPTE240M][V4L2_XFER_FUNC_SMPTE240M][2] = { 0, 2954, 2924 }, @@ -714,14 +714,14 @@ const struct tpg_rbg_color16 tpg_csc_colors[V4L2_COLORSPACE_DCI_P3 + 1][V4L2_XFE [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_SRGB][5] = { 3056, 800, 800 }, [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_SRGB][6] = { 800, 800, 3056 }, [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_SRGB][7] = { 800, 800, 800 }, - [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_ADOBERGB][0] = { 3033, 3033, 3033 }, - [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_ADOBERGB][1] = { 3033, 3033, 851 }, - [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_ADOBERGB][2] = { 851, 3033, 3033 }, - [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_ADOBERGB][3] = { 851, 3033, 851 }, - [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_ADOBERGB][4] = { 3033, 851, 3033 }, - [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_ADOBERGB][5] = { 3033, 851, 851 }, - [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_ADOBERGB][6] = { 851, 851, 3033 }, - [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_ADOBERGB][7] = { 851, 851, 851 }, + [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_OPRGB][0] = { 3033, 3033, 3033 }, + [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_OPRGB][1] = { 3033, 3033, 851 }, + [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_OPRGB][2] = { 851, 3033, 3033 }, + [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_OPRGB][3] = { 851, 3033, 851 }, + [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_OPRGB][4] = { 3033, 851, 3033 }, + [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_OPRGB][5] = { 3033, 851, 851 }, + [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_OPRGB][6] = { 851, 851, 3033 }, + [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_OPRGB][7] = { 851, 851, 851 }, [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_SMPTE240M][1] = { 2926, 2926, 507 }, [V4L2_COLORSPACE_REC709][V4L2_XFER_FUNC_SMPTE240M][2] = { 507, 2926, 2926 }, @@ -770,14 +770,14 @@ const struct tpg_rbg_color16 tpg_csc_colors[V4L2_COLORSPACE_DCI_P3 + 1][V4L2_XFE [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_SRGB][5] = { 2599, 901, 909 }, [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_SRGB][6] = { 991, 0, 2966 }, [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_SRGB][7] = { 800, 799, 800 }, - [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_ADOBERGB][0] = { 3033, 3033, 3033 }, - [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_ADOBERGB][1] = { 2989, 3120, 1180 }, - [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_ADOBERGB][2] = { 1913, 3011, 3009 }, - [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_ADOBERGB][3] = { 1836, 3099, 1105 }, - [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_ADOBERGB][4] = { 2627, 413, 2966 }, - [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_ADOBERGB][5] = { 2576, 943, 951 }, - [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_ADOBERGB][6] = { 1026, 0, 2942 }, - [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_ADOBERGB][7] = { 851, 851, 851 }, + [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_OPRGB][0] = { 3033, 3033, 3033 }, + [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_OPRGB][1] = { 2989, 3120, 1180 }, + [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_OPRGB][2] = { 1913, 3011, 3009 }, + [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_OPRGB][3] = { 1836, 3099, 1105 }, + [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_OPRGB][4] = { 2627, 413, 2966 }, + [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_OPRGB][5] = { 2576, 943, 951 }, + [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_OPRGB][6] = { 1026, 0, 2942 }, + [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_OPRGB][7] = { 851, 851, 851 }, [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_SMPTE240M][1] = { 2879, 3022, 874 }, [V4L2_COLORSPACE_470_SYSTEM_M][V4L2_XFER_FUNC_SMPTE240M][2] = { 1688, 2903, 2901 }, @@ -826,14 +826,14 @@ const struct tpg_rbg_color16 tpg_csc_colors[V4L2_COLORSPACE_DCI_P3 + 1][V4L2_XFE [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_SRGB][5] = { 3001, 800, 799 }, [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_SRGB][6] = { 800, 800, 3071 }, [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_SRGB][7] = { 800, 800, 799 }, - [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_ADOBERGB][0] = { 3033, 3033, 3033 }, - [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_ADOBERGB][1] = { 3033, 3033, 776 }, - [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_ADOBERGB][2] = { 1068, 3033, 3033 }, - [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_ADOBERGB][3] = { 1068, 3033, 776 }, - [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_ADOBERGB][4] = { 2977, 851, 3048 }, - [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_ADOBERGB][5] = { 2977, 851, 851 }, - [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_ADOBERGB][6] = { 851, 851, 3048 }, - [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_ADOBERGB][7] = { 851, 851, 851 }, + [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_OPRGB][0] = { 3033, 3033, 3033 }, + [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_OPRGB][1] = { 3033, 3033, 776 }, + [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_OPRGB][2] = { 1068, 3033, 3033 }, + [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_OPRGB][3] = { 1068, 3033, 776 }, + [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_OPRGB][4] = { 2977, 851, 3048 }, + [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_OPRGB][5] = { 2977, 851, 851 }, + [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_OPRGB][6] = { 851, 851, 3048 }, + [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_OPRGB][7] = { 851, 851, 851 }, [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_SMPTE240M][1] = { 2926, 2926, 423 }, [V4L2_COLORSPACE_470_SYSTEM_BG][V4L2_XFER_FUNC_SMPTE240M][2] = { 749, 2926, 2926 }, @@ -882,14 +882,14 @@ const struct tpg_rbg_color16 tpg_csc_colors[V4L2_COLORSPACE_DCI_P3 + 1][V4L2_XFE [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_SRGB][5] = { 3056, 800, 800 }, [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_SRGB][6] = { 800, 800, 3056 }, [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_SRGB][7] = { 800, 800, 800 }, - [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_ADOBERGB][0] = { 3033, 3033, 3033 }, - [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_ADOBERGB][1] = { 3033, 3033, 851 }, - [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_ADOBERGB][2] = { 851, 3033, 3033 }, - [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_ADOBERGB][3] = { 851, 3033, 851 }, - [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_ADOBERGB][4] = { 3033, 851, 3033 }, - [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_ADOBERGB][5] = { 3033, 851, 851 }, - [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_ADOBERGB][6] = { 851, 851, 3033 }, - [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_ADOBERGB][7] = { 851, 851, 851 }, + [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_OPRGB][0] = { 3033, 3033, 3033 }, + [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_OPRGB][1] = { 3033, 3033, 851 }, + [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_OPRGB][2] = { 851, 3033, 3033 }, + [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_OPRGB][3] = { 851, 3033, 851 }, + [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_OPRGB][4] = { 3033, 851, 3033 }, + [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_OPRGB][5] = { 3033, 851, 851 }, + [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_OPRGB][6] = { 851, 851, 3033 }, + [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_OPRGB][7] = { 851, 851, 851 }, [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_SMPTE240M][1] = { 2926, 2926, 507 }, [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_SMPTE240M][2] = { 507, 2926, 2926 }, @@ -922,62 +922,62 @@ const struct tpg_rbg_color16 tpg_csc_colors[V4L2_COLORSPACE_DCI_P3 + 1][V4L2_XFE [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_SMPTE2084][5] = { 1812, 886, 886 }, [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_SMPTE2084][6] = { 886, 886, 1812 }, [V4L2_COLORSPACE_SRGB][V4L2_XFER_FUNC_SMPTE2084][7] = { 886, 886, 886 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_709][0] = { 2939, 2939, 2939 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_709][1] = { 2939, 2939, 781 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_709][2] = { 1622, 2939, 2939 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_709][3] = { 1622, 2939, 781 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_709][4] = { 2502, 547, 2881 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_709][5] = { 2502, 547, 547 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_709][6] = { 547, 547, 2881 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_709][7] = { 547, 547, 547 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SRGB][0] = { 3056, 3056, 3056 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SRGB][1] = { 3056, 3056, 1031 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SRGB][2] = { 1838, 3056, 3056 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SRGB][3] = { 1838, 3056, 1031 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SRGB][4] = { 2657, 800, 3002 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SRGB][5] = { 2657, 800, 800 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SRGB][6] = { 800, 800, 3002 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SRGB][7] = { 800, 800, 800 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_ADOBERGB][0] = { 3033, 3033, 3033 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_ADOBERGB][1] = { 3033, 3033, 1063 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_ADOBERGB][2] = { 1828, 3033, 3033 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_ADOBERGB][3] = { 1828, 3033, 1063 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_ADOBERGB][4] = { 2633, 851, 2979 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_ADOBERGB][5] = { 2633, 851, 851 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_ADOBERGB][6] = { 851, 851, 2979 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_ADOBERGB][7] = { 851, 851, 851 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE240M][1] = { 2926, 2926, 744 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE240M][2] = { 1594, 2926, 2926 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE240M][3] = { 1594, 2926, 744 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE240M][4] = { 2484, 507, 2867 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE240M][5] = { 2484, 507, 507 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE240M][6] = { 507, 507, 2867 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE240M][7] = { 507, 507, 507 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_NONE][0] = { 2125, 2125, 2125 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_NONE][1] = { 2125, 2125, 212 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_NONE][2] = { 698, 2125, 2125 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_NONE][3] = { 698, 2125, 212 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_NONE][4] = { 1557, 130, 2043 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_NONE][5] = { 1557, 130, 130 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_NONE][6] = { 130, 130, 2043 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_NONE][7] = { 130, 130, 130 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_DCI_P3][0] = { 3175, 3175, 3175 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_DCI_P3][1] = { 3175, 3175, 1308 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_DCI_P3][2] = { 2069, 3175, 3175 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_DCI_P3][3] = { 2069, 3175, 1308 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_DCI_P3][4] = { 2816, 1084, 3127 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_DCI_P3][5] = { 2816, 1084, 1084 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_DCI_P3][6] = { 1084, 1084, 3127 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_DCI_P3][7] = { 1084, 1084, 1084 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE2084][0] = { 1812, 1812, 1812 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE2084][1] = { 1812, 1812, 1022 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE2084][2] = { 1402, 1812, 1812 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE2084][3] = { 1402, 1812, 1022 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE2084][4] = { 1692, 886, 1797 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE2084][5] = { 1692, 886, 886 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE2084][6] = { 886, 886, 1797 }, - [V4L2_COLORSPACE_ADOBERGB][V4L2_XFER_FUNC_SMPTE2084][7] = { 886, 886, 886 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_709][0] = { 2939, 2939, 2939 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_709][1] = { 2939, 2939, 781 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_709][2] = { 1622, 2939, 2939 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_709][3] = { 1622, 2939, 781 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_709][4] = { 2502, 547, 2881 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_709][5] = { 2502, 547, 547 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_709][6] = { 547, 547, 2881 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_709][7] = { 547, 547, 547 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SRGB][0] = { 3056, 3056, 3056 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SRGB][1] = { 3056, 3056, 1031 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SRGB][2] = { 1838, 3056, 3056 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SRGB][3] = { 1838, 3056, 1031 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SRGB][4] = { 2657, 800, 3002 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SRGB][5] = { 2657, 800, 800 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SRGB][6] = { 800, 800, 3002 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SRGB][7] = { 800, 800, 800 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_OPRGB][0] = { 3033, 3033, 3033 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_OPRGB][1] = { 3033, 3033, 1063 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_OPRGB][2] = { 1828, 3033, 3033 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_OPRGB][3] = { 1828, 3033, 1063 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_OPRGB][4] = { 2633, 851, 2979 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_OPRGB][5] = { 2633, 851, 851 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_OPRGB][6] = { 851, 851, 2979 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_OPRGB][7] = { 851, 851, 851 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE240M][1] = { 2926, 2926, 744 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE240M][2] = { 1594, 2926, 2926 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE240M][3] = { 1594, 2926, 744 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE240M][4] = { 2484, 507, 2867 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE240M][5] = { 2484, 507, 507 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE240M][6] = { 507, 507, 2867 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE240M][7] = { 507, 507, 507 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_NONE][0] = { 2125, 2125, 2125 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_NONE][1] = { 2125, 2125, 212 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_NONE][2] = { 698, 2125, 2125 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_NONE][3] = { 698, 2125, 212 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_NONE][4] = { 1557, 130, 2043 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_NONE][5] = { 1557, 130, 130 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_NONE][6] = { 130, 130, 2043 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_NONE][7] = { 130, 130, 130 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_DCI_P3][0] = { 3175, 3175, 3175 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_DCI_P3][1] = { 3175, 3175, 1308 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_DCI_P3][2] = { 2069, 3175, 3175 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_DCI_P3][3] = { 2069, 3175, 1308 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_DCI_P3][4] = { 2816, 1084, 3127 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_DCI_P3][5] = { 2816, 1084, 1084 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_DCI_P3][6] = { 1084, 1084, 3127 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_DCI_P3][7] = { 1084, 1084, 1084 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE2084][0] = { 1812, 1812, 1812 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE2084][1] = { 1812, 1812, 1022 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE2084][2] = { 1402, 1812, 1812 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE2084][3] = { 1402, 1812, 1022 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE2084][4] = { 1692, 886, 1797 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE2084][5] = { 1692, 886, 886 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE2084][6] = { 886, 886, 1797 }, + [V4L2_COLORSPACE_OPRGB][V4L2_XFER_FUNC_SMPTE2084][7] = { 886, 886, 886 }, [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_709][0] = { 2939, 2939, 2939 }, [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_709][1] = { 2877, 2923, 1058 }, [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_709][2] = { 1837, 2840, 2916 }, @@ -994,14 +994,14 @@ const struct tpg_rbg_color16 tpg_csc_colors[V4L2_COLORSPACE_DCI_P3 + 1][V4L2_XFE [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_SRGB][5] = { 2517, 1159, 900 }, [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_SRGB][6] = { 1042, 870, 2917 }, [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_SRGB][7] = { 800, 800, 800 }, - [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_ADOBERGB][0] = { 3033, 3033, 3033 }, - [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_ADOBERGB][1] = { 2976, 3018, 1315 }, - [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_ADOBERGB][2] = { 2024, 2942, 3011 }, - [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_ADOBERGB][3] = { 1930, 2926, 1256 }, - [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_ADOBERGB][4] = { 2563, 1227, 2916 }, - [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_ADOBERGB][5] = { 2494, 1183, 943 }, - [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_ADOBERGB][6] = { 1073, 916, 2894 }, - [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_ADOBERGB][7] = { 851, 851, 851 }, + [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_OPRGB][0] = { 3033, 3033, 3033 }, + [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_OPRGB][1] = { 2976, 3018, 1315 }, + [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_OPRGB][2] = { 2024, 2942, 3011 }, + [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_OPRGB][3] = { 1930, 2926, 1256 }, + [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_OPRGB][4] = { 2563, 1227, 2916 }, + [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_OPRGB][5] = { 2494, 1183, 943 }, + [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_OPRGB][6] = { 1073, 916, 2894 }, + [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_OPRGB][7] = { 851, 851, 851 }, [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_SMPTE240M][1] = { 2864, 2910, 1024 }, [V4L2_COLORSPACE_BT2020][V4L2_XFER_FUNC_SMPTE240M][2] = { 1811, 2826, 2903 }, @@ -1050,14 +1050,14 @@ const struct tpg_rbg_color16 tpg_csc_colors[V4L2_COLORSPACE_DCI_P3 + 1][V4L2_XFE [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_SRGB][5] = { 2880, 998, 902 }, [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_SRGB][6] = { 816, 823, 2940 }, [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_SRGB][7] = { 800, 800, 799 }, - [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_ADOBERGB][0] = { 3033, 3033, 3033 }, - [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_ADOBERGB][1] = { 3029, 3028, 1255 }, - [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_ADOBERGB][2] = { 1406, 2988, 3011 }, - [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_ADOBERGB][3] = { 1398, 2983, 1190 }, - [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_ADOBERGB][4] = { 2860, 1050, 2939 }, - [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_ADOBERGB][5] = { 2857, 1033, 945 }, - [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_ADOBERGB][6] = { 866, 873, 2916 }, - [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_ADOBERGB][7] = { 851, 851, 851 }, + [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_OPRGB][0] = { 3033, 3033, 3033 }, + [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_OPRGB][1] = { 3029, 3028, 1255 }, + [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_OPRGB][2] = { 1406, 2988, 3011 }, + [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_OPRGB][3] = { 1398, 2983, 1190 }, + [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_OPRGB][4] = { 2860, 1050, 2939 }, + [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_OPRGB][5] = { 2857, 1033, 945 }, + [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_OPRGB][6] = { 866, 873, 2916 }, + [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_OPRGB][7] = { 851, 851, 851 }, [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_SMPTE240M][0] = { 2926, 2926, 2926 }, [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_SMPTE240M][1] = { 2923, 2921, 957 }, [V4L2_COLORSPACE_DCI_P3][V4L2_XFER_FUNC_SMPTE240M][2] = { 1125, 2877, 2902 }, @@ -1128,7 +1128,7 @@ static const double rec709_to_240m[3][3] = { { 0.0016327, 0.0044133, 0.9939540 }, }; -static const double rec709_to_adobergb[3][3] = { +static const double rec709_to_oprgb[3][3] = { { 0.7151627, 0.2848373, -0.0000000 }, { 0.0000000, 1.0000000, 0.0000000 }, { -0.0000000, 0.0411705, 0.9588295 }, @@ -1195,7 +1195,7 @@ static double transfer_rec709_to_rgb(double v) return (v < 0.081) ? v / 4.5 : pow((v + 0.099) / 1.099, 1.0 / 0.45); } -static double transfer_rgb_to_adobergb(double v) +static double transfer_rgb_to_oprgb(double v) { return pow(v, 1.0 / 2.19921875); } @@ -1251,8 +1251,8 @@ static void csc(enum v4l2_colorspace colorspace, enum v4l2_xfer_func xfer_func, case V4L2_COLORSPACE_470_SYSTEM_M: mult_matrix(r, g, b, rec709_to_ntsc1953); break; - case V4L2_COLORSPACE_ADOBERGB: - mult_matrix(r, g, b, rec709_to_adobergb); + case V4L2_COLORSPACE_OPRGB: + mult_matrix(r, g, b, rec709_to_oprgb); break; case V4L2_COLORSPACE_BT2020: mult_matrix(r, g, b, rec709_to_bt2020); @@ -1284,10 +1284,10 @@ static void csc(enum v4l2_colorspace colorspace, enum v4l2_xfer_func xfer_func, *g = transfer_rgb_to_srgb(*g); *b = transfer_rgb_to_srgb(*b); break; - case V4L2_XFER_FUNC_ADOBERGB: - *r = transfer_rgb_to_adobergb(*r); - *g = transfer_rgb_to_adobergb(*g); - *b = transfer_rgb_to_adobergb(*b); + case V4L2_XFER_FUNC_OPRGB: + *r = transfer_rgb_to_oprgb(*r); + *g = transfer_rgb_to_oprgb(*g); + *b = transfer_rgb_to_oprgb(*b); break; case V4L2_XFER_FUNC_DCI_P3: *r = transfer_rgb_to_dcip3(*r); @@ -1321,7 +1321,7 @@ int main(int argc, char **argv) V4L2_COLORSPACE_470_SYSTEM_BG, 0, V4L2_COLORSPACE_SRGB, - V4L2_COLORSPACE_ADOBERGB, + V4L2_COLORSPACE_OPRGB, V4L2_COLORSPACE_BT2020, 0, V4L2_COLORSPACE_DCI_P3, @@ -1336,7 +1336,7 @@ int main(int argc, char **argv) "V4L2_COLORSPACE_470_SYSTEM_BG", "", "V4L2_COLORSPACE_SRGB", - "V4L2_COLORSPACE_ADOBERGB", + "V4L2_COLORSPACE_OPRGB", "V4L2_COLORSPACE_BT2020", "", "V4L2_COLORSPACE_DCI_P3", @@ -1345,7 +1345,7 @@ int main(int argc, char **argv) "", "V4L2_XFER_FUNC_709", "V4L2_XFER_FUNC_SRGB", - "V4L2_XFER_FUNC_ADOBERGB", + "V4L2_XFER_FUNC_OPRGB", "V4L2_XFER_FUNC_SMPTE240M", "V4L2_XFER_FUNC_NONE", "V4L2_XFER_FUNC_DCI_P3", diff --git a/drivers/media/i2c/adv7511.c b/drivers/media/i2c/adv7511.c index 55c2ea0720d9..a1f73d998495 100644 --- a/drivers/media/i2c/adv7511.c +++ b/drivers/media/i2c/adv7511.c @@ -1355,7 +1355,7 @@ static int adv7511_set_fmt(struct v4l2_subdev *sd, state->xfer_func = format->format.xfer_func; switch (format->format.colorspace) { - case V4L2_COLORSPACE_ADOBERGB: + case V4L2_COLORSPACE_OPRGB: c = HDMI_COLORIMETRY_EXTENDED; ec = y ? HDMI_EXTENDED_COLORIMETRY_ADOBE_YCC_601 : HDMI_EXTENDED_COLORIMETRY_ADOBE_RGB; diff --git a/drivers/media/i2c/adv7604.c b/drivers/media/i2c/adv7604.c index 668be2bca57a..64e7d7b37af4 100644 --- a/drivers/media/i2c/adv7604.c +++ b/drivers/media/i2c/adv7604.c @@ -2474,7 +2474,7 @@ static int adv76xx_log_status(struct v4l2_subdev *sd) "YCbCr Bt.601 (16-235)", "YCbCr Bt.709 (16-235)", "xvYCC Bt.601", "xvYCC Bt.709", "YCbCr Bt.601 (0-255)", "YCbCr Bt.709 (0-255)", - "sYCC", "Adobe YCC 601", "AdobeRGB", "invalid", "invalid", + "sYCC", "opYCC 601", "opRGB", "invalid", "invalid", "invalid", "invalid", "invalid" }; static const char * const rgb_quantization_range_txt[] = { diff --git a/drivers/media/i2c/tc358743.c b/drivers/media/i2c/tc358743.c index 44c41933415a..ff25ea9aca48 100644 --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c @@ -1243,9 +1243,9 @@ static int tc358743_log_status(struct v4l2_subdev *sd) u8 vi_status3 = i2c_rd8(sd, VI_STATUS3); const int deep_color_mode[4] = { 8, 10, 12, 16 }; static const char * const input_color_space[] = { - "RGB", "YCbCr 601", "Adobe RGB", "YCbCr 709", "NA (4)", + "RGB", "YCbCr 601", "opRGB", "YCbCr 709", "NA (4)", "xvYCC 601", "NA(6)", "xvYCC 709", "NA(8)", "sYCC601", - "NA(10)", "NA(11)", "NA(12)", "Adobe YCC 601"}; + "NA(10)", "NA(11)", "NA(12)", "opYCC 601"}; v4l2_info(sd, "-----Chip status-----\n"); v4l2_info(sd, "Chip ID: 0x%02x\n", diff --git a/drivers/media/platform/vivid/vivid-core.h b/drivers/media/platform/vivid/vivid-core.h index 477c80a4d44c..cd4c8230563c 100644 --- a/drivers/media/platform/vivid/vivid-core.h +++ b/drivers/media/platform/vivid/vivid-core.h @@ -111,7 +111,7 @@ enum vivid_colorspace { VIVID_CS_170M, VIVID_CS_709, VIVID_CS_SRGB, - VIVID_CS_ADOBERGB, + VIVID_CS_OPRGB, VIVID_CS_2020, VIVID_CS_DCI_P3, VIVID_CS_240M, diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c index 5429193fbb91..999aa101b150 100644 --- a/drivers/media/platform/vivid/vivid-ctrls.c +++ b/drivers/media/platform/vivid/vivid-ctrls.c @@ -348,7 +348,7 @@ static int vivid_vid_cap_s_ctrl(struct v4l2_ctrl *ctrl) V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_REC709, V4L2_COLORSPACE_SRGB, - V4L2_COLORSPACE_ADOBERGB, + V4L2_COLORSPACE_OPRGB, V4L2_COLORSPACE_BT2020, V4L2_COLORSPACE_DCI_P3, V4L2_COLORSPACE_SMPTE240M, @@ -729,7 +729,7 @@ static const char * const vivid_ctrl_colorspace_strings[] = { "SMPTE 170M", "Rec. 709", "sRGB", - "AdobeRGB", + "opRGB", "BT.2020", "DCI-P3", "SMPTE 240M", @@ -752,7 +752,7 @@ static const char * const vivid_ctrl_xfer_func_strings[] = { "Default", "Rec. 709", "sRGB", - "AdobeRGB", + "opRGB", "SMPTE 240M", "None", "DCI-P3", diff --git a/drivers/media/platform/vivid/vivid-vid-out.c b/drivers/media/platform/vivid/vivid-vid-out.c index 51fec66d8d45..50248e2176a0 100644 --- a/drivers/media/platform/vivid/vivid-vid-out.c +++ b/drivers/media/platform/vivid/vivid-vid-out.c @@ -413,7 +413,7 @@ int vivid_try_fmt_vid_out(struct file *file, void *priv, mp->colorspace = V4L2_COLORSPACE_SMPTE170M; } else if (mp->colorspace != V4L2_COLORSPACE_SMPTE170M && mp->colorspace != V4L2_COLORSPACE_REC709 && - mp->colorspace != V4L2_COLORSPACE_ADOBERGB && + mp->colorspace != V4L2_COLORSPACE_OPRGB && mp->colorspace != V4L2_COLORSPACE_BT2020 && mp->colorspace != V4L2_COLORSPACE_SRGB) { mp->colorspace = V4L2_COLORSPACE_REC709; diff --git a/drivers/media/v4l2-core/v4l2-dv-timings.c b/drivers/media/v4l2-core/v4l2-dv-timings.c index 8f52353b0881..facd180870d9 100644 --- a/drivers/media/v4l2-core/v4l2-dv-timings.c +++ b/drivers/media/v4l2-core/v4l2-dv-timings.c @@ -877,8 +877,8 @@ v4l2_hdmi_rx_colorimetry(const struct hdmi_avi_infoframe *avi, case HDMI_COLORIMETRY_EXTENDED: switch (avi->extended_colorimetry) { case HDMI_EXTENDED_COLORIMETRY_ADOBE_RGB: - c.colorspace = V4L2_COLORSPACE_ADOBERGB; - c.xfer_func = V4L2_XFER_FUNC_ADOBERGB; + c.colorspace = V4L2_COLORSPACE_OPRGB; + c.xfer_func = V4L2_XFER_FUNC_OPRGB; break; case HDMI_EXTENDED_COLORIMETRY_BT2020: c.colorspace = V4L2_COLORSPACE_BT2020; @@ -948,9 +948,9 @@ v4l2_hdmi_rx_colorimetry(const struct hdmi_avi_infoframe *avi, c.xfer_func = V4L2_XFER_FUNC_SRGB; break; case HDMI_EXTENDED_COLORIMETRY_ADOBE_YCC_601: - c.colorspace = V4L2_COLORSPACE_ADOBERGB; + c.colorspace = V4L2_COLORSPACE_OPRGB; c.ycbcr_enc = V4L2_YCBCR_ENC_601; - c.xfer_func = V4L2_XFER_FUNC_ADOBERGB; + c.xfer_func = V4L2_XFER_FUNC_OPRGB; break; case HDMI_EXTENDED_COLORIMETRY_BT2020: c.colorspace = V4L2_COLORSPACE_BT2020; diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 184e4dbe8f9c..c1e14a3b476e 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -225,8 +225,12 @@ enum v4l2_colorspace { /* For RGB colorspaces such as produces by most webcams. */ V4L2_COLORSPACE_SRGB = 8, - /* AdobeRGB colorspace */ + /* opRGB colorspace */ + V4L2_COLORSPACE_OPRGB = 9, +#ifndef __KERNEL__ + /* Deprecated alias for V4L2_COLORSPACE_OPRGB */ V4L2_COLORSPACE_ADOBERGB = 9, +#endif /* BT.2020 colorspace, used for UHDTV. */ V4L2_COLORSPACE_BT2020 = 10, @@ -258,7 +262,7 @@ enum v4l2_xfer_func { * * V4L2_COLORSPACE_SRGB, V4L2_COLORSPACE_JPEG: V4L2_XFER_FUNC_SRGB * - * V4L2_COLORSPACE_ADOBERGB: V4L2_XFER_FUNC_ADOBERGB + * V4L2_COLORSPACE_OPRGB: V4L2_XFER_FUNC_OPRGB * * V4L2_COLORSPACE_SMPTE240M: V4L2_XFER_FUNC_SMPTE240M * @@ -269,7 +273,11 @@ enum v4l2_xfer_func { V4L2_XFER_FUNC_DEFAULT = 0, V4L2_XFER_FUNC_709 = 1, V4L2_XFER_FUNC_SRGB = 2, + V4L2_XFER_FUNC_OPRGB = 3, +#ifndef __KERNEL__ + /* Deprecated alias for V4L2_XFER_FUNC_OPRGB */ V4L2_XFER_FUNC_ADOBERGB = 3, +#endif V4L2_XFER_FUNC_SMPTE240M = 4, V4L2_XFER_FUNC_NONE = 5, V4L2_XFER_FUNC_DCI_P3 = 6, @@ -281,7 +289,7 @@ enum v4l2_xfer_func { * This depends on the colorspace. */ #define V4L2_MAP_XFER_FUNC_DEFAULT(colsp) \ - ((colsp) == V4L2_COLORSPACE_ADOBERGB ? V4L2_XFER_FUNC_ADOBERGB : \ + ((colsp) == V4L2_COLORSPACE_OPRGB ? V4L2_XFER_FUNC_OPRGB : \ ((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_XFER_FUNC_SMPTE240M : \ ((colsp) == V4L2_COLORSPACE_DCI_P3 ? V4L2_XFER_FUNC_DCI_P3 : \ ((colsp) == V4L2_COLORSPACE_RAW ? V4L2_XFER_FUNC_NONE : \ @@ -295,7 +303,7 @@ enum v4l2_ycbcr_encoding { * * V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M, * V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_SRGB, - * V4L2_COLORSPACE_ADOBERGB and V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601 + * V4L2_COLORSPACE_OPRGB and V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601 * * V4L2_COLORSPACE_REC709 and V4L2_COLORSPACE_DCI_P3: V4L2_YCBCR_ENC_709 * -- 2.18.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Verkuil Subject: [PATCH 1/5] media: replace ADOBERGB by OPRGB Date: Thu, 13 Sep 2018 13:47:27 +0200 Message-ID: <20180913114731.16500-2-hverkuil@xs4all.nl> References: <20180913114731.16500-1-hverkuil@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from lb3-smtp-cloud9.xs4all.net (lb3-smtp-cloud9.xs4all.net [194.109.24.30]) by gabe.freedesktop.org (Postfix) with ESMTPS id 69E0D6E664 for ; Thu, 13 Sep 2018 11:47:38 +0000 (UTC) In-Reply-To: <20180913114731.16500-1-hverkuil@xs4all.nl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-media@vger.kernel.org Cc: Hans Verkuil , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogSGFucyBWZXJrdWlsIDxoYW5zdmVya0BjaXNjby5jb20+CgpUaGUgQ1RBLTg2MSBzdGFu ZGFyZHMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gcmVmZXIgdG8gb3BSR0IgaW5zdGVhZApvZiBBZG9i ZVJHQi4gVGhlIG9mZmljaWFsIHN0YW5kYXJkIGlzIGluIGZhY3QgbmFtZWQgb3BSR0IsIHNvCnN3 aXRjaCB0byB0aGF0LgoKVGhlIHR3byBvbGQgZGVmaW5lcyByZWZlcnJpbmcgdG8gQURPQkVSR0Ig aW4gdGhlIHB1YmxpYyBBUEkgYXJlCnB1dCB1bmRlciAjaWZuZGVmIF9fS0VSTkVMX18gYW5kIGEg Y29tbWVudCBtZW50aW9ucyB0aGF0IHRoZXkgYXJlCmRlcHJlY2F0ZWQuCgpTaWduZWQtb2ZmLWJ5 OiBIYW5zIFZlcmt1aWwgPGhhbnN2ZXJrQGNpc2NvLmNvbT4KLS0tCiAuLi4vbWVkaWEvdmlkZW9k ZXYyLmgucnN0LmV4Y2VwdGlvbnMgICAgICAgICAgfCAgIDIgKwogLi4uL21lZGlhL2NvbW1vbi92 NGwyLXRwZy92NGwyLXRwZy1jb2xvcnMuYyAgIHwgMjYyICsrKysrKysrKy0tLS0tLS0tLQogZHJp dmVycy9tZWRpYS9pMmMvYWR2NzUxMS5jICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2 ZXJzL21lZGlhL2kyYy9hZHY3NjA0LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZl cnMvbWVkaWEvaTJjL3RjMzU4NzQzLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS92aXZpZC92aXZpZC1jb3JlLmggICAgIHwgICAyICstCiBkcml2ZXJz L21lZGlhL3BsYXRmb3JtL3ZpdmlkL3ZpdmlkLWN0cmxzLmMgICAgfCAgIDYgKy0KIGRyaXZlcnMv bWVkaWEvcGxhdGZvcm0vdml2aWQvdml2aWQtdmlkLW91dC5jICB8ICAgMiArLQogZHJpdmVycy9t ZWRpYS92NGwyLWNvcmUvdjRsMi1kdi10aW1pbmdzLmMgICAgIHwgICA4ICstCiBpbmNsdWRlL3Vh cGkvbGludXgvdmlkZW9kZXYyLmggICAgICAgICAgICAgICAgfCAgMTYgKy0KIDEwIGZpbGVzIGNo YW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCAxNDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv RG9jdW1lbnRhdGlvbi9tZWRpYS92aWRlb2RldjIuaC5yc3QuZXhjZXB0aW9ucyBiL0RvY3VtZW50 YXRpb24vbWVkaWEvdmlkZW9kZXYyLmgucnN0LmV4Y2VwdGlvbnMKaW5kZXggNjNmYTEzMTcyOWMw Li5mZTY4MzA1ODQ1MTQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbWVkaWEvdmlkZW9kZXYy LmgucnN0LmV4Y2VwdGlvbnMKKysrIGIvRG9jdW1lbnRhdGlvbi9tZWRpYS92aWRlb2RldjIuaC5y c3QuZXhjZXB0aW9ucwpAQCAtNTYsNiArNTYsNyBAQCByZXBsYWNlIHN5bWJvbCBWNEwyX01FTU9S WV9VU0VSUFRSIDpjOnR5cGU6YHY0bDJfbWVtb3J5YAogIyBEb2N1bWVudGVkIGVudW0gdjRsMl9j b2xvcnNwYWNlCiByZXBsYWNlIHN5bWJvbCBWNEwyX0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9CRyA6 Yzp0eXBlOmB2NGwyX2NvbG9yc3BhY2VgCiByZXBsYWNlIHN5bWJvbCBWNEwyX0NPTE9SU1BBQ0Vf NDcwX1NZU1RFTV9NIDpjOnR5cGU6YHY0bDJfY29sb3JzcGFjZWAKK3JlcGxhY2Ugc3ltYm9sIFY0 TDJfQ09MT1JTUEFDRV9PUFJHQiA6Yzp0eXBlOmB2NGwyX2NvbG9yc3BhY2VgCiByZXBsYWNlIHN5 bWJvbCBWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0IgOmM6dHlwZTpgdjRsMl9jb2xvcnNwYWNlYAog cmVwbGFjZSBzeW1ib2wgVjRMMl9DT0xPUlNQQUNFX0JUMjAyMCA6Yzp0eXBlOmB2NGwyX2NvbG9y c3BhY2VgCiByZXBsYWNlIHN5bWJvbCBWNEwyX0NPTE9SU1BBQ0VfRENJX1AzIDpjOnR5cGU6YHY0 bDJfY29sb3JzcGFjZWAKQEAgLTY5LDYgKzcwLDcgQEAgcmVwbGFjZSBzeW1ib2wgVjRMMl9DT0xP UlNQQUNFX1NSR0IgOmM6dHlwZTpgdjRsMl9jb2xvcnNwYWNlYAogCiAjIERvY3VtZW50ZWQgZW51 bSB2NGwyX3hmZXJfZnVuYwogcmVwbGFjZSBzeW1ib2wgVjRMMl9YRkVSX0ZVTkNfNzA5IDpjOnR5 cGU6YHY0bDJfeGZlcl9mdW5jYAorcmVwbGFjZSBzeW1ib2wgVjRMMl9YRkVSX0ZVTkNfT1BSR0Ig OmM6dHlwZTpgdjRsMl94ZmVyX2Z1bmNgCiByZXBsYWNlIHN5bWJvbCBWNEwyX1hGRVJfRlVOQ19B RE9CRVJHQiA6Yzp0eXBlOmB2NGwyX3hmZXJfZnVuY2AKIHJlcGxhY2Ugc3ltYm9sIFY0TDJfWEZF Ul9GVU5DX0RDSV9QMyA6Yzp0eXBlOmB2NGwyX3hmZXJfZnVuY2AKIHJlcGxhY2Ugc3ltYm9sIFY0 TDJfWEZFUl9GVU5DX0RFRkFVTFQgOmM6dHlwZTpgdjRsMl94ZmVyX2Z1bmNgCmRpZmYgLS1naXQg YS9kcml2ZXJzL21lZGlhL2NvbW1vbi92NGwyLXRwZy92NGwyLXRwZy1jb2xvcnMuYyBiL2RyaXZl cnMvbWVkaWEvY29tbW9uL3Y0bDItdHBnL3Y0bDItdHBnLWNvbG9ycy5jCmluZGV4IDNhM2RjMjNj NTYwYy4uYTQzNDEyMDVjMTk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi92NGwy LXRwZy92NGwyLXRwZy1jb2xvcnMuYworKysgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92NGwyLXRw Zy92NGwyLXRwZy1jb2xvcnMuYwpAQCAtNjAyLDE0ICs2MDIsMTQgQEAgY29uc3Qgc3RydWN0IHRw Z19yYmdfY29sb3IxNiB0cGdfY3NjX2NvbG9yc1tWNEwyX0NPTE9SU1BBQ0VfRENJX1AzICsgMV1b VjRMMl9YRkUKIAlbVjRMMl9DT0xPUlNQQUNFX1NNUFRFMTcwTV1bVjRMMl9YRkVSX0ZVTkNfU1JH Ql1bNV0gPSB7IDMxMzgsIDY1NywgODEwIH0sCiAJW1Y0TDJfQ09MT1JTUEFDRV9TTVBURTE3ME1d W1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzZdID0geyA3MzEsIDY4MCwgMzA0OCB9LAogCVtWNEwyX0NP TE9SU1BBQ0VfU01QVEUxNzBNXVtWNEwyX1hGRVJfRlVOQ19TUkdCXVs3XSA9IHsgODAwLCA3OTks IDgwMCB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUxNzBNXVtWNEwyX1hGRVJfRlVOQ19BRE9C RVJHQl1bMF0gPSB7IDMwMzMsIDMwMzMsIDMwMzMgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX1NNUFRF MTcwTV1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzFdID0geyAzMDQ2LCAzMDU0LCA4ODYgfSwK LQlbVjRMMl9DT0xPUlNQQUNFX1NNUFRFMTcwTV1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzJd ID0geyAwLCAzMDU4LCAzMDMxIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9TTVBURTE3ME1dW1Y0TDJf WEZFUl9GVU5DX0FET0JFUkdCXVszXSA9IHsgMzYwLCAzMDc5LCA4NzcgfSwKLQlbVjRMMl9DT0xP UlNQQUNFX1NNUFRFMTcwTV1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzRdID0geyAzMTAzLCA1 ODcsIDMwMjcgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX1NNUFRFMTcwTV1bVjRMMl9YRkVSX0ZVTkNf QURPQkVSR0JdWzVdID0geyAzMTE2LCA3MjMsIDg2MSB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfU01Q VEUxNzBNXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bNl0gPSB7IDc4OSwgNzQ0LCAzMDI1IH0s Ci0JW1Y0TDJfQ09MT1JTUEFDRV9TTVBURTE3ME1dW1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVs3 XSA9IHsgODUxLCA4NTEsIDg1MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUxNzBNXVtWNEwy X1hGRVJfRlVOQ19PUFJHQl1bMF0gPSB7IDMwMzMsIDMwMzMsIDMwMzMgfSwKKwlbVjRMMl9DT0xP UlNQQUNFX1NNUFRFMTcwTV1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzFdID0geyAzMDQ2LCAzMDU0 LCA4ODYgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX1NNUFRFMTcwTV1bVjRMMl9YRkVSX0ZVTkNfT1BS R0JdWzJdID0geyAwLCAzMDU4LCAzMDMxIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9TTVBURTE3ME1d W1Y0TDJfWEZFUl9GVU5DX09QUkdCXVszXSA9IHsgMzYwLCAzMDc5LCA4NzcgfSwKKwlbVjRMMl9D T0xPUlNQQUNFX1NNUFRFMTcwTV1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzRdID0geyAzMTAzLCA1 ODcsIDMwMjcgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX1NNUFRFMTcwTV1bVjRMMl9YRkVSX0ZVTkNf T1BSR0JdWzVdID0geyAzMTE2LCA3MjMsIDg2MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUx NzBNXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bNl0gPSB7IDc4OSwgNzQ0LCAzMDI1IH0sCisJW1Y0 TDJfQ09MT1JTUEFDRV9TTVBURTE3ME1dW1Y0TDJfWEZFUl9GVU5DX09QUkdCXVs3XSA9IHsgODUx LCA4NTEsIDg1MSB9LAogCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUxNzBNXVtWNEwyX1hGRVJfRlVO Q19TTVBURTI0ME1dWzBdID0geyAyOTI2LCAyOTI2LCAyOTI2IH0sCiAJW1Y0TDJfQ09MT1JTUEFD RV9TTVBURTE3ME1dW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMV0gPSB7IDI5NDEsIDI5NTAs IDU0NiB9LAogCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUxNzBNXVtWNEwyX1hGRVJfRlVOQ19TTVBU RTI0ME1dWzJdID0geyAwLCAyOTU0LCAyOTI0IH0sCkBAIC02NTgsMTQgKzY1OCwxNCBAQCBjb25z dCBzdHJ1Y3QgdHBnX3JiZ19jb2xvcjE2IHRwZ19jc2NfY29sb3JzW1Y0TDJfQ09MT1JTUEFDRV9E Q0lfUDMgKyAxXVtWNEwyX1hGRQogCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUyNDBNXVtWNEwyX1hG RVJfRlVOQ19TUkdCXVs1XSA9IHsgMzEzOCwgNjU3LCA4MTAgfSwKIAlbVjRMMl9DT0xPUlNQQUNF X1NNUFRFMjQwTV1bVjRMMl9YRkVSX0ZVTkNfU1JHQl1bNl0gPSB7IDczMSwgNjgwLCAzMDQ4IH0s CiAJW1Y0TDJfQ09MT1JTUEFDRV9TTVBURTI0ME1dW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzddID0g eyA4MDAsIDc5OSwgODAwIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9TTVBURTI0ME1dW1Y0TDJfWEZF Ul9GVU5DX0FET0JFUkdCXVswXSA9IHsgMzAzMywgMzAzMywgMzAzMyB9LAotCVtWNEwyX0NPTE9S U1BBQ0VfU01QVEUyNDBNXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bMV0gPSB7IDMwNDYsIDMw NTQsIDg4NiB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUyNDBNXVtWNEwyX1hGRVJfRlVOQ19B RE9CRVJHQl1bMl0gPSB7IDAsIDMwNTgsIDMwMzEgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX1NNUFRF MjQwTV1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzNdID0geyAzNjAsIDMwNzksIDg3NyB9LAot CVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUyNDBNXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bNF0g PSB7IDMxMDMsIDU4NywgMzAyNyB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUyNDBNXVtWNEwy X1hGRVJfRlVOQ19BRE9CRVJHQl1bNV0gPSB7IDMxMTYsIDcyMywgODYxIH0sCi0JW1Y0TDJfQ09M T1JTUEFDRV9TTVBURTI0ME1dW1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVs2XSA9IHsgNzg5LCA3 NDQsIDMwMjUgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX1NNUFRFMjQwTV1bVjRMMl9YRkVSX0ZVTkNf QURPQkVSR0JdWzddID0geyA4NTEsIDg1MSwgODUxIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9TTVBU RTI0ME1dW1Y0TDJfWEZFUl9GVU5DX09QUkdCXVswXSA9IHsgMzAzMywgMzAzMywgMzAzMyB9LAor CVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUyNDBNXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bMV0gPSB7 IDMwNDYsIDMwNTQsIDg4NiB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUyNDBNXVtWNEwyX1hG RVJfRlVOQ19PUFJHQl1bMl0gPSB7IDAsIDMwNTgsIDMwMzEgfSwKKwlbVjRMMl9DT0xPUlNQQUNF X1NNUFRFMjQwTV1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzNdID0geyAzNjAsIDMwNzksIDg3NyB9 LAorCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUyNDBNXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bNF0g PSB7IDMxMDMsIDU4NywgMzAyNyB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfU01QVEUyNDBNXVtWNEwy X1hGRVJfRlVOQ19PUFJHQl1bNV0gPSB7IDMxMTYsIDcyMywgODYxIH0sCisJW1Y0TDJfQ09MT1JT UEFDRV9TTVBURTI0ME1dW1Y0TDJfWEZFUl9GVU5DX09QUkdCXVs2XSA9IHsgNzg5LCA3NDQsIDMw MjUgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX1NNUFRFMjQwTV1bVjRMMl9YRkVSX0ZVTkNfT1BSR0Jd WzddID0geyA4NTEsIDg1MSwgODUxIH0sCiAJW1Y0TDJfQ09MT1JTUEFDRV9TTVBURTI0ME1dW1Y0 TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMF0gPSB7IDI5MjYsIDI5MjYsIDI5MjYgfSwKIAlbVjRM Ml9DT0xPUlNQQUNFX1NNUFRFMjQwTV1bVjRMMl9YRkVSX0ZVTkNfU01QVEUyNDBNXVsxXSA9IHsg Mjk0MSwgMjk1MCwgNTQ2IH0sCiAJW1Y0TDJfQ09MT1JTUEFDRV9TTVBURTI0ME1dW1Y0TDJfWEZF Ul9GVU5DX1NNUFRFMjQwTV1bMl0gPSB7IDAsIDI5NTQsIDI5MjQgfSwKQEAgLTcxNCwxNCArNzE0 LDE0IEBAIGNvbnN0IHN0cnVjdCB0cGdfcmJnX2NvbG9yMTYgdHBnX2NzY19jb2xvcnNbVjRMMl9D T0xPUlNQQUNFX0RDSV9QMyArIDFdW1Y0TDJfWEZFCiAJW1Y0TDJfQ09MT1JTUEFDRV9SRUM3MDld W1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzVdID0geyAzMDU2LCA4MDAsIDgwMCB9LAogCVtWNEwyX0NP TE9SU1BBQ0VfUkVDNzA5XVtWNEwyX1hGRVJfRlVOQ19TUkdCXVs2XSA9IHsgODAwLCA4MDAsIDMw NTYgfSwKIAlbVjRMMl9DT0xPUlNQQUNFX1JFQzcwOV1bVjRMMl9YRkVSX0ZVTkNfU1JHQl1bN10g PSB7IDgwMCwgODAwLCA4MDAgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX1JFQzcwOV1bVjRMMl9YRkVS X0ZVTkNfQURPQkVSR0JdWzBdID0geyAzMDMzLCAzMDMzLCAzMDMzIH0sCi0JW1Y0TDJfQ09MT1JT UEFDRV9SRUM3MDldW1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVsxXSA9IHsgMzAzMywgMzAzMywg ODUxIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9SRUM3MDldW1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdC XVsyXSA9IHsgODUxLCAzMDMzLCAzMDMzIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9SRUM3MDldW1Y0 TDJfWEZFUl9GVU5DX0FET0JFUkdCXVszXSA9IHsgODUxLCAzMDMzLCA4NTEgfSwKLQlbVjRMMl9D T0xPUlNQQUNFX1JFQzcwOV1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzRdID0geyAzMDMzLCA4 NTEsIDMwMzMgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX1JFQzcwOV1bVjRMMl9YRkVSX0ZVTkNfQURP QkVSR0JdWzVdID0geyAzMDMzLCA4NTEsIDg1MSB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfUkVDNzA5 XVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bNl0gPSB7IDg1MSwgODUxLCAzMDMzIH0sCi0JW1Y0 TDJfQ09MT1JTUEFDRV9SRUM3MDldW1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVs3XSA9IHsgODUx LCA4NTEsIDg1MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfUkVDNzA5XVtWNEwyX1hGRVJfRlVOQ19P UFJHQl1bMF0gPSB7IDMwMzMsIDMwMzMsIDMwMzMgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX1JFQzcw OV1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzFdID0geyAzMDMzLCAzMDMzLCA4NTEgfSwKKwlbVjRM Ml9DT0xPUlNQQUNFX1JFQzcwOV1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzJdID0geyA4NTEsIDMw MzMsIDMwMzMgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX1JFQzcwOV1bVjRMMl9YRkVSX0ZVTkNfT1BS R0JdWzNdID0geyA4NTEsIDMwMzMsIDg1MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfUkVDNzA5XVtW NEwyX1hGRVJfRlVOQ19PUFJHQl1bNF0gPSB7IDMwMzMsIDg1MSwgMzAzMyB9LAorCVtWNEwyX0NP TE9SU1BBQ0VfUkVDNzA5XVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bNV0gPSB7IDMwMzMsIDg1MSwg ODUxIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9SRUM3MDldW1Y0TDJfWEZFUl9GVU5DX09QUkdCXVs2 XSA9IHsgODUxLCA4NTEsIDMwMzMgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX1JFQzcwOV1bVjRMMl9Y RkVSX0ZVTkNfT1BSR0JdWzddID0geyA4NTEsIDg1MSwgODUxIH0sCiAJW1Y0TDJfQ09MT1JTUEFD RV9SRUM3MDldW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMF0gPSB7IDI5MjYsIDI5MjYsIDI5 MjYgfSwKIAlbVjRMMl9DT0xPUlNQQUNFX1JFQzcwOV1bVjRMMl9YRkVSX0ZVTkNfU01QVEUyNDBN XVsxXSA9IHsgMjkyNiwgMjkyNiwgNTA3IH0sCiAJW1Y0TDJfQ09MT1JTUEFDRV9SRUM3MDldW1Y0 TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMl0gPSB7IDUwNywgMjkyNiwgMjkyNiB9LApAQCAtNzcw LDE0ICs3NzAsMTQgQEAgY29uc3Qgc3RydWN0IHRwZ19yYmdfY29sb3IxNiB0cGdfY3NjX2NvbG9y c1tWNEwyX0NPTE9SU1BBQ0VfRENJX1AzICsgMV1bVjRMMl9YRkUKIAlbVjRMMl9DT0xPUlNQQUNF XzQ3MF9TWVNURU1fTV1bVjRMMl9YRkVSX0ZVTkNfU1JHQl1bNV0gPSB7IDI1OTksIDkwMSwgOTA5 IH0sCiAJW1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX01dW1Y0TDJfWEZFUl9GVU5DX1NSR0Jd WzZdID0geyA5OTEsIDAsIDI5NjYgfSwKIAlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fTV1b VjRMMl9YRkVSX0ZVTkNfU1JHQl1bN10gPSB7IDgwMCwgNzk5LCA4MDAgfSwKLQlbVjRMMl9DT0xP UlNQQUNFXzQ3MF9TWVNURU1fTV1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzBdID0geyAzMDMz LCAzMDMzLCAzMDMzIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX01dW1Y0TDJfWEZF Ul9GVU5DX0FET0JFUkdCXVsxXSA9IHsgMjk4OSwgMzEyMCwgMTE4MCB9LAotCVtWNEwyX0NPTE9S U1BBQ0VfNDcwX1NZU1RFTV9NXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bMl0gPSB7IDE5MTMs IDMwMTEsIDMwMDkgfSwKLQlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fTV1bVjRMMl9YRkVS X0ZVTkNfQURPQkVSR0JdWzNdID0geyAxODM2LCAzMDk5LCAxMTA1IH0sCi0JW1Y0TDJfQ09MT1JT UEFDRV80NzBfU1lTVEVNX01dW1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVs0XSA9IHsgMjYyNywg NDEzLCAyOTY2IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX01dW1Y0TDJfWEZFUl9G VU5DX0FET0JFUkdCXVs1XSA9IHsgMjU3NiwgOTQzLCA5NTEgfSwKLQlbVjRMMl9DT0xPUlNQQUNF XzQ3MF9TWVNURU1fTV1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzZdID0geyAxMDI2LCAwLCAy OTQyIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX01dW1Y0TDJfWEZFUl9GVU5DX0FE T0JFUkdCXVs3XSA9IHsgODUxLCA4NTEsIDg1MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfNDcwX1NZ U1RFTV9NXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bMF0gPSB7IDMwMzMsIDMwMzMsIDMwMzMgfSwK KwlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fTV1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzFd ID0geyAyOTg5LCAzMTIwLCAxMTgwIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX01d W1Y0TDJfWEZFUl9GVU5DX09QUkdCXVsyXSA9IHsgMTkxMywgMzAxMSwgMzAwOSB9LAorCVtWNEwy X0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9NXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bM10gPSB7IDE4 MzYsIDMwOTksIDExMDUgfSwKKwlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fTV1bVjRMMl9Y RkVSX0ZVTkNfT1BSR0JdWzRdID0geyAyNjI3LCA0MTMsIDI5NjYgfSwKKwlbVjRMMl9DT0xPUlNQ QUNFXzQ3MF9TWVNURU1fTV1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzVdID0geyAyNTc2LCA5NDMs IDk1MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9NXVtWNEwyX1hGRVJfRlVOQ19P UFJHQl1bNl0gPSB7IDEwMjYsIDAsIDI5NDIgfSwKKwlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNU RU1fTV1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzddID0geyA4NTEsIDg1MSwgODUxIH0sCiAJW1Y0 TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX01dW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMF0g PSB7IDI5MjYsIDI5MjYsIDI5MjYgfSwKIAlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fTV1b VjRMMl9YRkVSX0ZVTkNfU01QVEUyNDBNXVsxXSA9IHsgMjg3OSwgMzAyMiwgODc0IH0sCiAJW1Y0 TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX01dW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMl0g PSB7IDE2ODgsIDI5MDMsIDI5MDEgfSwKQEAgLTgyNiwxNCArODI2LDE0IEBAIGNvbnN0IHN0cnVj dCB0cGdfcmJnX2NvbG9yMTYgdHBnX2NzY19jb2xvcnNbVjRMMl9DT0xPUlNQQUNFX0RDSV9QMyAr IDFdW1Y0TDJfWEZFCiAJW1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX0JHXVtWNEwyX1hGRVJf RlVOQ19TUkdCXVs1XSA9IHsgMzAwMSwgODAwLCA3OTkgfSwKIAlbVjRMMl9DT0xPUlNQQUNFXzQ3 MF9TWVNURU1fQkddW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzZdID0geyA4MDAsIDgwMCwgMzA3MSB9 LAogCVtWNEwyX0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9CR11bVjRMMl9YRkVSX0ZVTkNfU1JHQl1b N10gPSB7IDgwMCwgODAwLCA3OTkgfSwKLQlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fQkdd W1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVswXSA9IHsgMzAzMywgMzAzMywgMzAzMyB9LAotCVtW NEwyX0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9CR11bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzFd ID0geyAzMDMzLCAzMDMzLCA3NzYgfSwKLQlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fQkdd W1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVsyXSA9IHsgMTA2OCwgMzAzMywgMzAzMyB9LAotCVtW NEwyX0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9CR11bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzNd ID0geyAxMDY4LCAzMDMzLCA3NzYgfSwKLQlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fQkdd W1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVs0XSA9IHsgMjk3NywgODUxLCAzMDQ4IH0sCi0JW1Y0 TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX0JHXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bNV0g PSB7IDI5NzcsIDg1MSwgODUxIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX0JHXVtW NEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bNl0gPSB7IDg1MSwgODUxLCAzMDQ4IH0sCi0JW1Y0TDJf Q09MT1JTUEFDRV80NzBfU1lTVEVNX0JHXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bN10gPSB7 IDg1MSwgODUxLCA4NTEgfSwKKwlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fQkddW1Y0TDJf WEZFUl9GVU5DX09QUkdCXVswXSA9IHsgMzAzMywgMzAzMywgMzAzMyB9LAorCVtWNEwyX0NPTE9S U1BBQ0VfNDcwX1NZU1RFTV9CR11bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzFdID0geyAzMDMzLCAz MDMzLCA3NzYgfSwKKwlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fQkddW1Y0TDJfWEZFUl9G VU5DX09QUkdCXVsyXSA9IHsgMTA2OCwgMzAzMywgMzAzMyB9LAorCVtWNEwyX0NPTE9SU1BBQ0Vf NDcwX1NZU1RFTV9CR11bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzNdID0geyAxMDY4LCAzMDMzLCA3 NzYgfSwKKwlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fQkddW1Y0TDJfWEZFUl9GVU5DX09Q UkdCXVs0XSA9IHsgMjk3NywgODUxLCAzMDQ4IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lT VEVNX0JHXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bNV0gPSB7IDI5NzcsIDg1MSwgODUxIH0sCisJ W1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX0JHXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bNl0g PSB7IDg1MSwgODUxLCAzMDQ4IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX0JHXVtW NEwyX1hGRVJfRlVOQ19PUFJHQl1bN10gPSB7IDg1MSwgODUxLCA4NTEgfSwKIAlbVjRMMl9DT0xP UlNQQUNFXzQ3MF9TWVNURU1fQkddW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMF0gPSB7IDI5 MjYsIDI5MjYsIDI5MjYgfSwKIAlbVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fQkddW1Y0TDJf WEZFUl9GVU5DX1NNUFRFMjQwTV1bMV0gPSB7IDI5MjYsIDI5MjYsIDQyMyB9LAogCVtWNEwyX0NP TE9SU1BBQ0VfNDcwX1NZU1RFTV9CR11bVjRMMl9YRkVSX0ZVTkNfU01QVEUyNDBNXVsyXSA9IHsg NzQ5LCAyOTI2LCAyOTI2IH0sCkBAIC04ODIsMTQgKzg4MiwxNCBAQCBjb25zdCBzdHJ1Y3QgdHBn X3JiZ19jb2xvcjE2IHRwZ19jc2NfY29sb3JzW1Y0TDJfQ09MT1JTUEFDRV9EQ0lfUDMgKyAxXVtW NEwyX1hGRQogCVtWNEwyX0NPTE9SU1BBQ0VfU1JHQl1bVjRMMl9YRkVSX0ZVTkNfU1JHQl1bNV0g PSB7IDMwNTYsIDgwMCwgODAwIH0sCiAJW1Y0TDJfQ09MT1JTUEFDRV9TUkdCXVtWNEwyX1hGRVJf RlVOQ19TUkdCXVs2XSA9IHsgODAwLCA4MDAsIDMwNTYgfSwKIAlbVjRMMl9DT0xPUlNQQUNFX1NS R0JdW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzddID0geyA4MDAsIDgwMCwgODAwIH0sCi0JW1Y0TDJf Q09MT1JTUEFDRV9TUkdCXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bMF0gPSB7IDMwMzMsIDMw MzMsIDMwMzMgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX1NSR0JdW1Y0TDJfWEZFUl9GVU5DX0FET0JF UkdCXVsxXSA9IHsgMzAzMywgMzAzMywgODUxIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9TUkdCXVtW NEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bMl0gPSB7IDg1MSwgMzAzMywgMzAzMyB9LAotCVtWNEwy X0NPTE9SU1BBQ0VfU1JHQl1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzNdID0geyA4NTEsIDMw MzMsIDg1MSB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfU1JHQl1bVjRMMl9YRkVSX0ZVTkNfQURPQkVS R0JdWzRdID0geyAzMDMzLCA4NTEsIDMwMzMgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX1NSR0JdW1Y0 TDJfWEZFUl9GVU5DX0FET0JFUkdCXVs1XSA9IHsgMzAzMywgODUxLCA4NTEgfSwKLQlbVjRMMl9D T0xPUlNQQUNFX1NSR0JdW1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVs2XSA9IHsgODUxLCA4NTEs IDMwMzMgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX1NSR0JdW1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdC XVs3XSA9IHsgODUxLCA4NTEsIDg1MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfU1JHQl1bVjRMMl9Y RkVSX0ZVTkNfT1BSR0JdWzBdID0geyAzMDMzLCAzMDMzLCAzMDMzIH0sCisJW1Y0TDJfQ09MT1JT UEFDRV9TUkdCXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bMV0gPSB7IDMwMzMsIDMwMzMsIDg1MSB9 LAorCVtWNEwyX0NPTE9SU1BBQ0VfU1JHQl1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzJdID0geyA4 NTEsIDMwMzMsIDMwMzMgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX1NSR0JdW1Y0TDJfWEZFUl9GVU5D X09QUkdCXVszXSA9IHsgODUxLCAzMDMzLCA4NTEgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX1NSR0Jd W1Y0TDJfWEZFUl9GVU5DX09QUkdCXVs0XSA9IHsgMzAzMywgODUxLCAzMDMzIH0sCisJW1Y0TDJf Q09MT1JTUEFDRV9TUkdCXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bNV0gPSB7IDMwMzMsIDg1MSwg ODUxIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9TUkdCXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bNl0g PSB7IDg1MSwgODUxLCAzMDMzIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9TUkdCXVtWNEwyX1hGRVJf RlVOQ19PUFJHQl1bN10gPSB7IDg1MSwgODUxLCA4NTEgfSwKIAlbVjRMMl9DT0xPUlNQQUNFX1NS R0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMF0gPSB7IDI5MjYsIDI5MjYsIDI5MjYgfSwK IAlbVjRMMl9DT0xPUlNQQUNFX1NSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMV0gPSB7 IDI5MjYsIDI5MjYsIDUwNyB9LAogCVtWNEwyX0NPTE9SU1BBQ0VfU1JHQl1bVjRMMl9YRkVSX0ZV TkNfU01QVEUyNDBNXVsyXSA9IHsgNTA3LCAyOTI2LCAyOTI2IH0sCkBAIC05MjIsNjIgKzkyMiw2 MiBAQCBjb25zdCBzdHJ1Y3QgdHBnX3JiZ19jb2xvcjE2IHRwZ19jc2NfY29sb3JzW1Y0TDJfQ09M T1JTUEFDRV9EQ0lfUDMgKyAxXVtWNEwyX1hGRQogCVtWNEwyX0NPTE9SU1BBQ0VfU1JHQl1bVjRM Ml9YRkVSX0ZVTkNfU01QVEUyMDg0XVs1XSA9IHsgMTgxMiwgODg2LCA4ODYgfSwKIAlbVjRMMl9D T0xPUlNQQUNFX1NSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjA4NF1bNl0gPSB7IDg4NiwgODg2 LCAxODEyIH0sCiAJW1Y0TDJfQ09MT1JTUEFDRV9TUkdCXVtWNEwyX1hGRVJfRlVOQ19TTVBURTIw ODRdWzddID0geyA4ODYsIDg4NiwgODg2IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1b VjRMMl9YRkVSX0ZVTkNfNzA5XVswXSA9IHsgMjkzOSwgMjkzOSwgMjkzOSB9LAotCVtWNEwyX0NP TE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DXzcwOV1bMV0gPSB7IDI5MzksIDI5Mzks IDc4MSB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DXzcwOV1b Ml0gPSB7IDE2MjIsIDI5MzksIDI5MzkgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCXVtW NEwyX1hGRVJfRlVOQ183MDldWzNdID0geyAxNjIyLCAyOTM5LCA3ODEgfSwKLQlbVjRMMl9DT0xP UlNQQUNFX0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ183MDldWzRdID0geyAyNTAyLCA1NDcsIDI4 ODEgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ183MDldWzVd ID0geyAyNTAyLCA1NDcsIDU0NyB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJf WEZFUl9GVU5DXzcwOV1bNl0gPSB7IDU0NywgNTQ3LCAyODgxIH0sCi0JW1Y0TDJfQ09MT1JTUEFD RV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfNzA5XVs3XSA9IHsgNTQ3LCA1NDcsIDU0NyB9LAot CVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzBdID0geyAz MDU2LCAzMDU2LCAzMDU2IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVS X0ZVTkNfU1JHQl1bMV0gPSB7IDMwNTYsIDMwNTYsIDEwMzEgfSwKLQlbVjRMMl9DT0xPUlNQQUNF X0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ19TUkdCXVsyXSA9IHsgMTgzOCwgMzA1NiwgMzA1NiB9 LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzNdID0g eyAxODM4LCAzMDU2LCAxMDMxIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9Y RkVSX0ZVTkNfU1JHQl1bNF0gPSB7IDI2NTcsIDgwMCwgMzAwMiB9LAotCVtWNEwyX0NPTE9SU1BB Q0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzVdID0geyAyNjU3LCA4MDAsIDgwMCB9 LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzZdID0g eyA4MDAsIDgwMCwgMzAwMiB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZF Ul9GVU5DX1NSR0JdWzddID0geyA4MDAsIDgwMCwgODAwIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9B RE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzBdID0geyAzMDMzLCAzMDMzLCAzMDMz IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0Jd WzFdID0geyAzMDMzLCAzMDMzLCAxMDYzIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1b VjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzJdID0geyAxODI4LCAzMDMzLCAzMDMzIH0sCi0JW1Y0 TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzNdID0geyAx ODI4LCAzMDMzLCAxMDYzIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVS X0ZVTkNfQURPQkVSR0JdWzRdID0geyAyNjMzLCA4NTEsIDI5NzkgfSwKLQlbVjRMMl9DT0xPUlNQ QUNFX0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bNV0gPSB7IDI2MzMsIDg1MSwg ODUxIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfQURPQkVS R0JdWzZdID0geyA4NTEsIDg1MSwgMjk3OSB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0Jd W1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVs3XSA9IHsgODUxLCA4NTEsIDg1MSB9LAotCVtWNEwy X0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMF0gPSB7IDI5 MjYsIDI5MjYsIDI5MjYgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCXVtWNEwyX1hGRVJf RlVOQ19TTVBURTI0ME1dWzFdID0geyAyOTI2LCAyOTI2LCA3NDQgfSwKLQlbVjRMMl9DT0xPUlNQ QUNFX0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ19TTVBURTI0ME1dWzJdID0geyAxNTk0LCAyOTI2 LCAyOTI2IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfU01Q VEUyNDBNXVszXSA9IHsgMTU5NCwgMjkyNiwgNzQ0IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9C RVJHQl1bVjRMMl9YRkVSX0ZVTkNfU01QVEUyNDBNXVs0XSA9IHsgMjQ4NCwgNTA3LCAyODY3IH0s Ci0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfU01QVEUyNDBNXVs1 XSA9IHsgMjQ4NCwgNTA3LCA1MDcgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCXVtWNEwy X1hGRVJfRlVOQ19TTVBURTI0ME1dWzZdID0geyA1MDcsIDUwNywgMjg2NyB9LAotCVtWNEwyX0NP TE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bN10gPSB7IDUwNywg NTA3LCA1MDcgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ19O T05FXVswXSA9IHsgMjEyNSwgMjEyNSwgMjEyNSB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVS R0JdW1Y0TDJfWEZFUl9GVU5DX05PTkVdWzFdID0geyAyMTI1LCAyMTI1LCAyMTIgfSwKLQlbVjRM Ml9DT0xPUlNQQUNFX0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ19OT05FXVsyXSA9IHsgNjk4LCAy MTI1LCAyMTI1IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNf Tk9ORV1bM10gPSB7IDY5OCwgMjEyNSwgMjEyIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJH Ql1bVjRMMl9YRkVSX0ZVTkNfTk9ORV1bNF0gPSB7IDE1NTcsIDEzMCwgMjA0MyB9LAotCVtWNEwy X0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX05PTkVdWzVdID0geyAxNTU3LCAx MzAsIDEzMCB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX05P TkVdWzZdID0geyAxMzAsIDEzMCwgMjA0MyB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0Jd W1Y0TDJfWEZFUl9GVU5DX05PTkVdWzddID0geyAxMzAsIDEzMCwgMTMwIH0sCi0JW1Y0TDJfQ09M T1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfRENJX1AzXVswXSA9IHsgMzE3NSwgMzE3 NSwgMzE3NSB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX0RD SV9QM11bMV0gPSB7IDMxNzUsIDMxNzUsIDEzMDggfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0FET0JF UkdCXVtWNEwyX1hGRVJfRlVOQ19EQ0lfUDNdWzJdID0geyAyMDY5LCAzMTc1LCAzMTc1IH0sCi0J W1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfRENJX1AzXVszXSA9IHsg MjA2OSwgMzE3NSwgMTMwOCB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZF Ul9GVU5DX0RDSV9QM11bNF0gPSB7IDI4MTYsIDEwODQsIDMxMjcgfSwKLQlbVjRMMl9DT0xPUlNQ QUNFX0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ19EQ0lfUDNdWzVdID0geyAyODE2LCAxMDg0LCAx MDg0IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfRENJX1Az XVs2XSA9IHsgMTA4NCwgMTA4NCwgMzEyNyB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0Jd W1Y0TDJfWEZFUl9GVU5DX0RDSV9QM11bN10gPSB7IDEwODQsIDEwODQsIDEwODQgfSwKLQlbVjRM Ml9DT0xPUlNQQUNFX0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ19TTVBURTIwODRdWzBdID0geyAx ODEyLCAxODEyLCAxODEyIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVS X0ZVTkNfU01QVEUyMDg0XVsxXSA9IHsgMTgxMiwgMTgxMiwgMTAyMiB9LAotCVtWNEwyX0NPTE9S U1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjA4NF1bMl0gPSB7IDE0MDIsIDE4 MTIsIDE4MTIgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCXVtWNEwyX1hGRVJfRlVOQ19T TVBURTIwODRdWzNdID0geyAxNDAyLCAxODEyLCAxMDIyIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9B RE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfU01QVEUyMDg0XVs0XSA9IHsgMTY5MiwgODg2LCAxNzk3 IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQl1bVjRMMl9YRkVSX0ZVTkNfU01QVEUyMDg0 XVs1XSA9IHsgMTY5MiwgODg2LCA4ODYgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCXVtW NEwyX1hGRVJfRlVOQ19TTVBURTIwODRdWzZdID0geyA4ODYsIDg4NiwgMTc5NyB9LAotCVtWNEwy X0NPTE9SU1BBQ0VfQURPQkVSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjA4NF1bN10gPSB7IDg4 NiwgODg2LCA4ODYgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ183 MDldWzBdID0geyAyOTM5LCAyOTM5LCAyOTM5IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1b VjRMMl9YRkVSX0ZVTkNfNzA5XVsxXSA9IHsgMjkzOSwgMjkzOSwgNzgxIH0sCisJW1Y0TDJfQ09M T1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNfNzA5XVsyXSA9IHsgMTYyMiwgMjkzOSwgMjkz OSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DXzcwOV1bM10gPSB7 IDE2MjIsIDI5MzksIDc4MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJfWEZFUl9G VU5DXzcwOV1bNF0gPSB7IDI1MDIsIDU0NywgMjg4MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfT1BS R0JdW1Y0TDJfWEZFUl9GVU5DXzcwOV1bNV0gPSB7IDI1MDIsIDU0NywgNTQ3IH0sCisJW1Y0TDJf Q09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNfNzA5XVs2XSA9IHsgNTQ3LCA1NDcsIDI4 ODEgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ183MDldWzddID0g eyA1NDcsIDU0NywgNTQ3IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZV TkNfU1JHQl1bMF0gPSB7IDMwNTYsIDMwNTYsIDMwNTYgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09Q UkdCXVtWNEwyX1hGRVJfRlVOQ19TUkdCXVsxXSA9IHsgMzA1NiwgMzA1NiwgMTAzMSB9LAorCVtW NEwyX0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzJdID0geyAxODM4LCAz MDU2LCAzMDU2IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNfU1JH Ql1bM10gPSB7IDE4MzgsIDMwNTYsIDEwMzEgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtW NEwyX1hGRVJfRlVOQ19TUkdCXVs0XSA9IHsgMjY1NywgODAwLCAzMDAyIH0sCisJW1Y0TDJfQ09M T1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNfU1JHQl1bNV0gPSB7IDI2NTcsIDgwMCwgODAw IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNfU1JHQl1bNl0gPSB7 IDgwMCwgODAwLCAzMDAyIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZV TkNfU1JHQl1bN10gPSB7IDgwMCwgODAwLCA4MDAgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdC XVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bMF0gPSB7IDMwMzMsIDMwMzMsIDMwMzMgfSwKKwlbVjRM Ml9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bMV0gPSB7IDMwMzMsIDMw MzMsIDEwNjMgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19PUFJH Ql1bMl0gPSB7IDE4MjgsIDMwMzMsIDMwMzMgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtW NEwyX1hGRVJfRlVOQ19PUFJHQl1bM10gPSB7IDE4MjgsIDMwMzMsIDEwNjMgfSwKKwlbVjRMMl9D T0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bNF0gPSB7IDI2MzMsIDg1MSwg Mjk3OSB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX09QUkdCXVs1 XSA9IHsgMjYzMywgODUxLCA4NTEgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hG RVJfRlVOQ19PUFJHQl1bNl0gPSB7IDg1MSwgODUxLCAyOTc5IH0sCisJW1Y0TDJfQ09MT1JTUEFD RV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzddID0geyA4NTEsIDg1MSwgODUxIH0sCisJ W1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNfU01QVEUyNDBNXVswXSA9IHsg MjkyNiwgMjkyNiwgMjkyNiB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJfWEZFUl9G VU5DX1NNUFRFMjQwTV1bMV0gPSB7IDI5MjYsIDI5MjYsIDc0NCB9LAorCVtWNEwyX0NPTE9SU1BB Q0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMl0gPSB7IDE1OTQsIDI5MjYsIDI5 MjYgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19TTVBURTI0ME1d WzNdID0geyAxNTk0LCAyOTI2LCA3NDQgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwy X1hGRVJfRlVOQ19TTVBURTI0ME1dWzRdID0geyAyNDg0LCA1MDcsIDI4NjcgfSwKKwlbVjRMMl9D T0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19TTVBURTI0ME1dWzVdID0geyAyNDg0LCA1 MDcsIDUwNyB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRF MjQwTV1bNl0gPSB7IDUwNywgNTA3LCAyODY3IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1b VjRMMl9YRkVSX0ZVTkNfU01QVEUyNDBNXVs3XSA9IHsgNTA3LCA1MDcsIDUwNyB9LAorCVtWNEwy X0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX05PTkVdWzBdID0geyAyMTI1LCAyMTI1 LCAyMTI1IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNfTk9ORV1b MV0gPSB7IDIxMjUsIDIxMjUsIDIxMiB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJf WEZFUl9GVU5DX05PTkVdWzJdID0geyA2OTgsIDIxMjUsIDIxMjUgfSwKKwlbVjRMMl9DT0xPUlNQ QUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19OT05FXVszXSA9IHsgNjk4LCAyMTI1LCAyMTIgfSwK KwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19OT05FXVs0XSA9IHsgMTU1 NywgMTMwLCAyMDQzIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNf Tk9ORV1bNV0gPSB7IDE1NTcsIDEzMCwgMTMwIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1b VjRMMl9YRkVSX0ZVTkNfTk9ORV1bNl0gPSB7IDEzMCwgMTMwLCAyMDQzIH0sCisJW1Y0TDJfQ09M T1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZVTkNfTk9ORV1bN10gPSB7IDEzMCwgMTMwLCAxMzAg fSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19EQ0lfUDNdWzBdID0g eyAzMTc1LCAzMTc1LCAzMTc1IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVS X0ZVTkNfRENJX1AzXVsxXSA9IHsgMzE3NSwgMzE3NSwgMTMwOCB9LAorCVtWNEwyX0NPTE9SU1BB Q0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX0RDSV9QM11bMl0gPSB7IDIwNjksIDMxNzUsIDMxNzUg fSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19EQ0lfUDNdWzNdID0g eyAyMDY5LCAzMTc1LCAxMzA4IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVS X0ZVTkNfRENJX1AzXVs0XSA9IHsgMjgxNiwgMTA4NCwgMzEyNyB9LAorCVtWNEwyX0NPTE9SU1BB Q0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX0RDSV9QM11bNV0gPSB7IDI4MTYsIDEwODQsIDEwODQg fSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19EQ0lfUDNdWzZdID0g eyAxMDg0LCAxMDg0LCAzMTI3IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVS X0ZVTkNfRENJX1AzXVs3XSA9IHsgMTA4NCwgMTA4NCwgMTA4NCB9LAorCVtWNEwyX0NPTE9SU1BB Q0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjA4NF1bMF0gPSB7IDE4MTIsIDE4MTIsIDE4 MTIgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19TTVBURTIwODRd WzFdID0geyAxODEyLCAxODEyLCAxMDIyIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRM Ml9YRkVSX0ZVTkNfU01QVEUyMDg0XVsyXSA9IHsgMTQwMiwgMTgxMiwgMTgxMiB9LAorCVtWNEwy X0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjA4NF1bM10gPSB7IDE0MDIs IDE4MTIsIDEwMjIgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09QUkdCXVtWNEwyX1hGRVJfRlVOQ19T TVBURTIwODRdWzRdID0geyAxNjkyLCA4ODYsIDE3OTcgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX09Q UkdCXVtWNEwyX1hGRVJfRlVOQ19TTVBURTIwODRdWzVdID0geyAxNjkyLCA4ODYsIDg4NiB9LAor CVtWNEwyX0NPTE9SU1BBQ0VfT1BSR0JdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjA4NF1bNl0gPSB7 IDg4NiwgODg2LCAxNzk3IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9PUFJHQl1bVjRMMl9YRkVSX0ZV TkNfU01QVEUyMDg0XVs3XSA9IHsgODg2LCA4ODYsIDg4NiB9LAogCVtWNEwyX0NPTE9SU1BBQ0Vf QlQyMDIwXVtWNEwyX1hGRVJfRlVOQ183MDldWzBdID0geyAyOTM5LCAyOTM5LCAyOTM5IH0sCiAJ W1Y0TDJfQ09MT1JTUEFDRV9CVDIwMjBdW1Y0TDJfWEZFUl9GVU5DXzcwOV1bMV0gPSB7IDI4Nzcs IDI5MjMsIDEwNTggfSwKIAlbVjRMMl9DT0xPUlNQQUNFX0JUMjAyMF1bVjRMMl9YRkVSX0ZVTkNf NzA5XVsyXSA9IHsgMTgzNywgMjg0MCwgMjkxNiB9LApAQCAtOTk0LDE0ICs5OTQsMTQgQEAgY29u c3Qgc3RydWN0IHRwZ19yYmdfY29sb3IxNiB0cGdfY3NjX2NvbG9yc1tWNEwyX0NPTE9SU1BBQ0Vf RENJX1AzICsgMV1bVjRMMl9YRkUKIAlbVjRMMl9DT0xPUlNQQUNFX0JUMjAyMF1bVjRMMl9YRkVS X0ZVTkNfU1JHQl1bNV0gPSB7IDI1MTcsIDExNTksIDkwMCB9LAogCVtWNEwyX0NPTE9SU1BBQ0Vf QlQyMDIwXVtWNEwyX1hGRVJfRlVOQ19TUkdCXVs2XSA9IHsgMTA0MiwgODcwLCAyOTE3IH0sCiAJ W1Y0TDJfQ09MT1JTUEFDRV9CVDIwMjBdW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzddID0geyA4MDAs IDgwMCwgODAwIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9CVDIwMjBdW1Y0TDJfWEZFUl9GVU5DX0FE T0JFUkdCXVswXSA9IHsgMzAzMywgMzAzMywgMzAzMyB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfQlQy MDIwXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bMV0gPSB7IDI5NzYsIDMwMTgsIDEzMTUgfSwK LQlbVjRMMl9DT0xPUlNQQUNFX0JUMjAyMF1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzJdID0g eyAyMDI0LCAyOTQyLCAzMDExIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9CVDIwMjBdW1Y0TDJfWEZF Ul9GVU5DX0FET0JFUkdCXVszXSA9IHsgMTkzMCwgMjkyNiwgMTI1NiB9LAotCVtWNEwyX0NPTE9S U1BBQ0VfQlQyMDIwXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bNF0gPSB7IDI1NjMsIDEyMjcs IDI5MTYgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0JUMjAyMF1bVjRMMl9YRkVSX0ZVTkNfQURPQkVS R0JdWzVdID0geyAyNDk0LCAxMTgzLCA5NDMgfSwKLQlbVjRMMl9DT0xPUlNQQUNFX0JUMjAyMF1b VjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzZdID0geyAxMDczLCA5MTYsIDI4OTQgfSwKLQlbVjRM Ml9DT0xPUlNQQUNFX0JUMjAyMF1bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzddID0geyA4NTEs IDg1MSwgODUxIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9CVDIwMjBdW1Y0TDJfWEZFUl9GVU5DX09Q UkdCXVswXSA9IHsgMzAzMywgMzAzMywgMzAzMyB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfQlQyMDIw XVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bMV0gPSB7IDI5NzYsIDMwMTgsIDEzMTUgfSwKKwlbVjRM Ml9DT0xPUlNQQUNFX0JUMjAyMF1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzJdID0geyAyMDI0LCAy OTQyLCAzMDExIH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9CVDIwMjBdW1Y0TDJfWEZFUl9GVU5DX09Q UkdCXVszXSA9IHsgMTkzMCwgMjkyNiwgMTI1NiB9LAorCVtWNEwyX0NPTE9SU1BBQ0VfQlQyMDIw XVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bNF0gPSB7IDI1NjMsIDEyMjcsIDI5MTYgfSwKKwlbVjRM Ml9DT0xPUlNQQUNFX0JUMjAyMF1bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzVdID0geyAyNDk0LCAx MTgzLCA5NDMgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX0JUMjAyMF1bVjRMMl9YRkVSX0ZVTkNfT1BS R0JdWzZdID0geyAxMDczLCA5MTYsIDI4OTQgfSwKKwlbVjRMMl9DT0xPUlNQQUNFX0JUMjAyMF1b VjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzddID0geyA4NTEsIDg1MSwgODUxIH0sCiAJW1Y0TDJfQ09M T1JTUEFDRV9CVDIwMjBdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMF0gPSB7IDI5MjYsIDI5 MjYsIDI5MjYgfSwKIAlbVjRMMl9DT0xPUlNQQUNFX0JUMjAyMF1bVjRMMl9YRkVSX0ZVTkNfU01Q VEUyNDBNXVsxXSA9IHsgMjg2NCwgMjkxMCwgMTAyNCB9LAogCVtWNEwyX0NPTE9SU1BBQ0VfQlQy MDIwXVtWNEwyX1hGRVJfRlVOQ19TTVBURTI0ME1dWzJdID0geyAxODExLCAyODI2LCAyOTAzIH0s CkBAIC0xMDUwLDE0ICsxMDUwLDE0IEBAIGNvbnN0IHN0cnVjdCB0cGdfcmJnX2NvbG9yMTYgdHBn X2NzY19jb2xvcnNbVjRMMl9DT0xPUlNQQUNFX0RDSV9QMyArIDFdW1Y0TDJfWEZFCiAJW1Y0TDJf Q09MT1JTUEFDRV9EQ0lfUDNdW1Y0TDJfWEZFUl9GVU5DX1NSR0JdWzVdID0geyAyODgwLCA5OTgs IDkwMiB9LAogCVtWNEwyX0NPTE9SU1BBQ0VfRENJX1AzXVtWNEwyX1hGRVJfRlVOQ19TUkdCXVs2 XSA9IHsgODE2LCA4MjMsIDI5NDAgfSwKIAlbVjRMMl9DT0xPUlNQQUNFX0RDSV9QM11bVjRMMl9Y RkVSX0ZVTkNfU1JHQl1bN10gPSB7IDgwMCwgODAwLCA3OTkgfSwKLQlbVjRMMl9DT0xPUlNQQUNF X0RDSV9QM11bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzBdID0geyAzMDMzLCAzMDMzLCAzMDMz IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9EQ0lfUDNdW1Y0TDJfWEZFUl9GVU5DX0FET0JFUkdCXVsx XSA9IHsgMzAyOSwgMzAyOCwgMTI1NSB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfRENJX1AzXVtWNEwy X1hGRVJfRlVOQ19BRE9CRVJHQl1bMl0gPSB7IDE0MDYsIDI5ODgsIDMwMTEgfSwKLQlbVjRMMl9D T0xPUlNQQUNFX0RDSV9QM11bVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0JdWzNdID0geyAxMzk4LCAy OTgzLCAxMTkwIH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9EQ0lfUDNdW1Y0TDJfWEZFUl9GVU5DX0FE T0JFUkdCXVs0XSA9IHsgMjg2MCwgMTA1MCwgMjkzOSB9LAotCVtWNEwyX0NPTE9SU1BBQ0VfRENJ X1AzXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bNV0gPSB7IDI4NTcsIDEwMzMsIDk0NSB9LAot CVtWNEwyX0NPTE9SU1BBQ0VfRENJX1AzXVtWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQl1bNl0gPSB7 IDg2NiwgODczLCAyOTE2IH0sCi0JW1Y0TDJfQ09MT1JTUEFDRV9EQ0lfUDNdW1Y0TDJfWEZFUl9G VU5DX0FET0JFUkdCXVs3XSA9IHsgODUxLCA4NTEsIDg1MSB9LAorCVtWNEwyX0NPTE9SU1BBQ0Vf RENJX1AzXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bMF0gPSB7IDMwMzMsIDMwMzMsIDMwMzMgfSwK KwlbVjRMMl9DT0xPUlNQQUNFX0RDSV9QM11bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzFdID0geyAz MDI5LCAzMDI4LCAxMjU1IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9EQ0lfUDNdW1Y0TDJfWEZFUl9G VU5DX09QUkdCXVsyXSA9IHsgMTQwNiwgMjk4OCwgMzAxMSB9LAorCVtWNEwyX0NPTE9SU1BBQ0Vf RENJX1AzXVtWNEwyX1hGRVJfRlVOQ19PUFJHQl1bM10gPSB7IDEzOTgsIDI5ODMsIDExOTAgfSwK KwlbVjRMMl9DT0xPUlNQQUNFX0RDSV9QM11bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzRdID0geyAy ODYwLCAxMDUwLCAyOTM5IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9EQ0lfUDNdW1Y0TDJfWEZFUl9G VU5DX09QUkdCXVs1XSA9IHsgMjg1NywgMTAzMywgOTQ1IH0sCisJW1Y0TDJfQ09MT1JTUEFDRV9E Q0lfUDNdW1Y0TDJfWEZFUl9GVU5DX09QUkdCXVs2XSA9IHsgODY2LCA4NzMsIDI5MTYgfSwKKwlb VjRMMl9DT0xPUlNQQUNFX0RDSV9QM11bVjRMMl9YRkVSX0ZVTkNfT1BSR0JdWzddID0geyA4NTEs IDg1MSwgODUxIH0sCiAJW1Y0TDJfQ09MT1JTUEFDRV9EQ0lfUDNdW1Y0TDJfWEZFUl9GVU5DX1NN UFRFMjQwTV1bMF0gPSB7IDI5MjYsIDI5MjYsIDI5MjYgfSwKIAlbVjRMMl9DT0xPUlNQQUNFX0RD SV9QM11bVjRMMl9YRkVSX0ZVTkNfU01QVEUyNDBNXVsxXSA9IHsgMjkyMywgMjkyMSwgOTU3IH0s CiAJW1Y0TDJfQ09MT1JTUEFDRV9EQ0lfUDNdW1Y0TDJfWEZFUl9GVU5DX1NNUFRFMjQwTV1bMl0g PSB7IDExMjUsIDI4NzcsIDI5MDIgfSwKQEAgLTExMjgsNyArMTEyOCw3IEBAIHN0YXRpYyBjb25z dCBkb3VibGUgcmVjNzA5X3RvXzI0MG1bM11bM10gPSB7CiAJeyAwLjAwMTYzMjcsIDAuMDA0NDEz MywgMC45OTM5NTQwIH0sCiB9OwogCi1zdGF0aWMgY29uc3QgZG91YmxlIHJlYzcwOV90b19hZG9i ZXJnYlszXVszXSA9IHsKK3N0YXRpYyBjb25zdCBkb3VibGUgcmVjNzA5X3RvX29wcmdiWzNdWzNd ID0gewogCXsgMC43MTUxNjI3LCAwLjI4NDgzNzMsIC0wLjAwMDAwMDAgfSwKIAl7IDAuMDAwMDAw MCwgMS4wMDAwMDAwLCAwLjAwMDAwMDAgfSwKIAl7IC0wLjAwMDAwMDAsIDAuMDQxMTcwNSwgMC45 NTg4Mjk1IH0sCkBAIC0xMTk1LDcgKzExOTUsNyBAQCBzdGF0aWMgZG91YmxlIHRyYW5zZmVyX3Jl YzcwOV90b19yZ2IoZG91YmxlIHYpCiAJcmV0dXJuICh2IDwgMC4wODEpID8gdiAvIDQuNSA6IHBv dygodiArIDAuMDk5KSAvIDEuMDk5LCAxLjAgLyAwLjQ1KTsKIH0KIAotc3RhdGljIGRvdWJsZSB0 cmFuc2Zlcl9yZ2JfdG9fYWRvYmVyZ2IoZG91YmxlIHYpCitzdGF0aWMgZG91YmxlIHRyYW5zZmVy X3JnYl90b19vcHJnYihkb3VibGUgdikKIHsKIAlyZXR1cm4gcG93KHYsIDEuMCAvIDIuMTk5MjE4 NzUpOwogfQpAQCAtMTI1MSw4ICsxMjUxLDggQEAgc3RhdGljIHZvaWQgY3NjKGVudW0gdjRsMl9j b2xvcnNwYWNlIGNvbG9yc3BhY2UsIGVudW0gdjRsMl94ZmVyX2Z1bmMgeGZlcl9mdW5jLAogCWNh c2UgVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fTToKIAkJbXVsdF9tYXRyaXgociwgZywgYiwg cmVjNzA5X3RvX250c2MxOTUzKTsKIAkJYnJlYWs7Ci0JY2FzZSBWNEwyX0NPTE9SU1BBQ0VfQURP QkVSR0I6Ci0JCW11bHRfbWF0cml4KHIsIGcsIGIsIHJlYzcwOV90b19hZG9iZXJnYik7CisJY2Fz ZSBWNEwyX0NPTE9SU1BBQ0VfT1BSR0I6CisJCW11bHRfbWF0cml4KHIsIGcsIGIsIHJlYzcwOV90 b19vcHJnYik7CiAJCWJyZWFrOwogCWNhc2UgVjRMMl9DT0xPUlNQQUNFX0JUMjAyMDoKIAkJbXVs dF9tYXRyaXgociwgZywgYiwgcmVjNzA5X3RvX2J0MjAyMCk7CkBAIC0xMjg0LDEwICsxMjg0LDEw IEBAIHN0YXRpYyB2b2lkIGNzYyhlbnVtIHY0bDJfY29sb3JzcGFjZSBjb2xvcnNwYWNlLCBlbnVt IHY0bDJfeGZlcl9mdW5jIHhmZXJfZnVuYywKIAkJKmcgPSB0cmFuc2Zlcl9yZ2JfdG9fc3JnYigq Zyk7CiAJCSpiID0gdHJhbnNmZXJfcmdiX3RvX3NyZ2IoKmIpOwogCQlicmVhazsKLQljYXNlIFY0 TDJfWEZFUl9GVU5DX0FET0JFUkdCOgotCQkqciA9IHRyYW5zZmVyX3JnYl90b19hZG9iZXJnYigq cik7Ci0JCSpnID0gdHJhbnNmZXJfcmdiX3RvX2Fkb2JlcmdiKCpnKTsKLQkJKmIgPSB0cmFuc2Zl cl9yZ2JfdG9fYWRvYmVyZ2IoKmIpOworCWNhc2UgVjRMMl9YRkVSX0ZVTkNfT1BSR0I6CisJCSpy ID0gdHJhbnNmZXJfcmdiX3RvX29wcmdiKCpyKTsKKwkJKmcgPSB0cmFuc2Zlcl9yZ2JfdG9fb3By Z2IoKmcpOworCQkqYiA9IHRyYW5zZmVyX3JnYl90b19vcHJnYigqYik7CiAJCWJyZWFrOwogCWNh c2UgVjRMMl9YRkVSX0ZVTkNfRENJX1AzOgogCQkqciA9IHRyYW5zZmVyX3JnYl90b19kY2lwMygq cik7CkBAIC0xMzIxLDcgKzEzMjEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJCVY0TDJfQ09MT1JTUEFDRV80NzBfU1lTVEVNX0JHLAogCQkwLAogCQlWNEwyX0NPTE9SU1BB Q0VfU1JHQiwKLQkJVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCLAorCQlWNEwyX0NPTE9SU1BBQ0Vf T1BSR0IsCiAJCVY0TDJfQ09MT1JTUEFDRV9CVDIwMjAsCiAJCTAsCiAJCVY0TDJfQ09MT1JTUEFD RV9EQ0lfUDMsCkBAIC0xMzM2LDcgKzEzMzYsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJCSJWNEwyX0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9CRyIsCiAJCSIiLAogCQkiVjRM Ml9DT0xPUlNQQUNFX1NSR0IiLAotCQkiVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCIiwKKwkJIlY0 TDJfQ09MT1JTUEFDRV9PUFJHQiIsCiAJCSJWNEwyX0NPTE9SU1BBQ0VfQlQyMDIwIiwKIAkJIiIs CiAJCSJWNEwyX0NPTE9SU1BBQ0VfRENJX1AzIiwKQEAgLTEzNDUsNyArMTM0NSw3IEBAIGludCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJIiIsCiAJCSJWNEwyX1hGRVJfRlVOQ183MDki LAogCQkiVjRMMl9YRkVSX0ZVTkNfU1JHQiIsCi0JCSJWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQiIs CisJCSJWNEwyX1hGRVJfRlVOQ19PUFJHQiIsCiAJCSJWNEwyX1hGRVJfRlVOQ19TTVBURTI0ME0i LAogCQkiVjRMMl9YRkVSX0ZVTkNfTk9ORSIsCiAJCSJWNEwyX1hGRVJfRlVOQ19EQ0lfUDMiLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9pMmMvYWR2NzUxMS5jIGIvZHJpdmVycy9tZWRpYS9p MmMvYWR2NzUxMS5jCmluZGV4IDU1YzJlYTA3MjBkOS4uYTFmNzNkOTk4NDk1IDEwMDY0NAotLS0g YS9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NTExLmMKKysrIGIvZHJpdmVycy9tZWRpYS9pMmMvYWR2 NzUxMS5jCkBAIC0xMzU1LDcgKzEzNTUsNyBAQCBzdGF0aWMgaW50IGFkdjc1MTFfc2V0X2ZtdChz dHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLAogCXN0YXRlLT54ZmVyX2Z1bmMgPSBmb3JtYXQtPmZvcm1h dC54ZmVyX2Z1bmM7CiAKIAlzd2l0Y2ggKGZvcm1hdC0+Zm9ybWF0LmNvbG9yc3BhY2UpIHsKLQlj YXNlIFY0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQjoKKwljYXNlIFY0TDJfQ09MT1JTUEFDRV9PUFJH QjoKIAkJYyA9IEhETUlfQ09MT1JJTUVUUllfRVhURU5ERUQ7CiAJCWVjID0geSA/IEhETUlfRVhU RU5ERURfQ09MT1JJTUVUUllfQURPQkVfWUNDXzYwMSA6CiAJCQkgSERNSV9FWFRFTkRFRF9DT0xP UklNRVRSWV9BRE9CRV9SR0I7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NjA0 LmMgYi9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NjA0LmMKaW5kZXggNjY4YmUyYmNhNTdhLi42NGU3 ZDdiMzdhZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvaTJjL2Fkdjc2MDQuYworKysgYi9k cml2ZXJzL21lZGlhL2kyYy9hZHY3NjA0LmMKQEAgLTI0NzQsNyArMjQ3NCw3IEBAIHN0YXRpYyBp bnQgYWR2NzZ4eF9sb2dfc3RhdHVzKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QpCiAJCSJZQ2JDciBC dC42MDEgKDE2LTIzNSkiLCAiWUNiQ3IgQnQuNzA5ICgxNi0yMzUpIiwKIAkJInh2WUNDIEJ0LjYw MSIsICJ4dllDQyBCdC43MDkiLAogCQkiWUNiQ3IgQnQuNjAxICgwLTI1NSkiLCAiWUNiQ3IgQnQu NzA5ICgwLTI1NSkiLAotCQkic1lDQyIsICJBZG9iZSBZQ0MgNjAxIiwgIkFkb2JlUkdCIiwgImlu dmFsaWQiLCAiaW52YWxpZCIsCisJCSJzWUNDIiwgIm9wWUNDIDYwMSIsICJvcFJHQiIsICJpbnZh bGlkIiwgImludmFsaWQiLAogCQkiaW52YWxpZCIsICJpbnZhbGlkIiwgImludmFsaWQiCiAJfTsK IAlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJnYl9xdWFudGl6YXRpb25fcmFuZ2VfdHh0W10g PSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy90YzM1ODc0My5jIGIvZHJpdmVycy9t ZWRpYS9pMmMvdGMzNTg3NDMuYwppbmRleCA0NGM0MTkzMzQxNWEuLmZmMjVlYTlhY2E0OCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvdGMzNTg3NDMuYworKysgYi9kcml2ZXJzL21lZGlh L2kyYy90YzM1ODc0My5jCkBAIC0xMjQzLDkgKzEyNDMsOSBAQCBzdGF0aWMgaW50IHRjMzU4NzQz X2xvZ19zdGF0dXMoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCkKIAl1OCB2aV9zdGF0dXMzID0gIGky Y19yZDgoc2QsIFZJX1NUQVRVUzMpOwogCWNvbnN0IGludCBkZWVwX2NvbG9yX21vZGVbNF0gPSB7 IDgsIDEwLCAxMiwgMTYgfTsKIAlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGlucHV0X2NvbG9y X3NwYWNlW10gPSB7Ci0JCSJSR0IiLCAiWUNiQ3IgNjAxIiwgIkFkb2JlIFJHQiIsICJZQ2JDciA3 MDkiLCAiTkEgKDQpIiwKKwkJIlJHQiIsICJZQ2JDciA2MDEiLCAib3BSR0IiLCAiWUNiQ3IgNzA5 IiwgIk5BICg0KSIsCiAJCSJ4dllDQyA2MDEiLCAiTkEoNikiLCAieHZZQ0MgNzA5IiwgIk5BKDgp IiwgInNZQ0M2MDEiLAotCQkiTkEoMTApIiwgIk5BKDExKSIsICJOQSgxMikiLCAiQWRvYmUgWUND IDYwMSJ9OworCQkiTkEoMTApIiwgIk5BKDExKSIsICJOQSgxMikiLCAib3BZQ0MgNjAxIn07CiAK IAl2NGwyX2luZm8oc2QsICItLS0tLUNoaXAgc3RhdHVzLS0tLS1cbiIpOwogCXY0bDJfaW5mbyhz ZCwgIkNoaXAgSUQ6IDB4JTAyeFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vdml2aWQvdml2aWQtY29yZS5oIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92aXZpZC92aXZp ZC1jb3JlLmgKaW5kZXggNDc3YzgwYTRkNDRjLi5jZDRjODIzMDU2M2MgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vdml2aWQvdml2aWQtY29yZS5oCisrKyBiL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vdml2aWQvdml2aWQtY29yZS5oCkBAIC0xMTEsNyArMTExLDcgQEAgZW51bSB2 aXZpZF9jb2xvcnNwYWNlIHsKIAlWSVZJRF9DU18xNzBNLAogCVZJVklEX0NTXzcwOSwKIAlWSVZJ RF9DU19TUkdCLAotCVZJVklEX0NTX0FET0JFUkdCLAorCVZJVklEX0NTX09QUkdCLAogCVZJVklE X0NTXzIwMjAsCiAJVklWSURfQ1NfRENJX1AzLAogCVZJVklEX0NTXzI0ME0sCmRpZmYgLS1naXQg YS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZpdmlkL3ZpdmlkLWN0cmxzLmMgYi9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3ZpdmlkL3ZpdmlkLWN0cmxzLmMKaW5kZXggNTQyOTE5M2ZiYjkxLi45OTlh YTEwMWIxNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdml2aWQvdml2aWQt Y3RybHMuYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZpdmlkL3ZpdmlkLWN0cmxzLmMK QEAgLTM0OCw3ICszNDgsNyBAQCBzdGF0aWMgaW50IHZpdmlkX3ZpZF9jYXBfc19jdHJsKHN0cnVj dCB2NGwyX2N0cmwgKmN0cmwpCiAJCVY0TDJfQ09MT1JTUEFDRV9TTVBURTE3ME0sCiAJCVY0TDJf Q09MT1JTUEFDRV9SRUM3MDksCiAJCVY0TDJfQ09MT1JTUEFDRV9TUkdCLAotCQlWNEwyX0NPTE9S U1BBQ0VfQURPQkVSR0IsCisJCVY0TDJfQ09MT1JTUEFDRV9PUFJHQiwKIAkJVjRMMl9DT0xPUlNQ QUNFX0JUMjAyMCwKIAkJVjRMMl9DT0xPUlNQQUNFX0RDSV9QMywKIAkJVjRMMl9DT0xPUlNQQUNF X1NNUFRFMjQwTSwKQEAgLTcyOSw3ICs3MjksNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IHZpdmlkX2N0cmxfY29sb3JzcGFjZV9zdHJpbmdzW10gPSB7CiAJIlNNUFRFIDE3ME0iLAogCSJS ZWMuIDcwOSIsCiAJInNSR0IiLAotCSJBZG9iZVJHQiIsCisJIm9wUkdCIiwKIAkiQlQuMjAyMCIs CiAJIkRDSS1QMyIsCiAJIlNNUFRFIDI0ME0iLApAQCAtNzUyLDcgKzc1Miw3IEBAIHN0YXRpYyBj b25zdCBjaGFyICogY29uc3Qgdml2aWRfY3RybF94ZmVyX2Z1bmNfc3RyaW5nc1tdID0gewogCSJE ZWZhdWx0IiwKIAkiUmVjLiA3MDkiLAogCSJzUkdCIiwKLQkiQWRvYmVSR0IiLAorCSJvcFJHQiIs CiAJIlNNUFRFIDI0ME0iLAogCSJOb25lIiwKIAkiRENJLVAzIiwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vdml2aWQvdml2aWQtdmlkLW91dC5jIGIvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS92aXZpZC92aXZpZC12aWQtb3V0LmMKaW5kZXggNTFmZWM2NmQ4ZDQ1Li41MDI0OGUy MTc2YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdml2aWQvdml2aWQtdmlk LW91dC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdml2aWQvdml2aWQtdmlkLW91dC5j CkBAIC00MTMsNyArNDEzLDcgQEAgaW50IHZpdmlkX3RyeV9mbXRfdmlkX291dChzdHJ1Y3QgZmls ZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAkJbXAtPmNvbG9yc3BhY2UgPSBWNEwyX0NPTE9SU1BBQ0Vf U01QVEUxNzBNOwogCX0gZWxzZSBpZiAobXAtPmNvbG9yc3BhY2UgIT0gVjRMMl9DT0xPUlNQQUNF X1NNUFRFMTcwTSAmJgogCQkgICBtcC0+Y29sb3JzcGFjZSAhPSBWNEwyX0NPTE9SU1BBQ0VfUkVD NzA5ICYmCi0JCSAgIG1wLT5jb2xvcnNwYWNlICE9IFY0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQiAm JgorCQkgICBtcC0+Y29sb3JzcGFjZSAhPSBWNEwyX0NPTE9SU1BBQ0VfT1BSR0IgJiYKIAkJICAg bXAtPmNvbG9yc3BhY2UgIT0gVjRMMl9DT0xPUlNQQUNFX0JUMjAyMCAmJgogCQkgICBtcC0+Y29s b3JzcGFjZSAhPSBWNEwyX0NPTE9SU1BBQ0VfU1JHQikgewogCQltcC0+Y29sb3JzcGFjZSA9IFY0 TDJfQ09MT1JTUEFDRV9SRUM3MDk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29y ZS92NGwyLWR2LXRpbWluZ3MuYyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItZHYtdGlt aW5ncy5jCmluZGV4IDhmNTIzNTNiMDg4MS4uZmFjZDE4MDg3MGQ5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWR2LXRpbWluZ3MuYworKysgYi9kcml2ZXJzL21lZGlh L3Y0bDItY29yZS92NGwyLWR2LXRpbWluZ3MuYwpAQCAtODc3LDggKzg3Nyw4IEBAIHY0bDJfaGRt aV9yeF9jb2xvcmltZXRyeShjb25zdCBzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICphdmksCiAJ CWNhc2UgSERNSV9DT0xPUklNRVRSWV9FWFRFTkRFRDoKIAkJCXN3aXRjaCAoYXZpLT5leHRlbmRl ZF9jb2xvcmltZXRyeSkgewogCQkJY2FzZSBIRE1JX0VYVEVOREVEX0NPTE9SSU1FVFJZX0FET0JF X1JHQjoKLQkJCQljLmNvbG9yc3BhY2UgPSBWNEwyX0NPTE9SU1BBQ0VfQURPQkVSR0I7Ci0JCQkJ Yy54ZmVyX2Z1bmMgPSBWNEwyX1hGRVJfRlVOQ19BRE9CRVJHQjsKKwkJCQljLmNvbG9yc3BhY2Ug PSBWNEwyX0NPTE9SU1BBQ0VfT1BSR0I7CisJCQkJYy54ZmVyX2Z1bmMgPSBWNEwyX1hGRVJfRlVO Q19PUFJHQjsKIAkJCQlicmVhazsKIAkJCWNhc2UgSERNSV9FWFRFTkRFRF9DT0xPUklNRVRSWV9C VDIwMjA6CiAJCQkJYy5jb2xvcnNwYWNlID0gVjRMMl9DT0xPUlNQQUNFX0JUMjAyMDsKQEAgLTk0 OCw5ICs5NDgsOSBAQCB2NGwyX2hkbWlfcnhfY29sb3JpbWV0cnkoY29uc3Qgc3RydWN0IGhkbWlf YXZpX2luZm9mcmFtZSAqYXZpLAogCQkJCWMueGZlcl9mdW5jID0gVjRMMl9YRkVSX0ZVTkNfU1JH QjsKIAkJCQlicmVhazsKIAkJCWNhc2UgSERNSV9FWFRFTkRFRF9DT0xPUklNRVRSWV9BRE9CRV9Z Q0NfNjAxOgotCQkJCWMuY29sb3JzcGFjZSA9IFY0TDJfQ09MT1JTUEFDRV9BRE9CRVJHQjsKKwkJ CQljLmNvbG9yc3BhY2UgPSBWNEwyX0NPTE9SU1BBQ0VfT1BSR0I7CiAJCQkJYy55Y2Jjcl9lbmMg PSBWNEwyX1lDQkNSX0VOQ182MDE7Ci0JCQkJYy54ZmVyX2Z1bmMgPSBWNEwyX1hGRVJfRlVOQ19B RE9CRVJHQjsKKwkJCQljLnhmZXJfZnVuYyA9IFY0TDJfWEZFUl9GVU5DX09QUkdCOwogCQkJCWJy ZWFrOwogCQkJY2FzZSBIRE1JX0VYVEVOREVEX0NPTE9SSU1FVFJZX0JUMjAyMDoKIAkJCQljLmNv bG9yc3BhY2UgPSBWNEwyX0NPTE9SU1BBQ0VfQlQyMDIwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91 YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oCmlu ZGV4IDE4NGU0ZGJlOGY5Yy4uYzFlMTRhM2I0NzZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkv bGludXgvdmlkZW9kZXYyLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oCkBA IC0yMjUsOCArMjI1LDEyIEBAIGVudW0gdjRsMl9jb2xvcnNwYWNlIHsKIAkvKiBGb3IgUkdCIGNv bG9yc3BhY2VzIHN1Y2ggYXMgcHJvZHVjZXMgYnkgbW9zdCB3ZWJjYW1zLiAqLwogCVY0TDJfQ09M T1JTUEFDRV9TUkdCICAgICAgICAgID0gOCwKIAotCS8qIEFkb2JlUkdCIGNvbG9yc3BhY2UgKi8K KwkvKiBvcFJHQiBjb2xvcnNwYWNlICovCisJVjRMMl9DT0xPUlNQQUNFX09QUkdCICAgICAgICAg PSA5LAorI2lmbmRlZiBfX0tFUk5FTF9fCisJLyogRGVwcmVjYXRlZCBhbGlhcyBmb3IgVjRMMl9D T0xPUlNQQUNFX09QUkdCICovCiAJVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCICAgICAgPSA5LAor I2VuZGlmCiAKIAkvKiBCVC4yMDIwIGNvbG9yc3BhY2UsIHVzZWQgZm9yIFVIRFRWLiAqLwogCVY0 TDJfQ09MT1JTUEFDRV9CVDIwMjAgICAgICAgID0gMTAsCkBAIC0yNTgsNyArMjYyLDcgQEAgZW51 bSB2NGwyX3hmZXJfZnVuYyB7CiAJICoKIAkgKiBWNEwyX0NPTE9SU1BBQ0VfU1JHQiwgVjRMMl9D T0xPUlNQQUNFX0pQRUc6IFY0TDJfWEZFUl9GVU5DX1NSR0IKIAkgKgotCSAqIFY0TDJfQ09MT1JT UEFDRV9BRE9CRVJHQjogVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0IKKwkgKiBWNEwyX0NPTE9SU1BB Q0VfT1BSR0I6IFY0TDJfWEZFUl9GVU5DX09QUkdCCiAJICoKIAkgKiBWNEwyX0NPTE9SU1BBQ0Vf U01QVEUyNDBNOiBWNEwyX1hGRVJfRlVOQ19TTVBURTI0ME0KIAkgKgpAQCAtMjY5LDcgKzI3Mywx MSBAQCBlbnVtIHY0bDJfeGZlcl9mdW5jIHsKIAlWNEwyX1hGRVJfRlVOQ19ERUZBVUxUICAgICA9 IDAsCiAJVjRMMl9YRkVSX0ZVTkNfNzA5ICAgICAgICAgPSAxLAogCVY0TDJfWEZFUl9GVU5DX1NS R0IgICAgICAgID0gMiwKKwlWNEwyX1hGRVJfRlVOQ19PUFJHQiAgICAgICA9IDMsCisjaWZuZGVm IF9fS0VSTkVMX18KKwkvKiBEZXByZWNhdGVkIGFsaWFzIGZvciBWNEwyX1hGRVJfRlVOQ19PUFJH QiAqLwogCVY0TDJfWEZFUl9GVU5DX0FET0JFUkdCICAgID0gMywKKyNlbmRpZgogCVY0TDJfWEZF Ul9GVU5DX1NNUFRFMjQwTSAgID0gNCwKIAlWNEwyX1hGRVJfRlVOQ19OT05FICAgICAgICA9IDUs CiAJVjRMMl9YRkVSX0ZVTkNfRENJX1AzICAgICAgPSA2LApAQCAtMjgxLDcgKzI4OSw3IEBAIGVu dW0gdjRsMl94ZmVyX2Z1bmMgewogICogVGhpcyBkZXBlbmRzIG9uIHRoZSBjb2xvcnNwYWNlLgog ICovCiAjZGVmaW5lIFY0TDJfTUFQX1hGRVJfRlVOQ19ERUZBVUxUKGNvbHNwKSBcCi0JKChjb2xz cCkgPT0gVjRMMl9DT0xPUlNQQUNFX0FET0JFUkdCID8gVjRMMl9YRkVSX0ZVTkNfQURPQkVSR0Ig OiBcCisJKChjb2xzcCkgPT0gVjRMMl9DT0xPUlNQQUNFX09QUkdCID8gVjRMMl9YRkVSX0ZVTkNf T1BSR0IgOiBcCiAJICgoY29sc3ApID09IFY0TDJfQ09MT1JTUEFDRV9TTVBURTI0ME0gPyBWNEwy X1hGRVJfRlVOQ19TTVBURTI0ME0gOiBcCiAJICAoKGNvbHNwKSA9PSBWNEwyX0NPTE9SU1BBQ0Vf RENJX1AzID8gVjRMMl9YRkVSX0ZVTkNfRENJX1AzIDogXAogCSAgICgoY29sc3ApID09IFY0TDJf Q09MT1JTUEFDRV9SQVcgPyBWNEwyX1hGRVJfRlVOQ19OT05FIDogXApAQCAtMjk1LDcgKzMwMyw3 IEBAIGVudW0gdjRsMl95Y2Jjcl9lbmNvZGluZyB7CiAJICoKIAkgKiBWNEwyX0NPTE9SU1BBQ0Vf U01QVEUxNzBNLCBWNEwyX0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9NLAogCSAqIFY0TDJfQ09MT1JT UEFDRV80NzBfU1lTVEVNX0JHLCBWNEwyX0NPTE9SU1BBQ0VfU1JHQiwKLQkgKiBWNEwyX0NPTE9S U1BBQ0VfQURPQkVSR0IgYW5kIFY0TDJfQ09MT1JTUEFDRV9KUEVHOiBWNEwyX1lDQkNSX0VOQ182 MDEKKwkgKiBWNEwyX0NPTE9SU1BBQ0VfT1BSR0IgYW5kIFY0TDJfQ09MT1JTUEFDRV9KUEVHOiBW NEwyX1lDQkNSX0VOQ182MDEKIAkgKgogCSAqIFY0TDJfQ09MT1JTUEFDRV9SRUM3MDkgYW5kIFY0 TDJfQ09MT1JTUEFDRV9EQ0lfUDM6IFY0TDJfWUNCQ1JfRU5DXzcwOQogCSAqCi0tIAoyLjE4LjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=