From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 7D7D245663 for ; Mon, 13 Mar 2023 21:39:16 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7C26C68BB3C; Mon, 13 Mar 2023 23:39:15 +0200 (EET) Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9C54168815C for ; Mon, 13 Mar 2023 23:39:08 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id c1so866209qtw.1 for ; Mon, 13 Mar 2023 14:39:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; t=1678743547; h=content-transfer-encoding:content-language:to:subject:from :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=G7JsePScQxnmakgP18sWxATn77bIxwRqHOIXU4RrDCc=; b=fLg4hPs0WxPoApEY33yYs77u78lGalExg8iKEnRXfSXXAODxZBlaV+t3KDJZdOVBkS jbdsAtUMg8V5Yl7SGHzsH1wl+0Z7Mkt0Tm75EGSqR8f8lxQPbM0j2G195lV//sN9PQrB uOPZnePJs95x/wNoPepOj0+6d4nWn+TmQG8eU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678743547; h=content-transfer-encoding:content-language:to:subject:from :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=G7JsePScQxnmakgP18sWxATn77bIxwRqHOIXU4RrDCc=; b=vj8DcsLq8hoZxo18UnYxlXcV5veNzLc3mmoB/G8bToRy9j9zmG29UxG0vw1fwxS0V7 m/J9bWlzF22Pe+fdbBNGlKP72QbX+l1s4fTt855RvZe8yR4OrB+qdCG/BGkco77u0MpZ oWdM0A3BgrSaFDhrBRbWM8LeNPoJlL8C7MT09mbbv2dsn8mg2DbcnmYU49p3ZdFTGhYn mxs5/PbDbxIDdTvLP9GAQoQHwIK51nVAeWTtgDxEChCIwLx/sGejOwmsrewAfoz5CU5O XwhrGtIu5Op2GVMCrm56GUcp69PGmlctLLIIWjY6OMSnvUp7X6Szu8SW6AeMp1/Mpy6s EmCQ== X-Gm-Message-State: AO0yUKX/lbvrT9afW+HsRSO0+mvgDveks7Z2YuvYVhnumgtC1AVUkKss 2tSCofaTRGyZqYNsb1yy9f3suS8PmQ/I1/Hl68ZL2g== X-Google-Smtp-Source: AK7set8gUrkuzTqA4UzknS9PxjpgzyQmHjAuObSwXQjaIlkQruc/IuqeSL0qrFfvfeiHw8ybLLmRfw== X-Received: by 2002:ac8:5f08:0:b0:3bf:a6db:6108 with SMTP id x8-20020ac85f08000000b003bfa6db6108mr65826599qta.53.1678743546461; Mon, 13 Mar 2023 14:39:06 -0700 (PDT) Received: from ?IPV6:2600:4041:6c:7000:1f01:20c:8ba9:815b? ([2600:4041:6c:7000:1f01:20c:8ba9:815b]) by smtp.gmail.com with ESMTPSA id s6-20020ac85286000000b003be56bdd3b1sm536626qtn.92.2023.03.13.14.39.05 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 13 Mar 2023 14:39:05 -0700 (PDT) Message-ID: <6f3fc186-0b7f-052c-ecfb-b884eace4fed@vimeo.com> Date: Mon, 13 Mar 2023 17:39:05 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 From: =?UTF-8?Q?Rapha=c3=abl_Zumer?= To: ffmpeg-devel@ffmpeg.org Content-Language: en-US, fr-FR Subject: [FFmpeg-devel] [PATCH v5 2/2] avutil: add HDR10+ dynamic metadata serialization function X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Q28tYXV0aG9yZWQtYnk6IE1vaGFtbWFkIEl6YWRpIDxtb2guaXphZGlAZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBSYXBoYcOrbCBadW1lciA8cnp1bWVyQHRlYmFrby5uZXQ+Ci0tLQogZG9jL0FQ SWNoYW5nZXMgICAgICAgICAgICAgICAgICAgfCAgIDUgKysKIGxpYmF2dXRpbC9oZHJfZHluYW1p Y19tZXRhZGF0YS5jIHwgMTQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2 dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5oIHwgIDEzICsrKwogbGliYXZ1dGlsL3ZlcnNpb24u aCAgICAgICAgICAgICAgfCAgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kb2MvQVBJY2hhbmdlcyBiL2RvYy9BUElj aGFuZ2VzCmluZGV4IDE0NzM3MjIzY2IuLjNhNjFkNjE5MzEgMTAwNjQ0Ci0tLSBhL2RvYy9BUElj aGFuZ2VzCisrKyBiL2RvYy9BUEljaGFuZ2VzCkBAIC0yLDYgKzIsMTEgQEAgVGhlIGxhc3QgdmVy c2lvbiBpbmNyZWFzZXMgb2YgYWxsIGxpYnJhcmllcyB3ZXJlIG9uIDIwMjMtMDItMDkKIAogQVBJ IGNoYW5nZXMsIG1vc3QgcmVjZW50IGZpcnN0OgogCisyMDIzLTAzLTEzIC0geHh4eHh4eHh4eCAt IGxhdnUgNTguNC4xMDAgLSBoZHJfZHluYW1pY19tZXRhZGF0YS5oCisgIEFkZCBhdl9keW5hbWlj X2hkcl9wbHVzX2Zyb21fdDM1KCkgYW5kIGF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KCkKKyAg ZnVuY3Rpb25zIHRvIGNvbnZlcnQgYmV0d2VlbiByYXcgVC4zNSBwYXlsb2FkcyBjb250YWluaW5n IGR5bmFtaWMKKyAgSERSMTArIG1ldGFkYXRhIGFuZCB0aGVpciBwYXJzZWQgcmVwcmVzZW50YXRp b25zIGFzIEFWRHluYW1pY0hEUlBsdXMuCisKIDIwMjMtMDMtMDIgLSB4eHh4eHh4eHh4IC0gbGF2 YyA2MC42LjEwMCAtIGF2Y29kZWMuaAogICBBZGQgRkZfUFJPRklMRV9FQUMzX0REUF9BVE1PUywg RkZfUFJPRklMRV9UUlVFSERfQVRNT1MsCiAgIEZGX1BST0ZJTEVfRFRTX0hEX01BX1ggYW5kIEZG X1BST0ZJTEVfRFRTX0hEX01BX1hfSU1BWC4KZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9oZHJfZHlu YW1pY19tZXRhZGF0YS5jIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMKaW5kZXgg OThmMzk5YjAzMi4uOWUzNWQ5MjljNyAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2hkcl9keW5hbWlj X21ldGFkYXRhLmMKKysrIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMKQEAgLTIy NSwzICsyMjUsMTQ4IEBAIGludCBhdl9keW5hbWljX2hkcl9wbHVzX2Zyb21fdDM1KEFWRHluYW1p Y0hEUlBsdXMgKnMsIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCiAKICAgICByZXR1cm4gMDsKIH0KKwor aW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KHVpbnQ4X3QgKipkYXRhLCBzaXplX3QgKnNp emUsIGNvbnN0IEFWRHluYW1pY0hEUlBsdXMgKnMpCit7CisgICAgdWludDhfdCAqYnVmOworICAg IHNpemVfdCBzaXplX2JpdHMsIHNpemVfYnl0ZXM7CisgICAgUHV0Qml0Q29udGV4dCBwYmMsICpw YiA9ICZwYmM7CisKKyAgICBpZiAoIWRhdGEgfHwgIXNpemUgfHwgIXMpCisgICAgICAgIHJldHVy biBBVkVSUk9SKEVJTlZBTCk7CisKKyAgICAvKioKKyAgICAgKiBCdWZmZXIgc2l6ZSBwZXIgQ1RB LTg2MS1IIHAuMjUzLTI1NDoKKyAgICAgKiA0OCBiaXRzIGZvciB0aGUgaGVhZGVyICg1NiBtaW51 cyBleGNsdWRlZCA4LWJpdCBjb3VudHJ5IGNvZGUpCisgICAgICogMiBiaXRzIGZvciBudW1fd2lu ZG93cworICAgICAqIDkzNyBiaXRzIGZvciB3aW5kb3cgZ2VvbWV0cnksIGZvciBlYWNoIHdpbmRv dyBhYm92ZSAxCisgICAgICogMjcgYml0cyBmb3IgdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4 aW11bV9sdW1pbmFuY2UKKyAgICAgKiAxLTM4NTUgYml0cyBmb3IgdGFyZ2V0ZWQgc3lzdGVtIGRp c3BsYXkgcGVhayBsdW1pbmFuY2UgaW5mb3JtYXRpb24KKyAgICAgKiAwLTQ0MiBiaXRzIGZvciBp bnRyYS13aW5kb3cgcGl4ZWwgZGlzdHJpYnV0aW9uIGluZm9ybWF0aW9uCisgICAgICogMS0zODU1 IGJpdHMgZm9yIG1hc3RlcmluZyBkaXNwbGF5IHBlYWsgbHVtaW5hbmNlIGluZm9ybWF0aW9uCisg ICAgICogMC01MzcgYml0cyBmb3IgcGVyLXdpbmRvdyB0b25lbWFwcGluZyBpbmZvcm1hdGlvbgor ICAgICAqIDAtMjEgYml0cyBmb3IgcGVyLXdpbmRvdyBjb2xvciBzYXR1cmF0aW9uIG1hcHBpbmcg aW5mb3JtYXRpb24KKyAgICAgKi8KKyAgICBzaXplX2JpdHMgPSA0OCArCisgICAgICAgIDIgKwor ICAgICAgICBGRk1BWCgocy0+bnVtX3dpbmRvd3MgLSAxKSwgMCkgKiA5MzcgKworICAgICAgICAy NyArCisgICAgICAgIDEgKyAocy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtf bHVtaW5hbmNlX2ZsYWcgPyAxMCArCisgICAgICAgICAgICBzLT5udW1fcm93c190YXJnZXRlZF9z eXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKgorICAgICAgICAgICAgcy0+bnVt X2NvbHNfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICogNCA6 IDApICsKKyAgICAgICAgcy0+bnVtX3dpbmRvd3MgKiA4MjsKKworICAgIGZvciAoaW50IHcgPSAw OyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykKKyAgICAgICAgc2l6ZV9iaXRzICs9IHMtPnBhcmFt c1t3XS5udW1fZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlcyAqIDI0OworCisgICAgc2l6 ZV9iaXRzICs9IDEgKyAocy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNl X2ZsYWcgPyAxMCArCisgICAgICAgIHMtPm51bV9yb3dzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVh bF9wZWFrX2x1bWluYW5jZSAqCisgICAgICAgIHMtPm51bV9jb2xzX21hc3RlcmluZ19kaXNwbGF5 X2FjdHVhbF9wZWFrX2x1bWluYW5jZSAqIDQgOiAwKSArCisgICAgICAgIHMtPm51bV93aW5kb3dz ICogMTsKKworICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgewor ICAgICAgICBpZiAocy0+cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKQorICAgICAgICAgICAg c2l6ZV9iaXRzICs9IDI4ICsgcy0+cGFyYW1zW3ddLm51bV9iZXppZXJfY3VydmVfYW5jaG9ycyAq IDEwOworICAgIH0KKworICAgIHNpemVfYml0cyArPSBzLT5udW1fd2luZG93cyAqIDE7CisgICAg Zm9yIChpbnQgdyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7CisgICAgICAgIGlmIChz LT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl9tYXBwaW5nX2ZsYWcpCisgICAgICAgICAgICBz aXplX2JpdHMgKz0gNjsKKyAgICB9CisKKyAgICBzaXplX2J5dGVzID0gKHNpemVfYml0cyArIDcp IC8gODsKKworICAgIGJ1ZiA9IGF2X21hbGxvYyhzaXplX2J5dGVzKTsKKyAgICBpZiAoIWJ1ZikK KyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgIGluaXRfcHV0X2JpdHMocGIs IGJ1Ziwgc2l6ZV9ieXRlcyk7CisKKyAgICAvLyBpdHVfdF90MzVfY291bnRyeV9jb2RlIHNoYWxs IGJlIDB4QjUgKFVTQSkgKGV4Y2x1ZGVkIGZyb20gdGhlIHBheWxvYWQpCisgICAgLy8gaXR1X3Rf dDM1X3Rlcm1pbmFsX3Byb3ZpZGVyX2NvZGUgc2hhbGwgYmUgMHgwMDNDCisgICAgcHV0X2JpdHMo cGIsIDE2LCAweDAwM0MpOworICAgIC8vIGl0dV90X3QzNV90ZXJtaW5hbF9wcm92aWRlcl9vcmll bnRlZF9jb2RlIGlzIHNldCB0byBTVCAyMDk0LTQwCisgICAgcHV0X2JpdHMocGIsIDE2LCAweDAw MDEpOworICAgIC8vIGFwcGxpY2F0aW9uX2lkZW50aWZpZXIgc2hhbGwgYmUgc2V0IHRvIDQKKyAg ICBwdXRfYml0cyhwYiwgOCwgNCk7CisgICAgLy8gYXBwbGljYXRpb25fbW9kZSBpcyBzZXQgdG8g QXBwbGljYXRpb24gVmVyc2lvbiAxCisgICAgcHV0X2JpdHMocGIsIDgsIDEpOworCisgICAgLy8g UGF5bG9hZCBhcyBwZXIgQ1RBLTg2MS1IIHAuMjUzLTI1NAorICAgIHB1dF9iaXRzKHBiLCAyLCBz LT5udW1fd2luZG93cyk7CisKKyAgICBmb3IgKGludCB3ID0gMTsgdyA8IHMtPm51bV93aW5kb3dz OyB3KyspIHsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10ud2luZG93X3Vw cGVyX2xlZnRfY29ybmVyX3gubnVtIC8gcy0+cGFyYW1zW3ddLndpbmRvd191cHBlcl9sZWZ0X2Nv cm5lcl94LmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLndpbmRv d191cHBlcl9sZWZ0X2Nvcm5lcl95Lm51bSAvIHMtPnBhcmFtc1t3XS53aW5kb3dfdXBwZXJfbGVm dF9jb3JuZXJfeS5kZW4pOworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS53 aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3gubnVtIC8gcy0+cGFyYW1zW3ddLndpbmRvd19sb3dl cl9yaWdodF9jb3JuZXJfeC5kZW4pOworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFt c1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3kubnVtIC8gcy0+cGFyYW1zW3ddLndpbmRv d19sb3dlcl9yaWdodF9jb3JuZXJfeS5kZW4pOworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMt PnBhcmFtc1t3XS5jZW50ZXJfb2ZfZWxsaXBzZV94KTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2 LCBzLT5wYXJhbXNbd10uY2VudGVyX29mX2VsbGlwc2VfeSk7CisgICAgICAgIHB1dF9iaXRzKHBi LCA4LCBzLT5wYXJhbXNbd10ucm90YXRpb25fYW5nbGUpOworICAgICAgICBwdXRfYml0cyhwYiwg MTYsIHMtPnBhcmFtc1t3XS5zZW1pbWFqb3JfYXhpc19pbnRlcm5hbF9lbGxpcHNlKTsKKyAgICAg ICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uc2VtaW1ham9yX2F4aXNfZXh0ZXJuYWxf ZWxsaXBzZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLnNlbWltaW5v cl9heGlzX2V4dGVybmFsX2VsbGlwc2UpOworICAgICAgICBwdXRfYml0cyhwYiwgMSwgcy0+cGFy YW1zW3ddLm92ZXJsYXBfcHJvY2Vzc19vcHRpb24pOworICAgIH0KKworICAgIHB1dF9iaXRzKHBi LCAyNywgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4aW11bV9sdW1pbmFuY2UubnVtICog bHVtaW5hbmNlX2RlbiAvCisgICAgICAgIHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X21heGlt dW1fbHVtaW5hbmNlLmRlbik7CisgICAgcHV0X2JpdHMocGIsIDEsIHMtPnRhcmdldGVkX3N5c3Rl bV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnKTsKKyAgICBpZiAocy0+dGFyZ2V0 ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcpIHsKKyAgICAgICAg cHV0X2JpdHMocGIsIDUsIHMtPm51bV9yb3dzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVh bF9wZWFrX2x1bWluYW5jZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCA1LCBzLT5udW1fY29sc190 YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UpOworICAgICAgICBm b3IgKGludCBpID0gMDsgaSA8IHMtPm51bV9yb3dzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2Fj dHVhbF9wZWFrX2x1bWluYW5jZTsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsg aiA8IHMtPm51bV9jb2xzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWlu YW5jZTsgaisrKQorICAgICAgICAgICAgICAgIHB1dF9iaXRzKHBiLCA0LCBzLT50YXJnZXRlZF9z eXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0ubnVtICogcGVha19sdW1p bmFuY2VfZGVuIC8KKyAgICAgICAgICAgICAgICAgICAgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3Bs YXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdLmRlbik7CisgICAgICAgIH0KKyAgICB9CisK KyAgICBmb3IgKGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKKyAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspCisgICAgICAgICAgICBwdXRfYml0cyhwYiwgMTcs IHMtPnBhcmFtc1t3XS5tYXhzY2xbaV0ubnVtICogcmdiX2RlbiAvIHMtPnBhcmFtc1t3XS5tYXhz Y2xbaV0uZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE3LCBzLT5wYXJhbXNbd10uYXZlcmFn ZV9tYXhyZ2IubnVtICogcmdiX2RlbiAvIHMtPnBhcmFtc1t3XS5hdmVyYWdlX21heHJnYi5kZW4p OworICAgICAgICBwdXRfYml0cyhwYiwgNCwgcy0+cGFyYW1zW3ddLm51bV9kaXN0cmlidXRpb25f bWF4cmdiX3BlcmNlbnRpbGVzKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5wYXJh bXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXM7IGkrKykgeworICAgICAg ICAgICAgcHV0X2JpdHMocGIsIDcsIHMtPnBhcmFtc1t3XS5kaXN0cmlidXRpb25fbWF4cmdiW2ld LnBlcmNlbnRhZ2UpOworICAgICAgICAgICAgcHV0X2JpdHMocGIsIDE3LCBzLT5wYXJhbXNbd10u ZGlzdHJpYnV0aW9uX21heHJnYltpXS5wZXJjZW50aWxlLm51bSAqIHJnYl9kZW4gLworICAgICAg ICAgICAgICAgIHMtPnBhcmFtc1t3XS5kaXN0cmlidXRpb25fbWF4cmdiW2ldLnBlcmNlbnRpbGUu ZGVuKTsKKyAgICAgICAgfQorICAgICAgICBwdXRfYml0cyhwYiwgMTAsIHMtPnBhcmFtc1t3XS5m cmFjdGlvbl9icmlnaHRfcGl4ZWxzLm51bSAqIGZyYWN0aW9uX3BpeGVsX2RlbiAvCisgICAgICAg ICAgICBzLT5wYXJhbXNbd10uZnJhY3Rpb25fYnJpZ2h0X3BpeGVscy5kZW4pOworICAgIH0KKwor ICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1p bmFuY2VfZmxhZyk7CisgICAgaWYgKHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1 bWluYW5jZV9mbGFnKSB7CisgICAgICAgIHB1dF9iaXRzKHBiLCA1LCBzLT5udW1fcm93c19tYXN0 ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UpOworICAgICAgICBwdXRfYml0cyhw YiwgNSwgcy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNl KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5udW1fcm93c19tYXN0ZXJpbmdfZGlz cGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2U7IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQg aiA9IDA7IGogPCBzLT5udW1fY29sc19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1p bmFuY2U7IGorKykKKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgNCwgcy0+bWFzdGVyaW5n X2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdLm51bSAqIHBlYWtfbHVtaW5hbmNl X2RlbiAvCisgICAgICAgICAgICAgICAgICAgIHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9w ZWFrX2x1bWluYW5jZVtpXVtqXS5kZW4pOworICAgICAgICB9CisgICAgfQorCisgICAgZm9yIChp bnQgdyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7CisgICAgICAgIHB1dF9iaXRzKHBi LCAxLCBzLT5wYXJhbXNbd10udG9uZV9tYXBwaW5nX2ZsYWcpOworICAgICAgICBpZiAocy0+cGFy YW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKSB7CisgICAgICAgICAgICBwdXRfYml0cyhwYiwgMTIs IHMtPnBhcmFtc1t3XS5rbmVlX3BvaW50X3gubnVtICoga25lZV9wb2ludF9kZW4gLyBzLT5wYXJh bXNbd10ua25lZV9wb2ludF94LmRlbik7CisgICAgICAgICAgICBwdXRfYml0cyhwYiwgMTIsIHMt PnBhcmFtc1t3XS5rbmVlX3BvaW50X3kubnVtICoga25lZV9wb2ludF9kZW4gLyBzLT5wYXJhbXNb d10ua25lZV9wb2ludF95LmRlbik7CisgICAgICAgICAgICBwdXRfYml0cyhwYiwgNCwgcy0+cGFy YW1zW3ddLm51bV9iZXppZXJfY3VydmVfYW5jaG9ycyk7CisgICAgICAgICAgICBmb3IgKGludCBp ID0gMDsgaSA8IHMtPnBhcmFtc1t3XS5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnM7IGkrKykKKyAg ICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgMTAsIHMtPnBhcmFtc1t3XS5iZXppZXJfY3VydmVf YW5jaG9yc1tpXS5udW0gKiBiZXppZXJfYW5jaG9yX2RlbiAvCisgICAgICAgICAgICAgICAgICAg IHMtPnBhcmFtc1t3XS5iZXppZXJfY3VydmVfYW5jaG9yc1tpXS5kZW4pOworICAgICAgICAgICAg cHV0X2JpdHMocGIsIDEsIHMtPnBhcmFtc1t3XS5jb2xvcl9zYXR1cmF0aW9uX21hcHBpbmdfZmxh Zyk7CisgICAgICAgICAgICBpZiAocy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25fbWFwcGlu Z19mbGFnKQorICAgICAgICAgICAgICAgIHB1dF9iaXRzKHBiLCA2LCBzLT5wYXJhbXNbd10uY29s b3Jfc2F0dXJhdGlvbl93ZWlnaHQubnVtICogc2F0dXJhdGlvbl93ZWlnaHRfZGVuIC8KKyAgICAg ICAgICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25fd2VpZ2h0LmRlbik7 CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmbHVzaF9wdXRfYml0cyhwYik7CisKKyAgICAqZGF0 YSA9IGJ1ZjsKKyAgICAqc2l6ZSA9IHNpemVfYnl0ZXM7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYg LS1naXQgYS9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaCBiL2xpYmF2dXRpbC9oZHJf ZHluYW1pY19tZXRhZGF0YS5oCmluZGV4IDFmOTUzZWYxZjUuLmYyZDc4MDUxYWIgMTAwNjQ0Ci0t LSBhL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5oCisrKyBiL2xpYmF2dXRpbC9oZHJf ZHluYW1pY19tZXRhZGF0YS5oCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIEFWVVRJTF9IRFJf RFlOQU1JQ19NRVRBREFUQV9ICiAjZGVmaW5lIEFWVVRJTF9IRFJfRFlOQU1JQ19NRVRBREFUQV9I CiAKKyNpbmNsdWRlICJidWZmZXIuaCIKICNpbmNsdWRlICJmcmFtZS5oIgogI2luY2x1ZGUgInJh dGlvbmFsLmgiCiAKQEAgLTM1MSw0ICszNTIsMTYgQEAgQVZEeW5hbWljSERSUGx1cyAqYXZfZHlu YW1pY19oZHJfcGx1c19jcmVhdGVfc2lkZV9kYXRhKEFWRnJhbWUgKmZyYW1lKTsKIGludCBhdl9k eW5hbWljX2hkcl9wbHVzX2Zyb21fdDM1KEFWRHluYW1pY0hEUlBsdXMgKnMsIGNvbnN0IHVpbnQ4 X3QgKmRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSk7CiAK Ky8qKgorICogU2VyaWFsaXplIGR5bmFtaWMgSERSMTArIG1ldGFkYXRhIHRvIGEgdXNlciBkYXRh IHJlZ2lzdGVyZWQgSVRVLVQgVC4zNSBidWZmZXIsCisgKiBleGNsdWRpbmcgdGhlIGNvdW50cnkg Y29kZSBhbmQgYmVnaW5uaW5nIHdpdGggdGhlIHRlcm1pbmFsIHByb3ZpZGVyIGNvZGUuCisgKiBA cGFyYW0gZGF0YSBBIHBvaW50ZXIgdG8gYSBieXRlIGJ1ZmZlciB0byBiZSBhbGxvY2F0ZWQgYW5k IGZpbGxlZAorICogICAgICAgICAgICAgd2l0aCB0aGUgc2VyaWFsaXplZCBtZXRhZGF0YS4KKyAq IEBwYXJhbSBzaXplIEEgcG9pbnRlciB0byBhIHNpemUgdG8gYmUgc2V0IHRvIHRoZSByZXR1cm5l ZCBidWZmZXIncyBzaXplLgorICogQHBhcmFtIHMgQSBwb2ludGVyIGNvbnRhaW5pbmcgdGhlIGRl Y29kZWQgQVZEeW5hbWljSERSUGx1cyBzdHJ1Y3R1cmUuCisgKgorICogQHJldHVybiAwIGlmIHN1 Y2NlZWQuIE90aGVyd2lzZSwgcmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQVZFUlJPUi4KKyAqLwor aW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KHVpbnQ4X3QgKipkYXRhLCBzaXplX3QgKnNp emUsIGNvbnN0IEFWRHluYW1pY0hEUlBsdXMgKnMpOworCiAjZW5kaWYgLyogQVZVVElMX0hEUl9E WU5BTUlDX01FVEFEQVRBX0ggKi8KZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92ZXJzaW9uLmggYi9s aWJhdnV0aWwvdmVyc2lvbi5oCmluZGV4IDkwMGI3OTg5NzEuLjc2MzU2NzI5ODUgMTAwNjQ0Ci0t LSBhL2xpYmF2dXRpbC92ZXJzaW9uLmgKKysrIGIvbGliYXZ1dGlsL3ZlcnNpb24uaApAQCAtNzks NyArNzksNyBAQAogICovCiAKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUFKT1IgIDU4Ci0j ZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01JTk9SICAgMworI2RlZmluZSBMSUJBVlVUSUxfVkVS U0lPTl9NSU5PUiAgIDQKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlDUk8gMTAwCiAKICNk ZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fSU5UICAgQVZfVkVSU0lPTl9JTlQoTElCQVZVVElMX1ZF UlNJT05fTUFKT1IsIFwKLS0gCjIuMzkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxA ZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2 ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2 ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=