[{"id":39749,"web_url":"https://patchwork.libcamera.org/comment/39749/","msgid":"<91bddaa5-1ce8-4a98-b631-03f60bfc2d72@collabora.com>","date":"2026-07-17T15:35:13","subject":"Re: [PATCH v1 2/2] ipa: rpi: Add support for Sony IMX355","submitter":{"id":140,"url":"https://patchwork.libcamera.org/api/people/140/","name":"Robert Mader","email":"robert.mader@collabora.com"},"content":"Hi! I tested the CCMs with the simple pipeline / softISP and it looks \npretty good. Probably not enough for an TB, though :)\n\nOn 17.07.26 15:42, Naushir Patuck wrote:\n> This includes the RPi camera helper and pisp/vc4 tuning files.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>   src/ipa/rpi/cam_helper/cam_helper_imx355.cpp |   69 +\n>   src/ipa/rpi/cam_helper/meson.build           |    1 +\n>   src/ipa/rpi/pisp/data/imx355.json            | 1233 ++++++++++++++++++\n>   src/ipa/rpi/pisp/data/meson.build            |    1 +\n>   src/ipa/rpi/vc4/data/imx355.json             |  416 ++++++\n>   5 files changed, 1720 insertions(+)\n>   create mode 100644 src/ipa/rpi/cam_helper/cam_helper_imx355.cpp\n>   create mode 100644 src/ipa/rpi/pisp/data/imx355.json\n>   create mode 100644 src/ipa/rpi/vc4/data/imx355.json\n>\n> diff --git a/src/ipa/rpi/cam_helper/cam_helper_imx355.cpp b/src/ipa/rpi/cam_helper/cam_helper_imx355.cpp\n> new file mode 100644\n> index 000000000000..00e5fc836433\n> --- /dev/null\n> +++ b/src/ipa/rpi/cam_helper/cam_helper_imx355.cpp\n> @@ -0,0 +1,69 @@\n> +/* SPDX-License-Identifier: BSD-2-Clause */\n> +/*\n> + * Copyright (C) 2026, Raspberry Pi Ltd\n> + *\n> + * camera helper for imx355 sensor\n> + */\n> +\n> +#include <assert.h>\n> +#include <stddef.h>\n> +#include <stdio.h>\n> +#include <stdlib.h>\n> +\n> +#include \"cam_helper.h\"\n> +\n> +using namespace RPiController;\n> +\n> +class CamHelperImx355 : public CamHelper\n> +{\n> +public:\n> +\tCamHelperImx355();\n> +\tuint32_t gainCode(double gain) const override;\n> +\tdouble gain(uint32_t gainCode) const override;\n> +\tunsigned int mistrustFramesModeSwitch() const override;\n> +\tbool sensorEmbeddedDataPresent() const override;\n> +\n> +private:\n> +\t/*\n> +\t * Smallest difference between the frame length and integration time,\n> +\t * in units of lines.\n> +\t */\n> +\tstatic constexpr int frameIntegrationDiff = 4;\n> +};\n> +\n> +CamHelperImx355::CamHelperImx355()\n> +\t: CamHelper({}, frameIntegrationDiff)\n> +{\n> +}\n> +\n> +uint32_t CamHelperImx355::gainCode(double gain) const\n> +{\n> +\treturn (uint32_t)(1024 - 1024 / gain);\n> +}\n> +\n> +double CamHelperImx355::gain(uint32_t gainCode) const\n> +{\n> +\treturn 1024.0 / (1024 - gainCode);\n> +}\n> +\n> +unsigned int CamHelperImx355::mistrustFramesModeSwitch() const\n> +{\n> +\t/*\n> +\t * For reasons unknown, we do occasionally get a bogus metadata frame\n> +\t * at a mode switch (though not at start-up). Possibly warrants some\n> +\t * investigation, though not a big deal.\n> +\t */\n> +\treturn 1;\n> +}\n> +\n> +bool CamHelperImx355::sensorEmbeddedDataPresent() const\n> +{\n> +\treturn 0;\n> +}\n> +\n> +static CamHelper *create()\n> +{\n> +\treturn new CamHelperImx355();\n> +}\n> +\n> +static RegisterCamHelper reg(\"imx355\", &create);\n> diff --git a/src/ipa/rpi/cam_helper/meson.build b/src/ipa/rpi/cam_helper/meson.build\n> index eabd55dce5a1..0aa8c3dc2e2f 100644\n> --- a/src/ipa/rpi/cam_helper/meson.build\n> +++ b/src/ipa/rpi/cam_helper/meson.build\n> @@ -7,6 +7,7 @@ rpi_ipa_cam_helper_sources = files([\n>       'cam_helper_imx283.cpp',\n>       'cam_helper_imx290.cpp',\n>       'cam_helper_imx296.cpp',\n> +    'cam_helper_imx355.cpp',\n>       'cam_helper_imx415.cpp',\n>       'cam_helper_imx477.cpp',\n>       'cam_helper_imx519.cpp',\n> diff --git a/src/ipa/rpi/pisp/data/imx355.json b/src/ipa/rpi/pisp/data/imx355.json\n> new file mode 100644\n> index 000000000000..ce02340f4840\n> --- /dev/null\n> +++ b/src/ipa/rpi/pisp/data/imx355.json\n> @@ -0,0 +1,1233 @@\n> +{\n> +    \"version\": 2.0,\n> +    \"target\": \"pisp\",\n> +    \"algorithms\": [\n> +        {\n> +            \"rpi.black_level\":\n> +            {\n> +                \"black_level\": 4096\n> +            }\n> +        },\n> +        {\n> +            \"rpi.lux\":\n> +            {\n> +                \"reference_shutter_speed\": 15151,\n> +                \"reference_gain\": 1.5,\n> +                \"reference_aperture\": 1.0,\n> +                \"reference_lux\": 920,\n> +                \"reference_Y\": 8539\n> +            }\n> +        },\n> +        {\n> +            \"rpi.dpc\":\n> +            {\n> +                \"strength\": 1\n> +            }\n> +        },\n> +        {\n> +            \"rpi.noise\":\n> +            {\n> +                \"reference_constant\": 23,\n> +                \"reference_slope\": 5.041\n> +            }\n> +        },\n> +        {\n> +            \"rpi.geq\":\n> +            {\n> +                \"offset\": 104,\n> +                \"slope\": 0.01695\n> +            }\n> +        },\n> +        {\n> +            \"rpi.denoise\":\n> +            {\n> +                \"normal\":\n> +                {\n> +                    \"sdn\":\n> +                    {\n> +                        \"deviation\": 0.6,\n> +                        \"strength\": 0.95,\n> +                        \"deviation2\": 3.2,\n> +                        \"deviation_no_tdn\": 3.2,\n> +                        \"strength_no_tdn\": 0.95\n> +                    },\n> +                    \"cdn\":\n> +                    {\n> +                        \"deviation\": 200,\n> +                        \"strength\": 0.3\n> +                    },\n> +                    \"tdn\":\n> +                    {\n> +                        \"deviation\": 1.0,\n> +                        \"threshold\": 0.05\n> +                    }\n> +                },\n> +                \"hdr\":\n> +                {\n> +                    \"sdn\":\n> +                    {\n> +                        \"deviation\": 0.6,\n> +                        \"strength\": 0.95,\n> +                        \"deviation2\": 3.2,\n> +                        \"deviation_no_tdn\": 3.2,\n> +                        \"strength_no_tdn\": 0.95\n> +                    },\n> +                    \"cdn\":\n> +                    {\n> +                        \"deviation\": 200,\n> +                        \"strength\": 0.3\n> +                    },\n> +                    \"tdn\":\n> +                    {\n> +                        \"deviation\": 1.3,\n> +                        \"threshold\": 0.1\n> +                    }\n> +                },\n> +                \"night\":\n> +                {\n> +                    \"sdn\":\n> +                    {\n> +                        \"deviation\": 0.6,\n> +                        \"strength\": 0.95,\n> +                        \"deviation2\": 3.2,\n> +                        \"deviation_no_tdn\": 3.2,\n> +                        \"strength_no_tdn\": 0.95\n> +                    },\n> +                    \"cdn\":\n> +                    {\n> +                        \"deviation\": 200,\n> +                        \"strength\": 0.3\n> +                    },\n> +                    \"tdn\":\n> +                    {\n> +                        \"deviation\": 1.3,\n> +                        \"threshold\": 0.1\n> +                    }\n> +                }\n> +            }\n> +        },\n> +        {\n> +            \"rpi.awb\":\n> +            {\n> +                \"enabled\": true,\n> +                \"priors\": [\n> +                    {\n> +                        \"lux\": 0,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 1.0,\n> +                            3000, 0.0,\n> +                            13000, 0.0\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"lux\": 800,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 0.0,\n> +                            6000, 2.0,\n> +                            13000, 2.0\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"lux\": 1500,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 0.0,\n> +                            4000, 1.0,\n> +                            6000, 6.0,\n> +                            6500, 7.0,\n> +                            7000, 1.0,\n> +                            13000, 1.0\n> +                        ]\n> +                    }\n> +                ],\n> +                \"modes\":\n> +                {\n> +                    \"auto\":\n> +                    {\n> +                        \"lo\": 2920.0,\n> +                        \"hi\": 5580.0\n> +                    },\n> +                    \"incandescent\":\n> +                    {\n> +                        \"lo\": 2920.0,\n> +                        \"hi\": 3000\n> +                    },\n> +                    \"tungsten\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 3500\n> +                    },\n> +                    \"fluorescent\":\n> +                    {\n> +                        \"lo\": 4000,\n> +                        \"hi\": 4700\n> +                    },\n> +                    \"indoor\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 5000\n> +                    },\n> +                    \"daylight\":\n> +                    {\n> +                        \"lo\": 5500,\n> +                        \"hi\": 5580.0\n> +                    },\n> +                    \"cloudy\":\n> +                    {\n> +                        \"lo\": 5580.0,\n> +                        \"hi\": 5580.0\n> +                    }\n> +                },\n> +                \"bayes\": 1,\n> +                \"ct_curve\":\n> +                [\n> +                    2920.0, 0.8266, 0.4607,\n> +                    3630.0, 0.7106, 0.5349,\n> +                    4550.0, 0.5639, 0.6729,\n> +                    5580.0, 0.5323, 0.7109\n> +                ],\n> +                \"sensitivity_r\": 1.0,\n> +                \"sensitivity_b\": 1.0,\n> +                \"transverse_pos\": 0.01,\n> +                \"transverse_neg\": 0.01\n> +            }\n> +        },\n> +        {\n> +            \"rpi.nn.awb\":\n> +            {\n> +                \"enabled\": false,\n> +                \"modes\":\n> +                {\n> +                    \"auto\":\n> +                    {\n> +                        \"lo\": 2500,\n> +                        \"hi\": 7700\n> +                    },\n> +                    \"incandescent\":\n> +                    {\n> +                        \"lo\": 2500,\n> +                        \"hi\": 3000\n> +                    },\n> +                    \"tungsten\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 3500\n> +                    },\n> +                    \"fluorescent\":\n> +                    {\n> +                        \"lo\": 4000,\n> +                        \"hi\": 4700\n> +                    },\n> +                    \"indoor\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 5000\n> +                    },\n> +                    \"daylight\":\n> +                    {\n> +                        \"lo\": 5500,\n> +                        \"hi\": 6500\n> +                    },\n> +                    \"cloudy\":\n> +                    {\n> +                        \"lo\": 7000,\n> +                        \"hi\": 8000\n> +                    }\n> +                },\n> +                \"sensitivity_r\": 1.0,\n> +                \"sensitivity_b\": 1.0,\n> +                \"enable_nn\": 1,\n> +                \"ct_curve\":\n> +                [\n> +                    2920.0, 0.8266, 0.4607,\n> +                    3630.0, 0.7106, 0.5349,\n> +                    4550.0, 0.5639, 0.6729,\n> +                    5580.0, 0.5323, 0.7109\n> +                ],\n> +                \"transverse_pos\": 0.01,\n> +                \"transverse_neg\": 0.01,\n> +                \"ccm\":\n> +                [\n> +                    1.83002, -0.50179, -0.32822,\n> +                    -0.49649, 2.17034, -0.67385,\n> +                    -0.11916, -0.60783, 1.72699\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.agc\":\n> +            {\n> +                \"channels\": [\n> +                    {\n> +                        \"comment\": \"Channel 0 is normal AGC\",\n> +                        \"metering_modes\":\n> +                        {\n> +                            \"centre-weighted\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,\n> +                                    0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0,\n> +                                    1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,\n> +                                    0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0,\n> +                                    0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0\n> +                                ]\n> +                            },\n> +                            \"spot\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 1, 2, 3, 2, 1, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n> +                                ]\n> +                            },\n> +                            \"matrix\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\n> +                                ]\n> +                            }\n> +                        },\n> +                        \"exposure_modes\":\n> +                        {\n> +                            \"normal\":\n> +                            {\n> +                                \"shutter\": [ 100, 10000, 30000, 60000, 66666 ],\n> +                                \"gain\": [ 1.0, 1.5, 2.0, 4.0, 8.0 ]\n> +                            },\n> +                            \"short\":\n> +                            {\n> +                                \"shutter\": [ 100, 5000, 10000, 20000, 60000 ],\n> +                                \"gain\": [ 1.0, 1.5, 2.0, 4.0, 8.0 ]\n> +                            },\n> +                            \"long\":\n> +                            {\n> +                                \"shutter\": [ 100, 10000, 30000, 60000, 90000, 120000 ],\n> +                                \"gain\": [ 1.0, 1.5, 2.0, 4.0, 8.0, 12.0 ]\n> +                            }\n> +                        },\n> +                        \"constraint_modes\":\n> +                        {\n> +                            \"normal\": [\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.98,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.5,\n> +                                        1000, 0.5\n> +                                    ]\n> +                                }\n> +                            ],\n> +                            \"highlight\": [\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.98,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.5,\n> +                                        1000, 0.5\n> +                                    ]\n> +                                },\n> +                                {\n> +                                    \"bound\": \"UPPER\",\n> +                                    \"q_lo\": 0.98,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.8,\n> +                                        1000, 0.8\n> +                                    ]\n> +                                }\n> +                            ],\n> +                            \"shadows\": [\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.0,\n> +                                    \"q_hi\": 0.5,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.17,\n> +                                        1000, 0.17\n> +                                    ]\n> +                                }\n> +                            ]\n> +                        },\n> +                        \"y_target\":\n> +                        [\n> +                            0, 0.16,\n> +                            1000, 0.165,\n> +                            10000, 0.17\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"comment\": \"Channel 1 is the HDR short channel\",\n> +                        \"desaturate\": 0,\n> +                        \"metering_modes\":\n> +                        {\n> +                            \"centre-weighted\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,\n> +                                    0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0,\n> +                                    1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,\n> +                                    0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0,\n> +                                    0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0\n> +                                ]\n> +                            },\n> +                            \"spot\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 1, 2, 3, 2, 1, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n> +                                ]\n> +                            },\n> +                            \"matrix\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\n> +                                ]\n> +                            }\n> +                        },\n> +                        \"exposure_modes\":\n> +                        {\n> +                            \"normal\":\n> +                            {\n> +                                \"shutter\": [ 100, 20000, 60000 ],\n> +                                \"gain\": [ 1.0, 1.0, 1.0 ]\n> +                            },\n> +                            \"short\":\n> +                            {\n> +                                \"shutter\": [ 100, 20000, 60000 ],\n> +                                \"gain\": [ 1.0, 1.0, 1.0 ]\n> +                            },\n> +                            \"long\":\n> +                            {\n> +                                \"shutter\": [ 100, 20000, 60000 ],\n> +                                \"gain\": [ 1.0, 1.0, 1.0 ]\n> +                            }\n> +                        },\n> +                        \"constraint_modes\":\n> +                        {\n> +                            \"normal\": [\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.95,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.5,\n> +                                        1000, 0.5\n> +                                    ]\n> +                                },\n> +                                {\n> +                                    \"bound\": \"UPPER\",\n> +                                    \"q_lo\": 0.95,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.7,\n> +                                        1000, 0.7\n> +                                    ]\n> +                                },\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.0,\n> +                                    \"q_hi\": 0.2,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.002,\n> +                                        1000, 0.002\n> +                                    ]\n> +                                }\n> +                            ],\n> +                            \"highlight\": [\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.95,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.5,\n> +                                        1000, 0.5\n> +                                    ]\n> +                                },\n> +                                {\n> +                                    \"bound\": \"UPPER\",\n> +                                    \"q_lo\": 0.95,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.7,\n> +                                        1000, 0.7\n> +                                    ]\n> +                                },\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.0,\n> +                                    \"q_hi\": 0.2,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.002,\n> +                                        1000, 0.002\n> +                                    ]\n> +                                }\n> +                            ],\n> +                            \"shadows\": [\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.95,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.5,\n> +                                        1000, 0.5\n> +                                    ]\n> +                                },\n> +                                {\n> +                                    \"bound\": \"UPPER\",\n> +                                    \"q_lo\": 0.95,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.7,\n> +                                        1000, 0.7\n> +                                    ]\n> +                                },\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.0,\n> +                                    \"q_hi\": 0.2,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.002,\n> +                                        1000, 0.002\n> +                                    ]\n> +                                }\n> +                            ]\n> +                        },\n> +                        \"y_target\":\n> +                        [\n> +                            0, 0.16,\n> +                            1000, 0.165,\n> +                            10000, 0.17\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"comment\": \"Channel 2 is the HDR long channel\",\n> +                        \"desaturate\": 0,\n> +                        \"metering_modes\":\n> +                        {\n> +                            \"centre-weighted\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,\n> +                                    0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0,\n> +                                    1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,\n> +                                    0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0,\n> +                                    0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0\n> +                                ]\n> +                            },\n> +                            \"spot\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 1, 2, 3, 2, 1, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n> +                                ]\n> +                            },\n> +                            \"matrix\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\n> +                                ]\n> +                            }\n> +                        },\n> +                        \"exposure_modes\":\n> +                        {\n> +                            \"normal\":\n> +                            {\n> +                                \"shutter\": [ 100, 20000, 30000, 60000 ],\n> +                                \"gain\": [ 1.0, 2.0, 4.0, 8.0 ]\n> +                            },\n> +                            \"short\":\n> +                            {\n> +                                \"shutter\": [ 100, 20000, 30000, 60000 ],\n> +                                \"gain\": [ 1.0, 2.0, 4.0, 8.0 ]\n> +                            },\n> +                            \"long\":\n> +                            {\n> +                                \"shutter\": [ 100, 20000, 30000, 60000 ],\n> +                                \"gain\": [ 1.0, 2.0, 4.0, 8.0 ]\n> +                            }\n> +                        },\n> +                        \"constraint_modes\":\n> +                        {\n> +                            \"normal\": [  ],\n> +                            \"highlight\": [  ],\n> +                            \"shadows\": [  ]\n> +                        },\n> +                        \"channel_constraints\": [\n> +                            {\n> +                                \"bound\": \"UPPER\",\n> +                                \"channel\": 4,\n> +                                \"factor\": 8\n> +                            },\n> +                            {\n> +                                \"bound\": \"LOWER\",\n> +                                \"channel\": 4,\n> +                                \"factor\": 2\n> +                            }\n> +                        ],\n> +                        \"y_target\":\n> +                        [\n> +                            0, 0.16,\n> +                            1000, 0.165,\n> +                            10000, 0.17\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"comment\": \"Channel 3 is the night mode channel\",\n> +                        \"base_ev\": 0.33,\n> +                        \"metering_modes\":\n> +                        {\n> +                            \"centre-weighted\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,\n> +                                    0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0,\n> +                                    1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 3, 3, 3, 4, 3, 3, 3, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n> +                                    1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,\n> +                                    0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0,\n> +                                    0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0\n> +                                ]\n> +                            },\n> +                            \"spot\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 1, 2, 3, 2, 1, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n> +                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n> +                                ]\n> +                            },\n> +                            \"matrix\":\n> +                            {\n> +                                \"weights\":\n> +                                [\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n> +                                    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\n> +                                ]\n> +                            }\n> +                        },\n> +                        \"exposure_modes\":\n> +                        {\n> +                            \"normal\":\n> +                            {\n> +                                \"shutter\": [ 100, 20000, 66666 ],\n> +                                \"gain\": [ 1.0, 2.0, 4.0 ]\n> +                            },\n> +                            \"short\":\n> +                            {\n> +                                \"shutter\": [ 100, 20000, 33333 ],\n> +                                \"gain\": [ 1.0, 2.0, 4.0 ]\n> +                            },\n> +                            \"long\":\n> +                            {\n> +                                \"shutter\": [ 100, 20000, 66666, 120000 ],\n> +                                \"gain\": [ 1.0, 2.0, 4.0, 4.0 ]\n> +                            }\n> +                        },\n> +                        \"constraint_modes\":\n> +                        {\n> +                            \"normal\": [\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.98,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.5,\n> +                                        1000, 0.5\n> +                                    ]\n> +                                }\n> +                            ],\n> +                            \"highlight\": [\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.98,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.5,\n> +                                        1000, 0.5\n> +                                    ]\n> +                                },\n> +                                {\n> +                                    \"bound\": \"UPPER\",\n> +                                    \"q_lo\": 0.98,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.8,\n> +                                        1000, 0.8\n> +                                    ]\n> +                                }\n> +                            ],\n> +                            \"shadows\": [\n> +                                {\n> +                                    \"bound\": \"LOWER\",\n> +                                    \"q_lo\": 0.98,\n> +                                    \"q_hi\": 1.0,\n> +                                    \"y_target\":\n> +                                    [\n> +                                        0, 0.5,\n> +                                        1000, 0.5\n> +                                    ]\n> +                                }\n> +                            ]\n> +                        },\n> +                        \"y_target\":\n> +                        [\n> +                            0, 0.16,\n> +                            1000, 0.16,\n> +                            10000, 0.17\n> +                        ]\n> +                    }\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.alsc\":\n> +            {\n> +                \"omega\": 1.3,\n> +                \"n_iter\": 100,\n> +                \"luminance_strength\": 0.8,\n> +                \"calibrations_Cr\": [\n> +                    {\n> +                        \"ct\": 2900,\n> +                        \"table\":\n> +                        [\n> +                            1.558, 1.565, 1.571, 1.571, 1.563, 1.546, 1.518, 1.487, 1.456, 1.423, 1.392, 1.368, 1.353, 1.343, 1.342, 1.341, 1.342, 1.346, 1.354, 1.372, 1.401, 1.426, 1.459, 1.487, 1.513, 1.535, 1.547, 1.547, 1.543, 1.521, 1.492, 1.485,\n> +                            1.562, 1.571, 1.571, 1.568, 1.554, 1.524, 1.491, 1.459, 1.424, 1.392, 1.365, 1.344, 1.324, 1.312, 1.306, 1.305, 1.307, 1.315, 1.329, 1.349, 1.372, 1.401, 1.429, 1.461, 1.489, 1.518, 1.539, 1.546, 1.544, 1.537, 1.511, 1.491,\n> +                            1.571, 1.571, 1.571, 1.557, 1.531, 1.499, 1.461, 1.424, 1.387, 1.351, 1.323, 1.298, 1.283, 1.269, 1.262, 1.262, 1.263, 1.273, 1.288, 1.308, 1.331, 1.359, 1.394, 1.428, 1.461, 1.493, 1.524, 1.541, 1.545, 1.542, 1.523, 1.505,\n> +                            1.573, 1.571, 1.561, 1.537, 1.511, 1.468, 1.426, 1.387, 1.348, 1.312, 1.282, 1.258, 1.241, 1.228, 1.221, 1.221, 1.223, 1.231, 1.246, 1.268, 1.294, 1.324, 1.357, 1.393, 1.431, 1.469, 1.503, 1.529, 1.541, 1.541, 1.531, 1.516,\n> +                            1.574, 1.567, 1.549, 1.521, 1.483, 1.438, 1.392, 1.349, 1.311, 1.276, 1.244, 1.221, 1.199, 1.189, 1.183, 1.183, 1.184, 1.194, 1.209, 1.228, 1.255, 1.288, 1.323, 1.359, 1.399, 1.441, 1.482, 1.512, 1.537, 1.538, 1.536, 1.523,\n> +                            1.572, 1.563, 1.536, 1.499, 1.458, 1.408, 1.361, 1.318, 1.276, 1.243, 1.209, 1.184, 1.167, 1.155, 1.149, 1.148, 1.149, 1.161, 1.176, 1.196, 1.222, 1.255, 1.288, 1.329, 1.369, 1.414, 1.459, 1.496, 1.526, 1.537, 1.537, 1.531,\n> +                            1.569, 1.555, 1.522, 1.479, 1.429, 1.379, 1.331, 1.286, 1.244, 1.209, 1.179, 1.154, 1.136, 1.123, 1.118, 1.118, 1.121, 1.129, 1.144, 1.164, 1.194, 1.222, 1.258, 1.299, 1.344, 1.391, 1.436, 1.479, 1.515, 1.535, 1.536, 1.535,\n> +                            1.565, 1.542, 1.507, 1.457, 1.407, 1.354, 1.304, 1.255, 1.214, 1.179, 1.153, 1.126, 1.107, 1.096, 1.089, 1.089, 1.093, 1.103, 1.116, 1.138, 1.164, 1.194, 1.231, 1.271, 1.319, 1.365, 1.415, 1.463, 1.501, 1.529, 1.535, 1.535,\n> +                            1.556, 1.533, 1.491, 1.438, 1.385, 1.329, 1.279, 1.231, 1.189, 1.154, 1.126, 1.103, 1.082, 1.073, 1.067, 1.066, 1.069, 1.078, 1.093, 1.114, 1.138, 1.168, 1.207, 1.247, 1.293, 1.345, 1.394, 1.445, 1.488, 1.522, 1.533, 1.535,\n> +                            1.549, 1.524, 1.475, 1.421, 1.367, 1.311, 1.258, 1.209, 1.168, 1.132, 1.103, 1.082, 1.064, 1.053, 1.047, 1.047, 1.049, 1.058, 1.073, 1.093, 1.116, 1.146, 1.183, 1.227, 1.273, 1.324, 1.377, 1.427, 1.477, 1.512, 1.529, 1.534,\n> +                            1.543, 1.512, 1.461, 1.405, 1.347, 1.292, 1.241, 1.191, 1.149, 1.114, 1.086, 1.064, 1.049, 1.036, 1.031, 1.031, 1.034, 1.043, 1.058, 1.073, 1.098, 1.129, 1.166, 1.207, 1.255, 1.307, 1.362, 1.414, 1.466, 1.504, 1.526, 1.532,\n> +                            1.538, 1.499, 1.451, 1.391, 1.333, 1.275, 1.221, 1.176, 1.134, 1.099, 1.071, 1.049, 1.036, 1.025, 1.019, 1.019, 1.022, 1.032, 1.043, 1.059, 1.083, 1.114, 1.151, 1.193, 1.241, 1.293, 1.346, 1.404, 1.454, 1.496, 1.524, 1.529,\n> +                            1.532, 1.494, 1.439, 1.381, 1.322, 1.265, 1.212, 1.164, 1.122, 1.088, 1.059, 1.038, 1.025, 1.017, 1.011, 1.011, 1.015, 1.022, 1.033, 1.049, 1.074, 1.102, 1.139, 1.181, 1.231, 1.281, 1.336, 1.394, 1.447, 1.491, 1.519, 1.528,\n> +                            1.531, 1.488, 1.432, 1.373, 1.311, 1.257, 1.202, 1.155, 1.113, 1.081, 1.051, 1.032, 1.017, 1.009, 1.005, 1.005, 1.009, 1.015, 1.026, 1.043, 1.066, 1.096, 1.133, 1.173, 1.221, 1.274, 1.329, 1.384, 1.438, 1.485, 1.516, 1.525,\n> +                            1.527, 1.485, 1.428, 1.366, 1.307, 1.251, 1.197, 1.149, 1.108, 1.074, 1.048, 1.028, 1.014, 1.005, 1.002, 1.001, 1.004, 1.011, 1.022, 1.038, 1.059, 1.091, 1.126, 1.167, 1.215, 1.268, 1.324, 1.379, 1.434, 1.482, 1.515, 1.522,\n> +                            1.525, 1.481, 1.425, 1.365, 1.304, 1.248, 1.195, 1.147, 1.107, 1.073, 1.047, 1.027, 1.013, 1.003, 1.001, 1.001, 1.002, 1.009, 1.021, 1.037, 1.059, 1.089, 1.124, 1.166, 1.213, 1.265, 1.321, 1.378, 1.433, 1.479, 1.513, 1.521,\n> +                            1.525, 1.484, 1.425, 1.365, 1.305, 1.248, 1.195, 1.147, 1.107, 1.073, 1.047, 1.027, 1.013, 1.004, 1.001, 1.001, 1.004, 1.011, 1.022, 1.038, 1.059, 1.089, 1.125, 1.166, 1.214, 1.265, 1.322, 1.378, 1.432, 1.479, 1.513, 1.518,\n> +                            1.528, 1.485, 1.426, 1.367, 1.309, 1.252, 1.199, 1.151, 1.109, 1.076, 1.051, 1.029, 1.015, 1.007, 1.004, 1.004, 1.007, 1.012, 1.023, 1.041, 1.063, 1.092, 1.128, 1.169, 1.216, 1.269, 1.323, 1.379, 1.434, 1.481, 1.511, 1.518,\n> +                            1.529, 1.488, 1.431, 1.374, 1.314, 1.257, 1.207, 1.158, 1.117, 1.082, 1.055, 1.034, 1.019, 1.013, 1.008, 1.007, 1.012, 1.018, 1.029, 1.046, 1.068, 1.098, 1.132, 1.175, 1.224, 1.273, 1.329, 1.384, 1.438, 1.482, 1.513, 1.519,\n> +                            1.531, 1.492, 1.439, 1.382, 1.323, 1.265, 1.215, 1.166, 1.127, 1.092, 1.063, 1.041, 1.028, 1.019, 1.013, 1.013, 1.018, 1.026, 1.036, 1.053, 1.077, 1.105, 1.142, 1.186, 1.232, 1.282, 1.339, 1.392, 1.444, 1.486, 1.515, 1.521,\n> +                            1.534, 1.501, 1.449, 1.392, 1.336, 1.281, 1.229, 1.181, 1.138, 1.103, 1.075, 1.052, 1.039, 1.028, 1.023, 1.023, 1.027, 1.036, 1.047, 1.065, 1.089, 1.117, 1.153, 1.197, 1.244, 1.295, 1.348, 1.403, 1.453, 1.494, 1.518, 1.525,\n> +                            1.541, 1.511, 1.461, 1.406, 1.351, 1.296, 1.244, 1.196, 1.154, 1.119, 1.089, 1.068, 1.052, 1.041, 1.036, 1.036, 1.038, 1.047, 1.063, 1.078, 1.101, 1.133, 1.168, 1.211, 1.258, 1.309, 1.363, 1.413, 1.461, 1.501, 1.521, 1.525,\n> +                            1.546, 1.519, 1.476, 1.422, 1.369, 1.313, 1.263, 1.216, 1.174, 1.137, 1.108, 1.088, 1.068, 1.056, 1.052, 1.052, 1.054, 1.064, 1.078, 1.098, 1.121, 1.151, 1.186, 1.229, 1.275, 1.326, 1.377, 1.427, 1.474, 1.507, 1.521, 1.526,\n> +                            1.551, 1.529, 1.491, 1.439, 1.389, 1.335, 1.285, 1.238, 1.197, 1.161, 1.132, 1.108, 1.089, 1.078, 1.073, 1.072, 1.075, 1.083, 1.098, 1.119, 1.142, 1.172, 1.208, 1.251, 1.296, 1.347, 1.397, 1.443, 1.484, 1.514, 1.524, 1.525,\n> +                            1.557, 1.538, 1.503, 1.457, 1.409, 1.359, 1.309, 1.263, 1.222, 1.187, 1.159, 1.132, 1.114, 1.101, 1.097, 1.097, 1.099, 1.107, 1.121, 1.142, 1.169, 1.198, 1.232, 1.274, 1.319, 1.367, 1.414, 1.458, 1.496, 1.525, 1.526, 1.525,\n> +                            1.559, 1.548, 1.517, 1.477, 1.432, 1.384, 1.335, 1.291, 1.248, 1.218, 1.187, 1.159, 1.142, 1.128, 1.124, 1.124, 1.126, 1.134, 1.149, 1.169, 1.197, 1.225, 1.261, 1.301, 1.345, 1.393, 1.432, 1.474, 1.507, 1.526, 1.527, 1.524,\n> +                            1.561, 1.552, 1.529, 1.497, 1.455, 1.408, 1.364, 1.323, 1.279, 1.248, 1.218, 1.191, 1.172, 1.161, 1.154, 1.153, 1.156, 1.164, 1.179, 1.198, 1.225, 1.258, 1.292, 1.328, 1.372, 1.413, 1.455, 1.493, 1.518, 1.528, 1.527, 1.519,\n> +                            1.557, 1.553, 1.543, 1.513, 1.478, 1.436, 1.393, 1.353, 1.316, 1.279, 1.249, 1.225, 1.206, 1.196, 1.188, 1.187, 1.189, 1.198, 1.212, 1.233, 1.258, 1.291, 1.322, 1.359, 1.399, 1.439, 1.477, 1.506, 1.523, 1.526, 1.522, 1.511,\n> +                            1.556, 1.554, 1.549, 1.529, 1.497, 1.462, 1.424, 1.385, 1.349, 1.316, 1.285, 1.262, 1.243, 1.229, 1.225, 1.225, 1.226, 1.234, 1.249, 1.269, 1.291, 1.322, 1.355, 1.388, 1.425, 1.461, 1.492, 1.519, 1.527, 1.526, 1.513, 1.499,\n> +                            1.548, 1.549, 1.549, 1.542, 1.517, 1.486, 1.453, 1.417, 1.383, 1.349, 1.323, 1.299, 1.282, 1.269, 1.264, 1.263, 1.265, 1.273, 1.285, 1.304, 1.328, 1.355, 1.387, 1.417, 1.451, 1.483, 1.508, 1.526, 1.528, 1.523, 1.502, 1.486,\n> +                            1.533, 1.545, 1.547, 1.545, 1.529, 1.507, 1.479, 1.446, 1.414, 1.384, 1.358, 1.337, 1.319, 1.307, 1.302, 1.301, 1.303, 1.311, 1.325, 1.341, 1.363, 1.388, 1.414, 1.445, 1.476, 1.499, 1.518, 1.527, 1.527, 1.514, 1.489, 1.469,\n> +                            1.529, 1.533, 1.546, 1.543, 1.537, 1.519, 1.496, 1.469, 1.438, 1.409, 1.383, 1.358, 1.338, 1.328, 1.326, 1.324, 1.325, 1.327, 1.343, 1.362, 1.387, 1.411, 1.436, 1.463, 1.489, 1.509, 1.522, 1.526, 1.524, 1.499, 1.469, 1.456\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5900,\n> +                        \"table\":\n> +                        [\n> +                            1.459, 1.466, 1.468, 1.467, 1.459, 1.441, 1.419, 1.393, 1.365, 1.339, 1.311, 1.293, 1.283, 1.278, 1.277, 1.277, 1.277, 1.281, 1.288, 1.301, 1.322, 1.346, 1.373, 1.398, 1.421, 1.441, 1.454, 1.458, 1.458, 1.448, 1.427, 1.418,\n> +                            1.464, 1.465, 1.467, 1.461, 1.445, 1.422, 1.395, 1.366, 1.339, 1.311, 1.291, 1.272, 1.259, 1.251, 1.244, 1.244, 1.247, 1.255, 1.266, 1.282, 1.301, 1.322, 1.347, 1.375, 1.401, 1.422, 1.443, 1.455, 1.455, 1.453, 1.436, 1.425,\n> +                            1.465, 1.465, 1.463, 1.448, 1.426, 1.397, 1.367, 1.338, 1.307, 1.279, 1.256, 1.237, 1.223, 1.214, 1.208, 1.208, 1.212, 1.219, 1.232, 1.247, 1.268, 1.291, 1.319, 1.347, 1.375, 1.402, 1.426, 1.445, 1.454, 1.453, 1.443, 1.432,\n> +                            1.467, 1.464, 1.452, 1.433, 1.405, 1.373, 1.338, 1.307, 1.277, 1.247, 1.223, 1.205, 1.189, 1.181, 1.175, 1.175, 1.177, 1.185, 1.199, 1.216, 1.236, 1.261, 1.291, 1.319, 1.351, 1.379, 1.409, 1.432, 1.449, 1.451, 1.446, 1.441,\n> +                            1.466, 1.461, 1.442, 1.416, 1.384, 1.348, 1.311, 1.277, 1.247, 1.218, 1.192, 1.173, 1.157, 1.149, 1.143, 1.143, 1.146, 1.156, 1.169, 1.185, 1.208, 1.235, 1.261, 1.292, 1.324, 1.359, 1.393, 1.421, 1.442, 1.449, 1.448, 1.443,\n> +                            1.463, 1.453, 1.429, 1.397, 1.359, 1.322, 1.285, 1.249, 1.218, 1.191, 1.164, 1.144, 1.129, 1.119, 1.116, 1.116, 1.119, 1.128, 1.141, 1.159, 1.181, 1.208, 1.235, 1.267, 1.302, 1.338, 1.374, 1.405, 1.431, 1.447, 1.448, 1.447,\n> +                            1.457, 1.444, 1.415, 1.381, 1.341, 1.301, 1.261, 1.224, 1.191, 1.164, 1.138, 1.118, 1.104, 1.095, 1.091, 1.091, 1.095, 1.103, 1.117, 1.134, 1.158, 1.181, 1.211, 1.245, 1.279, 1.318, 1.356, 1.392, 1.422, 1.443, 1.447, 1.448,\n> +                            1.453, 1.434, 1.401, 1.362, 1.321, 1.279, 1.238, 1.201, 1.166, 1.138, 1.118, 1.094, 1.081, 1.072, 1.068, 1.068, 1.072, 1.081, 1.093, 1.113, 1.134, 1.158, 1.188, 1.223, 1.259, 1.298, 1.339, 1.378, 1.409, 1.434, 1.445, 1.447,\n> +                            1.447, 1.424, 1.387, 1.347, 1.303, 1.259, 1.219, 1.181, 1.147, 1.118, 1.094, 1.076, 1.061, 1.053, 1.049, 1.049, 1.054, 1.062, 1.075, 1.093, 1.113, 1.141, 1.169, 1.204, 1.241, 1.281, 1.322, 1.364, 1.399, 1.427, 1.444, 1.446,\n> +                            1.443, 1.414, 1.375, 1.332, 1.288, 1.243, 1.201, 1.163, 1.129, 1.099, 1.076, 1.061, 1.045, 1.037, 1.034, 1.034, 1.038, 1.046, 1.061, 1.075, 1.096, 1.122, 1.153, 1.187, 1.226, 1.266, 1.309, 1.351, 1.389, 1.419, 1.439, 1.445,\n> +                            1.436, 1.405, 1.364, 1.319, 1.273, 1.229, 1.186, 1.147, 1.114, 1.085, 1.061, 1.045, 1.033, 1.025, 1.022, 1.022, 1.026, 1.036, 1.046, 1.061, 1.083, 1.108, 1.139, 1.173, 1.212, 1.252, 1.296, 1.339, 1.381, 1.413, 1.434, 1.441,\n> +                            1.432, 1.397, 1.354, 1.307, 1.261, 1.216, 1.173, 1.135, 1.101, 1.072, 1.049, 1.033, 1.024, 1.015, 1.013, 1.013, 1.018, 1.026, 1.036, 1.051, 1.071, 1.097, 1.127, 1.162, 1.199, 1.242, 1.285, 1.331, 1.372, 1.407, 1.431, 1.437,\n> +                            1.427, 1.392, 1.346, 1.299, 1.252, 1.206, 1.164, 1.125, 1.092, 1.064, 1.041, 1.026, 1.015, 1.009, 1.006, 1.007, 1.013, 1.018, 1.028, 1.043, 1.064, 1.088, 1.119, 1.152, 1.191, 1.233, 1.277, 1.322, 1.365, 1.402, 1.426, 1.436,\n> +                            1.425, 1.386, 1.341, 1.292, 1.244, 1.199, 1.156, 1.118, 1.085, 1.057, 1.035, 1.019, 1.009, 1.006, 1.002, 1.004, 1.007, 1.014, 1.024, 1.038, 1.058, 1.083, 1.113, 1.147, 1.186, 1.227, 1.272, 1.316, 1.361, 1.397, 1.423, 1.434,\n> +                            1.423, 1.383, 1.336, 1.287, 1.239, 1.195, 1.152, 1.114, 1.081, 1.054, 1.032, 1.017, 1.007, 1.002, 1.001, 1.001, 1.004, 1.011, 1.021, 1.036, 1.054, 1.079, 1.109, 1.143, 1.181, 1.224, 1.268, 1.313, 1.357, 1.395, 1.422, 1.433,\n> +                            1.421, 1.381, 1.335, 1.287, 1.239, 1.193, 1.151, 1.113, 1.079, 1.053, 1.031, 1.016, 1.006, 1.001, 1.001, 1.001, 1.004, 1.011, 1.021, 1.035, 1.053, 1.078, 1.108, 1.142, 1.179, 1.222, 1.266, 1.312, 1.355, 1.393, 1.421, 1.432,\n> +                            1.421, 1.382, 1.335, 1.287, 1.241, 1.193, 1.151, 1.113, 1.079, 1.053, 1.031, 1.017, 1.007, 1.002, 1.001, 1.002, 1.005, 1.012, 1.022, 1.035, 1.053, 1.078, 1.108, 1.143, 1.181, 1.222, 1.266, 1.312, 1.355, 1.393, 1.419, 1.431,\n> +                            1.421, 1.383, 1.338, 1.289, 1.243, 1.198, 1.155, 1.117, 1.084, 1.056, 1.035, 1.019, 1.009, 1.006, 1.003, 1.005, 1.008, 1.014, 1.023, 1.038, 1.058, 1.082, 1.111, 1.145, 1.183, 1.224, 1.269, 1.313, 1.355, 1.393, 1.419, 1.431,\n> +                            1.422, 1.385, 1.341, 1.294, 1.247, 1.203, 1.161, 1.123, 1.089, 1.062, 1.039, 1.024, 1.014, 1.009, 1.007, 1.008, 1.013, 1.018, 1.029, 1.043, 1.062, 1.086, 1.116, 1.151, 1.189, 1.229, 1.273, 1.317, 1.359, 1.394, 1.419, 1.431,\n> +                            1.425, 1.388, 1.346, 1.301, 1.254, 1.211, 1.169, 1.131, 1.098, 1.069, 1.048, 1.031, 1.022, 1.014, 1.013, 1.013, 1.018, 1.025, 1.034, 1.049, 1.069, 1.094, 1.124, 1.159, 1.196, 1.237, 1.281, 1.323, 1.364, 1.397, 1.421, 1.429,\n> +                            1.427, 1.395, 1.354, 1.311, 1.264, 1.221, 1.179, 1.142, 1.108, 1.081, 1.057, 1.041, 1.031, 1.022, 1.021, 1.021, 1.025, 1.034, 1.044, 1.058, 1.079, 1.104, 1.134, 1.168, 1.205, 1.246, 1.289, 1.331, 1.371, 1.403, 1.423, 1.429,\n> +                            1.431, 1.404, 1.364, 1.321, 1.277, 1.235, 1.194, 1.156, 1.122, 1.094, 1.071, 1.056, 1.041, 1.034, 1.032, 1.032, 1.035, 1.044, 1.057, 1.069, 1.091, 1.116, 1.146, 1.181, 1.218, 1.257, 1.299, 1.341, 1.379, 1.408, 1.426, 1.429,\n> +                            1.433, 1.409, 1.373, 1.333, 1.291, 1.249, 1.209, 1.172, 1.139, 1.111, 1.087, 1.071, 1.056, 1.048, 1.045, 1.045, 1.049, 1.057, 1.069, 1.087, 1.105, 1.131, 1.161, 1.194, 1.231, 1.271, 1.312, 1.351, 1.387, 1.412, 1.428, 1.429,\n> +                            1.439, 1.417, 1.387, 1.347, 1.308, 1.267, 1.228, 1.192, 1.159, 1.129, 1.108, 1.087, 1.074, 1.066, 1.062, 1.062, 1.066, 1.073, 1.087, 1.105, 1.123, 1.148, 1.179, 1.213, 1.249, 1.286, 1.325, 1.364, 1.395, 1.419, 1.428, 1.429,\n> +                            1.444, 1.425, 1.398, 1.363, 1.326, 1.285, 1.248, 1.212, 1.179, 1.152, 1.129, 1.108, 1.095, 1.086, 1.082, 1.082, 1.086, 1.094, 1.106, 1.123, 1.146, 1.169, 1.199, 1.232, 1.268, 1.303, 1.342, 1.376, 1.405, 1.425, 1.428, 1.429,\n> +                            1.447, 1.432, 1.408, 1.379, 1.344, 1.306, 1.269, 1.234, 1.202, 1.178, 1.152, 1.131, 1.118, 1.109, 1.105, 1.105, 1.108, 1.117, 1.129, 1.146, 1.169, 1.192, 1.221, 1.253, 1.287, 1.323, 1.358, 1.389, 1.414, 1.429, 1.429, 1.428,\n> +                            1.445, 1.438, 1.419, 1.392, 1.362, 1.327, 1.291, 1.259, 1.228, 1.202, 1.178, 1.157, 1.144, 1.134, 1.129, 1.129, 1.133, 1.141, 1.154, 1.169, 1.192, 1.218, 1.244, 1.275, 1.308, 1.342, 1.374, 1.401, 1.423, 1.429, 1.429, 1.426,\n> +                            1.443, 1.439, 1.426, 1.407, 1.379, 1.348, 1.316, 1.283, 1.255, 1.228, 1.204, 1.185, 1.172, 1.163, 1.158, 1.158, 1.161, 1.169, 1.181, 1.197, 1.218, 1.243, 1.269, 1.297, 1.329, 1.359, 1.389, 1.413, 1.429, 1.431, 1.427, 1.419,\n> +                            1.441, 1.438, 1.433, 1.418, 1.396, 1.368, 1.338, 1.308, 1.282, 1.255, 1.232, 1.214, 1.199, 1.191, 1.187, 1.187, 1.189, 1.197, 1.209, 1.224, 1.244, 1.269, 1.293, 1.319, 1.349, 1.377, 1.402, 1.423, 1.429, 1.429, 1.421, 1.411,\n> +                            1.434, 1.436, 1.435, 1.428, 1.409, 1.387, 1.361, 1.333, 1.308, 1.282, 1.261, 1.244, 1.231, 1.222, 1.218, 1.218, 1.221, 1.227, 1.239, 1.253, 1.272, 1.293, 1.319, 1.344, 1.369, 1.393, 1.414, 1.428, 1.431, 1.426, 1.411, 1.399,\n> +                            1.425, 1.433, 1.435, 1.432, 1.422, 1.402, 1.381, 1.357, 1.332, 1.311, 1.291, 1.273, 1.261, 1.253, 1.248, 1.248, 1.252, 1.258, 1.268, 1.281, 1.299, 1.319, 1.342, 1.365, 1.388, 1.408, 1.423, 1.429, 1.428, 1.421, 1.399, 1.388,\n> +                            1.421, 1.425, 1.434, 1.434, 1.429, 1.415, 1.395, 1.374, 1.352, 1.331, 1.311, 1.291, 1.277, 1.271, 1.271, 1.271, 1.272, 1.274, 1.282, 1.299, 1.319, 1.339, 1.362, 1.382, 1.399, 1.415, 1.428, 1.428, 1.427, 1.413, 1.388, 1.381\n> +                        ]\n> +                    }\n> +                ],\n> +                \"calibrations_Cb\": [\n> +                    {\n> +                        \"ct\": 2900,\n> +                        \"table\":\n> +                        [\n> +                            1.034, 1.029, 1.022, 1.021, 1.019, 1.018, 1.018, 1.018, 1.019, 1.019, 1.021, 1.022, 1.023, 1.023, 1.023, 1.026, 1.027, 1.027, 1.028, 1.029, 1.029, 1.029, 1.029, 1.029, 1.029, 1.032, 1.032, 1.034, 1.037, 1.039, 1.055, 1.061,\n> +                            1.029, 1.024, 1.009, 1.007, 1.007, 1.007, 1.008, 1.008, 1.009, 1.009, 1.011, 1.012, 1.013, 1.015, 1.016, 1.018, 1.018, 1.019, 1.019, 1.019, 1.021, 1.019, 1.019, 1.018, 1.017, 1.018, 1.018, 1.019, 1.022, 1.029, 1.048, 1.057,\n> +                            1.022, 1.008, 1.005, 1.004, 1.004, 1.004, 1.004, 1.005, 1.006, 1.006, 1.007, 1.008, 1.009, 1.012, 1.013, 1.014, 1.015, 1.015, 1.017, 1.017, 1.017, 1.016, 1.015, 1.015, 1.015, 1.015, 1.014, 1.013, 1.016, 1.021, 1.029, 1.049,\n> +                            1.017, 1.008, 1.005, 1.004, 1.004, 1.005, 1.006, 1.006, 1.007, 1.008, 1.009, 1.009, 1.011, 1.013, 1.015, 1.016, 1.018, 1.019, 1.019, 1.019, 1.019, 1.019, 1.018, 1.017, 1.017, 1.017, 1.015, 1.015, 1.016, 1.018, 1.024, 1.045,\n> +                            1.015, 1.006, 1.003, 1.003, 1.003, 1.004, 1.005, 1.006, 1.006, 1.007, 1.009, 1.011, 1.011, 1.014, 1.015, 1.017, 1.018, 1.019, 1.019, 1.019, 1.019, 1.019, 1.019, 1.019, 1.018, 1.017, 1.015, 1.013, 1.015, 1.016, 1.019, 1.043,\n> +                            1.015, 1.007, 1.004, 1.004, 1.006, 1.006, 1.007, 1.008, 1.009, 1.011, 1.011, 1.012, 1.014, 1.016, 1.019, 1.019, 1.021, 1.022, 1.023, 1.024, 1.024, 1.023, 1.022, 1.021, 1.021, 1.019, 1.017, 1.016, 1.016, 1.017, 1.019, 1.039,\n> +                            1.016, 1.008, 1.005, 1.005, 1.007, 1.008, 1.009, 1.011, 1.012, 1.013, 1.013, 1.015, 1.017, 1.019, 1.021, 1.022, 1.025, 1.026, 1.026, 1.026, 1.027, 1.026, 1.025, 1.024, 1.022, 1.021, 1.019, 1.017, 1.016, 1.016, 1.019, 1.037,\n> +                            1.016, 1.007, 1.005, 1.006, 1.007, 1.009, 1.011, 1.012, 1.013, 1.014, 1.015, 1.017, 1.019, 1.021, 1.023, 1.025, 1.027, 1.027, 1.029, 1.029, 1.029, 1.028, 1.027, 1.026, 1.025, 1.022, 1.021, 1.018, 1.016, 1.015, 1.019, 1.034,\n> +                            1.015, 1.006, 1.005, 1.006, 1.007, 1.009, 1.011, 1.012, 1.013, 1.014, 1.015, 1.017, 1.019, 1.021, 1.023, 1.024, 1.027, 1.029, 1.031, 1.031, 1.031, 1.029, 1.028, 1.027, 1.025, 1.022, 1.021, 1.018, 1.016, 1.014, 1.017, 1.033,\n> +                            1.013, 1.007, 1.005, 1.007, 1.009, 1.011, 1.013, 1.014, 1.015, 1.016, 1.017, 1.019, 1.021, 1.024, 1.026, 1.028, 1.031, 1.032, 1.033, 1.033, 1.032, 1.032, 1.031, 1.029, 1.028, 1.026, 1.024, 1.021, 1.019, 1.016, 1.018, 1.033,\n> +                            1.012, 1.008, 1.006, 1.009, 1.011, 1.012, 1.014, 1.015, 1.016, 1.017, 1.019, 1.021, 1.023, 1.026, 1.028, 1.031, 1.033, 1.035, 1.036, 1.036, 1.036, 1.036, 1.034, 1.033, 1.031, 1.029, 1.025, 1.023, 1.019, 1.016, 1.018, 1.034,\n> +                            1.012, 1.007, 1.006, 1.009, 1.011, 1.012, 1.014, 1.015, 1.016, 1.019, 1.019, 1.022, 1.025, 1.027, 1.031, 1.033, 1.035, 1.037, 1.037, 1.037, 1.037, 1.037, 1.037, 1.035, 1.033, 1.031, 1.028, 1.025, 1.021, 1.018, 1.019, 1.034,\n> +                            1.012, 1.006, 1.005, 1.008, 1.011, 1.012, 1.013, 1.015, 1.016, 1.018, 1.019, 1.022, 1.024, 1.028, 1.031, 1.034, 1.036, 1.037, 1.038, 1.038, 1.038, 1.038, 1.037, 1.035, 1.033, 1.031, 1.028, 1.024, 1.019, 1.017, 1.018, 1.033,\n> +                            1.012, 1.008, 1.007, 1.009, 1.012, 1.013, 1.014, 1.016, 1.018, 1.021, 1.021, 1.024, 1.027, 1.031, 1.033, 1.037, 1.039, 1.039, 1.041, 1.041, 1.039, 1.039, 1.038, 1.037, 1.035, 1.032, 1.029, 1.026, 1.022, 1.018, 1.019, 1.034,\n> +                            1.013, 1.009, 1.008, 1.011, 1.012, 1.013, 1.016, 1.018, 1.019, 1.021, 1.023, 1.025, 1.029, 1.032, 1.035, 1.038, 1.041, 1.041, 1.042, 1.041, 1.041, 1.041, 1.039, 1.037, 1.035, 1.033, 1.029, 1.025, 1.021, 1.018, 1.019, 1.032,\n> +                            1.014, 1.009, 1.008, 1.011, 1.012, 1.014, 1.017, 1.018, 1.019, 1.021, 1.024, 1.027, 1.031, 1.033, 1.036, 1.039, 1.042, 1.042, 1.042, 1.042, 1.042, 1.041, 1.039, 1.037, 1.035, 1.032, 1.028, 1.025, 1.021, 1.018, 1.018, 1.031,\n> +                            1.013, 1.007, 1.007, 1.009, 1.011, 1.013, 1.016, 1.017, 1.019, 1.021, 1.024, 1.026, 1.031, 1.032, 1.036, 1.039, 1.041, 1.042, 1.042, 1.042, 1.042, 1.041, 1.039, 1.037, 1.034, 1.029, 1.026, 1.023, 1.019, 1.016, 1.017, 1.031,\n> +                            1.013, 1.008, 1.007, 1.009, 1.012, 1.014, 1.016, 1.018, 1.019, 1.022, 1.025, 1.027, 1.031, 1.034, 1.038, 1.041, 1.043, 1.044, 1.044, 1.044, 1.044, 1.042, 1.041, 1.039, 1.035, 1.032, 1.028, 1.025, 1.021, 1.017, 1.017, 1.031,\n> +                            1.011, 1.008, 1.006, 1.008, 1.011, 1.014, 1.016, 1.018, 1.019, 1.022, 1.024, 1.027, 1.031, 1.034, 1.037, 1.039, 1.042, 1.043, 1.044, 1.044, 1.043, 1.042, 1.041, 1.038, 1.035, 1.033, 1.028, 1.025, 1.021, 1.017, 1.018, 1.029,\n> +                            1.011, 1.008, 1.006, 1.008, 1.009, 1.012, 1.014, 1.017, 1.019, 1.021, 1.023, 1.025, 1.028, 1.032, 1.036, 1.038, 1.039, 1.041, 1.042, 1.042, 1.041, 1.041, 1.039, 1.037, 1.034, 1.032, 1.027, 1.024, 1.021, 1.017, 1.018, 1.029,\n> +                            1.011, 1.004, 1.004, 1.006, 1.008, 1.011, 1.013, 1.015, 1.017, 1.018, 1.021, 1.023, 1.025, 1.029, 1.032, 1.034, 1.036, 1.038, 1.038, 1.039, 1.039, 1.037, 1.036, 1.034, 1.032, 1.029, 1.026, 1.022, 1.019, 1.016, 1.017, 1.029,\n> +                            1.013, 1.008, 1.005, 1.008, 1.009, 1.012, 1.013, 1.016, 1.017, 1.019, 1.021, 1.024, 1.025, 1.028, 1.031, 1.033, 1.035, 1.037, 1.038, 1.038, 1.037, 1.036, 1.035, 1.033, 1.031, 1.027, 1.025, 1.022, 1.018, 1.016, 1.018, 1.032,\n> +                            1.013, 1.007, 1.005, 1.008, 1.009, 1.012, 1.013, 1.016, 1.018, 1.019, 1.021, 1.023, 1.024, 1.026, 1.029, 1.031, 1.033, 1.034, 1.035, 1.036, 1.035, 1.034, 1.033, 1.031, 1.028, 1.025, 1.024, 1.019, 1.017, 1.015, 1.018, 1.032,\n> +                            1.014, 1.008, 1.005, 1.007, 1.009, 1.012, 1.013, 1.015, 1.017, 1.019, 1.021, 1.023, 1.024, 1.026, 1.028, 1.031, 1.032, 1.032, 1.033, 1.033, 1.032, 1.031, 1.029, 1.027, 1.026, 1.023, 1.019, 1.017, 1.014, 1.013, 1.016, 1.031,\n> +                            1.013, 1.004, 1.003, 1.005, 1.007, 1.009, 1.011, 1.013, 1.015, 1.017, 1.019, 1.021, 1.022, 1.024, 1.027, 1.029, 1.029, 1.031, 1.031, 1.031, 1.031, 1.029, 1.027, 1.025, 1.023, 1.021, 1.018, 1.015, 1.013, 1.012, 1.014, 1.031,\n> +                            1.013, 1.005, 1.003, 1.005, 1.007, 1.008, 1.011, 1.013, 1.015, 1.017, 1.019, 1.019, 1.022, 1.024, 1.026, 1.029, 1.029, 1.031, 1.031, 1.031, 1.031, 1.029, 1.028, 1.026, 1.023, 1.021, 1.019, 1.016, 1.014, 1.013, 1.016, 1.033,\n> +                            1.013, 1.004, 1.002, 1.002, 1.005, 1.006, 1.008, 1.011, 1.013, 1.015, 1.017, 1.018, 1.019, 1.022, 1.023, 1.026, 1.028, 1.029, 1.029, 1.029, 1.029, 1.027, 1.025, 1.024, 1.022, 1.021, 1.018, 1.017, 1.015, 1.015, 1.018, 1.036,\n> +                            1.013, 1.004, 1.001, 1.002, 1.003, 1.004, 1.005, 1.007, 1.009, 1.011, 1.012, 1.013, 1.015, 1.018, 1.019, 1.021, 1.023, 1.024, 1.025, 1.024, 1.024, 1.023, 1.022, 1.021, 1.019, 1.019, 1.017, 1.016, 1.016, 1.017, 1.021, 1.039,\n> +                            1.013, 1.004, 1.001, 1.001, 1.001, 1.001, 1.003, 1.003, 1.004, 1.006, 1.008, 1.009, 1.012, 1.013, 1.015, 1.017, 1.018, 1.019, 1.021, 1.021, 1.021, 1.019, 1.018, 1.017, 1.016, 1.015, 1.015, 1.015, 1.016, 1.018, 1.022, 1.045,\n> +                            1.019, 1.009, 1.003, 1.002, 1.002, 1.002, 1.003, 1.003, 1.005, 1.005, 1.007, 1.009, 1.009, 1.011, 1.011, 1.013, 1.014, 1.015, 1.016, 1.017, 1.016, 1.016, 1.015, 1.015, 1.014, 1.014, 1.014, 1.015, 1.017, 1.021, 1.027, 1.049,\n> +                            1.032, 1.023, 1.009, 1.006, 1.006, 1.006, 1.006, 1.006, 1.007, 1.007, 1.009, 1.009, 1.011, 1.012, 1.012, 1.013, 1.014, 1.015, 1.017, 1.017, 1.017, 1.016, 1.015, 1.015, 1.015, 1.016, 1.016, 1.018, 1.021, 1.026, 1.053, 1.059,\n> +                            1.042, 1.038, 1.035, 1.034, 1.034, 1.032, 1.033, 1.031, 1.034, 1.033, 1.035, 1.036, 1.038, 1.038, 1.038, 1.038, 1.038, 1.037, 1.037, 1.037, 1.036, 1.036, 1.035, 1.035, 1.035, 1.035, 1.038, 1.041, 1.048, 1.052, 1.062, 1.068\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5900,\n> +                        \"table\":\n> +                        [\n> +                            1.012, 1.011, 1.011, 1.007, 1.006, 1.006, 1.006, 1.007, 1.008, 1.009, 1.011, 1.012, 1.012, 1.013, 1.014, 1.014, 1.014, 1.014, 1.013, 1.013, 1.013, 1.012, 1.012, 1.012, 1.013, 1.013, 1.014, 1.015, 1.016, 1.019, 1.017, 1.016,\n> +                            1.013, 1.012, 1.012, 1.011, 1.011, 1.011, 1.012, 1.013, 1.014, 1.015, 1.016, 1.018, 1.019, 1.019, 1.021, 1.021, 1.021, 1.021, 1.021, 1.021, 1.019, 1.019, 1.018, 1.018, 1.018, 1.018, 1.018, 1.019, 1.019, 1.019, 1.019, 1.016,\n> +                            1.013, 1.013, 1.013, 1.012, 1.012, 1.013, 1.014, 1.014, 1.015, 1.017, 1.018, 1.019, 1.021, 1.022, 1.022, 1.023, 1.023, 1.023, 1.023, 1.022, 1.022, 1.021, 1.021, 1.021, 1.019, 1.019, 1.019, 1.019, 1.019, 1.021, 1.019, 1.015,\n> +                            1.013, 1.013, 1.013, 1.013, 1.013, 1.014, 1.015, 1.016, 1.017, 1.019, 1.019, 1.021, 1.022, 1.022, 1.023, 1.024, 1.024, 1.024, 1.024, 1.024, 1.023, 1.023, 1.022, 1.021, 1.021, 1.019, 1.019, 1.019, 1.019, 1.019, 1.019, 1.014,\n> +                            1.012, 1.013, 1.013, 1.013, 1.013, 1.014, 1.016, 1.017, 1.018, 1.019, 1.021, 1.022, 1.022, 1.023, 1.024, 1.025, 1.025, 1.026, 1.026, 1.026, 1.025, 1.024, 1.023, 1.022, 1.021, 1.021, 1.021, 1.019, 1.019, 1.019, 1.019, 1.012,\n> +                            1.011, 1.012, 1.013, 1.013, 1.013, 1.015, 1.016, 1.018, 1.019, 1.021, 1.022, 1.022, 1.023, 1.024, 1.025, 1.026, 1.026, 1.027, 1.027, 1.026, 1.026, 1.025, 1.024, 1.023, 1.022, 1.021, 1.021, 1.019, 1.019, 1.019, 1.018, 1.011,\n> +                            1.011, 1.013, 1.014, 1.014, 1.014, 1.016, 1.017, 1.019, 1.021, 1.022, 1.023, 1.023, 1.024, 1.025, 1.026, 1.027, 1.027, 1.028, 1.028, 1.027, 1.027, 1.026, 1.026, 1.025, 1.023, 1.023, 1.021, 1.021, 1.019, 1.019, 1.018, 1.009,\n> +                            1.011, 1.013, 1.014, 1.015, 1.015, 1.017, 1.019, 1.021, 1.022, 1.023, 1.024, 1.024, 1.025, 1.026, 1.027, 1.028, 1.029, 1.029, 1.029, 1.029, 1.029, 1.029, 1.027, 1.026, 1.025, 1.024, 1.023, 1.021, 1.021, 1.019, 1.018, 1.009,\n> +                            1.012, 1.014, 1.015, 1.016, 1.017, 1.018, 1.021, 1.021, 1.023, 1.024, 1.025, 1.026, 1.027, 1.027, 1.028, 1.029, 1.029, 1.031, 1.031, 1.031, 1.031, 1.029, 1.029, 1.028, 1.026, 1.025, 1.024, 1.023, 1.021, 1.021, 1.019, 1.009,\n> +                            1.011, 1.014, 1.015, 1.016, 1.017, 1.019, 1.021, 1.022, 1.023, 1.024, 1.025, 1.026, 1.027, 1.028, 1.029, 1.031, 1.031, 1.031, 1.032, 1.031, 1.031, 1.031, 1.031, 1.029, 1.028, 1.026, 1.025, 1.023, 1.022, 1.021, 1.021, 1.008,\n> +                            1.012, 1.014, 1.016, 1.017, 1.018, 1.019, 1.022, 1.023, 1.024, 1.025, 1.026, 1.027, 1.028, 1.029, 1.031, 1.031, 1.032, 1.033, 1.033, 1.033, 1.032, 1.032, 1.032, 1.029, 1.029, 1.027, 1.026, 1.024, 1.023, 1.022, 1.021, 1.009,\n> +                            1.012, 1.015, 1.016, 1.017, 1.019, 1.021, 1.022, 1.023, 1.025, 1.025, 1.026, 1.028, 1.029, 1.031, 1.032, 1.033, 1.034, 1.034, 1.034, 1.033, 1.033, 1.033, 1.032, 1.032, 1.029, 1.028, 1.027, 1.025, 1.024, 1.022, 1.021, 1.009,\n> +                            1.012, 1.016, 1.017, 1.018, 1.019, 1.022, 1.023, 1.024, 1.025, 1.026, 1.027, 1.029, 1.029, 1.032, 1.033, 1.034, 1.035, 1.035, 1.035, 1.034, 1.034, 1.034, 1.033, 1.032, 1.031, 1.029, 1.028, 1.026, 1.025, 1.023, 1.021, 1.011,\n> +                            1.012, 1.016, 1.017, 1.019, 1.021, 1.022, 1.023, 1.025, 1.026, 1.027, 1.028, 1.029, 1.031, 1.033, 1.034, 1.036, 1.036, 1.036, 1.035, 1.035, 1.034, 1.034, 1.033, 1.032, 1.031, 1.029, 1.028, 1.027, 1.025, 1.023, 1.022, 1.011,\n> +                            1.013, 1.016, 1.018, 1.019, 1.021, 1.023, 1.024, 1.026, 1.027, 1.028, 1.029, 1.031, 1.032, 1.034, 1.035, 1.037, 1.037, 1.037, 1.036, 1.035, 1.035, 1.034, 1.034, 1.032, 1.031, 1.029, 1.028, 1.027, 1.025, 1.023, 1.022, 1.011,\n> +                            1.013, 1.017, 1.018, 1.019, 1.021, 1.023, 1.025, 1.026, 1.028, 1.028, 1.029, 1.031, 1.033, 1.035, 1.036, 1.038, 1.038, 1.038, 1.037, 1.036, 1.035, 1.034, 1.034, 1.032, 1.031, 1.029, 1.028, 1.026, 1.025, 1.023, 1.021, 1.011,\n> +                            1.013, 1.017, 1.018, 1.021, 1.022, 1.024, 1.025, 1.027, 1.028, 1.029, 1.031, 1.032, 1.034, 1.036, 1.037, 1.039, 1.039, 1.039, 1.038, 1.037, 1.036, 1.035, 1.034, 1.033, 1.032, 1.029, 1.028, 1.026, 1.024, 1.023, 1.021, 1.011,\n> +                            1.013, 1.017, 1.018, 1.019, 1.021, 1.023, 1.025, 1.027, 1.028, 1.029, 1.029, 1.032, 1.034, 1.036, 1.038, 1.039, 1.039, 1.039, 1.038, 1.038, 1.037, 1.036, 1.035, 1.033, 1.032, 1.029, 1.028, 1.026, 1.024, 1.022, 1.021, 1.011,\n> +                            1.013, 1.016, 1.017, 1.019, 1.021, 1.022, 1.024, 1.026, 1.027, 1.029, 1.029, 1.031, 1.033, 1.035, 1.037, 1.038, 1.039, 1.038, 1.038, 1.038, 1.037, 1.036, 1.035, 1.034, 1.032, 1.029, 1.028, 1.026, 1.024, 1.023, 1.021, 1.011,\n> +                            1.012, 1.015, 1.016, 1.018, 1.019, 1.022, 1.024, 1.025, 1.027, 1.028, 1.029, 1.031, 1.032, 1.034, 1.035, 1.037, 1.038, 1.037, 1.037, 1.037, 1.036, 1.035, 1.035, 1.034, 1.032, 1.029, 1.028, 1.026, 1.024, 1.023, 1.021, 1.012,\n> +                            1.012, 1.015, 1.016, 1.018, 1.019, 1.021, 1.023, 1.025, 1.026, 1.027, 1.028, 1.029, 1.031, 1.032, 1.034, 1.035, 1.035, 1.036, 1.036, 1.036, 1.035, 1.035, 1.034, 1.033, 1.031, 1.029, 1.027, 1.025, 1.024, 1.023, 1.022, 1.012,\n> +                            1.012, 1.015, 1.016, 1.017, 1.019, 1.021, 1.023, 1.025, 1.026, 1.027, 1.028, 1.029, 1.029, 1.031, 1.032, 1.033, 1.034, 1.034, 1.034, 1.034, 1.034, 1.033, 1.032, 1.031, 1.029, 1.027, 1.025, 1.024, 1.023, 1.022, 1.021, 1.012,\n> +                            1.013, 1.016, 1.016, 1.017, 1.019, 1.021, 1.022, 1.024, 1.026, 1.027, 1.028, 1.029, 1.029, 1.031, 1.031, 1.032, 1.033, 1.033, 1.033, 1.033, 1.032, 1.031, 1.029, 1.029, 1.027, 1.025, 1.024, 1.022, 1.021, 1.021, 1.019, 1.012,\n> +                            1.013, 1.015, 1.016, 1.017, 1.018, 1.021, 1.022, 1.024, 1.026, 1.027, 1.029, 1.029, 1.031, 1.031, 1.031, 1.032, 1.032, 1.033, 1.033, 1.032, 1.031, 1.029, 1.029, 1.027, 1.025, 1.024, 1.022, 1.021, 1.019, 1.019, 1.018, 1.011,\n> +                            1.012, 1.015, 1.016, 1.016, 1.018, 1.019, 1.021, 1.024, 1.025, 1.027, 1.028, 1.029, 1.031, 1.031, 1.031, 1.032, 1.033, 1.033, 1.033, 1.032, 1.031, 1.029, 1.029, 1.027, 1.025, 1.023, 1.022, 1.021, 1.019, 1.019, 1.018, 1.011,\n> +                            1.012, 1.013, 1.014, 1.015, 1.016, 1.018, 1.019, 1.022, 1.024, 1.026, 1.027, 1.028, 1.029, 1.029, 1.031, 1.032, 1.032, 1.032, 1.032, 1.032, 1.031, 1.029, 1.028, 1.027, 1.024, 1.023, 1.021, 1.021, 1.019, 1.019, 1.018, 1.012,\n> +                            1.011, 1.012, 1.013, 1.013, 1.014, 1.016, 1.017, 1.019, 1.021, 1.023, 1.025, 1.026, 1.027, 1.028, 1.029, 1.031, 1.031, 1.031, 1.031, 1.031, 1.029, 1.029, 1.027, 1.025, 1.024, 1.023, 1.022, 1.021, 1.019, 1.019, 1.019, 1.017,\n> +                            1.012, 1.012, 1.013, 1.013, 1.013, 1.014, 1.015, 1.017, 1.019, 1.021, 1.023, 1.024, 1.025, 1.026, 1.027, 1.028, 1.029, 1.029, 1.029, 1.029, 1.028, 1.027, 1.025, 1.024, 1.023, 1.022, 1.022, 1.021, 1.021, 1.021, 1.021, 1.019,\n> +                            1.013, 1.014, 1.014, 1.013, 1.013, 1.014, 1.014, 1.015, 1.017, 1.018, 1.019, 1.021, 1.022, 1.023, 1.024, 1.025, 1.026, 1.026, 1.026, 1.026, 1.026, 1.024, 1.023, 1.022, 1.021, 1.021, 1.021, 1.021, 1.022, 1.022, 1.022, 1.021,\n> +                            1.016, 1.016, 1.015, 1.013, 1.013, 1.013, 1.013, 1.014, 1.015, 1.016, 1.017, 1.019, 1.019, 1.021, 1.021, 1.022, 1.022, 1.023, 1.023, 1.023, 1.022, 1.021, 1.021, 1.021, 1.019, 1.019, 1.019, 1.021, 1.021, 1.022, 1.022, 1.021,\n> +                            1.016, 1.015, 1.014, 1.013, 1.013, 1.013, 1.013, 1.013, 1.013, 1.014, 1.016, 1.016, 1.017, 1.017, 1.017, 1.017, 1.017, 1.017, 1.017, 1.016, 1.016, 1.015, 1.015, 1.015, 1.015, 1.016, 1.017, 1.018, 1.019, 1.021, 1.021, 1.021,\n> +                            1.006, 1.006, 1.005, 1.002, 1.001, 1.001, 1.001, 1.002, 1.003, 1.005, 1.005, 1.006, 1.006, 1.006, 1.006, 1.006, 1.005, 1.004, 1.004, 1.002, 1.002, 1.001, 1.001, 1.001, 1.001, 1.003, 1.004, 1.008, 1.014, 1.017, 1.019, 1.021\n> +                        ]\n> +                    }\n> +                ],\n> +                \"luminance_lut\":\n> +                [\n> +                    3.272, 3.146, 2.912, 2.746, 2.601, 2.471, 2.347, 2.225, 2.112, 2.013, 1.929, 1.878, 1.842, 1.822, 1.817, 1.817, 1.817, 1.827, 1.848, 1.882, 1.942, 2.026, 2.133, 2.247, 2.369, 2.494, 2.627, 2.783, 2.968, 3.221, 3.574, 3.671,\n> +                    3.146, 2.968, 2.775, 2.623, 2.476, 2.349, 2.238, 2.114, 2.013, 1.929, 1.856, 1.799, 1.753, 1.722, 1.705, 1.705, 1.707, 1.728, 1.762, 1.808, 1.869, 1.942, 2.027, 2.139, 2.261, 2.372, 2.504, 2.654, 2.816, 3.029, 3.342, 3.574,\n> +                    2.968, 2.851, 2.675, 2.519, 2.378, 2.241, 2.114, 2.013, 1.908, 1.825, 1.754, 1.697, 1.651, 1.621, 1.605, 1.605, 1.606, 1.629, 1.659, 1.707, 1.766, 1.837, 1.931, 2.027, 2.139, 2.265, 2.399, 2.547, 2.709, 2.895, 3.159, 3.342,\n> +                    2.859, 2.746, 2.574, 2.422, 2.279, 2.143, 2.015, 1.908, 1.819, 1.731, 1.659, 1.604, 1.558, 1.531, 1.512, 1.512, 1.515, 1.535, 1.566, 1.612, 1.668, 1.739, 1.836, 1.931, 2.041, 2.167, 2.305, 2.457, 2.617, 2.789, 3.018, 3.159,\n> +                    2.775, 2.659, 2.487, 2.336, 2.189, 2.055, 1.927, 1.819, 1.731, 1.644, 1.574, 1.519, 1.476, 1.447, 1.429, 1.429, 1.432, 1.449, 1.483, 1.528, 1.587, 1.659, 1.739, 1.838, 1.951, 2.078, 2.217, 2.365, 2.529, 2.695, 2.903, 3.023,\n> +                    2.699, 2.581, 2.409, 2.252, 2.104, 1.966, 1.846, 1.737, 1.644, 1.571, 1.496, 1.441, 1.401, 1.371, 1.352, 1.352, 1.355, 1.372, 1.406, 1.449, 1.506, 1.586, 1.659, 1.758, 1.869, 1.993, 2.134, 2.283, 2.448, 2.618, 2.809, 2.922,\n> +                    2.636, 2.508, 2.339, 2.178, 2.028, 1.893, 1.772, 1.666, 1.571, 1.496, 1.431, 1.372, 1.331, 1.301, 1.283, 1.283, 1.287, 1.303, 1.337, 1.382, 1.444, 1.506, 1.587, 1.684, 1.794, 1.918, 2.057, 2.211, 2.375, 2.547, 2.731, 2.842,\n> +                    2.581, 2.443, 2.268, 2.107, 1.962, 1.828, 1.708, 1.601, 1.511, 1.431, 1.372, 1.309, 1.267, 1.236, 1.221, 1.221, 1.224, 1.242, 1.275, 1.321, 1.382, 1.444, 1.524, 1.619, 1.726, 1.848, 1.987, 2.141, 2.307, 2.479, 2.667, 2.776,\n> +                    2.525, 2.385, 2.209, 2.047, 1.901, 1.765, 1.647, 1.544, 1.452, 1.374, 1.309, 1.258, 1.211, 1.181, 1.165, 1.165, 1.168, 1.187, 1.219, 1.272, 1.321, 1.389, 1.469, 1.561, 1.667, 1.787, 1.926, 2.081, 2.245, 2.418, 2.607, 2.721,\n> +                    2.479, 2.329, 2.155, 1.993, 1.844, 1.714, 1.596, 1.492, 1.401, 1.323, 1.258, 1.211, 1.164, 1.135, 1.118, 1.118, 1.121, 1.139, 1.174, 1.219, 1.272, 1.338, 1.418, 1.511, 1.616, 1.736, 1.871, 2.022, 2.191, 2.367, 2.554, 2.676,\n> +                    2.445, 2.284, 2.106, 1.948, 1.801, 1.669, 1.552, 1.451, 1.359, 1.283, 1.217, 1.164, 1.131, 1.097, 1.083, 1.083, 1.085, 1.101, 1.139, 1.174, 1.231, 1.296, 1.375, 1.471, 1.572, 1.691, 1.825, 1.978, 2.146, 2.325, 2.508, 2.639,\n> +                    2.411, 2.245, 2.074, 1.909, 1.764, 1.633, 1.518, 1.416, 1.327, 1.249, 1.182, 1.131, 1.097, 1.069, 1.054, 1.054, 1.056, 1.075, 1.101, 1.141, 1.195, 1.261, 1.341, 1.433, 1.534, 1.655, 1.789, 1.941, 2.106, 2.286, 2.471, 2.607,\n> +                    2.392, 2.219, 2.041, 1.878, 1.736, 1.605, 1.489, 1.387, 1.299, 1.222, 1.157, 1.104, 1.069, 1.052, 1.031, 1.031, 1.033, 1.056, 1.075, 1.113, 1.166, 1.233, 1.312, 1.403, 1.506, 1.624, 1.757, 1.909, 2.072, 2.252, 2.441, 2.589,\n> +                    2.379, 2.196, 2.021, 1.856, 1.714, 1.586, 1.469, 1.369, 1.278, 1.201, 1.138, 1.087, 1.052, 1.031, 1.019, 1.014, 1.022, 1.033, 1.058, 1.095, 1.146, 1.212, 1.289, 1.382, 1.486, 1.603, 1.736, 1.885, 2.051, 2.229, 2.419, 2.575,\n> +                    2.369, 2.182, 2.006, 1.844, 1.703, 1.573, 1.458, 1.355, 1.266, 1.189, 1.123, 1.077, 1.041, 1.019, 1.011, 1.005, 1.011, 1.022, 1.047, 1.083, 1.133, 1.198, 1.277, 1.368, 1.472, 1.588, 1.719, 1.869, 2.036, 2.218, 2.408, 2.568,\n> +                    2.368, 2.175, 1.999, 1.835, 1.694, 1.565, 1.449, 1.348, 1.261, 1.182, 1.118, 1.071, 1.036, 1.013, 1.001, 1.001, 1.002, 1.017, 1.041, 1.078, 1.126, 1.189, 1.268, 1.358, 1.463, 1.579, 1.712, 1.863, 2.028, 2.207, 2.401, 2.565,\n> +                    2.368, 2.175, 1.999, 1.835, 1.694, 1.565, 1.449, 1.348, 1.261, 1.182, 1.118, 1.071, 1.036, 1.013, 1.002, 1.001, 1.002, 1.017, 1.041, 1.078, 1.126, 1.189, 1.268, 1.358, 1.463, 1.579, 1.712, 1.863, 2.028, 2.207, 2.401, 2.565,\n> +                    2.371, 2.184, 2.007, 1.841, 1.699, 1.571, 1.458, 1.357, 1.267, 1.188, 1.123, 1.074, 1.041, 1.018, 1.011, 1.005, 1.011, 1.022, 1.048, 1.084, 1.131, 1.197, 1.274, 1.366, 1.469, 1.587, 1.718, 1.866, 2.034, 2.213, 2.406, 2.566,\n> +                    2.381, 2.197, 2.019, 1.857, 1.714, 1.583, 1.469, 1.368, 1.278, 1.201, 1.135, 1.088, 1.052, 1.032, 1.018, 1.015, 1.022, 1.034, 1.059, 1.093, 1.142, 1.209, 1.286, 1.377, 1.483, 1.599, 1.731, 1.882, 2.049, 2.229, 2.419, 2.575,\n> +                    2.397, 2.219, 2.043, 1.879, 1.735, 1.604, 1.489, 1.388, 1.297, 1.221, 1.156, 1.105, 1.069, 1.052, 1.032, 1.032, 1.034, 1.056, 1.076, 1.111, 1.161, 1.228, 1.305, 1.397, 1.501, 1.619, 1.753, 1.905, 2.071, 2.249, 2.441, 2.589,\n> +                    2.419, 2.251, 2.073, 1.911, 1.765, 1.632, 1.516, 1.414, 1.325, 1.248, 1.181, 1.129, 1.095, 1.069, 1.054, 1.054, 1.056, 1.076, 1.099, 1.134, 1.187, 1.255, 1.333, 1.424, 1.528, 1.649, 1.782, 1.933, 2.101, 2.281, 2.469, 2.609,\n> +                    2.445, 2.286, 2.107, 1.947, 1.798, 1.666, 1.551, 1.448, 1.357, 1.278, 1.213, 1.161, 1.129, 1.095, 1.082, 1.082, 1.084, 1.099, 1.134, 1.166, 1.221, 1.287, 1.366, 1.459, 1.563, 1.681, 1.817, 1.969, 2.138, 2.313, 2.501, 2.635,\n> +                    2.481, 2.331, 2.154, 1.991, 1.843, 1.709, 1.592, 1.488, 1.398, 1.319, 1.253, 1.205, 1.161, 1.131, 1.116, 1.116, 1.119, 1.135, 1.166, 1.209, 1.259, 1.325, 1.406, 1.498, 1.603, 1.724, 1.862, 2.014, 2.181, 2.358, 2.545, 2.671,\n> +                    2.525, 2.381, 2.203, 2.042, 1.893, 1.759, 1.639, 1.538, 1.446, 1.368, 1.301, 1.253, 1.205, 1.175, 1.158, 1.158, 1.161, 1.178, 1.209, 1.259, 1.306, 1.372, 1.452, 1.544, 1.649, 1.775, 1.912, 2.066, 2.233, 2.406, 2.593, 2.715,\n> +                    2.575, 2.434, 2.266, 2.101, 1.951, 1.815, 1.699, 1.592, 1.499, 1.419, 1.359, 1.301, 1.257, 1.227, 1.209, 1.209, 1.212, 1.231, 1.263, 1.306, 1.365, 1.425, 1.506, 1.599, 1.709, 1.831, 1.968, 2.122, 2.287, 2.462, 2.649, 2.768,\n> +                    2.631, 2.496, 2.331, 2.166, 2.019, 1.881, 1.761, 1.651, 1.559, 1.481, 1.419, 1.359, 1.318, 1.287, 1.268, 1.268, 1.272, 1.292, 1.322, 1.365, 1.425, 1.487, 1.568, 1.663, 1.775, 1.898, 2.039, 2.189, 2.353, 2.521, 2.716, 2.834,\n> +                    2.697, 2.567, 2.399, 2.239, 2.092, 1.954, 1.831, 1.722, 1.629, 1.554, 1.481, 1.426, 1.384, 1.352, 1.334, 1.334, 1.338, 1.358, 1.388, 1.432, 1.487, 1.562, 1.636, 1.736, 1.845, 1.974, 2.111, 2.261, 2.424, 2.599, 2.799, 2.913,\n> +                    2.769, 2.648, 2.476, 2.321, 2.172, 2.036, 1.913, 1.801, 1.709, 1.629, 1.554, 1.499, 1.458, 1.426, 1.411, 1.411, 1.415, 1.432, 1.461, 1.505, 1.562, 1.636, 1.717, 1.814, 1.926, 2.052, 2.191, 2.339, 2.502, 2.682, 2.901, 3.027,\n> +                    2.861, 2.742, 2.566, 2.408, 2.263, 2.125, 2.002, 1.889, 1.799, 1.709, 1.638, 1.582, 1.537, 1.506, 1.493, 1.493, 1.494, 1.511, 1.544, 1.588, 1.643, 1.717, 1.812, 1.901, 2.015, 2.141, 2.279, 2.426, 2.587, 2.769, 3.024, 3.181,\n> +                    2.985, 2.846, 2.659, 2.502, 2.357, 2.224, 2.099, 1.997, 1.889, 1.801, 1.731, 1.672, 1.626, 1.595, 1.579, 1.579, 1.581, 1.601, 1.634, 1.678, 1.736, 1.812, 1.901, 2.006, 2.111, 2.235, 2.372, 2.516, 2.679, 2.882, 3.181, 3.364,\n> +                    3.154, 2.985, 2.774, 2.611, 2.463, 2.331, 2.208, 2.099, 1.997, 1.909, 1.839, 1.777, 1.733, 1.698, 1.681, 1.681, 1.682, 1.705, 1.737, 1.782, 1.843, 1.917, 2.006, 2.111, 2.217, 2.344, 2.478, 2.623, 2.799, 3.039, 3.364, 3.555,\n> +                    3.308, 3.154, 2.908, 2.728, 2.582, 2.442, 2.324, 2.203, 2.094, 1.997, 1.909, 1.839, 1.806, 1.786, 1.779, 1.779, 1.779, 1.785, 1.807, 1.843, 1.917, 2.006, 2.106, 2.212, 2.329, 2.451, 2.588, 2.742, 2.941, 3.213, 3.555, 3.664\n> +                ],\n> +                \"sigma\": 0.00319,\n> +                \"sigma_Cb\": 0.00194\n> +            }\n> +        },\n> +        {\n> +            \"rpi.contrast\":\n> +            {\n> +                \"ce_enable\": 1,\n> +                \"gamma_curve\":\n> +                [\n> +                    0, 0,\n> +                    512, 2518,\n> +                    1024, 5033,\n> +                    1536, 7175,\n> +                    2048, 9309,\n> +                    2560, 10814,\n> +                    3072, 12312,\n> +                    3584, 13773,\n> +                    4096, 15225,\n> +                    4608, 16566,\n> +                    5120, 17899,\n> +                    5632, 19221,\n> +                    6144, 20534,\n> +                    6656, 21684,\n> +                    7168, 22826,\n> +                    7680, 24024,\n> +                    8192, 25212,\n> +                    9216, 27251,\n> +                    10240, 29167,\n> +                    11264, 30947,\n> +                    12288, 32696,\n> +                    13312, 34309,\n> +                    14336, 35849,\n> +                    15360, 37194,\n> +                    16384, 38445,\n> +                    17408, 39598,\n> +                    18432, 40732,\n> +                    19456, 41717,\n> +                    20480, 42687,\n> +                    22528, 44343,\n> +                    24576, 45871,\n> +                    26624, 47222,\n> +                    28672, 48441,\n> +                    30720, 49460,\n> +                    32768, 50470,\n> +                    34816, 51476,\n> +                    36864, 52480,\n> +                    38912, 53382,\n> +                    40960, 54294,\n> +                    43008, 55155,\n> +                    45056, 56035,\n> +                    47104, 56920,\n> +                    49152, 57824,\n> +                    51200, 58737,\n> +                    53248, 59666,\n> +                    55296, 60604,\n> +                    57344, 61558,\n> +                    59392, 62529,\n> +                    61440, 63516,\n> +                    63488, 64519,\n> +                    65535, 65535\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.ccm\":\n> +            {\n> +                \"ccms\": [\n> +                    {\n> +                        \"ct\": 2920,\n> +                        \"ccm\":\n> +                        [\n> +                            1.70668, -0.26633, -0.44035,\n> +                            -0.66386, 2.27239, -0.60854,\n> +                            -0.15809, -0.89221, 2.05029\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3630,\n> +                        \"ccm\":\n> +                        [\n> +                            1.81653, -0.46488, -0.35165,\n> +                            -0.59281, 2.14391, -0.55111,\n> +                            -0.12826, -0.73626, 1.86451\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 4550,\n> +                        \"ccm\":\n> +                        [\n> +                            1.81131, -0.47745, -0.33385,\n> +                            -0.52168, 2.23595, -0.71427,\n> +                            -0.11785, -0.64358, 1.76143\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5580,\n> +                        \"ccm\":\n> +                        [\n> +                            1.85414, -0.53316, -0.32097,\n> +                            -0.46403, 2.08577, -0.62175,\n> +                            -0.12085, -0.56175, 1.68259\n> +                        ]\n> +                    }\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.cac\": { }\n> +        },\n> +        {\n> +            \"rpi.sharpen\":\n> +            {\n> +                \"threshold\": 0.75,\n> +                \"limit\": 0.5,\n> +                \"strength\": 1.0\n> +            }\n> +        },\n> +        {\n> +            \"rpi.hdr\":\n> +            {\n> +                \"Off\":\n> +                {\n> +                    \"cadence\": [ 0 ]\n> +                },\n> +                \"MultiExposureUnmerged\":\n> +                {\n> +                    \"cadence\": [ 1, 2 ],\n> +                    \"channel_map\":\n> +                    {\n> +                        \"short\": 1,\n> +                        \"long\": 2\n> +                    }\n> +                },\n> +                \"SingleExposure\":\n> +                {\n> +                    \"cadence\": [ 1 ],\n> +                    \"channel_map\":\n> +                    {\n> +                        \"short\": 1\n> +                    },\n> +                    \"spatial_gain\": 2.0,\n> +                    \"tonemap_enable\": 1\n> +                },\n> +                \"MultiExposure\":\n> +                {\n> +                    \"cadence\": [ 1, 2 ],\n> +                    \"channel_map\":\n> +                    {\n> +                        \"short\": 1,\n> +                        \"long\": 2\n> +                    },\n> +                    \"stitch_enable\": 1,\n> +                    \"spatial_gain\": 2.0,\n> +                    \"tonemap_enable\": 1\n> +                },\n> +                \"Night\":\n> +                {\n> +                    \"cadence\": [ 3 ],\n> +                    \"channel_map\":\n> +                    {\n> +                        \"night\": 3\n> +                    },\n> +                    \"tonemap_enable\": 1,\n> +                    \"tonemap\":\n> +                    [\n> +                        0, 0,\n> +                        5000, 20000,\n> +                        10000, 30000,\n> +                        20000, 47000,\n> +                        30000, 55000,\n> +                        65535, 65535\n> +                    ]\n> +                }\n> +            }\n> +        },\n> +        {\n> +            \"rpi.sync\": { }\n> +        }\n> +    ]\n> +}\n> \\ No newline at end of file\n> diff --git a/src/ipa/rpi/pisp/data/meson.build b/src/ipa/rpi/pisp/data/meson.build\n> index 5c629bdc7131..a59e9d1854e1 100644\n> --- a/src/ipa/rpi/pisp/data/meson.build\n> +++ b/src/ipa/rpi/pisp/data/meson.build\n> @@ -8,6 +8,7 @@ conf_files = files([\n>       'imx296.json',\n>       'imx296_mono.json',\n>       'imx335.json',\n> +    'imx355.json',\n>       'imx378.json',\n>       'imx415.json',\n>       'imx415_b0569.json',\n> diff --git a/src/ipa/rpi/vc4/data/imx355.json b/src/ipa/rpi/vc4/data/imx355.json\n> new file mode 100644\n> index 000000000000..ba5bbc3592d5\n> --- /dev/null\n> +++ b/src/ipa/rpi/vc4/data/imx355.json\n> @@ -0,0 +1,416 @@\n> +{\n> +    \"version\": 2.0,\n> +    \"target\": \"bcm2835\",\n> +    \"algorithms\": [\n> +        {\n> +            \"rpi.black_level\":\n> +            {\n> +                \"black_level\": 4096\n> +            }\n> +        },\n> +        {\n> +            \"rpi.dpc\": { }\n> +        },\n> +        {\n> +            \"rpi.lux\":\n> +            {\n> +                \"reference_shutter_speed\": 15151,\n> +                \"reference_gain\": 1.5,\n> +                \"reference_aperture\": 1.0,\n> +                \"reference_lux\": 920,\n> +                \"reference_Y\": 8539\n> +            }\n> +        },\n> +        {\n> +            \"rpi.noise\":\n> +            {\n> +                \"reference_constant\": 23,\n> +                \"reference_slope\": 5.041\n> +            }\n> +        },\n> +        {\n> +            \"rpi.geq\":\n> +            {\n> +                \"offset\": 104,\n> +                \"slope\": 0.01695\n> +            }\n> +        },\n> +        {\n> +            \"rpi.sdn\": { }\n> +        },\n> +        {\n> +            \"rpi.awb\":\n> +            {\n> +                \"priors\": [\n> +                    {\n> +                        \"lux\": 0,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 1.0,\n> +                            3000, 0.0,\n> +                            13000, 0.0\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"lux\": 800,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 0.0,\n> +                            6000, 2.0,\n> +                            13000, 2.0\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"lux\": 1500,\n> +                        \"prior\":\n> +                        [\n> +                            2000, 0.0,\n> +                            4000, 1.0,\n> +                            6000, 6.0,\n> +                            6500, 7.0,\n> +                            7000, 1.0,\n> +                            13000, 1.0\n> +                        ]\n> +                    }\n> +                ],\n> +                \"modes\":\n> +                {\n> +                    \"auto\":\n> +                    {\n> +                        \"lo\": 2920.0,\n> +                        \"hi\": 5580.0\n> +                    },\n> +                    \"incandescent\":\n> +                    {\n> +                        \"lo\": 2920.0,\n> +                        \"hi\": 3000\n> +                    },\n> +                    \"tungsten\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 3500\n> +                    },\n> +                    \"fluorescent\":\n> +                    {\n> +                        \"lo\": 4000,\n> +                        \"hi\": 4700\n> +                    },\n> +                    \"indoor\":\n> +                    {\n> +                        \"lo\": 3000,\n> +                        \"hi\": 5000\n> +                    },\n> +                    \"daylight\":\n> +                    {\n> +                        \"lo\": 5500,\n> +                        \"hi\": 5580.0\n> +                    },\n> +                    \"cloudy\":\n> +                    {\n> +                        \"lo\": 5580.0,\n> +                        \"hi\": 5580.0\n> +                    }\n> +                },\n> +                \"bayes\": 1,\n> +                \"ct_curve\":\n> +                [\n> +                    2920.0, 0.8302, 0.4567,\n> +                    3630.0, 0.7135, 0.5308,\n> +                    4550.0, 0.5662, 0.6699,\n> +                    5580.0, 0.5343, 0.7087\n> +                ],\n> +                \"sensitivity_r\": 1.0,\n> +                \"sensitivity_b\": 1.0,\n> +                \"transverse_pos\": 0.01,\n> +                \"transverse_neg\": 0.01\n> +            }\n> +        },\n> +        {\n> +            \"rpi.agc\":\n> +            {\n> +                \"metering_modes\":\n> +                {\n> +                    \"centre-weighted\":\n> +                    {\n> +                        \"weights\":\n> +                        [\n> +                            3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0\n> +                        ]\n> +                    },\n> +                    \"spot\":\n> +                    {\n> +                        \"weights\":\n> +                        [\n> +                            2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n> +                        ]\n> +                    },\n> +                    \"matrix\":\n> +                    {\n> +                        \"weights\":\n> +                        [\n> +                            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1\n> +                        ]\n> +                    }\n> +                },\n> +                \"exposure_modes\":\n> +                {\n> +                    \"normal\":\n> +                    {\n> +                        \"shutter\": [ 100, 10000, 30000, 60000, 66666 ],\n> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> +                    },\n> +                    \"short\":\n> +                    {\n> +                        \"shutter\": [ 100, 5000, 10000, 20000, 66666 ],\n> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> +                    },\n> +                    \"long\":\n> +                    {\n> +                        \"shutter\": [ 100, 10000, 30000, 60000, 120000 ],\n> +                        \"gain\": [ 1.0, 2.0, 4.0, 6.0, 8.0 ]\n> +                    }\n> +                },\n> +                \"constraint_modes\":\n> +                {\n> +                    \"normal\": [\n> +                        {\n> +                            \"bound\": \"LOWER\",\n> +                            \"q_lo\": 0.98,\n> +                            \"q_hi\": 1.0,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.5,\n> +                                1000, 0.5\n> +                            ]\n> +                        }\n> +                    ],\n> +                    \"highlight\": [\n> +                        {\n> +                            \"bound\": \"LOWER\",\n> +                            \"q_lo\": 0.98,\n> +                            \"q_hi\": 1.0,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.5,\n> +                                1000, 0.5\n> +                            ]\n> +                        },\n> +                        {\n> +                            \"bound\": \"UPPER\",\n> +                            \"q_lo\": 0.98,\n> +                            \"q_hi\": 1.0,\n> +                            \"y_target\":\n> +                            [\n> +                                0, 0.8,\n> +                                1000, 0.8\n> +                            ]\n> +                        }\n> +                    ]\n> +                },\n> +                \"y_target\":\n> +                [\n> +                    0, 0.16,\n> +                    1000, 0.165,\n> +                    10000, 0.17\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.alsc\":\n> +            {\n> +                \"omega\": 1.3,\n> +                \"n_iter\": 100,\n> +                \"luminance_strength\": 0.8,\n> +                \"calibrations_Cr\": [\n> +                    {\n> +                        \"ct\": 2900,\n> +                        \"table\":\n> +                        [\n> +                            1.546, 1.546, 1.513, 1.438, 1.347, 1.297, 1.289, 1.289, 1.289, 1.305, 1.373, 1.456, 1.512, 1.513, 1.494, 1.486,\n> +                            1.546, 1.516, 1.445, 1.359, 1.269, 1.214, 1.184, 1.184, 1.193, 1.234, 1.296, 1.391, 1.461, 1.512, 1.507, 1.494,\n> +                            1.517, 1.464, 1.359, 1.269, 1.195, 1.122, 1.093, 1.093, 1.104, 1.144, 1.231, 1.296, 1.391, 1.481, 1.509, 1.511,\n> +                            1.494, 1.415, 1.301, 1.195, 1.122, 1.076, 1.033, 1.033, 1.046, 1.104, 1.144, 1.231, 1.337, 1.443, 1.502, 1.511,\n> +                            1.485, 1.382, 1.261, 1.156, 1.076, 1.033, 1.015, 1.002, 1.028, 1.046, 1.107, 1.194, 1.302, 1.415, 1.495, 1.506,\n> +                            1.485, 1.376, 1.257, 1.153, 1.073, 1.024, 1.001, 1.001, 1.009, 1.044, 1.103, 1.191, 1.297, 1.409, 1.491, 1.498,\n> +                            1.485, 1.376, 1.257, 1.153, 1.073, 1.027, 1.015, 1.002, 1.023, 1.044, 1.103, 1.191, 1.297, 1.409, 1.491, 1.499,\n> +                            1.489, 1.407, 1.292, 1.188, 1.111, 1.073, 1.027, 1.027, 1.044, 1.092, 1.135, 1.223, 1.328, 1.432, 1.492, 1.498,\n> +                            1.507, 1.451, 1.349, 1.251, 1.188, 1.111, 1.082, 1.082, 1.092, 1.135, 1.212, 1.279, 1.377, 1.467, 1.498, 1.499,\n> +                            1.529, 1.498, 1.417, 1.347, 1.251, 1.195, 1.164, 1.164, 1.173, 1.212, 1.279, 1.364, 1.437, 1.487, 1.493, 1.484,\n> +                            1.527, 1.508, 1.483, 1.415, 1.348, 1.297, 1.267, 1.267, 1.275, 1.311, 1.362, 1.429, 1.487, 1.496, 1.485, 1.451,\n> +                            1.525, 1.508, 1.507, 1.458, 1.401, 1.348, 1.314, 1.314, 1.314, 1.362, 1.409, 1.464, 1.498, 1.499, 1.451, 1.439\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5900,\n> +                        \"table\":\n> +                        [\n> +                            1.451, 1.449, 1.415, 1.349, 1.276, 1.239, 1.234, 1.234, 1.234, 1.248, 1.305, 1.373, 1.424, 1.425, 1.425, 1.419,\n> +                            1.449, 1.416, 1.359, 1.285, 1.214, 1.169, 1.145, 1.145, 1.156, 1.191, 1.242, 1.321, 1.377, 1.425, 1.426, 1.425,\n> +                            1.415, 1.369, 1.285, 1.214, 1.151, 1.094, 1.071, 1.071, 1.084, 1.121, 1.191, 1.242, 1.321, 1.395, 1.425, 1.428,\n> +                            1.395, 1.329, 1.236, 1.151, 1.094, 1.055, 1.023, 1.023, 1.041, 1.084, 1.121, 1.193, 1.278, 1.364, 1.422, 1.429,\n> +                            1.387, 1.302, 1.205, 1.119, 1.055, 1.023, 1.008, 1.006, 1.021, 1.041, 1.093, 1.164, 1.251, 1.342, 1.409, 1.422,\n> +                            1.387, 1.299, 1.203, 1.119, 1.055, 1.016, 1.001, 1.001, 1.012, 1.041, 1.092, 1.163, 1.249, 1.338, 1.404, 1.418,\n> +                            1.387, 1.299, 1.203, 1.119, 1.056, 1.024, 1.008, 1.006, 1.022, 1.042, 1.093, 1.163, 1.249, 1.338, 1.404, 1.416,\n> +                            1.391, 1.322, 1.232, 1.149, 1.093, 1.056, 1.024, 1.024, 1.042, 1.082, 1.119, 1.191, 1.273, 1.357, 1.409, 1.416,\n> +                            1.403, 1.358, 1.278, 1.206, 1.149, 1.093, 1.071, 1.071, 1.082, 1.119, 1.182, 1.236, 1.313, 1.383, 1.411, 1.413,\n> +                            1.421, 1.396, 1.334, 1.278, 1.206, 1.162, 1.139, 1.139, 1.149, 1.182, 1.236, 1.302, 1.359, 1.399, 1.409, 1.401,\n> +                            1.421, 1.408, 1.385, 1.333, 1.283, 1.243, 1.222, 1.222, 1.231, 1.259, 1.302, 1.354, 1.399, 1.409, 1.401, 1.375,\n> +                            1.419, 1.408, 1.407, 1.368, 1.324, 1.283, 1.265, 1.265, 1.265, 1.302, 1.343, 1.382, 1.411, 1.411, 1.375, 1.368\n> +                        ]\n> +                    }\n> +                ],\n> +                \"calibrations_Cb\": [\n> +                    {\n> +                        \"ct\": 2900,\n> +                        \"table\":\n> +                        [\n> +                            1.005, 1.004, 1.002, 1.002, 1.004, 1.006, 1.008, 1.011, 1.013, 1.013, 1.013, 1.013, 1.013, 1.017, 1.034, 1.051,\n> +                            1.004, 1.003, 1.002, 1.002, 1.005, 1.007, 1.009, 1.012, 1.014, 1.014, 1.014, 1.013, 1.013, 1.014, 1.018, 1.039,\n> +                            1.002, 1.002, 1.001, 1.004, 1.007, 1.009, 1.013, 1.017, 1.021, 1.021, 1.021, 1.018, 1.013, 1.013, 1.015, 1.035,\n> +                            1.002, 1.002, 1.004, 1.007, 1.009, 1.013, 1.017, 1.022, 1.026, 1.027, 1.026, 1.023, 1.018, 1.014, 1.015, 1.032,\n> +                            1.002, 1.003, 1.006, 1.009, 1.012, 1.016, 1.022, 1.027, 1.032, 1.032, 1.029, 1.026, 1.022, 1.015, 1.015, 1.032,\n> +                            1.003, 1.003, 1.006, 1.011, 1.014, 1.019, 1.026, 1.032, 1.035, 1.035, 1.033, 1.029, 1.023, 1.016, 1.016, 1.031,\n> +                            1.002, 1.003, 1.006, 1.011, 1.014, 1.019, 1.026, 1.029, 1.035, 1.035, 1.031, 1.028, 1.022, 1.015, 1.015, 1.028,\n> +                            1.002, 1.002, 1.004, 1.009, 1.013, 1.016, 1.022, 1.027, 1.029, 1.029, 1.029, 1.024, 1.018, 1.013, 1.013, 1.027,\n> +                            1.001, 1.001, 1.002, 1.005, 1.009, 1.013, 1.017, 1.021, 1.025, 1.025, 1.022, 1.018, 1.013, 1.012, 1.013, 1.028,\n> +                            1.001, 1.001, 1.001, 1.002, 1.006, 1.009, 1.013, 1.017, 1.019, 1.019, 1.017, 1.013, 1.011, 1.011, 1.016, 1.034,\n> +                            1.013, 1.002, 1.001, 1.003, 1.006, 1.009, 1.013, 1.017, 1.019, 1.019, 1.017, 1.015, 1.014, 1.016, 1.039, 1.059,\n> +                            1.031, 1.026, 1.024, 1.024, 1.025, 1.028, 1.029, 1.029, 1.028, 1.029, 1.026, 1.026, 1.027, 1.034, 1.059, 1.065\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5900,\n> +                        \"table\":\n> +                        [\n> +                            1.013, 1.013, 1.012, 1.014, 1.017, 1.019, 1.019, 1.021, 1.021, 1.019, 1.019, 1.018, 1.019, 1.019, 1.019, 1.012,\n> +                            1.013, 1.013, 1.014, 1.017, 1.021, 1.022, 1.024, 1.026, 1.026, 1.026, 1.024, 1.022, 1.021, 1.019, 1.018, 1.012,\n> +                            1.013, 1.014, 1.017, 1.021, 1.023, 1.024, 1.027, 1.028, 1.029, 1.029, 1.028, 1.026, 1.023, 1.021, 1.018, 1.006,\n> +                            1.014, 1.017, 1.019, 1.023, 1.025, 1.027, 1.029, 1.032, 1.033, 1.033, 1.032, 1.029, 1.026, 1.023, 1.019, 1.004,\n> +                            1.016, 1.019, 1.022, 1.025, 1.027, 1.029, 1.032, 1.036, 1.036, 1.035, 1.033, 1.032, 1.029, 1.026, 1.021, 1.005,\n> +                            1.016, 1.019, 1.023, 1.027, 1.029, 1.032, 1.036, 1.036, 1.038, 1.036, 1.035, 1.033, 1.029, 1.026, 1.021, 1.006,\n> +                            1.016, 1.019, 1.023, 1.027, 1.029, 1.032, 1.034, 1.036, 1.038, 1.036, 1.035, 1.033, 1.029, 1.025, 1.021, 1.006,\n> +                            1.015, 1.018, 1.021, 1.025, 1.028, 1.031, 1.033, 1.034, 1.035, 1.035, 1.033, 1.031, 1.027, 1.023, 1.019, 1.006,\n> +                            1.014, 1.015, 1.019, 1.023, 1.026, 1.028, 1.031, 1.032, 1.033, 1.033, 1.031, 1.027, 1.024, 1.022, 1.019, 1.011,\n> +                            1.014, 1.014, 1.015, 1.019, 1.023, 1.026, 1.028, 1.031, 1.031, 1.029, 1.027, 1.023, 1.022, 1.021, 1.019, 1.016,\n> +                            1.012, 1.013, 1.013, 1.013, 1.015, 1.017, 1.019, 1.019, 1.019, 1.019, 1.018, 1.018, 1.018, 1.019, 1.019, 1.018,\n> +                            1.005, 1.005, 1.001, 1.002, 1.005, 1.005, 1.006, 1.005, 1.005, 1.003, 1.001, 1.001, 1.006, 1.016, 1.018, 1.021\n> +                        ]\n> +                    }\n> +                ],\n> +                \"luminance_lut\":\n> +                [\n> +                    2.699, 2.621, 2.331, 2.053, 1.808, 1.688, 1.668, 1.668, 1.668, 1.705, 1.876, 2.137, 2.412, 2.731, 3.198, 3.249,\n> +                    2.621, 2.346, 2.086, 1.838, 1.626, 1.498, 1.426, 1.426, 1.442, 1.531, 1.672, 1.921, 2.155, 2.449, 2.841, 3.198,\n> +                    2.346, 2.134, 1.838, 1.626, 1.452, 1.299, 1.228, 1.228, 1.244, 1.329, 1.514, 1.672, 1.921, 2.238, 2.606, 2.841,\n> +                    2.239, 1.976, 1.682, 1.452, 1.299, 1.191, 1.089, 1.089, 1.104, 1.235, 1.329, 1.514, 1.763, 2.079, 2.449, 2.609,\n> +                    2.202, 1.879, 1.591, 1.364, 1.191, 1.089, 1.045, 1.014, 1.071, 1.104, 1.235, 1.422, 1.667, 1.981, 2.354, 2.568,\n> +                    2.202, 1.866, 1.577, 1.351, 1.178, 1.061, 1.003, 1.001, 1.016, 1.087, 1.218, 1.404, 1.649, 1.962, 2.339, 2.568,\n> +                    2.202, 1.866, 1.577, 1.351, 1.178, 1.064, 1.045, 1.003, 1.049, 1.087, 1.218, 1.404, 1.649, 1.962, 2.339, 2.568,\n> +                    2.227, 1.946, 1.652, 1.422, 1.251, 1.176, 1.064, 1.064, 1.087, 1.194, 1.289, 1.477, 1.726, 2.043, 2.415, 2.589,\n> +                    2.306, 2.084, 1.786, 1.553, 1.422, 1.251, 1.179, 1.179, 1.194, 1.289, 1.455, 1.605, 1.861, 2.178, 2.547, 2.765,\n> +                    2.535, 2.277, 1.993, 1.786, 1.553, 1.427, 1.355, 1.355, 1.371, 1.455, 1.605, 1.847, 2.057, 2.369, 2.765, 3.113,\n> +                    2.749, 2.535, 2.241, 1.993, 1.802, 1.669, 1.593, 1.593, 1.609, 1.698, 1.847, 2.052, 2.311, 2.626, 3.113, 3.462,\n> +                    2.953, 2.749, 2.441, 2.194, 1.993, 1.802, 1.759, 1.759, 1.759, 1.847, 2.043, 2.251, 2.506, 2.861, 3.462, 3.566\n> +                ],\n> +                \"sigma\": 0.00715,\n> +                \"sigma_Cb\": 0.00323\n> +            }\n> +        },\n> +        {\n> +            \"rpi.contrast\":\n> +            {\n> +                \"ce_enable\": 1,\n> +                \"gamma_curve\":\n> +                [\n> +                    0, 0,\n> +                    1024, 5040,\n> +                    2048, 9338,\n> +                    3072, 12356,\n> +                    4096, 15312,\n> +                    5120, 18051,\n> +                    6144, 20790,\n> +                    7168, 23193,\n> +                    8192, 25744,\n> +                    9216, 27942,\n> +                    10240, 30035,\n> +                    11264, 32005,\n> +                    12288, 33975,\n> +                    13312, 35815,\n> +                    14336, 37600,\n> +                    15360, 39168,\n> +                    16384, 40642,\n> +                    18432, 43379,\n> +                    20480, 45749,\n> +                    22528, 47753,\n> +                    24576, 49621,\n> +                    26624, 51253,\n> +                    28672, 52698,\n> +                    30720, 53796,\n> +                    32768, 54876,\n> +                    36864, 57012,\n> +                    40960, 58656,\n> +                    45056, 59954,\n> +                    49152, 61183,\n> +                    53248, 62355,\n> +                    57344, 63419,\n> +                    61440, 64476,\n> +                    65535, 65535\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.ccm\":\n> +            {\n> +                \"ccms\": [\n> +                    {\n> +                        \"ct\": 2920,\n> +                        \"ccm\":\n> +                        [\n> +                            1.70452, -0.28006, -0.42446,\n> +                            -0.66546, 2.27544, -0.60998,\n> +                            -0.16166, -0.89357, 2.05524\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 3630,\n> +                        \"ccm\":\n> +                        [\n> +                            1.82077, -0.47914, -0.34163,\n> +                            -0.58711, 2.13712, -0.55002,\n> +                            -0.12653, -0.74572, 1.87226\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 4550,\n> +                        \"ccm\":\n> +                        [\n> +                            1.80579, -0.47998, -0.32582,\n> +                            -0.52116, 2.23331, -0.71214,\n> +                            -0.11717, -0.64942, 1.76659\n> +                        ]\n> +                    },\n> +                    {\n> +                        \"ct\": 5580,\n> +                        \"ccm\":\n> +                        [\n> +                            1.84933, -0.52533, -0.32401,\n> +                            -0.45888, 2.07922, -0.62033,\n> +                            -0.12065, -0.56643, 1.68708\n> +                        ]\n> +                    }\n> +                ]\n> +            }\n> +        },\n> +        {\n> +            \"rpi.sharpen\":\n> +            {\n> +                \"threshold\": 0.75,\n> +                \"limit\": 0.5,\n> +                \"strength\": 1.0\n> +            }\n> +        },\n> +        {\n> +            \"rpi.sync\": { }\n> +        }\n> +    ]\n> +}\n> \\ No newline at end of file","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 4616FC3308\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 17 Jul 2026 15:35:25 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7A51B67E25;\n\tFri, 17 Jul 2026 17:35:24 +0200 (CEST)","from sender4-op-o11.zoho.com (sender4-op-o11.zoho.com\n\t[136.143.188.11])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 05D1267E25\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 17 Jul 2026 17:35:21 +0200 (CEST)","by mx.zohomail.com with SMTPS id 1784302515876958.2601120063144;\n\tFri, 17 Jul 2026 08:35:15 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=collabora.com\n\theader.i=robert.mader@collabora.com header.b=\"PiS6gB6m\"; \n\tdkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1784302518; cv=none; \n\td=zohomail.com; s=zohoarc; \n\tb=HoA4H4lvOlmp+q00+KMLQ9NBsW/dLMAEm5jsFyfDkZ3YRpk9eQJa5jpDMpQ/xhN6DEBzUF4HEm3yC5Z2GoedJL1zx2oZbcSsl+/k95iFIv8X0JbiLNonFK3vohG4BTOGL1BLflkg0jDVMJPuuFIlyRj0Gy4lUVTPdu8tXaUNXSg=","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; \n\ts=zohoarc; t=1784302518;\n\th=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To:Cc;\n\tbh=SKw0jKMAo6ISObQ02qwk7+lqxrnG1S+c0XA+GOqjX1s=; \n\tb=eUnmhdZsdfT95PDABl/lDYGOTPiFomKS42QZCGZwHjlok/5SjblD+ZCOq5cOgplcbPLd4PyD0gP+ac0UDegcroxfSJ2OfEkPUC5JmuOF76whvQIgIhBFNVqsl3JN3ijL2yidDZLs8rcGYmdlpUmCKwKfpvDjiIdpZq41X7xMtpg=","ARC-Authentication-Results":"i=1; mx.zohomail.com;\n\tdkim=pass  header.i=collabora.com;\n\tspf=pass  smtp.mailfrom=robert.mader@collabora.com;\n\tdmarc=pass header.from=<robert.mader@collabora.com>","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1784302518;\n\ts=zohomail; d=collabora.com; i=robert.mader@collabora.com;\n\th=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To:Cc;\n\tbh=SKw0jKMAo6ISObQ02qwk7+lqxrnG1S+c0XA+GOqjX1s=;\n\tb=PiS6gB6mHtlcdoF64Aqg2jqKQToq07oW7v2i9yBcbgZDV2MdwYY1DtM8A61OOzjL\n\t+yFNvKRyR8lbU87N0Xpvq3mTUU27SHCspBScdaXgK3WnOo0t+0raT4DHmGgpGPmG+sU\n\towToUrLWdFfj7R/vQ25ZcDhhLoEz84BuSd1BZz3I=","Message-ID":"<91bddaa5-1ce8-4a98-b631-03f60bfc2d72@collabora.com>","Date":"Fri, 17 Jul 2026 17:35:13 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v1 2/2] ipa: rpi: Add support for Sony IMX355","To":"Naushir Patuck <naush@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20260717134634.2578897-1-naush@raspberrypi.com>\n\t<20260717134634.2578897-3-naush@raspberrypi.com>","Content-Language":"en-US, de-DE","From":"Robert Mader <robert.mader@collabora.com>","In-Reply-To":"<20260717134634.2578897-3-naush@raspberrypi.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":39776,"web_url":"https://patchwork.libcamera.org/comment/39776/","msgid":"<20260721152703.GO50424@killaraus.ideasonboard.com>","date":"2026-07-21T15:27:03","subject":"Re: [PATCH v1 2/2] ipa: rpi: Add support for Sony IMX355","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nThank you for the patch.\n\nOn Fri, Jul 17, 2026 at 02:42:12PM +0100, Naushir Patuck wrote:\n> This includes the RPi camera helper and pisp/vc4 tuning files.\n> \n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  src/ipa/rpi/cam_helper/cam_helper_imx355.cpp |   69 +\n>  src/ipa/rpi/cam_helper/meson.build           |    1 +\n>  src/ipa/rpi/pisp/data/imx355.json            | 1233 ++++++++++++++++++\n>  src/ipa/rpi/pisp/data/meson.build            |    1 +\n>  src/ipa/rpi/vc4/data/imx355.json             |  416 ++++++\n>  5 files changed, 1720 insertions(+)\n>  create mode 100644 src/ipa/rpi/cam_helper/cam_helper_imx355.cpp\n>  create mode 100644 src/ipa/rpi/pisp/data/imx355.json\n>  create mode 100644 src/ipa/rpi/vc4/data/imx355.json\n> \n> diff --git a/src/ipa/rpi/cam_helper/cam_helper_imx355.cpp b/src/ipa/rpi/cam_helper/cam_helper_imx355.cpp\n> new file mode 100644\n> index 000000000000..00e5fc836433\n> --- /dev/null\n> +++ b/src/ipa/rpi/cam_helper/cam_helper_imx355.cpp\n> @@ -0,0 +1,69 @@\n> +/* SPDX-License-Identifier: BSD-2-Clause */\n> +/*\n> + * Copyright (C) 2026, Raspberry Pi Ltd\n> + *\n> + * camera helper for imx355 sensor\n> + */\n> +\n> +#include <assert.h>\n> +#include <stddef.h>\n> +#include <stdio.h>\n> +#include <stdlib.h>\n> +\n> +#include \"cam_helper.h\"\n> +\n> +using namespace RPiController;\n> +\n> +class CamHelperImx355 : public CamHelper\n> +{\n> +public:\n> +\tCamHelperImx355();\n> +\tuint32_t gainCode(double gain) const override;\n> +\tdouble gain(uint32_t gainCode) const override;\n> +\tunsigned int mistrustFramesModeSwitch() const override;\n> +\tbool sensorEmbeddedDataPresent() const override;\n> +\n> +private:\n> +\t/*\n> +\t * Smallest difference between the frame length and integration time,\n> +\t * in units of lines.\n> +\t */\n> +\tstatic constexpr int frameIntegrationDiff = 4;\n> +};\n> +\n> +CamHelperImx355::CamHelperImx355()\n> +\t: CamHelper({}, frameIntegrationDiff)\n> +{\n> +}\n> +\n> +uint32_t CamHelperImx355::gainCode(double gain) const\n> +{\n> +\treturn (uint32_t)(1024 - 1024 / gain);\n> +}\n> +\n> +double CamHelperImx355::gain(uint32_t gainCode) const\n> +{\n> +\treturn 1024.0 / (1024 - gainCode);\n> +}\n> +\n> +unsigned int CamHelperImx355::mistrustFramesModeSwitch() const\n> +{\n> +\t/*\n> +\t * For reasons unknown, we do occasionally get a bogus metadata frame\n> +\t * at a mode switch (though not at start-up). Possibly warrants some\n> +\t * investigation, though not a big deal.\n> +\t */\n> +\treturn 1;\n\nThis is the second helper for Sony sensors doing this, the first one\nbeing IMX219. Given that the IMX219 helper actually disabled embedded\ndata by default due to the data stream \"randomly returning junk register\nvalues\", I'm not concerned by that one. For IMX355 though, I'd like to\nunderstand how you've noticed this and have an idea of the frequency at\nwhich is occurs, in case someone would like to investigate later.\n\n> +}\n> +\n> +bool CamHelperImx355::sensorEmbeddedDataPresent() const\n> +{\n> +\treturn 0;\n> +}\n> +\n> +static CamHelper *create()\n> +{\n> +\treturn new CamHelperImx355();\n> +}\n> +\n> +static RegisterCamHelper reg(\"imx355\", &create);\n\n[snip]\n\nThe patch otherwise looks good.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 01C71BDE17\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Jul 2026 15:27:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A8D9367E67;\n\tTue, 21 Jul 2026 17:27:06 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 584546601C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Jul 2026 17:27:05 +0200 (CEST)","from killaraus.ideasonboard.com\n\t(2001-14ba-70f3-e800--a06.rev.dnainternet.fi\n\t[IPv6:2001:14ba:70f3:e800::a06])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A638AC1;\n\tTue, 21 Jul 2026 17:26:05 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"apFIvn0n\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1784647565;\n\tbh=n5c4nROxCdzvzgqhPVeFv54KeEQXN0l0GFWr1tq1Oac=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=apFIvn0nVGE6xIo1mmPJhZcX5u6UOMfT3peWEsNu7aRQSbffjIgk44zQHjItbIAoZ\n\t5fNlxN52yqBK6/aMBc0bPVBWdkTW0rlnKoEVCeOJR/D34Xq62SrK2ZVhFKR7wRk5bg\n\tpMEUNAFbx78gLKdxdig2TSAdeWUmX4PXM9ikane4=","Date":"Tue, 21 Jul 2026 18:27:03 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1 2/2] ipa: rpi: Add support for Sony IMX355","Message-ID":"<20260721152703.GO50424@killaraus.ideasonboard.com>","References":"<20260717134634.2578897-1-naush@raspberrypi.com>\n\t<20260717134634.2578897-3-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20260717134634.2578897-3-naush@raspberrypi.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":39788,"web_url":"https://patchwork.libcamera.org/comment/39788/","msgid":"<CAHW6GYLuvTt+xuJevVUnr0c+FiUAHT1PrONSfgHKDSH_ZuKfmw@mail.gmail.com>","date":"2026-07-22T09:00:19","subject":"Re: [PATCH v1 2/2] ipa: rpi: Add support for Sony IMX355","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Naush\n\nThanks for the patch.\n\nOn Tue, 21 Jul 2026 at 16:27, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi Naush,\n>\n> Thank you for the patch.\n>\n> On Fri, Jul 17, 2026 at 02:42:12PM +0100, Naushir Patuck wrote:\n> > This includes the RPi camera helper and pisp/vc4 tuning files.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > ---\n> >  src/ipa/rpi/cam_helper/cam_helper_imx355.cpp |   69 +\n> >  src/ipa/rpi/cam_helper/meson.build           |    1 +\n> >  src/ipa/rpi/pisp/data/imx355.json            | 1233 ++++++++++++++++++\n> >  src/ipa/rpi/pisp/data/meson.build            |    1 +\n> >  src/ipa/rpi/vc4/data/imx355.json             |  416 ++++++\n> >  5 files changed, 1720 insertions(+)\n> >  create mode 100644 src/ipa/rpi/cam_helper/cam_helper_imx355.cpp\n> >  create mode 100644 src/ipa/rpi/pisp/data/imx355.json\n> >  create mode 100644 src/ipa/rpi/vc4/data/imx355.json\n> >\n> > diff --git a/src/ipa/rpi/cam_helper/cam_helper_imx355.cpp b/src/ipa/rpi/cam_helper/cam_helper_imx355.cpp\n> > new file mode 100644\n> > index 000000000000..00e5fc836433\n> > --- /dev/null\n> > +++ b/src/ipa/rpi/cam_helper/cam_helper_imx355.cpp\n> > @@ -0,0 +1,69 @@\n> > +/* SPDX-License-Identifier: BSD-2-Clause */\n> > +/*\n> > + * Copyright (C) 2026, Raspberry Pi Ltd\n> > + *\n> > + * camera helper for imx355 sensor\n> > + */\n> > +\n> > +#include <assert.h>\n> > +#include <stddef.h>\n> > +#include <stdio.h>\n> > +#include <stdlib.h>\n> > +\n> > +#include \"cam_helper.h\"\n> > +\n> > +using namespace RPiController;\n> > +\n> > +class CamHelperImx355 : public CamHelper\n> > +{\n> > +public:\n> > +     CamHelperImx355();\n> > +     uint32_t gainCode(double gain) const override;\n> > +     double gain(uint32_t gainCode) const override;\n> > +     unsigned int mistrustFramesModeSwitch() const override;\n> > +     bool sensorEmbeddedDataPresent() const override;\n> > +\n> > +private:\n> > +     /*\n> > +      * Smallest difference between the frame length and integration time,\n> > +      * in units of lines.\n> > +      */\n> > +     static constexpr int frameIntegrationDiff = 4;\n> > +};\n> > +\n> > +CamHelperImx355::CamHelperImx355()\n> > +     : CamHelper({}, frameIntegrationDiff)\n> > +{\n> > +}\n> > +\n> > +uint32_t CamHelperImx355::gainCode(double gain) const\n> > +{\n> > +     return (uint32_t)(1024 - 1024 / gain);\n> > +}\n> > +\n> > +double CamHelperImx355::gain(uint32_t gainCode) const\n> > +{\n> > +     return 1024.0 / (1024 - gainCode);\n> > +}\n> > +\n> > +unsigned int CamHelperImx355::mistrustFramesModeSwitch() const\n> > +{\n> > +     /*\n> > +      * For reasons unknown, we do occasionally get a bogus metadata frame\n> > +      * at a mode switch (though not at start-up). Possibly warrants some\n> > +      * investigation, though not a big deal.\n> > +      */\n> > +     return 1;\n>\n> This is the second helper for Sony sensors doing this, the first one\n> being IMX219. Given that the IMX219 helper actually disabled embedded\n> data by default due to the data stream \"randomly returning junk register\n> values\", I'm not concerned by that one. For IMX355 though, I'd like to\n> understand how you've noticed this and have an idea of the frequency at\n> which is occurs, in case someone would like to investigate later.\n>\n> > +}\n> > +\n> > +bool CamHelperImx355::sensorEmbeddedDataPresent() const\n> > +{\n> > +     return 0;\n> > +}\n> > +\n> > +static CamHelper *create()\n> > +{\n> > +     return new CamHelperImx355();\n> > +}\n> > +\n> > +static RegisterCamHelper reg(\"imx355\", &create);\n>\n> [snip]\n>\n> The patch otherwise looks good.\n>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nYes, I'm inclined to agree we should try it with the embedded data\nenabled, but that's not particularly a blocker.\n\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\n\nThanks!\n\nDavid\n\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 5434DBDE4C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Jul 2026 09:00:34 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4203E67E8C;\n\tWed, 22 Jul 2026 11:00:33 +0200 (CEST)","from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com\n\t[IPv6:2a00:1450:4864:20::52a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DFB0361451\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Jul 2026 11:00:31 +0200 (CEST)","by mail-ed1-x52a.google.com with SMTP id\n\t4fb4d7f45d1cf-69eefa92a1cso2392660a12.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Jul 2026 02:00:31 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"P15aTQfC\"; dkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1784710831; cv=none;\n\td=google.com; s=arc-20260327;\n\tb=Z3bqRjddZY+rZI0M/dVxlSSnTNzj29yuwXcgp0VqnJU0REeU8BhoMKAlRn27JWOdkv\n\tIzNWJwqXJoGBRn2hwDp1cBOzASPBtbll/1XGaYqG7ssmNk6a4Spstq67bBiThjRL9a19\n\trmOiT9X+6qY2Wjlu63Lxs/Uam1lfx3Dwvhwrvz1v8gWb9oCXLrQXonhA+4vCErebUPcv\n\tftE8h3tIfnHr0Gn8+A//Q+DUfxC1N28QdOwgYDA/9wORFN9lc/NiwI2NNqZqkqtW88yV\n\tXE7pn0kWlJ8jucV4dX8ORZGxk1v2VT2530mJXDl7vZx+XhuhID0/f45IgX9loELm+LVK\n\tEaJw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n\ts=arc-20260327; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:dkim-signature;\n\tbh=DNA6HUeJbux6Y27Nv9TdXx38FMciwnzZgdMMnRESmYo=;\n\tfh=4Io0AKuEmhHuF5mxZZXO76RgIDOW5US76CIHfcruWNM=;\n\tb=s9qygAz94uyRoqQ6NHN4R40eqPMVSfoyPdEDrnap3tbtUeSSUTOHDMbmdwQ7LeFTEx\n\tsQnigYlDDQtGXgo3KywZVCiAJxneMeTFiOktdd+fXmnJFWZkwJM5xaPYLYNdeucks8Et\n\t5qeb+EC0fh2RtkvZCqMvtrhzlBbXyCJCTqkAqeExZTL5FdXL1MPtyZuIHXt494kynPsY\n\twoMnoG17ZanXah9HrMmEZpy67JNLkfMuGI4KLu0+vzao5PfXssoqEzwn3CEJMetUrLjL\n\tUUVEc4DKZ6e2o5uuCGa27EXh/wnkgXR8G5IlFwsC/kM1MQAt1I8Z8IfC25P9uieWpfP8\n\t+S8A==; darn=lists.libcamera.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1784710831; x=1785315631;\n\tdarn=lists.libcamera.org; \n\th=content-type:cc:to:subject:message-id:date:from:in-reply-to\n\t:references:mime-version:from:to:cc:subject:date:message-id:reply-to\n\t:content-type; bh=DNA6HUeJbux6Y27Nv9TdXx38FMciwnzZgdMMnRESmYo=;\n\tb=P15aTQfChiOZ399II7CrpDWmagmB94Ony7vUHHX8txSx3B6ezN8Wol1Yt17nJRLeBr\n\t4yrKzVGJTGp7ru35hI/PbG3NTzX2RhTGgwQ2KH9A+vwxG8iauZNW0q+81Efce2ciQBT6\n\tT4kOUncU/GX8YOzOu6riuCUZjPFIjgMQ5tiBpuFG9Xx4tw6OmCrnHMexJU9LiWPHZrHU\n\tC8BpdJIUw7mtwpV/ZROZXranutURccGBh8DJTidPpfAGNwXKl749Z8iMSj2mF2mfsS6T\n\tvf3S7f457C4bvl/PC+YigHdb0TLbitDt1uXo1z9WiMrahbxIdl+VKMY0LvE0/71+kobk\n\tyDzg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1784710831; x=1785315631;\n\th=content-type:cc:to:subject:message-id:date:from:in-reply-to\n\t:references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to:content-type;\n\tbh=DNA6HUeJbux6Y27Nv9TdXx38FMciwnzZgdMMnRESmYo=;\n\tb=IbFmntkjgKn9FzFNM7h9NEWg1FkPpxsRmiv2F2+1+SOiZjyQlQ2ol041FpPbsmACoB\n\t012Jho9cIsIFN162WjsJuO/eQuUAeJnQGP2syyLWmN/8oyQPeMhbK/6LzY9+OpCrvDhs\n\tXrHxq9QWoGWcVaWyvZoEjEtkXxvZONLgJ7GJfzmntdTbYZR1BOok+SZmbOm6FuYUqLQy\n\tk0kUVK1NSZZZHWtSk8Mwf6rryUFAsPLmrRsYCc8vBvpHIJKFpIAaqd/AAmpUU2mx7yx6\n\txdpHtRadJ4f1xuXHQltSeVDIoiUekU6r4jNAIms5sdS/LTmb6szHG4PHM/hLHTDV6k5A\n\t+HSg==","X-Forwarded-Encrypted":"i=1;\n\tAHgh+RqLA1Pz4iH8h7yja2BX0+EVNzrlgr5c6vYFKXG5FFrJXv4hrkE82eqPoufVqN9JcqLTY1rUzJZGuAAXcp0dcZk=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YwhTuiKO8YQLkt+P8Z4/MUOeOh6S6saZDMtjlS7uKJfbcLUY4Ln\n\tuT9iC8eWCrWcfKYeZBba+qBwAdJlQXJJb6Aoxc7IugBLn1d1QY+R5t6h4TZyIq0YygrKc7FY4QO\n\t9VIruMm3WomW/us1rlTpBK2bOaj2UzpOR7uUk80i/Mg==","X-Gm-Gg":"AR+sD12PrbScNlNLKUadOmtXAWzFLbXE2e2BEPxtIds/zvF7oXd7xbZuci+R084IBJb\n\txfkru934i/zuu0NeDL113OrZB5aDfUPgrYFTUT/JWIj7XFtDhbCYfcj+25r41+2Kt7rdibLy2J2\n\tDrC5FxgcKpDq+EA9szAzQuy1lSXPHMbiM+AYQreVpWG5Yceam/ux+ZKFBvHeoSKFJbGLS/uy0SG\n\tjdyZd9gAS1jwwCdLjg2Jdn9xarzIHC+GeQ0yU/Gb62uPMWDQ/uM5DbQx0fbs9/F2pEfS3bv+q3y\n\tWT5bOUyCJ7LHzALjbE8DZikAzD4X6K1jkC7uY2a5sScxv9bIa6JUNE7GWdlg39U=","X-Received":"by 2002:a05:6402:2425:b0:69a:a81d:d454 with SMTP id\n\t4fb4d7f45d1cf-69e6525b105mr7880720a12.7.1784710831169;\n\tWed, 22 Jul 2026 02:00:31 -0700 (PDT)","MIME-Version":"1.0","References":"<20260717134634.2578897-1-naush@raspberrypi.com>\n\t<20260717134634.2578897-3-naush@raspberrypi.com>\n\t<20260721152703.GO50424@killaraus.ideasonboard.com>","In-Reply-To":"<20260721152703.GO50424@killaraus.ideasonboard.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Wed, 22 Jul 2026 10:00:19 +0100","X-Gm-Features":"AUfX_mwNZqmemzRD78WJE484TFdiE3Tuv7bf0r1RCl7JT8VA0sra_Skaaradr9s","Message-ID":"<CAHW6GYLuvTt+xuJevVUnr0c+FiUAHT1PrONSfgHKDSH_ZuKfmw@mail.gmail.com>","Subject":"Re: [PATCH v1 2/2] ipa: rpi: Add support for Sony IMX355","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Naushir Patuck <naush@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]