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 562A4454FF for ; Thu, 2 Mar 2023 19:25:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DD93E68B3CE; Thu, 2 Mar 2023 21:25:30 +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 1D103689C24 for ; Thu, 2 Mar 2023 21:25:25 +0200 (EET) Received: by mail-qt1-f175.google.com with SMTP id w23so431207qtn.6 for ; Thu, 02 Mar 2023 11:25:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; 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=ee1xRVRS2GWr537Lif0w5ChLVEXtCgCr1kbxWw8LtKw=; b=XM5KaKvHFO9H9XhJtV8j+21j9GH194OsP7dTJRSFZsBuo83V/iWHbXAFvA93R7UoUx BJy7KsgdvV3Z7YYD2ZjjBrW3nlzp+pCW45GlpFeodUviyZsQQ6VpLto+4MFlWpjj0gG/ 7ExGZeT6bECOj6VDXA5bBRORdn/MYIF+x/pIQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=ee1xRVRS2GWr537Lif0w5ChLVEXtCgCr1kbxWw8LtKw=; b=aN1mDRuh778Wkj7YPb38Aj//vpzhRVk1DU2+mSDKt4DFS+kn6fsRoLSG373XAscV9D wXrdhqaCINB509pNbcKdAEih35Q8bKPx6yULnK8TKsBcs0JkHg7dFO5rbCUTdy5ivD6t tjdF4/RacI1RbBdXxjOSTB0Gtuc56X4cR7Nybsc9rSBSH7kE6wG0hpsbINsMk8OJdiEU 1yZ8xFjIvpLyFpXqotS7rvCTiT4huNNXEqTVAhqxhvVCJDj6i0OUTO5uvfh/IN8+577F 8U/aJSSMmhP493GTioCNXykTZPQ6VY1NjDFZ0lppKn/v94igLiySKLnl1f+6IIWvyV8k BH6g== X-Gm-Message-State: AO0yUKXuhdt2Uu3R66ZGx/795MgFczlw3WNd8nCRLweiW0Lkw+fCF066 6f5DXgTnPsyZ7MboYvXWESmIHcgorkz/N42a+q0= X-Google-Smtp-Source: AK7set8NHHf27bFVTOLHEkpXdXVb6diq1LCh5khqQoBNmmBKK0beb9184CBoukGoRJA5mPumR4mbHQ== X-Received: by 2002:ac8:7f4e:0:b0:3bf:d71e:5af4 with SMTP id g14-20020ac87f4e000000b003bfd71e5af4mr19803301qtk.26.1677785123324; Thu, 02 Mar 2023 11:25:23 -0800 (PST) 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 d11-20020a05620a158b00b0073b8745fd39sm204280qkk.110.2023.03.02.11.25.22 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 02 Mar 2023 11:25:23 -0800 (PST) Message-ID: Date: Thu, 2 Mar 2023 14:25:22 -0500 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 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: U2lnbmVkLW9mZi1ieTogUmFwaGHDq2wgWnVtZXIgPHJ6dW1lckB0ZWJha28ubmV0PgotLS0KIGxp YmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5jIHwgMTQ2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGxpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5oIHwgIDExICsrKwog bGliYXZ1dGlsL3ZlcnNpb24uaCAgICAgICAgICAgICAgfCAgIDIgKy0KIDMgZmlsZXMgY2hhbmdl ZCwgMTU4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJhdnV0 aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuYyBiL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0 YS5jCmluZGV4IDk4ZjM5OWIwMzIuLjM5YTc4ODZhMmUgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9o ZHJfZHluYW1pY19tZXRhZGF0YS5jCisrKyBiL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0 YS5jCkBAIC0yMjUsMyArMjI1LDE0OSBAQCBpbnQgYXZfZHluYW1pY19oZHJfcGx1c19mcm9tX3Qz NShBVkR5bmFtaWNIRFJQbHVzICpzLCBjb25zdCB1aW50OF90ICpkYXRhLAogCiAgICAgcmV0dXJu IDA7CiB9CisKK0FWQnVmZmVyUmVmICphdl9keW5hbWljX2hkcl9wbHVzX3RvX3QzNShBVkR5bmFt aWNIRFJQbHVzICpzKQoreworICAgIEFWQnVmZmVyUmVmICpidWY7CisgICAgc2l6ZV90IHNpemVf Yml0cywgc2l6ZV9ieXRlczsKKyAgICBQdXRCaXRDb250ZXh0IHBiYywgKnBiID0gJnBiYzsKKwor ICAgIGlmICghcykKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBCdWZmZXIgc2l6ZSBw ZXIgQ1RBLTg2MS1IIHAuMjUzLTI1NDoKKyAgICBzaXplX2JpdHMgPQorICAgIC8vIDU2IGJpdHMg Zm9yIHRoZSBoZWFkZXIsIG1pbnVzIDgtYml0IGV4Y2x1ZGVkIGNvdW50cnkgY29kZQorICAgIDQ4 ICsKKyAgICAvLyAyIGJpdHMgZm9yIG51bV93aW5kb3dzCisgICAgMiArCisgICAgLy8gOTM3IGJp dHMgZm9yIHdpbmRvdyBnZW9tZXRyeSBmb3IgZWFjaCB3aW5kb3cgYWJvdmUgMQorICAgIEZGTUFY KChzLT5udW1fd2luZG93cyAtIDEpLCAwKSAqIDkzNyArCisgICAgLy8gMjcgYml0cyBmb3IgdGFy Z2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4aW11bV9sdW1pbmFuY2UKKyAgICAyNyArCisgICAgLy8g MS0zODU1IGJpdHMgZm9yIHRhcmdldGVkIHN5c3RlbSBkaXNwbGF5IHBlYWsgbHVtaW5hbmNlIGlu Zm9ybWF0aW9uCisgICAgMSArIChzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVh a19sdW1pbmFuY2VfZmxhZyA/IDEwICsKKyAgICAgICAgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRfc3lz dGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICoKKyAgICAgICAgcy0+bnVtX2NvbHNf dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICogNCA6IDApICsK KyAgICAvLyAwLTQ0MiBiaXRzIGZvciBpbnRyYS13aW5kb3cgcGl4ZWwgZGlzdHJpYnV0aW9uIGlu Zm9ybWF0aW9uCisgICAgcy0+bnVtX3dpbmRvd3MgKiA4MjsKKyAgICBmb3IgKGludCB3ID0gMDsg dyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKKyAgICAgICAgc2l6ZV9iaXRzICs9IHMtPnBhcmFt c1t3XS5udW1fZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlcyAqIDI0OworICAgIH0KKyAg ICAvLyAxLTM4NTUgYml0cyBmb3IgbWFzdGVyaW5nIGRpc3BsYXkgcGVhayBsdW1pbmFuY2UgaW5m b3JtYXRpb24KKyAgICBzaXplX2JpdHMgKz0gMSArIChzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1 YWxfcGVha19sdW1pbmFuY2VfZmxhZyA/IDEwICsKKyAgICAgICAgcy0+bnVtX3Jvd3NfbWFzdGVy aW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICoKKyAgICAgICAgcy0+bnVtX2NvbHNf bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICogNCA6IDApICsKKyAgICAv LyAwLTUzNyBiaXRzIGZvciBwZXItd2luZG93IHRvbmVtYXBwaW5nIGluZm9ybWF0aW9uCisgICAg cy0+bnVtX3dpbmRvd3MgKiAxOworICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRv d3M7IHcrKykgeworICAgICAgICBpZiAocy0+cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKSB7 CisgICAgICAgICAgICBzaXplX2JpdHMgKz0gMjggKyBzLT5wYXJhbXNbd10ubnVtX2Jlemllcl9j dXJ2ZV9hbmNob3JzICogMTA7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gMC0yMSBiaXRzIGZv ciBwZXItd2luZG93IGNvbG9yIHNhdHVyYXRpb24gbWFwcGluZyBpbmZvcm1hdGlvbgorICAgIHNp emVfYml0cyArPSBzLT5udW1fd2luZG93cyAqIDE7CisgICAgZm9yIChpbnQgdyA9IDA7IHcgPCBz LT5udW1fd2luZG93czsgdysrKSB7CisgICAgICAgIGlmIChzLT5wYXJhbXNbd10uY29sb3Jfc2F0 dXJhdGlvbl9tYXBwaW5nX2ZsYWcpIHsKKyAgICAgICAgICAgIHNpemVfYml0cyArPSA2OworICAg ICAgICB9CisgICAgfQorCisgICAgc2l6ZV9ieXRlcyA9IChzaXplX2JpdHMgKyA3KSAvIDg7CisK KyAgICBidWYgPSBhdl9idWZmZXJfYWxsb2Moc2l6ZV9ieXRlcyk7CisgICAgaWYgKCFidWYpIHsK KyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaW5pdF9wdXRfYml0cyhwYiwgYnVm LT5kYXRhLCBzaXplX2J5dGVzKTsKKworICAgIC8vIGl0dV90X3QzNV9jb3VudHJ5X2NvZGUgc2hh bGwgYmUgMHhCNSAoVVNBKSAoZXhjbHVkZWQgZnJvbSB0aGUgcGF5bG9hZCkKKyAgICAvLyBpdHVf dF90MzVfdGVybWluYWxfcHJvdmlkZXJfY29kZSBzaGFsbCBiZSAweDAwM0MKKyAgICBwdXRfYml0 cyhwYiwgMTYsIDB4MDAzQyk7CisgICAgLy8gaXR1X3RfdDM1X3Rlcm1pbmFsX3Byb3ZpZGVyX29y aWVudGVkX2NvZGUgaXMgc2V0IHRvIFNUIDIwOTQtNDAKKyAgICBwdXRfYml0cyhwYiwgMTYsIDB4 MDAwMSk7CisgICAgLy8gYXBwbGljYXRpb25faWRlbnRpZmllciBzaGFsbCBiZSBzZXQgdG8gNAor ICAgIHB1dF9iaXRzKHBiLCA4LCA0KTsKKyAgICAvLyBhcHBsaWNhdGlvbl9tb2RlIGlzIHNldCB0 byBBcHBsaWNhdGlvbiBWZXJzaW9uIDEKKyAgICBwdXRfYml0cyhwYiwgOCwgMSk7CisKKyAgICAv LyBQYXlsb2FkIGFzIHBlciBDVEEtODYxLUggcC4yNTMtMjU0CisgICAgcHV0X2JpdHMocGIsIDIs IHMtPm51bV93aW5kb3dzKTsKKworICAgIGZvciAoaW50IHcgPSAxOyB3IDwgcy0+bnVtX3dpbmRv d3M7IHcrKykgeworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS53aW5kb3df dXBwZXJfbGVmdF9jb3JuZXJfeC5udW0gLyBzLT5wYXJhbXNbd10ud2luZG93X3VwcGVyX2xlZnRf Y29ybmVyX3guZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10ud2lu ZG93X3VwcGVyX2xlZnRfY29ybmVyX3kubnVtIC8gcy0+cGFyYW1zW3ddLndpbmRvd191cHBlcl9s ZWZ0X2Nvcm5lcl95LmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3dd LndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeC5udW0gLyBzLT5wYXJhbXNbd10ud2luZG93X2xv d2VyX3JpZ2h0X2Nvcm5lcl94LmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFy YW1zW3ddLndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeS5udW0gLyBzLT5wYXJhbXNbd10ud2lu ZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl95LmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwg cy0+cGFyYW1zW3ddLmNlbnRlcl9vZl9lbGxpcHNlX3gpOworICAgICAgICBwdXRfYml0cyhwYiwg MTYsIHMtPnBhcmFtc1t3XS5jZW50ZXJfb2ZfZWxsaXBzZV95KTsKKyAgICAgICAgcHV0X2JpdHMo cGIsIDgsIHMtPnBhcmFtc1t3XS5yb3RhdGlvbl9hbmdsZSk7CisgICAgICAgIHB1dF9iaXRzKHBi LCAxNiwgcy0+cGFyYW1zW3ddLnNlbWltYWpvcl9heGlzX2ludGVybmFsX2VsbGlwc2UpOworICAg ICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5zZW1pbWFqb3JfYXhpc19leHRlcm5h bF9lbGxpcHNlKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uc2VtaW1p bm9yX2F4aXNfZXh0ZXJuYWxfZWxsaXBzZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5w YXJhbXNbd10ub3ZlcmxhcF9wcm9jZXNzX29wdGlvbik7CisgICAgfQorCisgICAgcHV0X2JpdHMo cGIsIDI3LCBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5jZS5udW0g KiBsdW1pbmFuY2VfZGVuIC8KKyAgICAgICAgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4 aW11bV9sdW1pbmFuY2UuZGVuKTsKKyAgICBwdXRfYml0cyhwYiwgMSwgcy0+dGFyZ2V0ZWRfc3lz dGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcpOworICAgIGlmIChzLT50YXJn ZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZykgeworICAgICAg ICBwdXRfYml0cyhwYiwgNSwgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0 dWFsX3BlYWtfbHVtaW5hbmNlKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDUsIHMtPm51bV9jb2xz X3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSk7CisgICAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlf YWN0dWFsX3BlYWtfbHVtaW5hbmNlOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAw OyBqIDwgcy0+bnVtX2NvbHNfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVt aW5hbmNlOyBqKyspIHsKKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgNCwgcy0+dGFyZ2V0 ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdLm51bSAqIHBlYWtf bHVtaW5hbmNlX2RlbiAvCisgICAgICAgICAgICAgICAgICAgIHMtPnRhcmdldGVkX3N5c3RlbV9k aXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5kZW4pOworICAgICAgICAgICAgfQor ICAgICAgICB9CisgICAgfQorCisgICAgZm9yIChpbnQgdyA9IDA7IHcgPCBzLT5udW1fd2luZG93 czsgdysrKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7CisgICAgICAg ICAgICBwdXRfYml0cyhwYiwgMTcsIHMtPnBhcmFtc1t3XS5tYXhzY2xbaV0ubnVtICogcmdiX2Rl biAvIHMtPnBhcmFtc1t3XS5tYXhzY2xbaV0uZGVuKTsKKyAgICAgICAgfQorICAgICAgICBwdXRf Yml0cyhwYiwgMTcsIHMtPnBhcmFtc1t3XS5hdmVyYWdlX21heHJnYi5udW0gKiByZ2JfZGVuIC8g cy0+cGFyYW1zW3ddLmF2ZXJhZ2VfbWF4cmdiLmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCA0 LCBzLT5wYXJhbXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXMpOworICAg ICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMtPnBhcmFtc1t3XS5udW1fZGlzdHJpYnV0aW9uX21h eHJnYl9wZXJjZW50aWxlczsgaSsrKSB7CisgICAgICAgICAgICBwdXRfYml0cyhwYiwgNywgcy0+ cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGFnZSk7CisgICAgICAgICAg ICBwdXRfYml0cyhwYiwgMTcsIHMtPnBhcmFtc1t3XS5kaXN0cmlidXRpb25fbWF4cmdiW2ldLnBl cmNlbnRpbGUubnVtICogcmdiX2RlbiAvCisgICAgICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmRp c3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGlsZS5kZW4pOworICAgICAgICB9CisgICAgICAg IHB1dF9iaXRzKHBiLCAxMCwgcy0+cGFyYW1zW3ddLmZyYWN0aW9uX2JyaWdodF9waXhlbHMubnVt ICogZnJhY3Rpb25fcGl4ZWxfZGVuIC8KKyAgICAgICAgICAgIHMtPnBhcmFtc1t3XS5mcmFjdGlv bl9icmlnaHRfcGl4ZWxzLmRlbik7CisgICAgfQorCisgICAgcHV0X2JpdHMocGIsIDEsIHMtPm1h c3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnKTsKKyAgICBpZiAocy0+ bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcpIHsKKyAgICAgICAg cHV0X2JpdHMocGIsIDUsIHMtPm51bV9yb3dzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFr X2x1bWluYW5jZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCA1LCBzLT5udW1fY29sc19tYXN0ZXJp bmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UpOworICAgICAgICBmb3IgKGludCBpID0g MDsgaSA8IHMtPm51bV9yb3dzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5j ZTsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHMtPm51bV9jb2xzX21h c3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZTsgaisrKSB7CisgICAgICAgICAg ICAgICAgcHV0X2JpdHMocGIsIDQsIHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1 bWluYW5jZVtpXVtqXS5udW0gKiBwZWFrX2x1bWluYW5jZV9kZW4gLworICAgICAgICAgICAgICAg ICAgICBzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0uZGVu KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGZvciAoaW50IHcgPSAw OyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBwdXRfYml0cyhwYiwgMSwgcy0+ cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKTsKKyAgICAgICAgaWYgKHMtPnBhcmFtc1t3XS50 b25lX21hcHBpbmdfZmxhZykgeworICAgICAgICAgICAgcHV0X2JpdHMocGIsIDEyLCBzLT5wYXJh bXNbd10ua25lZV9wb2ludF94Lm51bSAqIGtuZWVfcG9pbnRfZGVuIC8gcy0+cGFyYW1zW3ddLmtu ZWVfcG9pbnRfeC5kZW4pOworICAgICAgICAgICAgcHV0X2JpdHMocGIsIDEyLCBzLT5wYXJhbXNb d10ua25lZV9wb2ludF95Lm51bSAqIGtuZWVfcG9pbnRfZGVuIC8gcy0+cGFyYW1zW3ddLmtuZWVf cG9pbnRfeS5kZW4pOworICAgICAgICAgICAgcHV0X2JpdHMocGIsIDQsIHMtPnBhcmFtc1t3XS5u dW1fYmV6aWVyX2N1cnZlX2FuY2hvcnMpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBzLT5wYXJhbXNbd10ubnVtX2Jlemllcl9jdXJ2ZV9hbmNob3JzOyBpKyspIHsKKyAgICAgICAg ICAgICAgICBwdXRfYml0cyhwYiwgMTAsIHMtPnBhcmFtc1t3XS5iZXppZXJfY3VydmVfYW5jaG9y c1tpXS5udW0gKiBiZXppZXJfYW5jaG9yX2RlbiAvCisgICAgICAgICAgICAgICAgICAgIHMtPnBh cmFtc1t3XS5iZXppZXJfY3VydmVfYW5jaG9yc1tpXS5kZW4pOworICAgICAgICAgICAgfQorICAg ICAgICAgICAgcHV0X2JpdHMocGIsIDEsIHMtPnBhcmFtc1t3XS5jb2xvcl9zYXR1cmF0aW9uX21h cHBpbmdfZmxhZyk7CisgICAgICAgICAgICBpZiAocy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRp b25fbWFwcGluZ19mbGFnKSB7CisgICAgICAgICAgICAgICAgcHV0X2JpdHMocGIsIDYsIHMtPnBh cmFtc1t3XS5jb2xvcl9zYXR1cmF0aW9uX3dlaWdodC5udW0gKiBzYXR1cmF0aW9uX3dlaWdodF9k ZW4gLworICAgICAgICAgICAgICAgICAgICBzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl93 ZWlnaHQuZGVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGZsdXNo X3B1dF9iaXRzKHBiKTsKKyAgICByZXR1cm4gYnVmOworfQpkaWZmIC0tZ2l0IGEvbGliYXZ1dGls L2hkcl9keW5hbWljX21ldGFkYXRhLmggYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEu aAppbmRleCAxZjk1M2VmMWY1Li43OTdhNWM2NGFlIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaGRy X2R5bmFtaWNfbWV0YWRhdGEuaAorKysgYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEu aApAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBBVlVUSUxfSERSX0RZTkFNSUNfTUVUQURBVEFf SAogI2RlZmluZSBBVlVUSUxfSERSX0RZTkFNSUNfTUVUQURBVEFfSAogCisjaW5jbHVkZSAiYnVm ZmVyLmgiCiAjaW5jbHVkZSAiZnJhbWUuaCIKICNpbmNsdWRlICJyYXRpb25hbC5oIgogCkBAIC0z NTEsNCArMzUyLDE0IEBAIEFWRHluYW1pY0hEUlBsdXMgKmF2X2R5bmFtaWNfaGRyX3BsdXNfY3Jl YXRlX3NpZGVfZGF0YShBVkZyYW1lICpmcmFtZSk7CiBpbnQgYXZfZHluYW1pY19oZHJfcGx1c19m cm9tX3QzNShBVkR5bmFtaWNIRFJQbHVzICpzLCBjb25zdCB1aW50OF90ICpkYXRhLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUpOwogCisvKioKKyAqIFNlcmlhbGl6 ZSBkeW5hbWljIEhEUjEwKyBtZXRhZGF0YSB0byBhIHVzZXIgZGF0YSByZWdpc3RlcmVkIElUVS1U IFQuMzUgYnVmZmVyLAorICogZXhjbHVkaW5nIHRoZSBjb3VudHJ5IGNvZGUgYW5kIGJlZ2lubmlu ZyB3aXRoIHRoZSB0ZXJtaW5hbCBwcm92aWRlciBjb2RlLgorICogQHBhcmFtIHMgQSBwb2ludGVy IGNvbnRhaW5pbmcgdGhlIGRlY29kZWQgQVZEeW5hbWljSERSUGx1cyBzdHJ1Y3R1cmUuCisgKgor ICogQHJldHVybiBQb2ludGVyIHRvIGFuIEFWQnVmZmVyUmVmIGNvbnRhaW5pbmcgdGhlIHJhdyBJ VFUtVCBULjM1IHJlcHJlc2VudGF0aW9uCisgKiAgICAgICAgIG9mIHRoZSBIRFIxMCsgbWV0YWRh dGEgaWYgc3VjY2VlZCwgb3IgTlVMTCBpZiBidWZmZXIgYWxsb2NhdGlvbiBmYWlscy4KKyAqLwor QVZCdWZmZXJSZWYgKmF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KEFWRHluYW1pY0hEUlBsdXMg KnMpOworCiAjZW5kaWYgLyogQVZVVElMX0hEUl9EWU5BTUlDX01FVEFEQVRBX0ggKi8KZGlmZiAt LWdpdCBhL2xpYmF2dXRpbC92ZXJzaW9uLmggYi9saWJhdnV0aWwvdmVyc2lvbi5oCmluZGV4IDkw MGI3OTg5NzEuLjc2MzU2NzI5ODUgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC92ZXJzaW9uLmgKKysr IGIvbGliYXZ1dGlsL3ZlcnNpb24uaApAQCAtNzksNyArNzksNyBAQAogICovCiAKICNkZWZpbmUg TElCQVZVVElMX1ZFUlNJT05fTUFKT1IgIDU4Ci0jZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01J Tk9SICAgMworI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSU5PUiAgIDQKICNkZWZpbmUgTElC QVZVVElMX1ZFUlNJT05fTUlDUk8gMTAwCiAKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fSU5U ICAgQVZfVkVSU0lPTl9JTlQoTElCQVZVVElMX1ZFUlNJT05fTUFKT1IsIFwKLS0gCjIuMzkuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRl dmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5v cmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBs aW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGgg c3ViamVjdCAidW5zdWJzY3JpYmUiLgo=