From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 6556147371 for ; Thu, 15 Jan 2026 17:20:05 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'rYuw4M1Sk8Zc8/O/q0iNtIX0lHe8LHO6YnJW+P1l7Ig=', expected b'Wyxuq+lXyPjysmKvmUdFx/kNCwUoQ6vddkHIUru1I4c=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1768497577; h=content-type : mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-transfer-encoding : from; bh=rYuw4M1Sk8Zc8/O/q0iNtIX0lHe8LHO6YnJW+P1l7Ig=; b=siIED7MzeA6+lvP2zrvFRahlPKbw+Ldp5XNM/jYBRUr4m2D/lwQf4u9wVDSId7qhJW7Rz zr9WbsY6xvvLGJp8BI9/oeT0aQYAgllTPc83Cyl3rSWHDZiMwGfuHEIhMXwjjyPDvjh/9cr DIADGIbUvU9XN8IW8hQ+4KlUwDZZGrooonOJPOKupbezOa/MeLM0RtWBO48pnsF882ZilWE zPnjSaqbQMXI7rYrv5COZySrowgbtAEBjBi+EDNWmVuLEiwu6V9Ie4hBJTw+sMMWKms6de2 DpcM7tED/ZcHuvra2cEBQkEB9AzN7nHyA2GJHUx1nPjTJJtfDWC7Mu3QsjXA== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id C2A1A690E58; Thu, 15 Jan 2026 19:19:37 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1768497558; b=WYCUV4DpWXL7EQ6D+NGhtw15cLk+CaXW9h9+oL565bywWganxpmXWLUpOuicLeZNd7RYc SmdgdZ/SHY/4fVA+aCn8pqsZbHmVZ+S2XyfZ1L3cjIqPPm4O6RtK3+7FKbF/ayAEL+s+zcv IPFqbHIKZjYjV/ifhSjPF+s/cHqkvxMunpJDpR3RlFt4+ajQrxOI06KdZN9aj2Jc7bf8FRJ jBbhzNKUNCBMpmc4enYXdju9lsryjqfkPBwqppyslYx/TZXsQe6xGa5/geBXwVVZya9ct3L D/4u3kW7JCf6CBNDsYz0UcVeVk3KkYO+9onQCxTQGWBJ+ISD4uTsyP6tWptA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1768497558; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=rYuw4M1Sk8Zc8/O/q0iNtIX0lHe8LHO6YnJW+P1l7Ig=; b=X3KpCvN9ycD1bGwr091btaiSmYt1wj1aKdfh0rZvOvNrJ0p2h+GwBTubpeYkhEpoXIbfX +gmeZRa4pJu3HMNtGLBG+TjBXB9v5FCVdYo8LxZ/ueykZas2j+XuYEI2xkpZRA2DFyMYIXR FEjxfmBQBWrDoR83GlkgxKzFPuiV1FIXKvlvnUPUXqFmmALi95RexxSvxoqQgLFYTZYOJ4S FQHOH8cE8+xkAIJWDmjH3oIZ7RhppHgc3rC61H7DysFpsop3J1Xa4+6ohWfXzpod1I4kEOG Gv8VM+wDYyYn63Z5rNvfDcPZyMsIyACWjti/LaY8nS4tnrXsLbkdnRThbtfg== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1768497550; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=Wyxuq+lXyPjysmKvmUdFx/kNCwUoQ6vddkHIUru1I4c=; b=vnRWRWTfituDP6L+u+/NiMLaasHDC7ugtkWYh8pVvD39ZuN/iWr4dbU9UO7SufaxRKJlv MRulLSIoipPhO7k+B5mFEQbzgEkyt760Z3SzNL2LepMGnGnFD8kX7QGE/rjmUwFX58laCKs KC6KXn1GWjL4iLOfoPmmVCPqQc8YaXSqquVT9WCs6zIO8LYNqmE0ONakZoNxezHmYeN8Lqr on1bwvr/BkD+X8Zitxw/Jjt18/5gviIYijbDWueT8k9m3Ajre/4nRa09WeNp9ZptpAxCL9P 7SBE7uEjikcGzeT4qVUtKb2Uv27q5s4Gyw7HPegVuGilAH9B9nCjhUIMKLYQ== Received: from 69dab402ede7 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id E6BB3690DE0 for ; Thu, 15 Jan 2026 19:19:09 +0200 (EET) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Jan 2026 17:19:09 -0000 Message-ID: <176849755015.25.4789594658076376685@4457048688e7> Message-ID-Hash: 4VYRVNGFKJG2V7Y23D5GS4E53F3NKZTM X-Message-ID-Hash: 4VYRVNGFKJG2V7Y23D5GS4E53F3NKZTM X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] libavutil/nal: optimize NAL startcode search with ARM NEON (PR #21475) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: hezuoqiang via ffmpeg-devel Cc: hezuoqiang Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: UFIgIzIxNDc1IG9wZW5lZCBieSBoZXp1b3FpYW5nClVSTDogaHR0cHM6Ly9jb2RlLmZmbXBlZy5v cmcvRkZtcGVnL0ZGbXBlZy9wdWxscy8yMTQ3NQpQYXRjaCBVUkw6IGh0dHBzOi8vY29kZS5mZm1w ZWcub3JnL0ZGbXBlZy9GRm1wZWcvcHVsbHMvMjE0NzUucGF0Y2gKClRoaXMgb3B0aW1pemF0aW9u IHRhcmdldHMgZmZfbmFsX2ZpbmRfc3RhcnRjb2RlIGluIGxpYmF2dXRpbC9uYWwsIHdoaWNoDQpk aXJlY3RseSByZXR1cm5zIHBvaW50ZXJzIHRvIGNvbXBsZXRlIHN0YXJ0Y29kZSBzZXF1ZW5jZXMg KDAwIDAwIDAxKSB1c2VkDQpieSB0aGUgSC4yNjQgZGVtdXhlciwgZGlzdGluY3QgZnJvbSBmZl9z dGFydGNvZGVfZmluZF9jYW5kaWRhdGUgd2hpY2ggb25seQ0KbG9jYXRlcyB6ZXJvIGJ5dGVzIGFu ZCByZXF1aXJlcyB1cHBlci1sYXllciB2YWxpZGF0aW9uLg0KDQpUZWNobmljYWwgQXBwcm9hY2g6 DQotIFVzZXMgTkVPTiBTSU1EIHRvIGRldGVjdCAiMDAiIGJ5dGUtcGFpciBwYXR0ZXJucyBpbnN0 ZWFkIG9mIHNpbmdsZSB6ZXJvcw0KLSBQcm9jZXNzZXMgZGF0YSBpbiA2NC1ieXRlIHZlY3RvciBi bG9ja3MgZm9yIG1heGltdW0gdGhyb3VnaHB1dA0KLSBGYWxscyBiYWNrIHRvIGV4aXN0aW5nIEMg aW1wbGVtZW50YXRpb24gZm9yIHNtYWxsIGJ1ZmZlcnMgb3Igd2hlbiBORU9OIGlzIHVuYXZhaWxh YmxlDQoNClBlcmZvcm1hbmNlIEFuYWx5c2lzICgyMi44OCBNQiAxMDgwcCBILjI2NCB2aWRlbyk6 DQotIFNpbmdsZSB6ZXJvIGJ5dGVzIGluIHN0cmVhbTogOTUsNjczICg5OC4xJSBmYWxzZSBwb3Np dGl2ZSByYXRlKQ0KLSBWYWxpZCBOQUxVIHN0YXJ0Y29kZXM6IDEsMjI0DQotIFVzaW5nICIwMCIg cGF0dGVybiByZWR1Y2VzIGZhbHNlIHBvc2l0aXZlcyBmcm9tIDk4LjElIHRvIDIyLjglDQotIE9u bHkgMjIuOCUgb2YgNjQtYnl0ZSBibG9ja3MgcmVxdWlyZSBkZXRhaWxlZCBjaGVja2luZw0KLSA3 Ny4yJSBvZiBibG9ja3MgY2FuIGJlIHNraXBwZWQgZW50aXJlbHkgYWZ0ZXIgTkVPTiBmYXN0LXBh dGgNCg0KQmVuY2htYXJrIFJlc3VsdHMgKDEwMDAgaXRlcmF0aW9ucywgUmFzcGJlcnJ5IFBpIDUg LSBDb3J0ZXgtQTc2KToNCi0gQmFzZWxpbmUgKGZmX3N0YXJ0Y29kZV9maW5kX2NhbmRpZGF0ZSAr IEMgdmFsaWRhdGlvbik6IDUsNDU0LDY4MCDOvHMNCi0gTkVPTiBvcHRpbWl6ZWQgKGZmX25hbF9m aW5kX3N0YXJ0Y29kZV9uZW9uKTogMSw3NDEsMjgwIM68cw0KLSBTcGVlZHVwOiAzLjEzeAoKCkZy b20gYzBiYTk4ZDMwYTE0MjhlZjEyZWY3ZGQ5YTQ5MzVhZDZkMzE5NTcwMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogWnVvcWlhbmcgSGUgPGhlenVvcWlhbmdAZm94bWFpbC5jb20+CkRh dGU6IEZyaSwgMTYgSmFuIDIwMjYgMDA6MzE6NTggKzA4MDAKU3ViamVjdDogW1BBVENIXSBsaWJh dnV0aWwvbmFsOiBvcHRpbWl6ZSBOQUwgc3RhcnRjb2RlIHNlYXJjaCB3aXRoIEFSTSBORU9OCk1J TUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApD b250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGlzIG9wdGltaXphdGlvbiB0YXJnZXRz IGZmX25hbF9maW5kX3N0YXJ0Y29kZSBpbiBsaWJhdnV0aWwvbmFsLCB3aGljaApkaXJlY3RseSBy ZXR1cm5zIHBvaW50ZXJzIHRvIGNvbXBsZXRlIHN0YXJ0Y29kZSBzZXF1ZW5jZXMgKDAwIDAwIDAx KSB1c2VkCmJ5IHRoZSBILjI2NCBkZW11eGVyLCBkaXN0aW5jdCBmcm9tIGZmX3N0YXJ0Y29kZV9m aW5kX2NhbmRpZGF0ZSB3aGljaCBvbmx5CmxvY2F0ZXMgemVybyBieXRlcyBhbmQgcmVxdWlyZXMg dXBwZXItbGF5ZXIgdmFsaWRhdGlvbi4KClRlY2huaWNhbCBBcHByb2FjaDoKLSBVc2VzIE5FT04g U0lNRCB0byBkZXRlY3QgIjAwIiBieXRlLXBhaXIgcGF0dGVybnMgaW5zdGVhZCBvZiBzaW5nbGUg emVyb3MKLSBQcm9jZXNzZXMgZGF0YSBpbiA2NC1ieXRlIHZlY3RvciBibG9ja3MgZm9yIG1heGlt dW0gdGhyb3VnaHB1dAotIEZhbGxzIGJhY2sgdG8gZXhpc3RpbmcgQyBpbXBsZW1lbnRhdGlvbiBm b3Igc21hbGwgYnVmZmVycyBvciB3aGVuIE5FT04gaXMgdW5hdmFpbGFibGUKClBlcmZvcm1hbmNl IEFuYWx5c2lzICgyMi44OCBNQiAxMDgwcCBILjI2NCB2aWRlbyk6Ci0gU2luZ2xlIHplcm8gYnl0 ZXMgaW4gc3RyZWFtOiA5NSw2NzMgKDk4LjElIGZhbHNlIHBvc2l0aXZlIHJhdGUpCi0gVmFsaWQg TkFMVSBzdGFydGNvZGVzOiAxLDIyNAotIFVzaW5nICIwMCIgcGF0dGVybiByZWR1Y2VzIGZhbHNl IHBvc2l0aXZlcyBmcm9tIDk4LjElIHRvIDIyLjglCi0gT25seSAyMi44JSBvZiA2NC1ieXRlIGJs b2NrcyByZXF1aXJlIGRldGFpbGVkIGNoZWNraW5nCi0gNzcuMiUgb2YgYmxvY2tzIGNhbiBiZSBz a2lwcGVkIGVudGlyZWx5IGFmdGVyIE5FT04gZmFzdC1wYXRoCgpCZW5jaG1hcmsgUmVzdWx0cyAo MTAwMCBpdGVyYXRpb25zLCBSYXNwYmVycnkgUGkgNSAtIENvcnRleC1BNzYpOgotIEJhc2VsaW5l IChmZl9zdGFydGNvZGVfZmluZF9jYW5kaWRhdGUgKyBDIHZhbGlkYXRpb24pOiA1LDQ1NCw2ODAg zrxzCi0gTkVPTiBvcHRpbWl6ZWQgKGZmX25hbF9maW5kX3N0YXJ0Y29kZV9uZW9uKTogMSw3NDEs MjgwIM68cwotIFNwZWVkdXA6IDMuMTN4CgpTaWduZWQtb2ZmLWJ5OiBadW9xaWFuZyBIZSA8aGV6 dW9xaWFuZ0Bmb3htYWlsLmNvbT4KLS0tCiBsaWJhdmZvcm1hdC9uYWwuYyAgICAgICAgICB8ICA0 NSArLS0tLS0tLS0KIGxpYmF2dXRpbC9NYWtlZmlsZSAgICAgICAgIHwgICAxICsKIGxpYmF2dXRp bC9hYXJjaDY0L01ha2VmaWxlIHwgICAxICsKIGxpYmF2dXRpbC9hYXJjaDY0L25hbC5TICAgIHwg MTY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2dXRpbC9uYWwuYyAgICAg ICAgICAgIHwgMTAwICsrKysrKysrKysrKysrKysrKysKIGxpYmF2dXRpbC9uYWwuaCAgICAgICAg ICAgIHwgIDYwICsrKysrKysrKysrCiB0ZXN0cy9jaGVja2FzbS9NYWtlZmlsZSAgICB8ICAgMSAr CiB0ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jICB8ICAgMSArCiB0ZXN0cy9jaGVja2FzbS9jaGVj a2FzbS5oICB8ICAgMSArCiB0ZXN0cy9jaGVja2FzbS9uYWwuYyAgICAgICB8IDE5NyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9mYXRlL2NoZWNrYXNtLm1hayAg ICB8ICAgMSArCiAxMSBmaWxlcyBjaGFuZ2VkLCA1MzYgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZ1dGlsL2FhcmNoNjQvbmFsLlMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsaWJhdnV0aWwvbmFsLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdnV0 aWwvbmFsLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9jaGVja2FzbS9uYWwuYwoKZGlmZiAt LWdpdCBhL2xpYmF2Zm9ybWF0L25hbC5jIGIvbGliYXZmb3JtYXQvbmFsLmMKaW5kZXggMjZkYzVm ZTY4OC4uY2FiZWUzN2UwZCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbmFsLmMKKysrIGIvbGli YXZmb3JtYXQvbmFsLmMKQEAgLTE4LDU3ICsxOCwyMCBAQAogICogRm91bmRhdGlvbiwgSW5jLiwg NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVT QQogICovCiAKLSNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs dWRlIDxzdHJpbmcuaD4KIAogI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKICNpbmNsdWRlICJs aWJhdnV0aWwvZXJyb3IuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvbmFsLmgiCiAjaW5jbHVkZSAi bGliYXZjb2RlYy9kZWZzLmgiCiAjaW5jbHVkZSAiYXZpby5oIgogI2luY2x1ZGUgImF2aW9faW50 ZXJuYWwuaCIKICNpbmNsdWRlICJuYWwuaCIKIAotc3RhdGljIGNvbnN0IHVpbnQ4X3QgKm5hbF9m aW5kX3N0YXJ0Y29kZV9pbnRlcm5hbChjb25zdCB1aW50OF90ICpwLCBjb25zdCB1aW50OF90ICpl bmQpCitjb25zdCB1aW50OF90ICpmZl9uYWxfZmluZF9zdGFydGNvZGUoY29uc3QgdWludDhfdCAq cCwgY29uc3QgdWludDhfdCAqZW5kKQogewotICAgIGNvbnN0IHVpbnQ4X3QgKmEgPSBwICsgNCAt ICgoaW50cHRyX3QpcCAmIDMpOwotCi0gICAgZm9yIChlbmQgLT0gMzsgcCA8IGEgJiYgcCA8IGVu ZDsgcCsrKSB7Ci0gICAgICAgIGlmIChwWzBdID09IDAgJiYgcFsxXSA9PSAwICYmIHBbMl0gPT0g MSkKLSAgICAgICAgICAgIHJldHVybiBwOwotICAgIH0KLQotICAgIGZvciAoZW5kIC09IDM7IHAg PCBlbmQ7IHAgKz0gNCkgewotICAgICAgICB1aW50MzJfdCB4ID0gKihjb25zdCB1aW50MzJfdCop cDsKLS8vICAgICAgaWYgKCh4IC0gMHgwMTAwMDEwMCkgJiAofngpICYgMHg4MDAwODAwMCkgLy8g bGl0dGxlIGVuZGlhbgotLy8gICAgICBpZiAoKHggLSAweDAwMDEwMDAxKSAmICh+eCkgJiAweDAw ODAwMDgwKSAvLyBiaWcgZW5kaWFuCi0gICAgICAgIGlmICgoeCAtIDB4MDEwMTAxMDEpICYgKH54 KSAmIDB4ODA4MDgwODApIHsgLy8gZ2VuZXJpYwotICAgICAgICAgICAgaWYgKHBbMV0gPT0gMCkg ewotICAgICAgICAgICAgICAgIGlmIChwWzBdID09IDAgJiYgcFsyXSA9PSAxKQotICAgICAgICAg ICAgICAgICAgICByZXR1cm4gcDsKLSAgICAgICAgICAgICAgICBpZiAocFsyXSA9PSAwICYmIHBb M10gPT0gMSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHArMTsKLSAgICAgICAgICAgIH0K LSAgICAgICAgICAgIGlmIChwWzNdID09IDApIHsKLSAgICAgICAgICAgICAgICBpZiAocFsyXSA9 PSAwICYmIHBbNF0gPT0gMSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHArMjsKLSAgICAg ICAgICAgICAgICBpZiAocFs0XSA9PSAwICYmIHBbNV0gPT0gMSkKLSAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIHArMzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGZv ciAoZW5kICs9IDM7IHAgPCBlbmQ7IHArKykgewotICAgICAgICBpZiAocFswXSA9PSAwICYmIHBb MV0gPT0gMCAmJiBwWzJdID09IDEpCi0gICAgICAgICAgICByZXR1cm4gcDsKLSAgICB9Ci0KLSAg ICByZXR1cm4gZW5kICsgMzsKLX0KLQotY29uc3QgdWludDhfdCAqZmZfbmFsX2ZpbmRfc3RhcnRj b2RlKGNvbnN0IHVpbnQ4X3QgKnAsIGNvbnN0IHVpbnQ4X3QgKmVuZCl7Ci0gICAgY29uc3QgdWlu dDhfdCAqb3V0ID0gbmFsX2ZpbmRfc3RhcnRjb2RlX2ludGVybmFsKHAsIGVuZCk7Ci0gICAgaWYo cDxvdXQgJiYgb3V0PGVuZCAmJiAhb3V0Wy0xXSkgb3V0LS07Ci0gICAgcmV0dXJuIG91dDsKKyAg ICByZXR1cm4gYXZfbmFsX2ZpbmRfc3RhcnRjb2RlKHAsIGVuZCk7CiB9CiAKIHN0YXRpYyBpbnQg bmFsX3BhcnNlX3VuaXRzKEFWSU9Db250ZXh0ICpwYiwgTkFMVUxpc3QgKmxpc3QsCmRpZmYgLS1n aXQgYS9saWJhdnV0aWwvTWFrZWZpbGUgYi9saWJhdnV0aWwvTWFrZWZpbGUKaW5kZXggYzUyNDE4 OTVmZi4uOWQ3YzlkODgyMCAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL01ha2VmaWxlCisrKyBiL2xp YmF2dXRpbC9NYWtlZmlsZQpAQCAtMTY0LDYgKzE2NCw3IEBAIE9CSlMgPSBhZGxlcjMyLm8gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICBtZDUubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICAgICBtZW0ubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBtdXJtdXIzLm8gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICBuYWwubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgICBvcHQubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBwYXJzZXV0aWxzLm8gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBw aXhkZXNjLm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9hYXJjaDY0L01ha2VmaWxlIGIvbGliYXZ1 dGlsL2FhcmNoNjQvTWFrZWZpbGUKaW5kZXggYjcwNzAyOTAyZi4uMjdkNGI4YmM2NSAxMDA2NDQK LS0tIGEvbGliYXZ1dGlsL2FhcmNoNjQvTWFrZWZpbGUKKysrIGIvbGliYXZ1dGlsL2FhcmNoNjQv TWFrZWZpbGUKQEAgLTYsNiArNiw3IEBAIEFSTVY4LU9CSlMgKz0gYWFyY2g2NC9jcmMubwogCiBO RU9OLU9CSlMgKz0gYWFyY2g2NC9mbG9hdF9kc3BfbmVvbi5vICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgICAgICAgICAgIGFhcmNoNjQvdHhfZmxvYXRfbmVvbi5vICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICBhYXJjaDY0L25hbC5v ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAKIFNWRS1PQkpT ICs9IGFhcmNoNjQvY3B1X3N2ZS5vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9hYXJjaDY0L25hbC5TIGIvbGliYXZ1dGls L2FhcmNoNjQvbmFsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjZi M2U0YWZjZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2dXRpbC9hYXJjaDY0L25hbC5TCkBAIC0w LDAgKzEsMTY5IEBACisvKgorICogQVJNIE5FT04tb3B0aW1pemVkIE5BTCBzdGFydGNvZGUgc2Vh cmNoCisgKiBDb3B5cmlnaHQgKGMpIDIwMjQKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBG Rm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVn OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEg VVNBCisgKi8KKworI2luY2x1ZGUgImxpYmF2dXRpbC9hYXJjaDY0L2FzbS5TIgorCitmdW5jdGlv biBmZl9uYWxfZmluZF9zdGFydGNvZGVfbmVvbiwgZXhwb3J0PTEKKyAgICAgICAgYW5kICAgICAg ICAgICAgIHgyLCB4MCwgIy00ICAgICAgICAgICAgICAvLyBhbGlnbiB0byA0LWJ5dGUgYm91bmRh cnkKKyAgICAgICAgc3ViICAgICAgICAgICAgIHg3LCB4MSwgIzMgICAgICAgICAgICAgICAvLyBl bmQgLT0gMworICAgICAgICBhZGQgICAgICAgICAgICAgeDIsIHgyLCAjNCAgICAgICAgICAgICAg IC8vIGFsaWduNCA9IGFsaWduZWRfcCArIDQKKyAgICAgICAgbW92ICAgICAgICAgICAgIHgzLCB4 MCAgICAgICAgICAgICAgICAgICAvLyBwID0gb3JpZ19wCisgICAgICAgIGNtcCAgICAgICAgICAg ICB4MCwgeDIKKyAgICAgICAgY2NtcCAgICAgICAgICAgIHg3LCB4MCwgIzAsIGNjCisgICAgICAg IGJscyAgICAgICAgICAgICAyZiAgICAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCBhbGlnbm1l bnQgcGhhc2UKKworICAgICAgICAvLyBQaGFzZSAxOiBhbGlnbiB0byA0LWJ5dGUgYm91bmRhcnkK KzE6ICAgICAgbGRyYiAgICAgICAgICAgIHcwLCBbeDNdCisgICAgICAgIGNibnogICAgICAgICAg ICB3MCwgM2YKKyAgICAgICAgbGRyYiAgICAgICAgICAgIHcwLCBbeDMsICMxXQorICAgICAgICBj Ym56ICAgICAgICAgICAgdzAsIDNmCisgICAgICAgIGxkcmIgICAgICAgICAgICB3MCwgW3gzLCAj Ml0KKyAgICAgICAgY21wICAgICAgICAgICAgIHcwLCAjMQorICAgICAgICBiZXEgICAgICAgICAg ICAgMjJmICAgICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kIDAwIDAwIDAxCiszOiAgICAgIGFk ZCAgICAgICAgICAgICB4MywgeDMsICMxCisgICAgICAgIGNtcCAgICAgICAgICAgICB4MiwgeDMK KyAgICAgICAgY2NtcCAgICAgICAgICAgIHg3LCB4MywgIzAsIGhpCisgICAgICAgIGJoaSAgICAg ICAgICAgICAxYgorCisyOiAgICAgIHN1YiAgICAgICAgICAgICB4MCwgeDcsIHgzICAgICAgICAg ICAgICAgLy8gcmVtYWluaW5nID0gZW5kIC0gcAorICAgICAgICBjbXAgICAgICAgICAgICAgeDAs ICM2MworICAgICAgICBiZ3QgICAgICAgICAgICAgNDNmICAgICAgICAgICAgICAgICAgICAgIC8v IGVudGVyIE5FT04gcGhhc2UgaWYgPj0gNjQgYnl0ZXMKKworICAgICAgICAvLyBQaGFzZSAzOiBi eXRlLWJ5LWJ5dGUgY2hlY2sgZm9yIHJlbWFpbmluZyBkYXRhCis0OiAgICAgIGNtcCAgICAgICAg ICAgICB4NywgeDMKKyAgICAgICAgYmxzICAgICAgICAgICAgIDhmCis1OiAgICAgIGxkcmIgICAg ICAgICAgICB3MCwgW3gzXQorICAgICAgICBjYm56ICAgICAgICAgICAgdzAsIDZmCisgICAgICAg IGxkcmIgICAgICAgICAgICB3MCwgW3gzLCAjMV0KKyAgICAgICAgY2JueiAgICAgICAgICAgIHcw LCA2ZgorICAgICAgICBsZHJiICAgICAgICAgICAgdzAsIFt4MywgIzJdCisgICAgICAgIGNtcCAg ICAgICAgICAgICB3MCwgIzEKKyAgICAgICAgYmVxICAgICAgICAgICAgIDIyZgorNjogICAgICBh ZGQgICAgICAgICAgICAgeDMsIHgzLCAjMQorICAgICAgICBjbXAgICAgICAgICAgICAgeDcsIHgz CisgICAgICAgIGJuZSAgICAgICAgICAgICA1YgorODogICAgICBtb3YgICAgICAgICAgICAgeDAs IHgxICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBvcmlnX2VuZAorICAgICAgICByZXQKKwor ICAgICAgICAvLyBQaGFzZSAyOiBORU9OIGFjY2VsZXJhdGlvbiAoNjQtYnl0ZSBibG9ja3MpCis0 MzogICAgIHN1YiAgICAgICAgICAgICB4OCwgeDEsICM2NiAgICAgICAgICAgICAgLy8gZW5kNjQg PSBlbmQgLSA2NgorICAgICAgICBjbXAgICAgICAgICAgICAgeDgsIHgzCisgICAgICAgIGJscyAg ICAgICAgICAgICA0YgorICAgICAgICBtb3YgICAgICAgICAgICAgdzYsICM2NTI3OSAgICAgICAg ICAgICAgIC8vIDB4RkVGRgorICAgICAgICBhZGQgICAgICAgICAgICAgeDUsIHgzLCAjNjQgICAg ICAgICAgICAgIC8vIGNodW5rX2VuZCA9IHAgKyA2NAorICAgICAgICBtb3ZrICAgICAgICAgICAg dzYsICMweGZlZmUsIGxzbCAjMTYgICAgIC8vIDB4RkVGRUZFRkYKKyAgICAgICAgYiAgICAgICAg ICAgICAgIDEwZgorCis5OiAgICAgIGFkZCAgICAgICAgICAgICB4MywgeDMsICM2NCAgICAgICAg ICAgICAgLy8gcCArPSA2NAorICAgICAgICBhZGQgICAgICAgICAgICAgeDUsIHg1LCAjNjQgICAg ICAgICAgICAgIC8vIGNodW5rX2VuZCArPSA2NAorICAgICAgICBjbXAgICAgICAgICAgICAgeDgs IHgzCisgICAgICAgIGJscyAgICAgICAgICAgICA0YgorCisxMDogICAgIC8vIExvYWQgNjQgYnl0 ZXMgKDR4MTYtYnl0ZSB2ZWN0b3JzKQorICAgICAgICBsZHAgICAgICAgICAgICAgcTMxLCBxMzAs IFt4M10gICAgICAgICAgIC8vIGxvYWQgZmlyc3QgMzIgYnl0ZXMKKyAgICAgICAgbGRwICAgICAg ICAgICAgIHEyOSwgcTI4LCBbeDMsICMzMl0gICAgICAvLyBsb2FkIG5leHQgMzIgYnl0ZXMKKyAg ICAgICAgcHJmbSAgICAgICAgICAgIFBMREwxS0VFUCwgW3gzLCAjMTkyXSAgICAvLyBwcmVmZXRj aAorCisgICAgICAgIC8vIENoZWNrIGZvciB6ZXJvIGJ5dGVzIChkYXRhID09IDApCisgICAgICAg IGNtZXEgICAgICAgICAgICB2MzEuMTZiLCB2MzEuMTZiLCAjMCAgICAgLy8gejAKKyAgICAgICAg Y21lcSAgICAgICAgICAgIHYzMC4xNmIsIHYzMC4xNmIsICMwICAgICAvLyB6MQorICAgICAgICBj bWVxICAgICAgICAgICAgdjI5LjE2YiwgdjI5LjE2YiwgIzAgICAgIC8vIHoyCisgICAgICAgIGNt ZXEgICAgICAgICAgICB2MjguMTZiLCB2MjguMTZiLCAjMCAgICAgLy8gejMKKworICAgICAgICAv LyBDaGVjayBmb3IgMDAgcGF0dGVybiAoY3VycmVudCBieXRlIGlzIDAgQU5EIG5leHQgYnl0ZSBp cyAwKQorICAgICAgICBleHQgICAgICAgICAgICAgdjI0LjE2YiwgdjMxLjE2YiwgdjMxLjE2Yiwg IzEgICAgLy8genMwCisgICAgICAgIGV4dCAgICAgICAgICAgICB2MjcuMTZiLCB2MzAuMTZiLCB2 MzAuMTZiLCAjMSAgICAvLyB6czEKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYyNi4xNmIsIHYy OS4xNmIsIHYyOS4xNmIsICMxICAgIC8vIHpzMgorICAgICAgICBleHQgICAgICAgICAgICAgdjI1 LjE2YiwgdjI4LjE2YiwgdjI4LjE2YiwgIzEgICAgLy8genMzCisKKyAgICAgICAgLy8gcGF0dGVy bjAwID0gemVybyAmIHplcm9fc2hpZnQKKyAgICAgICAgYW5kICAgICAgICAgICAgIHYyNC4xNmIs IHYyNC4xNmIsIHYzMS4xNmIgICAgICAgIC8vIHAwCisgICAgICAgIGFuZCAgICAgICAgICAgICB2 MjcuMTZiLCB2MjcuMTZiLCB2MzAuMTZiICAgICAgICAvLyBwMQorICAgICAgICBhbmQgICAgICAg ICAgICAgdjI2LjE2YiwgdjI2LjE2YiwgdjI5LjE2YiAgICAgICAgLy8gcDIKKyAgICAgICAgYW5k ICAgICAgICAgICAgIHYyNS4xNmIsIHYyNS4xNmIsIHYyOC4xNmIgICAgICAgIC8vIHAzCisKKyAg ICAgICAgLy8gQ2hlY2sgaWYgYW55IDAwIHBhdHRlcm4gZXhpc3RzIChmYXN0IE9SUiB0ZXN0KQor ICAgICAgICBvcnIgICAgICAgICAgICAgdjI3LjE2YiwgdjI0LjE2YiwgdjI3LjE2YgorICAgICAg ICBvcnIgICAgICAgICAgICAgdjI1LjE2YiwgdjI2LjE2YiwgdjI1LjE2YgorICAgICAgICBvcnIg ICAgICAgICAgICAgdjI1LjE2YiwgdjI1LjE2YiwgdjI3LjE2YgorICAgICAgICBkdXAgICAgICAg ICAgICAgZDMxLCB2MjUuZFsxXQorICAgICAgICBvcnIgICAgICAgICAgICAgdjMxLjhiLCB2MzEu OGIsIHYyNS44YgorICAgICAgICBmbW92ICAgICAgICAgICAgeDAsIGQzMQorICAgICAgICBjYnog ICAgICAgICAgICAgeDAsIDliICAgICAgICAgICAgICAgICAgIC8vIG5vIDAwIHBhdHRlcm4sIHNr aXAgdG8gbmV4dCBjaHVuaworCisgICAgICAgIC8vIERldGFpbGVkIGNoZWNrIG9mIHRoaXMgNjQt Ynl0ZSBjaHVuaworICAgICAgICBtb3YgICAgICAgICAgICAgeDAsIHgzCisxMTogICAgIGxkciAg ICAgICAgICAgICB3MiwgW3gwXQorICAgICAgICBhZGQgICAgICAgICAgICAgdzQsIHcyLCB3NiAg ICAgICAgICAgICAgIC8vIHggLSAweDAxMDEwMTAxCisgICAgICAgIGJpYyAgICAgICAgICAgICB3 MiwgdzQsIHcyICAgICAgICAgICAgICAgLy8gKH54KSAmICh4IC0gMHgwMTAxMDEwMSkKKyAgICAg ICAgdHN0ICAgICAgICAgICAgIHcyLCAjLTIxMzkwNjIxNDQgICAgICAgICAvLyAmIDB4ODA4MDgw ODAKKyAgICAgICAgYmVxICAgICAgICAgICAgIDEyZgorCisgICAgICAgIGxkcmIgICAgICAgICAg ICB3MiwgW3gwLCAjMV0KKyAgICAgICAgY2JueiAgICAgICAgICAgIHcyLCAxM2YKKyAgICAgICAg bGRyYiAgICAgICAgICAgIHc0LCBbeDBdCisgICAgICAgIGxkcmIgICAgICAgICAgICB3MiwgW3gw LCAjMl0KKyAgICAgICAgY2JueiAgICAgICAgICAgIHc0LCAxNGYKKyAgICAgICAgY21wICAgICAg ICAgICAgIHcyLCAjMQorICAgICAgICBiZXEgICAgICAgICAgICAgMThmICAgICAgICAgICAgICAg ICAgICAgIC8vIGZvdW5kIDAwIDAwIDAxCisxNDogICAgIGxkcmIgICAgICAgICAgICB3NCwgW3gw LCAjM10KKyAgICAgICAgY2JueiAgICAgICAgICAgIHcyLCAxNWYKKyAgICAgICAgY21wICAgICAg ICAgICAgIHc0LCAjMQorICAgICAgICBiZXEgICAgICAgICAgICAgNDRmICAgICAgICAgICAgICAg ICAgICAgIC8vIGZvdW5kIDAwIDAwIDAxIChvZmZzZXQgKzEpCisgICAgICAgIGNibnogICAgICAg ICAgICB3NCwgMTJmCisxNjogICAgIGxkcmIgICAgICAgICAgICB3MiwgW3gwLCAjNF0KKyAgICAg ICAgY21wICAgICAgICAgICAgIHcyLCAjMQorICAgICAgICBiZXEgICAgICAgICAgICAgNDVmICAg ICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kIDAwIDAwIDAxIChvZmZzZXQgKzIpCisxNzogICAg IGNibnogICAgICAgICAgICB3MiwgMTJmCisgICAgICAgIGxkcmIgICAgICAgICAgICB3MiwgW3gw LCAjNV0KKyAgICAgICAgY21wICAgICAgICAgICAgIHcyLCAjMQorICAgICAgICBiZXEgICAgICAg ICAgICAgNDZmICAgICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kIDAwIDAwIDAxIChvZmZzZXQg KzMpCisKKzEyOiAgICAgYWRkICAgICAgICAgICAgIHgwLCB4MCwgIzQKKyAgICAgICAgY21wICAg ICAgICAgICAgIHgwLCB4NQorICAgICAgICBibmUgICAgICAgICAgICAgMTFiCisgICAgICAgIGIg ICAgICAgICAgICAgICA5YgorCisxMzogICAgIGxkcmIgICAgICAgICAgICB3MiwgW3gwLCAjM10K KyAgICAgICAgY2JueiAgICAgICAgICAgIHcyLCAxMmIKKyAgICAgICAgbGRyYiAgICAgICAgICAg IHcyLCBbeDAsICMyXQorICAgICAgICBjYnogICAgICAgICAgICAgdzIsIDE2YgorICAgICAgICBs ZHJiICAgICAgICAgICAgdzIsIFt4MCwgIzRdCisgICAgICAgIGIgICAgICAgICAgICAgICAxN2IK KworMTU6ICAgICBjYm56ICAgICAgICAgICAgdzQsIDEyYgorICAgICAgICBsZHJiICAgICAgICAg ICAgdzIsIFt4MCwgIzRdCisgICAgICAgIGIgICAgICAgICAgICAgICAxN2IKKworMjI6ICAgICBt b3YgICAgICAgICAgICAgeDAsIHgzCisgICAgICAgIHJldAorCis0NTogICAgIGFkZCAgICAgICAg ICAgICB4MCwgeDAsICMyCisgICAgICAgIHJldAorCis0NDogICAgIGFkZCAgICAgICAgICAgICB4 MCwgeDAsICMxCisgICAgICAgIHJldAorCis0NjogICAgIGFkZCAgICAgICAgICAgICB4MCwgeDAs ICMzCisgICAgICAgIHJldAorCisxODogICAgIHJldAorZW5kZnVuYwpkaWZmIC0tZ2l0IGEvbGli YXZ1dGlsL25hbC5jIGIvbGliYXZ1dGlsL25hbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLmVjMmQ4ZGM0NmYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdnV0aWwvbmFs LmMKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBOQUwgdXRpbGl0eSBmdW5jdGlvbnMKKyAqCisg KiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2 ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYWxvbmcKKyAqIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4sCisgKiA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgor I2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiYXR0 cmlidXRlcy5oIgorI2luY2x1ZGUgImNwdS5oIgorI2luY2x1ZGUgInRocmVhZC5oIgorI2lmIEFS Q0hfQUFSQ0g2NAorI2luY2x1ZGUgImFhcmNoNjQvY3B1LmgiCisjZW5kaWYKKyNpbmNsdWRlICJu YWwuaCIKKworY29uc3QgdWludDhfdCAqZmZfbmFsX2ZpbmRfc3RhcnRjb2RlX2MoY29uc3QgdWlu dDhfdCAqcCwgY29uc3QgdWludDhfdCAqZW5kKQoreworICAgIGNvbnN0IHVpbnQ4X3QgKmEgPSBw ICsgNCAtICgoaW50cHRyX3QpcCAmIDMpOworCisgICAgZm9yIChlbmQgLT0gMzsgcCA8IGEgJiYg cCA8IGVuZDsgcCsrKSB7CisgICAgICAgIGlmIChwWzBdID09IDAgJiYgcFsxXSA9PSAwICYmIHBb Ml0gPT0gMSkKKyAgICAgICAgICAgIHJldHVybiBwOworICAgIH0KKworICAgIGZvciAoZW5kIC09 IDM7IHAgPCBlbmQ7IHAgKz0gNCkgeworICAgICAgICB1aW50MzJfdCB4ID0gKihjb25zdCB1aW50 MzJfdCopcDsKKy8vICAgICAgaWYgKCh4IC0gMHgwMTAwMDEwMCkgJiAofngpICYgMHg4MDAwODAw MCkgLy8gbGl0dGxlIGVuZGlhbgorLy8gICAgICBpZiAoKHggLSAweDAwMDEwMDAxKSAmICh+eCkg JiAweDAwODAwMDgwKSAvLyBiaWcgZW5kaWFuCisgICAgICAgIGlmICgoeCAtIDB4MDEwMTAxMDEp ICYgKH54KSAmIDB4ODA4MDgwODApIHsgLy8gZ2VuZXJpYworICAgICAgICAgICAgaWYgKHBbMV0g PT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChwWzBdID09IDAgJiYgcFsyXSA9PSAxKQorICAg ICAgICAgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgICAgICAgICBpZiAocFsyXSA9PSAw ICYmIHBbM10gPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHArMTsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIGlmIChwWzNdID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAo cFsyXSA9PSAwICYmIHBbNF0gPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHArMjsK KyAgICAgICAgICAgICAgICBpZiAocFs0XSA9PSAwICYmIHBbNV0gPT0gMSkKKyAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIHArMzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwor ICAgIGZvciAoZW5kICs9IDM7IHAgPCBlbmQ7IHArKykgeworICAgICAgICBpZiAocFswXSA9PSAw ICYmIHBbMV0gPT0gMCAmJiBwWzJdID09IDEpCisgICAgICAgICAgICByZXR1cm4gcDsKKyAgICB9 CisKKyAgICByZXR1cm4gZW5kICsgMzsKK30KKworLy8gRnVuY3Rpb24gcG9pbnRlciB0byB0aGUg YWN0aXZlIGltcGxlbWVudGF0aW9uCitzdGF0aWMgY29uc3QgdWludDhfdCAqKCpuYWxfZmluZF9z dGFydGNvZGVfZnVuYykoY29uc3QgdWludDhfdCAqcCwgY29uc3QgdWludDhfdCAqZW5kKTsKKwor Ly8gVGhyZWFkLXNhZmUgaW5pdGlhbGl6YXRpb24gdXNpbmcgZmZfdGhyZWFkX29uY2UKK3N0YXRp YyBBVk9uY2UgbmFsX2Z1bmNfaW5pdF9vbmNlID0gQVZfT05DRV9JTklUOworCitzdGF0aWMgdm9p ZCBuYWxfZmluZF9zdGFydGNvZGVfaW5pdCh2b2lkKQoreworI2lmIEFSQ0hfQUFSQ0g2NAorICAg IGludCBjcHVfZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7CisgICAgaWYgKGhhdmVfbmVvbihj cHVfZmxhZ3MpKQorICAgICAgICBuYWxfZmluZF9zdGFydGNvZGVfZnVuYyA9IGZmX25hbF9maW5k X3N0YXJ0Y29kZV9uZW9uOworICAgIGVsc2UKKyAgICAgICAgbmFsX2ZpbmRfc3RhcnRjb2RlX2Z1 bmMgPSBmZl9uYWxfZmluZF9zdGFydGNvZGVfYzsKKyNlbHNlCisgICAgbmFsX2ZpbmRfc3RhcnRj b2RlX2Z1bmMgPSBmZl9uYWxfZmluZF9zdGFydGNvZGVfYzsKKyNlbmRpZgorfQorCitjb25zdCB1 aW50OF90ICphdl9uYWxfZmluZF9zdGFydGNvZGUoY29uc3QgdWludDhfdCAqcCwgY29uc3QgdWlu dDhfdCAqZW5kKQoreworICAgIC8vIEluaXRpYWxpemUgZnVuY3Rpb24gcG9pbnRlciBvbiBmaXJz dCBjYWxsICh0aHJlYWQtc2FmZSkKKyAgICBmZl90aHJlYWRfb25jZSgmbmFsX2Z1bmNfaW5pdF9v bmNlLCBuYWxfZmluZF9zdGFydGNvZGVfaW5pdCk7CisKKyAgICAvLyBDYWxsIHRoZSBvcHRpbWl6 ZWQgaW1wbGVtZW50YXRpb24KKyAgICBwID0gbmFsX2ZpbmRfc3RhcnRjb2RlX2Z1bmMocCwgZW5k KTsKKworICAgIGlmIChwIDwgZW5kICYmICFwWy0xXSkKKyAgICAgICAgcC0tOworICAgIHJldHVy biBwOworfQpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL25hbC5oIGIvbGliYXZ1dGlsL25hbC5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmNjYzNmN2I3MGQKLS0tIC9kZXYv bnVsbAorKysgYi9saWJhdnV0aWwvbmFsLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g Mi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9u ZworICogd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLiwKKyAqIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv biwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaWZuZGVmIEFWVVRJTF9OQUxfSAorI2RlZmlu ZSBBVlVUSUxfTkFMX0gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisvKioKKyAqIEBmaWxlCisg KiBAaW5ncm91cCBsYXZ1X21pc2MKKyAqIE5BTCAoTmV0d29yayBBYnN0cmFjdGlvbiBMYXllcikg dXRpbGl0eSBmdW5jdGlvbnMKKyAqLworCisvKioKKyAqIEBhZGR0b2dyb3VwIGxhdnVfbWlzYwor ICogQHsKKyAqLworCisvKioKKyAqIEZpbmQgYSBILjI2NC9ILjI2NSBOQUwgc3RhcnRjb2RlICgw MCAwMCAwMSBvciAwMCAwMCAwMCAwMSkgaW4gYSBidWZmZXIuCisgKgorICogQHBhcmFtIHAgICAg UG9pbnRlciB0byBzdGFydCBzZWFyY2hpbmcgZnJvbQorICogQHBhcmFtIGVuZCAgUG9pbnRlciB0 byBlbmQgb2YgYnVmZmVyIChtdXN0IGhhdmUgYXQgbGVhc3QgMyBieXRlcyBwYWRkaW5nKQorICog QHJldHVybiAgICAgUG9pbnRlciB0byBzdGFydGNvZGUsIG9yIGVuZCszIGlmIG5vdCBmb3VuZAor ICoKKyAqIEBub3RlIFRoaXMgZnVuY3Rpb24gc2VhcmNoZXMgZm9yIHRoZSBwYXR0ZXJuIDAwIDAw IDAxICh0aHJlZS1ieXRlIHN0YXJ0Y29kZSkKKyAqICAgICAgIG9yIDAwIDAwIDAwIDAxIChmb3Vy LWJ5dGUgc3RhcnRjb2RlKS4gV2hlbiBmb3VuZCwgaXQgcmV0dXJucyBhIHBvaW50ZXIKKyAqICAg ICAgIHRvIHRoZSBzdGFydGNvZGUuIElmIHRoZSBieXRlIGJlZm9yZSB0aGUgc3RhcnRjb2RlIGlz IGFsc28gMCwgaXQgcmV0dXJucworICogICAgICAgdGhhdCBwb3NpdGlvbiBpbnN0ZWFkICh0byBo YW5kbGUgdGhlIGZvdXItYnl0ZSBjYXNlKS4KKyAqICAgICAgIElmIG5vIHN0YXJ0Y29kZSBpcyBm b3VuZCwgcmV0dXJucyBlbmQgKyAzLgorICovCitjb25zdCB1aW50OF90ICphdl9uYWxfZmluZF9z dGFydGNvZGUoY29uc3QgdWludDhfdCAqcCwgY29uc3QgdWludDhfdCAqZW5kKTsKKworLyogSW50 ZXJuYWwgaW1wbGVtZW50YXRpb25zIGV4cG9zZWQgZm9yIHRlc3RpbmcgKi8KK2NvbnN0IHVpbnQ4 X3QgKmZmX25hbF9maW5kX3N0YXJ0Y29kZV9jKGNvbnN0IHVpbnQ4X3QgKnAsIGNvbnN0IHVpbnQ4 X3QgKmVuZCk7CisjaWYgQVJDSF9BQVJDSDY0Citjb25zdCB1aW50OF90ICpmZl9uYWxfZmluZF9z dGFydGNvZGVfbmVvbihjb25zdCB1aW50OF90ICpwLCBjb25zdCB1aW50OF90ICplbmQpOworI2Vu ZGlmCisKKy8qKgorICogQH0KKyAqLworCisjZW5kaWYgLyogQVZVVElMX05BTF9IICovCmRpZmYg LS1naXQgYS90ZXN0cy9jaGVja2FzbS9NYWtlZmlsZSBiL3Rlc3RzL2NoZWNrYXNtL01ha2VmaWxl CmluZGV4IDQ4ZjM1OGQ0MGQuLjU0ZjAzNGNhYWUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNt L01ha2VmaWxlCisrKyBiL3Rlc3RzL2NoZWNrYXNtL01ha2VmaWxlCkBAIC05NSw2ICs5NSw3IEBA IEFWVVRJTE9CSlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArPSBjcmMubwogQVZVVElM T0JKUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICs9IGZpeGVkX2RzcC5vCiBBVlVUSUxP QkpTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKz0gZmxvYXRfZHNwLm8KIEFWVVRJTE9C SlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArPSBsbHMubworQVZVVElMT0JKUyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICs9IG5hbC5vCiAKIENIRUNLQVNNT0JKUy0kKENPTkZJ R19BVlVUSUwpICArPSAkKEFWVVRJTE9CSlMpCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNt L2NoZWNrYXNtLmMgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCmluZGV4IDdkY2RhZWIyYTQu LjgzNWFlODk5MDUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKKysrIGIv dGVzdHMvY2hlY2thc20vY2hlY2thc20uYwpAQCAtMzQ4LDYgKzM0OCw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgewogICAgICAgICB7ICJmaXhlZF9kc3AiLCBjaGVja2FzbV9jaGVja19maXhlZF9k c3AgfSwKICAgICAgICAgeyAiZmxvYXRfZHNwIiwgY2hlY2thc21fY2hlY2tfZmxvYXRfZHNwIH0s CiAgICAgICAgIHsgImxscyIsICAgICAgIGNoZWNrYXNtX2NoZWNrX2xscyB9LAorICAgICAgICB7 ICJuYWwiLCAgICAgICBjaGVja2FzbV9jaGVja19uYWwgfSwKICAgICAgICAgeyAiYXZfdHgiLCAg ICAgY2hlY2thc21fY2hlY2tfYXZfdHggfSwKICNlbmRpZgogICAgIHsgTlVMTCB9CmRpZmYgLS1n aXQgYS90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20u aAppbmRleCBlM2FkZGVjMjFlLi43MTEwMzY4NzNiIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2Fz bS9jaGVja2FzbS5oCisrKyBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmgKQEAgLTEyMCw2ICsx MjAsNyBAQCB2b2lkIGNoZWNrYXNtX2NoZWNrX2lkZXQodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2No ZWNrX2pwZWcyMDAwZHNwKHZvaWQpOwogdm9pZCBjaGVja2FzbV9jaGVja19sbGF1ZGRzcCh2b2lk KTsKIHZvaWQgY2hlY2thc21fY2hlY2tfbGxzKHZvaWQpOwordm9pZCBjaGVja2FzbV9jaGVja19u YWwodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX2xsdmlkZHNwKHZvaWQpOwogdm9pZCBjaGVj a2FzbV9jaGVja19sbHZpZGVuY2RzcCh2b2lkKTsKIHZvaWQgY2hlY2thc21fY2hlY2tfbHBjKHZv aWQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vbmFsLmMgYi90ZXN0cy9jaGVja2FzbS9u YWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45N2VmMjkwOWNiCi0t LSAvZGV2L251bGwKKysrIGIvdGVzdHMvY2hlY2thc20vbmFsLmMKQEAgLTAsMCArMSwxOTcgQEAK Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjQKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBG Rm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFsb25nCisgKiB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorICogNTEgRnJhbmtsaW4gU3RyZWV0LCBG aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpbmNsdWRlIDxz dHJpbmcuaD4KKworI2luY2x1ZGUgImxpYmF2dXRpbC9jb21tb24uaCIKKyNpbmNsdWRlICJsaWJh dmNvZGVjL2RlZnMuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiCisjaW5j bHVkZSAibGliYXZ1dGlsL21lbV9pbnRlcm5hbC5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9jcHUu aCIKKyNpZiBBUkNIX0FBUkNINjQKKyNpbmNsdWRlICJsaWJhdnV0aWwvYWFyY2g2NC9jcHUuaCIK KyNlbmRpZgorCisjaW5jbHVkZSAiY2hlY2thc20uaCIKKworI2luY2x1ZGUgImxpYmF2dXRpbC9u YWwuaCIKKworI2RlZmluZSBCVUZfU0laRSAoODE5MiArIEFWX0lOUFVUX0JVRkZFUl9QQURESU5H X1NJWkUpCisKK3ZvaWQgY2hlY2thc21fY2hlY2tfbmFsKHZvaWQpCit7CisgICAgTE9DQUxfQUxJ R05FRF84KHVpbnQ4X3QsIGJ1ZiwgW0JVRl9TSVpFXSk7CisgICAgY29uc3QgdWludDhfdCAqcmVm X3JlcywgKm5ld19yZXM7CisKKyNpZiBBUkNIX0FBUkNINjQKKyAgICBpbnQgY3B1X2ZsYWdzID0g YXZfZ2V0X2NwdV9mbGFncygpOworICAgIGludCBoYXZlX25lb25faW1wbCA9IGhhdmVfbmVvbihj cHVfZmxhZ3MpOworCisgICAgaWYgKGhhdmVfbmVvbl9pbXBsKSB7CisgICAgICAgIGRlY2xhcmVf ZnVuYyhjb25zdCB1aW50OF90ICosIGNvbnN0IHVpbnQ4X3QgKnAsIGNvbnN0IHVpbnQ4X3QgKmVu ZCk7CisKKyAgICAgICAgLy8gU2V0IEMgdmVyc2lvbiBhcyByZWZlcmVuY2UgaW1wbGVtZW50YXRp b24KKyAgICAgICAgZnVuY19yZWYgPSBmZl9uYWxfZmluZF9zdGFydGNvZGVfYzsKKworICAgICAg ICAvLyBUZXN0IDE6IFN0YXJ0Y29kZSBhdCBiZWdpbm5pbmcKKyAgICAgICAgbWVtc2V0KGJ1Ziwg MHhGRiwgQlVGX1NJWkUpOworICAgICAgICBBVl9XTjMyQShidWYsIDB4MDEwMDAwMDApOworICAg ICAgICBpZiAoY2hlY2tfZnVuYyhmZl9uYWxfZmluZF9zdGFydGNvZGVfbmVvbiwgInN0YXJ0Y29k ZV9hdF9iZWdpbm5pbmciKSkgeworICAgICAgICAgICAgcmVmX3JlcyA9IGNhbGxfcmVmKGJ1Ziwg YnVmICsgODE5Mik7CisgICAgICAgICAgICBuZXdfcmVzID0gY2FsbF9uZXcoYnVmLCBidWYgKyA4 MTkyKTsKKyAgICAgICAgICAgIGlmIChyZWZfcmVzICE9IG5ld19yZXMpCisgICAgICAgICAgICAg ICAgZmFpbCgpOworICAgICAgICAgICAgYmVuY2hfbmV3KGJ1ZiwgYnVmICsgODE5Mik7CisgICAg ICAgIH0KKworICAgICAgICAvLyBUZXN0IDI6IFN0YXJ0Y29kZSBhdCBvZmZzZXQgNCAodGhyZWUt Ynl0ZSkKKyAgICAgICAgbWVtc2V0KGJ1ZiwgMHhGRiwgQlVGX1NJWkUpOworICAgICAgICBBVl9X TjMyQShidWYgKyA0LCAweDAxMDAwMCk7CisgICAgICAgIGlmIChjaGVja19mdW5jKGZmX25hbF9m aW5kX3N0YXJ0Y29kZV9uZW9uLCAic3RhcnRjb2RlX2F0X29mZnNldF80IikpIHsKKyAgICAgICAg ICAgIHJlZl9yZXMgPSBjYWxsX3JlZihidWYsIGJ1ZiArIDgxOTIpOworICAgICAgICAgICAgbmV3 X3JlcyA9IGNhbGxfbmV3KGJ1ZiwgYnVmICsgODE5Mik7CisgICAgICAgICAgICBpZiAocmVmX3Jl cyAhPSBuZXdfcmVzKQorICAgICAgICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAgIGJlbmNo X25ldyhidWYsIGJ1ZiArIDgxOTIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCAzOiBN dWx0aXBsZSBzdGFydGNvZGVzLCBmaW5kIGZpcnN0IG9uZQorICAgICAgICBtZW1zZXQoYnVmLCAw LCBCVUZfU0laRSk7CisgICAgICAgIEFWX1dOMzJBKGJ1ZiArIDEwMCwgMHgwMTAwMDAwMCk7Cisg ICAgICAgIEFWX1dOMzJBKGJ1ZiArIDUwMCwgMHgwMTAwMDAwMCk7CisgICAgICAgIEFWX1dOMzJB KGJ1ZiArIDEwMDAsIDB4MDEwMDAwMDApOworICAgICAgICBpZiAoY2hlY2tfZnVuYyhmZl9uYWxf ZmluZF9zdGFydGNvZGVfbmVvbiwgIm11bHRpcGxlX3N0YXJ0Y29kZXMiKSkgeworICAgICAgICAg ICAgcmVmX3JlcyA9IGNhbGxfcmVmKGJ1ZiwgYnVmICsgODE5Mik7CisgICAgICAgICAgICBuZXdf cmVzID0gY2FsbF9uZXcoYnVmLCBidWYgKyA4MTkyKTsKKyAgICAgICAgICAgIGlmIChyZWZfcmVz ICE9IG5ld19yZXMpCisgICAgICAgICAgICAgICAgZmFpbCgpOworICAgICAgICAgICAgYmVuY2hf bmV3KGJ1ZiwgYnVmICsgODE5Mik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IDQ6IE5v IHN0YXJ0Y29kZSAoYWxsIDB4RkYpIC0gQ1JJVElDQUwgVEVTVAorICAgICAgICBtZW1zZXQoYnVm LCAweEZGLCAyNTYpOworICAgICAgICBtZW1zZXQoYnVmICsgMjU2LCAwLCBBVl9JTlBVVF9CVUZG RVJfUEFERElOR19TSVpFKTsKKyAgICAgICAgaWYgKGNoZWNrX2Z1bmMoZmZfbmFsX2ZpbmRfc3Rh cnRjb2RlX25lb24sICJub19zdGFydGNvZGVfMHhGRiIpKSB7CisgICAgICAgICAgICByZWZfcmVz ID0gY2FsbF9yZWYoYnVmLCBidWYgKyAyNTYpOworICAgICAgICAgICAgbmV3X3JlcyA9IGNhbGxf bmV3KGJ1ZiwgYnVmICsgMjU2KTsKKyAgICAgICAgICAgIGlmIChyZWZfcmVzICE9IG5ld19yZXMp CisgICAgICAgICAgICAgICAgZmFpbCgpOworICAgICAgICAgICAgYmVuY2hfbmV3KGJ1ZiwgYnVm ICsgMjU2KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgNTogTm8gc3RhcnRjb2RlIChh bGwgemVyb3MpCisgICAgICAgIG1lbXNldChidWYsIDAsIDI1Nik7CisgICAgICAgIG1lbXNldChi dWYgKyAyNTYsIDAsIEFWX0lOUFVUX0JVRkZFUl9QQURESU5HX1NJWkUpOworICAgICAgICBpZiAo Y2hlY2tfZnVuYyhmZl9uYWxfZmluZF9zdGFydGNvZGVfbmVvbiwgIm5vX3N0YXJ0Y29kZV96ZXJv cyIpKSB7CisgICAgICAgICAgICByZWZfcmVzID0gY2FsbF9yZWYoYnVmLCBidWYgKyAyNTYpOwor ICAgICAgICAgICAgbmV3X3JlcyA9IGNhbGxfbmV3KGJ1ZiwgYnVmICsgMjU2KTsKKyAgICAgICAg ICAgIGlmIChyZWZfcmVzICE9IG5ld19yZXMpCisgICAgICAgICAgICAgICAgZmFpbCgpOworICAg ICAgICAgICAgYmVuY2hfbmV3KGJ1ZiwgYnVmICsgMjU2KTsKKyAgICAgICAgfQorCisgICAgICAg IC8vIFRlc3QgNjogU3RhcnRjb2RlIG5lYXIgZW5kCisgICAgICAgIG1lbXNldChidWYsIDB4RkYs IEJVRl9TSVpFKTsKKyAgICAgICAgQVZfV04zMkEoYnVmICsgODE4OCwgMHgwMTAwMDAwMCk7Cisg ICAgICAgIGlmIChjaGVja19mdW5jKGZmX25hbF9maW5kX3N0YXJ0Y29kZV9uZW9uLCAic3RhcnRj b2RlX25lYXJfZW5kIikpIHsKKyAgICAgICAgICAgIHJlZl9yZXMgPSBjYWxsX3JlZihidWYsIGJ1 ZiArIDgxOTIpOworICAgICAgICAgICAgbmV3X3JlcyA9IGNhbGxfbmV3KGJ1ZiwgYnVmICsgODE5 Mik7CisgICAgICAgICAgICBpZiAocmVmX3JlcyAhPSBuZXdfcmVzKQorICAgICAgICAgICAgICAg IGZhaWwoKTsKKyAgICAgICAgICAgIGJlbmNoX25ldyhidWYsIGJ1ZiArIDgxOTIpOworICAgICAg ICB9CisKKyAgICAgICAgLy8gVGVzdCA3OiBTZWFyY2ggZnJvbSBtaWRkbGUKKyAgICAgICAgbWVt c2V0KGJ1ZiwgMCwgQlVGX1NJWkUpOworICAgICAgICBBVl9XTjMyQShidWYgKyAxMDAsIDB4MDEw MDAwMDApOworICAgICAgICBBVl9XTjMyQShidWYgKyA1MDAsIDB4MDEwMDAwMDApOworICAgICAg ICBpZiAoY2hlY2tfZnVuYyhmZl9uYWxfZmluZF9zdGFydGNvZGVfbmVvbiwgInNlYXJjaF9mcm9t X21pZGRsZSIpKSB7CisgICAgICAgICAgICByZWZfcmVzID0gY2FsbF9yZWYoYnVmICsgMjAwLCBi dWYgKyA4MTkyKTsKKyAgICAgICAgICAgIG5ld19yZXMgPSBjYWxsX25ldyhidWYgKyAyMDAsIGJ1 ZiArIDgxOTIpOworICAgICAgICAgICAgaWYgKHJlZl9yZXMgIT0gbmV3X3JlcykKKyAgICAgICAg ICAgICAgICBmYWlsKCk7CisgICAgICAgICAgICBiZW5jaF9uZXcoYnVmICsgMjAwLCBidWYgKyA4 MTkyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgODogU21hbGwgYnVmZmVyICgxNiBi eXRlcykKKyAgICAgICAgbWVtc2V0KGJ1ZiwgMHhGRiwgMTYpOworICAgICAgICBtZW1zZXQoYnVm ICsgMTYsIDAsIEFWX0lOUFVUX0JVRkZFUl9QQURESU5HX1NJWkUpOworICAgICAgICBpZiAoY2hl Y2tfZnVuYyhmZl9uYWxfZmluZF9zdGFydGNvZGVfbmVvbiwgInNtYWxsX2J1ZmZlcl8xNiIpKSB7 CisgICAgICAgICAgICByZWZfcmVzID0gY2FsbF9yZWYoYnVmLCBidWYgKyAxNik7CisgICAgICAg ICAgICBuZXdfcmVzID0gY2FsbF9uZXcoYnVmLCBidWYgKyAxNik7CisgICAgICAgICAgICBpZiAo cmVmX3JlcyAhPSBuZXdfcmVzKQorICAgICAgICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAg IGJlbmNoX25ldyhidWYsIGJ1ZiArIDE2KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3Qg OTogVmVyeSBzbWFsbCBidWZmZXIgKDQgYnl0ZXMpCisgICAgICAgIG1lbXNldChidWYsIDB4RkYs IDQpOworICAgICAgICBtZW1zZXQoYnVmICsgNCwgMCwgQVZfSU5QVVRfQlVGRkVSX1BBRERJTkdf U0laRSk7CisgICAgICAgIGlmIChjaGVja19mdW5jKGZmX25hbF9maW5kX3N0YXJ0Y29kZV9uZW9u LCAidGlueV9idWZmZXJfNCIpKSB7CisgICAgICAgICAgICByZWZfcmVzID0gY2FsbF9yZWYoYnVm LCBidWYgKyA0KTsKKyAgICAgICAgICAgIG5ld19yZXMgPSBjYWxsX25ldyhidWYsIGJ1ZiArIDQp OworICAgICAgICAgICAgaWYgKHJlZl9yZXMgIT0gbmV3X3JlcykKKyAgICAgICAgICAgICAgICBm YWlsKCk7CisgICAgICAgICAgICBiZW5jaF9uZXcoYnVmLCBidWYgKyA0KTsKKyAgICAgICAgfQor CisgICAgICAgIC8vIFRlc3QgMTA6IFRocmVlLWJ5dGUgc3RhcnRjb2RlIHBhdHRlcm4KKyAgICAg ICAgbWVtc2V0KGJ1ZiwgMHhGRiwgQlVGX1NJWkUpOworICAgICAgICBidWZbNTBdID0gMHgwMDsK KyAgICAgICAgYnVmWzUxXSA9IDB4MDA7CisgICAgICAgIGJ1Zls1Ml0gPSAweDAxOworICAgICAg ICBpZiAoY2hlY2tfZnVuYyhmZl9uYWxfZmluZF9zdGFydGNvZGVfbmVvbiwgInRocmVlX2J5dGVf c3RhcnRjb2RlIikpIHsKKyAgICAgICAgICAgIHJlZl9yZXMgPSBjYWxsX3JlZihidWYsIGJ1ZiAr IDgxOTIpOworICAgICAgICAgICAgbmV3X3JlcyA9IGNhbGxfbmV3KGJ1ZiwgYnVmICsgODE5Mik7 CisgICAgICAgICAgICBpZiAocmVmX3JlcyAhPSBuZXdfcmVzKQorICAgICAgICAgICAgICAgIGZh aWwoKTsKKyAgICAgICAgICAgIGJlbmNoX25ldyhidWYsIGJ1ZiArIDgxOTIpOworICAgICAgICB9 CisKKyAgICAgICAgLy8gVGVzdCAxMTogUmFuZG9tIGRhdGEgd2l0aCBzdGFydGNvZGUKKyAgICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCA4MTkyOyBpKyspIHsKKyAgICAgICAgICAgIGJ1ZltpXSA9 IHJuZCgpICYgMHhGRjsKKyAgICAgICAgfQorICAgICAgICBtZW1zZXQoYnVmICsgODE5MiwgMCwg QVZfSU5QVVRfQlVGRkVSX1BBRERJTkdfU0laRSk7CisgICAgICAgIGludCBwb3MgPSAocm5kKCkg JiAweDFGRkYpICsgMTAwOworICAgICAgICBBVl9XTjMyQShidWYgKyBwb3MsIDB4MDEwMDAwMDAp OworICAgICAgICBpZiAoY2hlY2tfZnVuYyhmZl9uYWxfZmluZF9zdGFydGNvZGVfbmVvbiwgInJh bmRvbV93aXRoX3N0YXJ0Y29kZSIpKSB7CisgICAgICAgICAgICByZWZfcmVzID0gY2FsbF9yZWYo YnVmLCBidWYgKyA4MTkyKTsKKyAgICAgICAgICAgIG5ld19yZXMgPSBjYWxsX25ldyhidWYsIGJ1 ZiArIDgxOTIpOworICAgICAgICAgICAgaWYgKHJlZl9yZXMgIT0gbmV3X3JlcykKKyAgICAgICAg ICAgICAgICBmYWlsKCk7CisgICAgICAgICAgICBiZW5jaF9uZXcoYnVmLCBidWYgKyA4MTkyKTsK KyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgMTI6IExhcmdlIGJ1ZmZlciB3aXRoIG5vIHN0 YXJ0Y29kZQorICAgICAgICBtZW1zZXQoYnVmLCAweEFBLCA4MTkyKTsKKyAgICAgICAgbWVtc2V0 KGJ1ZiArIDgxOTIsIDAsIEFWX0lOUFVUX0JVRkZFUl9QQURESU5HX1NJWkUpOworICAgICAgICBp ZiAoY2hlY2tfZnVuYyhmZl9uYWxfZmluZF9zdGFydGNvZGVfbmVvbiwgImxhcmdlX25vX3N0YXJ0 Y29kZSIpKSB7CisgICAgICAgICAgICByZWZfcmVzID0gY2FsbF9yZWYoYnVmLCBidWYgKyA4MTky KTsKKyAgICAgICAgICAgIG5ld19yZXMgPSBjYWxsX25ldyhidWYsIGJ1ZiArIDgxOTIpOworICAg ICAgICAgICAgaWYgKHJlZl9yZXMgIT0gbmV3X3JlcykKKyAgICAgICAgICAgICAgICBmYWlsKCk7 CisgICAgICAgICAgICBiZW5jaF9uZXcoYnVmLCBidWYgKyA4MTkyKTsKKyAgICAgICAgfQorICAg IH0KKyNlbmRpZgorCisgICAgcmVwb3J0KCJuYWwiKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2Zh dGUvY2hlY2thc20ubWFrIGIvdGVzdHMvZmF0ZS9jaGVja2FzbS5tYWsKaW5kZXggYjA4YzE5NDdj ZC4uYWFjN2U2MmZmZCAxMDA2NDQKLS0tIGEvdGVzdHMvZmF0ZS9jaGVja2FzbS5tYWsKKysrIGIv dGVzdHMvZmF0ZS9jaGVja2FzbS5tYWsKQEAgLTM2LDYgKzM2LDcgQEAgRkFURV9DSEVDS0FTTSA9 IGZhdGUtY2hlY2thc20tYWFjZW5jZHNwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICAgICAgICAgIGZhdGUtY2hlY2thc20tanBlZzIwMDBkc3AgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIGZhdGUtY2hlY2thc20tbGxhdWRk c3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIGZh dGUtY2hlY2thc20tbGxzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICAgICAgICAgIGZhdGUtY2hlY2thc20tbmFsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIGZhdGUtY2hlY2thc20tbGx2aWRkc3Ag ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIGZhdGUt Y2hlY2thc20tbGx2aWRlbmNkc3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg ICAgICAgICAgICAgIGZhdGUtY2hlY2thc20tbHBjICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAotLSAKMi41Mi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0IC0tIGZmbXBlZy1kZXZl bEBmZm1wZWcub3JnClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gZmZtcGVnLWRldmVs LWxlYXZlQGZmbXBlZy5vcmcK