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 A98594BA26 for ; Wed, 10 Jul 2024 08:47:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 73F9768DA73; Wed, 10 Jul 2024 11:47:42 +0300 (EEST) Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CE59668D8D7 for ; Wed, 10 Jul 2024 11:47:35 +0300 (EEST) Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-58e76294858so1011567a12.0 for ; Wed, 10 Jul 2024 01:47:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720601255; x=1721206055; darn=ffmpeg.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=r3S2/HK/eHkf5ueZKfQ0u73X30OluvVNi1FmQBSc5oE=; b=C2c7BEXABPdIVBcNua5X03GX0vWmphaderat5ax2gRhLDWLsg8GTGuT86Omhnle7Ld MgoZcJd/PGSkuuER8yiSwVlm3vzC+U7yBCuhghO9Q9QJpWLNRHvAbIQyV7NLI49ALQ+j 7xFT0/0ODakg0olsonGPbtpoOEWRfdjJV6O3h8KCa2cWntj920nqph0bIXcOJwAUV67o UWbAAd7jkh3z6svzlGHgOOKWmfTyN5ZmJ+6NM4pBYdIsSoPwOE4OxAPkeyhKL/R4zXq6 3m4sN1ljVhy0NgG06lPeQI3YUqNCrTGtC2TZGC/KLOVC/Wwy8GWRYamSJiDnNP09/S3J 3Bqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720601255; x=1721206055; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=r3S2/HK/eHkf5ueZKfQ0u73X30OluvVNi1FmQBSc5oE=; b=ew5segqE+7srgVJmxmazc2HscEgYGKkj6TPCR+o7eL6o/qKVEIBWWkplNsbYF4W811 a3LHZMV9bQtSNLlAE5wXRbqo86PwzJYqL0Y6Raq9F4mKVJ0r7lGRcZ5TuRtWuZm4gxJz yv2RsSqSnA5ftO8QuYU0rK/RLwu2l81fNAoy/X+hxkTsKL3boQxsD0826YXEAvhQ9XGR iNMMAnn6P6Pt9EgxyN0UKruhrm1WSaqYm+C09VR6F5atis2otiNAe6dsS5mEBZ258jID 92c2VduzMUkNjvrLLk9TerbwxyQ7dmxMPBGv7CZfGZlZtr9eanfqKH3uwq/2Sx7STfsK l37g== X-Gm-Message-State: AOJu0YwQrwrkimGxXljcnKM83+UHoVo35JJmEV98GcTcAH97mdRnL5Uz h7FVBMscSQrd+JcE3ZdzeRZZocdriDp4VuEFp3NMuVQeV85tFveYHTba/SssCEF85beQf58lHb4 HVlH8MhGA0CJKvbi4wwtM794OpmYPO7dt X-Google-Smtp-Source: AGHT+IGF2VhgK+W+TmDs4dXHlblefea+R4ayj1QNCX0fgYKyYw1Nh6RKgmid5fxv/JPVERriJbkkVl56J5GH2gHxOG0= X-Received: by 2002:a17:907:d91:b0:a77:cb47:7dd3 with SMTP id a640c23a62f3a-a780d3edb85mr401389966b.31.1720601254710; Wed, 10 Jul 2024 01:47:34 -0700 (PDT) MIME-Version: 1.0 References: <20240612134729.150227-1-matthieu.bouron@gmail.com> <20240612134729.150227-3-matthieu.bouron@gmail.com> In-Reply-To: <20240612134729.150227-3-matthieu.bouron@gmail.com> From: Matthieu Bouron Date: Wed, 10 Jul 2024 10:47:21 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 2/2] avcodec: add Mediacodec audio decoders support 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: TGUgbWVyLiAxMiBqdWluIDIwMjQsIDM6NDfigK9QTSwgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGll dS5ib3Vyb25AZ21haWwuY29tPgphIMOpY3JpdCA6Cgo+IC0tLQo+ICBjb25maWd1cmUgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMTQgKysKPiAgbGliYXZjb2RlYy9NYWtlZmlsZSAgICAgICAg ICAgICAgIHwgICA3ICsKPiAgbGliYXZjb2RlYy9hbGxjb2RlY3MuYyAgICAgICAgICAgIHwgICA3 ICsKPiAgbGliYXZjb2RlYy9tZWRpYWNvZGVjZGVjLmMgICAgICAgIHwgMjE1ICsrKysrKysrKysr KysrKysrKy0KPiAgbGliYXZjb2RlYy9tZWRpYWNvZGVjZGVjX2NvbW1vbi5jIHwgMzMzICsrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDU0NSBpbnNlcnRp b25zKCspLCAzMSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25m aWd1cmUKPiBpbmRleCA4MzI4NDQyN2RmLi5kN2RlM2I3M2VkIDEwMDc1NQo+IC0tLSBhL2NvbmZp Z3VyZQo+ICsrKyBiL2NvbmZpZ3VyZQo+IEBAIC0zMzIxLDE0ICszMzIxLDIyIEBAIGFtZl9kZXBz X2FueT0ibGliZGwgTG9hZExpYnJhcnkiCj4gIG52ZW5jX2RlcHM9ImZmbnZjb2RlYyIKPiAgbnZl bmNfZGVwc19hbnk9ImxpYmRsIExvYWRMaWJyYXJ5Igo+Cj4gK2FhY19tZWRpYWNvZGVjX2RlY29k ZXJfZGVwcz0ibWVkaWFjb2RlYyIKPiArYWFjX21lZGlhY29kZWNfZGVjb2Rlcl9zZWxlY3Q9ImFh Y19hZHRzdG9hc2NfYnNmIGFhY19wYXJzZXIiCj4gIGFhY19tZl9lbmNvZGVyX2RlcHM9Im1lZGlh Zm91bmRhdGlvbiIKPiAgYWMzX21mX2VuY29kZXJfZGVwcz0ibWVkaWFmb3VuZGF0aW9uIgo+ICth bXJuYl9tZWRpYWNvZGVjX2RlY29kZXJfZGVwcz0ibWVkaWFjb2RlYyIKPiArYW1ybmJfbWVkaWFj b2RlY19kZWNvZGVyX3NlbGVjdD0iYW1yX3BhcnNlciIKPiArYW1yd2JfbWVkaWFjb2RlY19kZWNv ZGVyX2RlcHM9Im1lZGlhY29kZWMiCj4gK2FtcndiX21lZGlhY29kZWNfZGVjb2Rlcl9zZWxlY3Q9 ImFtcl9wYXJzZXIiCj4gIGF2MV9jdXZpZF9kZWNvZGVyX2RlcHM9ImN1dmlkIENVVklEQVYxUElD UEFSQU1TIgo+ICBhdjFfbWVkaWFjb2RlY19kZWNvZGVyX2RlcHM9Im1lZGlhY29kZWMiCj4gIGF2 MV9tZWRpYWNvZGVjX2VuY29kZXJfZGVwcz0ibWVkaWFjb2RlYyIKPiAgYXYxX21lZGlhY29kZWNf ZW5jb2Rlcl9zZWxlY3Q9ImV4dHJhY3RfZXh0cmFkYXRhX2JzZiIKPiAgYXYxX252ZW5jX2VuY29k ZXJfZGVwcz0ibnZlbmMgTlZfRU5DX1BJQ19QQVJBTVNfQVYxIgo+ICBhdjFfbnZlbmNfZW5jb2Rl cl9zZWxlY3Q9ImF0c2NfYTUzIgo+ICtmbGFjX21lZGlhY29kZWNfZGVjb2Rlcl9kZXBzPSJtZWRp YWNvZGVjIgo+ICtmbGFjX21lZGlhY29kZWNfZGVjb2Rlcl9zZWxlY3Q9ImZsYWNfcGFyc2VyIgo+ ICBoMjYzX3Y0bDJtMm1fZGVjb2Rlcl9kZXBzPSJ2NGwyX20ybSBoMjYzX3Y0bDJfbTJtIgo+ICBo MjYzX3Y0bDJtMm1fZW5jb2Rlcl9kZXBzPSJ2NGwyX20ybSBoMjYzX3Y0bDJfbTJtIgo+ICBoMjY0 X2FtZl9lbmNvZGVyX2RlcHM9ImFtZiIKPiBAQCAtMzM3Nyw2ICszMzg1LDggQEAgbWpwZWdfcXN2 X2VuY29kZXJfc2VsZWN0PSJxc3ZlbmMiCj4gIG1qcGVnX3ZhYXBpX2VuY29kZXJfZGVwcz0iVkFF bmNQaWN0dXJlUGFyYW1ldGVyQnVmZmVySlBFRyIKPiAgbWpwZWdfdmFhcGlfZW5jb2Rlcl9zZWxl Y3Q9ImNic19qcGVnIGpwZWd0YWJsZXMgdmFhcGlfZW5jb2RlIgo+ICBtcDNfbWZfZW5jb2Rlcl9k ZXBzPSJtZWRpYWZvdW5kYXRpb24iCj4gK21wM19tZWRpYWNvZGVjX2RlY29kZXJfZGVwcz0ibWVk aWFjb2RlYyIKPiArbXAzX21lZGlhY29kZWNfZGVjb2Rlcl9zZWxlY3Q9Im1wZWdhdWRpb2hlYWRl ciIKPiAgbXBlZzFfY3V2aWRfZGVjb2Rlcl9kZXBzPSJjdXZpZCIKPiAgbXBlZzFfdjRsMm0ybV9k ZWNvZGVyX2RlcHM9InY0bDJfbTJtIG1wZWcxX3Y0bDJfbTJtIgo+ICBtcGVnMl9jdXZpZF9kZWNv ZGVyX2RlcHM9ImN1dmlkIgo+IEBAIC0zMzk0LDEwICszNDA0LDE0IEBAIG1wZWc0X21tYWxfZGVj b2Rlcl9kZXBzPSJtbWFsIgo+ICBtcGVnNF9vbXhfZW5jb2Rlcl9kZXBzPSJvbXgiCj4gIG1wZWc0 X3Y0bDJtMm1fZGVjb2Rlcl9kZXBzPSJ2NGwyX20ybSBtcGVnNF92NGwyX20ybSIKPiAgbXBlZzRf djRsMm0ybV9lbmNvZGVyX2RlcHM9InY0bDJfbTJtIG1wZWc0X3Y0bDJfbTJtIgo+ICtvcHVzX21l ZGlhY29kZWNfZGVjb2Rlcl9kZXBzPSJtZWRpYWNvZGVjIgo+ICtvcHVzX21lZGlhY29kZWNfZGVj b2Rlcl9zZWxlY3Q9Im9wdXNfcGFyc2VyIgo+ICB2YzFfY3V2aWRfZGVjb2Rlcl9kZXBzPSJjdXZp ZCIKPiAgdmMxX21tYWxfZGVjb2Rlcl9kZXBzPSJtbWFsIgo+ICB2YzFfcXN2X2RlY29kZXJfc2Vs ZWN0PSJxc3ZkZWMiCj4gIHZjMV92NGwybTJtX2RlY29kZXJfZGVwcz0idjRsMl9tMm0gdmMxX3Y0 bDJfbTJtIgo+ICt2b3JiaXNfbWVkaWFjb2RlY19kZWNvZGVyX2RlcHM9Im1lZGlhY29kZWMiCj4g K3ZvcmJpc19tZWRpYWNvZGVjX2RlY29kZXJfc2VsZWN0PSJ2b3JiaXNfcGFyc2VyIgo+ICB2cDhf Y3V2aWRfZGVjb2Rlcl9kZXBzPSJjdXZpZCIKPiAgdnA4X21lZGlhY29kZWNfZGVjb2Rlcl9kZXBz PSJtZWRpYWNvZGVjIgo+ICB2cDhfbWVkaWFjb2RlY19lbmNvZGVyX2RlcHM9Im1lZGlhY29kZWMi Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvTWFrZWZpbGUgYi9saWJhdmNvZGVjL01ha2VmaWxl Cj4gaW5kZXggMWE0NDM1MjkwNi4uNjQ3NzFiOTk0NCAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVj L01ha2VmaWxlCj4gKysrIGIvbGliYXZjb2RlYy9NYWtlZmlsZQo+IEBAIC0xOTYsNiArMTk2LDcg QEAgT0JKUy0kKENPTkZJR19BQUNfRU5DT0RFUikgICAgICAgICAgICAgKz0gYWFjZW5jLm8KPiBh YWNjb2Rlci5vIGFhY2VuY3RhYi5vICAgIFwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYWFjZW5jX3ByZWQubyBcCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBzeW1vZGVsLm8ga2Jkd2luLm8gXAo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcGVnNGF1ZGlvX3NhbXBsZV9yYXRlcy5vCj4g K09CSlMtJChDT05GSUdfQUFDX01FRElBQ09ERUNfREVDT0RFUikgICs9IG1lZGlhY29kZWNkZWMu bwo+ICBPQkpTLSQoQ09ORklHX0FBQ19NRl9FTkNPREVSKSAgICAgICAgICArPSBtZmVuYy5vIG1m X3V0aWxzLm8KPiAgT0JKUy0kKENPTkZJR19BQVNDX0RFQ09ERVIpICAgICAgICAgICAgKz0gYWFz Yy5vIG1zcmxlZGVjLm8KPiAgT0JKUy0kKENPTkZJR19BQzNfREVDT0RFUikgICAgICAgICAgICAg Kz0gYWMzZGVjX2Zsb2F0Lm8gYWMzZGVjX2RhdGEubwo+IGFjMy5vIFwKPiBAQCAtMjIyLDYgKzIy Myw4IEBAIE9CSlMtJChDT05GSUdfQU1SV0JfREVDT0RFUikgICAgICAgICAgICs9IGFtcndiZGVj Lm8KPiBjZWxwX2ZpbHRlcnMubyAgIFwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2VscF9tYXRoLm8gYWNlbHBfZmlsdGVycy5vIFwKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNlbHBfdmVjdG9ycy5vICAgICAgICAgICAg IFwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNlbHBfcGl0 Y2hfZGVsYXkubwo+ICtPQkpTLSQoQ09ORklHX0FNUk5CX01FRElBQ09ERUNfREVDT0RFUikgKz0g bWVkaWFjb2RlY2RlYy5vCj4gK09CSlMtJChDT05GSUdfQU1SV0JfTUVESUFDT0RFQ19ERUNPREVS KSArPSBtZWRpYWNvZGVjZGVjLm8KPiAgT0JKUy0kKENPTkZJR19BTVZfRU5DT0RFUikgICAgICAg ICAgICAgKz0gbWpwZWdlbmMubyBtanBlZ2VuY19jb21tb24ubwo+ICBPQkpTLSQoQ09ORklHX0FO TV9ERUNPREVSKSAgICAgICAgICAgICArPSBhbm0ubwo+ICBPQkpTLSQoQ09ORklHX0FOVUxMX0RF Q09ERVIpICAgICAgICAgICArPSBudWxsLm8KPiBAQCAtMzY3LDYgKzM3MCw3IEBAIE9CSlMtJChD T05GSUdfRklDX0RFQ09ERVIpICAgICAgICAgICAgICs9IGZpYy5vCj4gIE9CSlMtJChDT05GSUdf RklUU19ERUNPREVSKSAgICAgICAgICAgICs9IGZpdHNkZWMubyBmaXRzLm8KPiAgT0JKUy0kKENP TkZJR19GSVRTX0VOQ09ERVIpICAgICAgICAgICAgKz0gZml0c2VuYy5vCj4gIE9CSlMtJChDT05G SUdfRkxBQ19ERUNPREVSKSAgICAgICAgICAgICs9IGZsYWNkZWMubyBmbGFjZGF0YS5vIGZsYWNk c3Aubwo+IGZsYWMubwo+ICtPQkpTLSQoQ09ORklHX0ZMQUNfTUVESUFDT0RFQ19ERUNPREVSKSAr PSBtZWRpYWNvZGVjZGVjLm8KPiAgT0JKUy0kKENPTkZJR19GTEFDX0VOQ09ERVIpICAgICAgICAg ICAgKz0gZmxhY2VuYy5vIGZsYWNkYXRhLm8KPiBmbGFjZW5jZHNwLm8KPiAgT0JKUy0kKENPTkZJ R19GTEFTSFNWX0RFQ09ERVIpICAgICAgICAgKz0gZmxhc2hzdi5vCj4gIE9CSlMtJChDT05GSUdf RkxBU0hTVl9FTkNPREVSKSAgICAgICAgICs9IGZsYXNoc3ZlbmMubwo+IEBAIC01MTgsNiArNTIy LDcgQEAgT0JKUy0kKENPTkZJR19NUDJGSVhFRF9FTkNPREVSKSAgICAgICAgKz0KPiBtcGVnYXVk aW9lbmNfZml4ZWQubyBtcGVnYXVkaW8ubyBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1wZWdhdWRpb3RhYnMubwo+ICBPQkpTLSQoQ09ORklHX01QMkZMT0FU X0RFQ09ERVIpICAgICAgICArPSBtcGVnYXVkaW9kZWNfZmxvYXQubwo+ICBPQkpTLSQoQ09ORklH X01QM19ERUNPREVSKSAgICAgICAgICAgICArPSBtcGVnYXVkaW9kZWNfZml4ZWQubwo+ICtPQkpT LSQoQ09ORklHX01QM19NRURJQUNPREVDX0RFQ09ERVIpICArPSBtZWRpYWNvZGVjZGVjLm8KPiAg T0JKUy0kKENPTkZJR19NUDNfTUZfRU5DT0RFUikgICAgICAgICAgKz0gbWZlbmMubyBtZl91dGls cy5vCj4gIE9CSlMtJChDT05GSUdfTVAzQURVX0RFQ09ERVIpICAgICAgICAgICs9IG1wZWdhdWRp b2RlY19maXhlZC5vCj4gIE9CSlMtJChDT05GSUdfTVAzQURVRkxPQVRfREVDT0RFUikgICAgICs9 IG1wZWdhdWRpb2RlY19mbG9hdC5vCj4gQEAgLTU3OCw2ICs1ODMsNyBAQCBPQkpTLSQoQ09ORklH X09QVVNfREVDT0RFUikgICAgICAgICAgICArPSBvcHVzZGVjLm8KPiBvcHVzZGVjX2NlbHQubyBv cHVzX2NlbHQubyBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9wdXNkc3AubyBvcHVzX3BhcnNlLm8gb3B1c19yYy5vCj4gIE9CSlMtJChDT05GSUdfT1BVU19F TkNPREVSKSAgICAgICAgICAgICs9IG9wdXNlbmMubyBvcHVzZW5jX3BzeS5vCj4gb3B1c19jZWx0 Lm8gXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHVzX3B2 cS5vIG9wdXNfcmMubyBvcHVzdGFiLm8KPiArT0JKUy0kKENPTkZJR19PUFVTX01FRElBQ09ERUNf REVDT0RFUikgKz0gbWVkaWFjb2RlY2RlYy5vCj4gIE9CSlMtJChDT05GSUdfT1NRX0RFQ09ERVIp ICAgICAgICAgICAgICs9IG9zcS5vCj4gIE9CSlMtJChDT05GSUdfUEFGX0FVRElPX0RFQ09ERVIp ICAgICAgICs9IHBhZmF1ZGlvLm8KPiAgT0JKUy0kKENPTkZJR19QQUZfVklERU9fREVDT0RFUikg ICAgICAgKz0gcGFmdmlkZW8ubwo+IEBAIC03NjUsNiArNzcxLDcgQEAgT0JKUy0kKENPTkZJR19W T1JCSVNfREVDT0RFUikgICAgICAgICAgKz0gdm9yYmlzZGVjLm8KPiB2b3JiaXNkc3AubyB2b3Ji aXMubyBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvcmJp c19kYXRhLm8KPiAgT0JKUy0kKENPTkZJR19WT1JCSVNfRU5DT0RFUikgICAgICAgICAgKz0gdm9y YmlzZW5jLm8gdm9yYmlzLm8gXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2b3JiaXNfZGF0YS5vCj4gK09CSlMtJChDT05GSUdfVk9SQklTX01FRElBQ09ERUNf REVDT0RFUikgKz0gbWVkaWFjb2RlY2RlYy5vCj4gIE9CSlMtJChDT05GSUdfVlAzX0RFQ09ERVIp ICAgICAgICAgICAgICs9IHZwMy5vIGpwZWdxdWFudHRhYmxlcy5vCj4gIE9CSlMtJChDT05GSUdf VlA1X0RFQ09ERVIpICAgICAgICAgICAgICs9IHZwNS5vIHZwNTYubyB2cDU2ZGF0YS5vCj4gdnB4 X3JhYy5vCj4gIE9CSlMtJChDT05GSUdfVlA2X0RFQ09ERVIpICAgICAgICAgICAgICs9IHZwNi5v IHZwNTYubyB2cDU2ZGF0YS5vIFwKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hbGxjb2RlY3Mu YyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKPiBpbmRleCBiMTAyYTgwNjllLi5lNWFiNjU3ZWY2 IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKPiArKysgYi9saWJhdmNvZGVj L2FsbGNvZGVjcy5jCj4gQEAgLTgyMSw4ICs4MjEsMTEgQEAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMg ZmZfaWRmX2RlY29kZXI7Cj4KPiAgLyogZXh0ZXJuYWwgbGlicmFyaWVzLCB0aGF0IHNob3VsZG4n dCBiZSB1c2VkIGJ5IGRlZmF1bHQgaWYgb25lIG9mIHRoZQo+ICAgKiBhYm92ZSBpcyBhdmFpbGFi bGUgKi8KPiArZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfYWFjX21lZGlhY29kZWNfZGVjb2RlcjsK PiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfYWFjX21mX2VuY29kZXI7Cj4gIGV4dGVybiBjb25z dCBGRkNvZGVjIGZmX2FjM19tZl9lbmNvZGVyOwo+ICtleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9h bXJuYl9tZWRpYWNvZGVjX2RlY29kZXI7Cj4gK2V4dGVybiBjb25zdCBGRkNvZGVjIGZmX2Ftcndi X21lZGlhY29kZWNfZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfaDI2M192NGwy bTJtX2VuY29kZXI7Cj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2xpYmFvbV9hdjFfZGVjb2Rl cjsKPiAgLyogaHdhY2NlbCBob29rcyBvbmx5LCBzbyBwcmVmZXIgZXh0ZXJuYWwgZGVjb2RlcnMg Ki8KPiBAQCAtODM1LDYgKzgzOCw3IEBAIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2F2MV9xc3Zf ZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfYXYxX3Fzdl9lbmNvZGVyOwo+ICBl eHRlcm4gY29uc3QgRkZDb2RlYyBmZl9hdjFfYW1mX2VuY29kZXI7Cj4gIGV4dGVybiBjb25zdCBG RkNvZGVjIGZmX2F2MV92YWFwaV9lbmNvZGVyOwo+ICtleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9m bGFjX21lZGlhY29kZWNfZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfbGlib3Bl bmgyNjRfZW5jb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfbGlib3BlbmgyNjRfZGVj b2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfaDI2NF9hbWZfZW5jb2RlcjsKPiBAQCAt ODYxLDYgKzg2NSw3IEBAIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX21qcGVnX2N1dmlkX2RlY29k ZXI7Cj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX21qcGVnX3Fzdl9lbmNvZGVyOwo+ICBleHRl cm4gY29uc3QgRkZDb2RlYyBmZl9tanBlZ19xc3ZfZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZG Q29kZWMgZmZfbWpwZWdfdmFhcGlfZW5jb2RlcjsKPiArZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZf bXAzX21lZGlhY29kZWNfZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfbXAzX21m X2VuY29kZXI7Cj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX21wZWcxX2N1dmlkX2RlY29kZXI7 Cj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX21wZWcyX2N1dmlkX2RlY29kZXI7Cj4gQEAgLTg3 MSw4ICs4NzYsMTAgQEAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfbXBlZzRfbWVkaWFjb2RlY19k ZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9tcGVnNF9tZWRpYWNvZGVjX2VuY29k ZXI7Cj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX21wZWc0X29teF9lbmNvZGVyOwo+ICBleHRl cm4gY29uc3QgRkZDb2RlYyBmZl9tcGVnNF92NGwybTJtX2VuY29kZXI7Cj4gK2V4dGVybiBjb25z dCBGRkNvZGVjIGZmX29wdXNfbWVkaWFjb2RlY19kZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgRkZD b2RlYyBmZl9wcm9yZXNfdmlkZW90b29sYm94X2VuY29kZXI7Cj4gIGV4dGVybiBjb25zdCBGRkNv ZGVjIGZmX3ZjMV9jdXZpZF9kZWNvZGVyOwo+ICtleHRlcm4gY29uc3QgRkZDb2RlYyBmZl92b3Ji aXNfbWVkaWFjb2RlY19kZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl92cDhfY3V2 aWRfZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfdnA4X21lZGlhY29kZWNfZGVj b2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfdnA4X21lZGlhY29kZWNfZW5jb2RlcjsK PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9tZWRpYWNvZGVjZGVjLmMgYi9saWJhdmNvZGVjL21l ZGlhY29kZWNkZWMuYwo+IGluZGV4IDZkOGRjNjAwZmUuLmRhYmY3MWNjMDQgMTAwNjQ0Cj4gLS0t IGEvbGliYXZjb2RlYy9tZWRpYWNvZGVjZGVjLmMKPiArKysgYi9saWJhdmNvZGVjL21lZGlhY29k ZWNkZWMuYwo+IEBAIC0zNiw2ICszNiw3IEBACj4gICNpbmNsdWRlICJhdmNvZGVjLmgiCj4gICNp bmNsdWRlICJjb2RlY19pbnRlcm5hbC5oIgo+ICAjaW5jbHVkZSAiZGVjb2RlLmgiCj4gKyNpbmNs dWRlICJmbGFjX3BhcnNlLmgiCj4gICNpbmNsdWRlICJoMjY0X3BhcnNlLmgiCj4gICNpbmNsdWRl ICJoMjY0X3BzLmgiCj4gICNpbmNsdWRlICJoZXZjL3BhcnNlLmgiCj4gQEAgLTQ0LDYgKzQ1LDcg QEAKPiAgI2luY2x1ZGUgImpuaS5oIgo+ICAjaW5jbHVkZSAibWVkaWFjb2RlY193cmFwcGVyLmgi Cj4gICNpbmNsdWRlICJtZWRpYWNvZGVjZGVjX2NvbW1vbi5oIgo+ICsjaW5jbHVkZSAieGlwaC5o Igo+Cj4gIHR5cGVkZWYgc3RydWN0IE1lZGlhQ29kZWNIMjY0RGVjQ29udGV4dCB7Cj4KPiBAQCAt Mjg3LDExICsyODksODcgQEAgZG9uZToKPiAgfQo+ICAjZW5kaWYKPgo+ICsjaWYgQ09ORklHX0ZM QUNfTUVESUFDT0RFQ19ERUNPREVSCj4gK3N0YXRpYyBpbnQgZmxhY19zZXRfZXh0cmFkYXRhKEFW Q29kZWNDb250ZXh0ICphdmN0eCwgRkZBTWVkaWFGb3JtYXQKPiAqZm9ybWF0KQo+ICt7Cj4gKyAg ICB1aW50OF90ICpzdHJlYW1pbmZvOwo+ICsgICAgdWludDhfdCBidWZmZXJbNDJdOwo+ICsKPiAr ICAgIGlmICghYXZjdHgtPmV4dHJhZGF0YSkgewo+ICsgICAgICAgIHJldHVybiAwOwo+ICsgICAg fQo+ICsKPiArICAgIGlmICghZmZfZmxhY19pc19leHRyYWRhdGFfdmFsaWQoYXZjdHgsICZzdHJl YW1pbmZvKSkKPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArCj4gKyAg ICBidWZmZXJbMF0gPSAnZic7Cj4gKyAgICBidWZmZXJbMV0gPSAnTCc7Cj4gKyAgICBidWZmZXJb Ml0gPSAnYSc7Cj4gKyAgICBidWZmZXJbM10gPSAnQyc7Cj4gKyAgICBidWZmZXJbNF0gPSAweDgw Owo+ICsgICAgYnVmZmVyWzVdID0gMDsKPiArICAgIGJ1ZmZlcls2XSA9IDA7Cj4gKyAgICBidWZm ZXJbN10gPSAweDIyOwo+ICsgICAgbWVtY3B5KGJ1ZmZlciArIDgsIHN0cmVhbWluZm8sIDM0KTsK PiArCj4gKyAgICAvKiBjc2QtMDogZkxhQyArIHN0cmVhbWluZm8gKi8KPiArICAgIGZmX0FNZWRp YUZvcm1hdF9zZXRCdWZmZXIoZm9ybWF0LCAiY3NkLTAiLCBidWZmZXIsIDQyKTsKPiArCj4gKyAg ICByZXR1cm4gMDsKPiArfQo+ICsjZW5kaWYKPiArCj4gKyNpZiBDT05GSUdfT1BVU19NRURJQUNP REVDX0RFQ09ERVIKPiArc3RhdGljIGludCBvcHVzX3NldF9leHRyYWRhdGEoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LCBGRkFNZWRpYUZvcm1hdAo+ICpmb3JtYXQpCj4gK3sKPiArICAgIGlmICghYXZj dHgtPmV4dHJhZGF0YV9zaXplKSB7Cj4gKyAgICAgICAgcmV0dXJuIDA7Cj4gKyAgICB9Cj4gKwo+ ICsgICAgaWYgKGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSA8IDE5KSB7Cj4gKyAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICB9Cj4gKwo+ICsgICAgZmZfQU1lZGlhRm9ybWF0 X3NldEJ1ZmZlcihmb3JtYXQsICJjc2QtMCIsIGF2Y3R4LT5leHRyYWRhdGEsIDE5KTsKPiArCj4g KyAgICByZXR1cm4gMDsKPiArfQo+ICsjZW5kaWYKPiArCj4gKyNpZiBDT05GSUdfVk9SQklTX01F RElBQ09ERUNfREVDT0RFUgo+ICtzdGF0aWMgaW50IHZvcmJpc19zZXRfZXh0cmFkYXRhKEFWQ29k ZWNDb250ZXh0ICphdmN0eCwgRkZBTWVkaWFGb3JtYXQKPiAqZm9ybWF0KQo+ICt7Cj4gKyAgICBp bnQgcmV0Owo+ICsgICAgY29uc3QgdWludDhfdCAqaGVhZGVyX3N0YXJ0WzNdOwo+ICsgICAgaW50 IGhlYWRlcl9sZW5bM107Cj4gKwo+ICsgICAgaWYgKCFhdmN0eC0+ZXh0cmFkYXRhKSB7Cj4gKyAg ICAgICAgcmV0dXJuIDA7Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0ID0gYXZwcml2X3NwbGl0X3hp cGhfaGVhZGVycyhhdmN0eC0+ZXh0cmFkYXRhLAo+IGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSwgMzAs IGhlYWRlcl9zdGFydCwgaGVhZGVyX2xlbik7Cj4gKyAgICBpZiAocmV0IDwgMCkgewo+ICsgICAg ICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiQ291bGQgbm90IHBhcnNlIGV4dHJhZGF0 YVxuIik7Cj4gKyAgICAgICAgcmV0dXJuIHJldDsKPiArICAgIH0KPiArCj4gKyAgICAvKiBjc2Qt MDogaWRlbnRpZmljYXRpb24gaGVhZGVyLCBjc2QtMTogc2V0dXAgaGVhZGVyICovCj4gKyAgICBm Zl9BTWVkaWFGb3JtYXRfc2V0QnVmZmVyKGZvcm1hdCwgImNzZC0wIiwgaGVhZGVyX3N0YXJ0WzBd LAo+IGhlYWRlcl9sZW5bMF0pOwo+ICsgICAgZmZfQU1lZGlhRm9ybWF0X3NldEJ1ZmZlcihmb3Jt YXQsICJjc2QtMSIsIGhlYWRlcl9zdGFydFsyXSwKPiBoZWFkZXJfbGVuWzJdKTsKPiArCj4gKyAg ICByZXR1cm4gMDsKPiArfQo+ICsjZW5kaWYKPiArCj4gICNpZiBDT05GSUdfTVBFRzJfTUVESUFD T0RFQ19ERUNPREVSIHx8IFwKPiAgICAgIENPTkZJR19NUEVHNF9NRURJQUNPREVDX0RFQ09ERVIg fHwgXAo+ICAgICAgQ09ORklHX1ZQOF9NRURJQUNPREVDX0RFQ09ERVIgICB8fCBcCj4gICAgICBD T05GSUdfVlA5X01FRElBQ09ERUNfREVDT0RFUiAgIHx8IFwKPiAtICAgIENPTkZJR19BVjFfTUVE SUFDT0RFQ19ERUNPREVSCj4gKyAgICBDT05GSUdfQVYxX01FRElBQ09ERUNfREVDT0RFUiAgIHx8 IFwKPiArICAgIENPTkZJR19BQUNfTUVESUFDT0RFQ19ERUNPREVSICAgfHwgXAo+ICsgICAgQ09O RklHX0FNUk5CX01FRElBQ09ERUNfREVDT0RFUiB8fCBcCj4gKyAgICBDT05GSUdfQU1SV0JfTUVE SUFDT0RFQ19ERUNPREVSIHx8IFwKPiArICAgIENPTkZJR19NUDNfTUVESUFDT0RFQ19ERUNPREVS Cj4gIHN0YXRpYyBpbnQgY29tbW9uX3NldF9leHRyYWRhdGEoQVZDb2RlY0NvbnRleHQgKmF2Y3R4 LCBGRkFNZWRpYUZvcm1hdAo+ICpmb3JtYXQpCj4gIHsKPiAgICAgIGludCByZXQgPSAwOwo+IEBA IC0zODcsMTQgKzQ2NSw4MyBAQCBzdGF0aWMgYXZfY29sZCBpbnQKPiBtZWRpYWNvZGVjX2RlY29k ZV9pbml0KEFWQ29kZWNDb250ZXh0ICphdmN0eCkKPiAgICAgICAgICBpZiAocmV0IDwgMCkKPiAg ICAgICAgICAgICAgZ290byBkb25lOwo+ICAgICAgICAgIGJyZWFrOwo+ICsjZW5kaWYKPiArI2lm IENPTkZJR19BQUNfTUVESUFDT0RFQ19ERUNPREVSCj4gKyAgICBjYXNlIEFWX0NPREVDX0lEX0FB QzoKPiArICAgICAgICBjb2RlY19taW1lID0gImF1ZGlvL21wNGEtbGF0bSI7Cj4gKwo+ICsgICAg ICAgIHJldCA9IGNvbW1vbl9zZXRfZXh0cmFkYXRhKGF2Y3R4LCBmb3JtYXQpOwo+ICsgICAgICAg IGlmIChyZXQgPCAwKQo+ICsgICAgICAgICAgICBnb3RvIGRvbmU7Cj4gKyAgICAgICAgYnJlYWs7 Cj4gKyNlbmRpZgo+ICsjaWYgQ09ORklHX0FNUk5CX01FRElBQ09ERUNfREVDT0RFUgo+ICsgICAg Y2FzZSBBVl9DT0RFQ19JRF9BTVJfTkI6Cj4gKyAgICAgICAgY29kZWNfbWltZSA9ICJhdWRpby8z Z3BwIjsKPiArCj4gKyAgICAgICAgcmV0ID0gY29tbW9uX3NldF9leHRyYWRhdGEoYXZjdHgsIGZv cm1hdCk7Cj4gKyAgICAgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgICAgIGdvdG8gZG9uZTsK PiArICAgICAgICBicmVhazsKPiArI2VuZGlmCj4gKyNpZiBDT05GSUdfQU1SV0JfTUVESUFDT0RF Q19ERUNPREVSCj4gKyAgICBjYXNlIEFWX0NPREVDX0lEX0FNUl9XQjoKPiArICAgICAgICBjb2Rl Y19taW1lID0gImF1ZGlvL2Ftci13YiI7Cj4gKwo+ICsgICAgICAgIHJldCA9IGNvbW1vbl9zZXRf ZXh0cmFkYXRhKGF2Y3R4LCBmb3JtYXQpOwo+ICsgICAgICAgIGlmIChyZXQgPCAwKQo+ICsgICAg ICAgICAgICBnb3RvIGRvbmU7Cj4gKyAgICAgICAgYnJlYWs7Cj4gKyNlbmRpZgo+ICsjaWYgQ09O RklHX0ZMQUNfTUVESUFDT0RFQ19ERUNPREVSCj4gKyAgICBjYXNlIEFWX0NPREVDX0lEX0ZMQUM6 Cj4gKyAgICAgICAgY29kZWNfbWltZSA9ICJhdWRpby9mbGFjIjsKPiArCj4gKyAgICAgICAgcmV0 ID0gZmxhY19zZXRfZXh0cmFkYXRhKGF2Y3R4LCBmb3JtYXQpOwo+ICsgICAgICAgIGlmIChyZXQg PCAwKQo+ICsgICAgICAgICAgICBnb3RvIGRvbmU7Cj4gKyAgICAgICAgYnJlYWs7Cj4gKyNlbmRp Zgo+ICsjaWYgQ09ORklHX01QM19NRURJQUNPREVDX0RFQ09ERVIKPiArICAgIGNhc2UgQVZfQ09E RUNfSURfTVAzOgo+ICsgICAgICAgIGNvZGVjX21pbWUgPSAiYXVkaW8vbXBlZyI7Cj4gKwo+ICsg ICAgICAgIHJldCA9IGNvbW1vbl9zZXRfZXh0cmFkYXRhKGF2Y3R4LCBmb3JtYXQpOwo+ICsgICAg ICAgIGlmIChyZXQgPCAwKQo+ICsgICAgICAgICAgICBnb3RvIGRvbmU7Cj4gKyAgICAgICAgYnJl YWs7Cj4gKyNlbmRpZgo+ICsjaWYgQ09ORklHX09QVVNfTUVESUFDT0RFQ19ERUNPREVSCj4gKyAg ICBjYXNlIEFWX0NPREVDX0lEX09QVVM6Cj4gKyAgICAgICAgY29kZWNfbWltZSA9ICJhdWRpby9v cHVzIjsKPiArCj4gKyAgICAgICAgcmV0ID0gb3B1c19zZXRfZXh0cmFkYXRhKGF2Y3R4LCBmb3Jt YXQpOwo+ICsgICAgICAgIGlmIChyZXQgPCAwKQo+ICsgICAgICAgICAgICBnb3RvIGRvbmU7Cj4g KyAgICAgICAgYnJlYWs7Cj4gKyNlbmRpZgo+ICsjaWYgQ09ORklHX1ZPUkJJU19NRURJQUNPREVD X0RFQ09ERVIKPiArICAgIGNhc2UgQVZfQ09ERUNfSURfVk9SQklTOgo+ICsgICAgICAgIGNvZGVj X21pbWUgPSAiYXVkaW8vdm9yYmlzIjsKPiArCj4gKyAgICAgICAgcmV0ID0gdm9yYmlzX3NldF9l eHRyYWRhdGEoYXZjdHgsIGZvcm1hdCk7Cj4gKyAgICAgICAgaWYgKHJldCA8IDApCj4gKyAgICAg ICAgICAgIGdvdG8gZG9uZTsKPiArICAgICAgICBicmVhazsKPiAgI2VuZGlmCj4gICAgICBkZWZh dWx0Ogo+ICAgICAgICAgIGF2X2Fzc2VydDAoMCk7Cj4gICAgICB9Cj4KPiAgICAgIGZmX0FNZWRp YUZvcm1hdF9zZXRTdHJpbmcoZm9ybWF0LCAibWltZSIsIGNvZGVjX21pbWUpOwo+IC0gICAgZmZf QU1lZGlhRm9ybWF0X3NldEludDMyKGZvcm1hdCwgIndpZHRoIiwgYXZjdHgtPndpZHRoKTsKPiAt ICAgIGZmX0FNZWRpYUZvcm1hdF9zZXRJbnQzMihmb3JtYXQsICJoZWlnaHQiLCBhdmN0eC0+aGVp Z2h0KTsKPiArCj4gKyAgICBpZiAoYXZjdHgtPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX1ZJ REVPKSB7Cj4gKyAgICAgICAgZmZfQU1lZGlhRm9ybWF0X3NldEludDMyKGZvcm1hdCwgIndpZHRo IiwgYXZjdHgtPndpZHRoKTsKPiArICAgICAgICBmZl9BTWVkaWFGb3JtYXRfc2V0SW50MzIoZm9y bWF0LCAiaGVpZ2h0IiwgYXZjdHgtPmhlaWdodCk7Cj4gKyAgICB9IGVsc2Ugewo+ICsgICAgICAg IGZmX0FNZWRpYUZvcm1hdF9zZXRJbnQzMihmb3JtYXQsICJjaGFubmVsLWNvdW50IiwKPiBhdmN0 eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzKTsKPiArICAgICAgICBmZl9BTWVkaWFGb3JtYXRfc2V0 SW50MzIoZm9ybWF0LCAic2FtcGxlLXJhdGUiLAo+IGF2Y3R4LT5zYW1wbGVfcmF0ZSk7Cj4gKyAg ICB9Cj4KPiAgICAgIHMtPmN0eCA9IGF2X21hbGxvY3ooc2l6ZW9mKCpzLT5jdHgpKTsKPiAgICAg IGlmICghcy0+Y3R4KSB7Cj4gQEAgLTYxMSwzICs3NTgsNjUgQEAgREVDTEFSRV9NRURJQUNPREVD X1ZERUModnA5LCAiVlA5IiwgQVZfQ09ERUNfSURfVlA5LAo+IE5VTEwpCj4gICNpZiBDT05GSUdf QVYxX01FRElBQ09ERUNfREVDT0RFUgo+ICBERUNMQVJFX01FRElBQ09ERUNfVkRFQyhhdjEsICJB VjEiLCBBVl9DT0RFQ19JRF9BVjEsIE5VTEwpCj4gICNlbmRpZgo+ICsKPiArI2RlZmluZSBBRCBB Vl9PUFRfRkxBR19BVURJT19QQVJBTSB8IEFWX09QVF9GTEFHX0RFQ09ESU5HX1BBUkFNCj4gK3N0 YXRpYyBjb25zdCBBVk9wdGlvbiBmZl9tZWRpYWNvZGVjX2FkZWNfb3B0aW9uc1tdID0gewo+ICsg ICAgeyAibmRrX2NvZGVjIiwgIlVzZSBNZWRpYUNvZGVjIGZyb20gTkRLIiwKPiArICAgICAgICAg ICAgICAgICAgIE9GRlNFVCh1c2VfbmRrX2NvZGVjKSwgQVZfT1BUX1RZUEVfQk9PTCwgey5pNjQg PSAtMX0sCj4gLTEsIDEsIEFEIH0sCj4gKyAgICB7IE5VTEwgfQo+ICt9Owo+ICsKPiArI2RlZmlu ZSBERUNMQVJFX01FRElBQ09ERUNfQUNMQVNTKHNob3J0X25hbWUpICAgICAgICAgICAgICAgICAg IFwKPiArc3RhdGljIGNvbnN0IEFWQ2xhc3MgZmZfIyNzaG9ydF9uYW1lIyNfbWVkaWFjb2RlY19k ZWNfY2xhc3MgPSB7IFwKPiArICAgIC5jbGFzc19uYW1lID0gI3Nob3J0X25hbWUgIl9tZWRpYWNv ZGVjIiwgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIC5pdGVtX25hbWUgID0gYXZfZGVmYXVs dF9pdGVtX25hbWUsICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIC5vcHRpb24gICAg ID0gZmZfbWVkaWFjb2RlY19hZGVjX29wdGlvbnMsICAgICAgICAgICAgICAgICAgIFwKPiArICAg IC52ZXJzaW9uICAgID0gTElCQVZVVElMX1ZFUlNJT05fSU5ULCAgICAgICAgICAgICAgICAgICAg ICAgIFwKPiArfTsKPiArCj4gKyNkZWZpbmUgREVDTEFSRV9NRURJQUNPREVDX0FERUMoc2hvcnRf bmFtZSwgZnVsbF9uYW1lLCBjb2RlY19pZCwgYnNmKQo+ICAgICAgICAgICAgICAgICAgICAgICBc Cj4gK0RFQ0xBUkVfTUVESUFDT0RFQ19WQ0xBU1Moc2hvcnRfbmFtZSkKPiAgICAgICAgICAgICAg ICAgICAgICAgXAo+ICtjb25zdCBGRkNvZGVjIGZmXyAjIyBzaG9ydF9uYW1lICMjIF9tZWRpYWNv ZGVjX2RlY29kZXIgPSB7Cj4gICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgLnAubmFtZSAg ICAgICAgID0gI3Nob3J0X25hbWUgIl9tZWRpYWNvZGVjIiwKPiAgICAgICAgICAgICAgICAgICAg ICAgIFwKPiArICAgIENPREVDX0xPTkdfTkFNRShmdWxsX25hbWUgIiBBbmRyb2lkIE1lZGlhQ29k ZWMgZGVjb2RlciIpLAo+ICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAucC50eXBlICAg ICAgICAgPSBBVk1FRElBX1RZUEVfQVVESU8sCj4gICAgICAgICAgICAgICAgICAgICAgIFwKPiAr ICAgIC5wLmlkICAgICAgICAgICA9IGNvZGVjX2lkLAo+ICAgICAgICAgICAgICAgICAgICAgICBc Cj4gKyAgICAucC5wcml2X2NsYXNzICAgPSAmZmZfIyNzaG9ydF9uYW1lIyNfbWVkaWFjb2RlY19k ZWNfY2xhc3MsCj4gICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgLnByaXZfZGF0YV9zaXpl ID0gc2l6ZW9mKE1lZGlhQ29kZWNIMjY0RGVjQ29udGV4dCksCj4gICAgICAgICAgICAgICAgICAg ICAgIFwKPiArICAgIC5pbml0ICAgICAgICAgICA9IG1lZGlhY29kZWNfZGVjb2RlX2luaXQsCj4g ICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIEZGX0NPREVDX1JFQ0VJVkVfRlJBTUVfQ0Io bWVkaWFjb2RlY19yZWNlaXZlX2ZyYW1lKSwKPiAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAg ICAuZmx1c2ggICAgICAgICAgPSBtZWRpYWNvZGVjX2RlY29kZV9mbHVzaCwKPiAgICAgICAgICAg ICAgICAgICAgICBcCj4gKyAgICAuY2xvc2UgICAgICAgICAgPSBtZWRpYWNvZGVjX2RlY29kZV9j bG9zZSwKPiAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAucC5jYXBhYmlsaXRpZXMgPSBB Vl9DT0RFQ19DQVBfREVMQVkgfCBBVl9DT0RFQ19DQVBfSEFSRFdBUkUsCj4gICAgICAgICAgICAg ICAgICAgICAgIFwKPiArICAgIC5jYXBzX2ludGVybmFsICA9IEZGX0NPREVDX0NBUF9OT1RfSU5J VF9USFJFQURTQUZFLAo+ICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAuYnNmcyAgICAg ICAgICAgPSBic2YsCj4gICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgLnAud3JhcHBlcl9u YW1lID0gIm1lZGlhY29kZWMiLAo+ICAgICAgICAgICAgICAgICAgICAgICBcCj4gK307Cj4gICAg ICAgICAgICAgICAgICAgICAgXAo+ICsKPiArI2lmIENPTkZJR19BQUNfTUVESUFDT0RFQ19ERUNP REVSCj4gK0RFQ0xBUkVfTUVESUFDT0RFQ19BREVDKGFhYywgIkFBQyIsIEFWX0NPREVDX0lEX0FB QywgImFhY19hZHRzdG9hc2MiKQo+ICsjZW5kaWYKPiArCj4gKyNpZiBDT05GSUdfQU1STkJfTUVE SUFDT0RFQ19ERUNPREVSCj4gK0RFQ0xBUkVfTUVESUFDT0RFQ19BREVDKGFtcm5iLCAiQU1SLU5C IiwgQVZfQ09ERUNfSURfQU1SX05CLCBOVUxMKQo+ICsjZW5kaWYKPiArCj4gKyNpZiBDT05GSUdf QU1SV0JfTUVESUFDT0RFQ19ERUNPREVSCj4gK0RFQ0xBUkVfTUVESUFDT0RFQ19BREVDKGFtcndi LCAiQU1SLVdCIiwgQVZfQ09ERUNfSURfQU1SX1dCLCBOVUxMKQo+ICsjZW5kaWYKPiArCj4gKyNp ZiBDT05GSUdfRkxBQ19NRURJQUNPREVDX0RFQ09ERVIKPiArREVDTEFSRV9NRURJQUNPREVDX0FE RUMoZmxhYywgIkZMQUMiLCBBVl9DT0RFQ19JRF9GTEFDLCBOVUxMKQo+ICsjZW5kaWYKPiArCj4g KyNpZiBDT05GSUdfTVAzX01FRElBQ09ERUNfREVDT0RFUgo+ICtERUNMQVJFX01FRElBQ09ERUNf QURFQyhtcDMsICJNUDMiLCBBVl9DT0RFQ19JRF9NUDMsIE5VTEwpCj4gKyNlbmRpZgo+ICsKPiAr I2lmIENPTkZJR19PUFVTX01FRElBQ09ERUNfREVDT0RFUgo+ICtERUNMQVJFX01FRElBQ09ERUNf QURFQyhvcHVzLCAiT1BVUyIsIEFWX0NPREVDX0lEX09QVVMsIE5VTEwpCj4gKyNlbmRpZgo+ICsK PiArI2lmIENPTkZJR19WT1JCSVNfTUVESUFDT0RFQ19ERUNPREVSCj4gK0RFQ0xBUkVfTUVESUFD T0RFQ19BREVDKHZvcmJpcywgIlZPUkJJUyIsIEFWX0NPREVDX0lEX1ZPUkJJUywgTlVMTCkKPiAr I2VuZGlmCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvbWVkaWFjb2RlY2RlY19jb21tb24uYwo+ IGIvbGliYXZjb2RlYy9tZWRpYWNvZGVjZGVjX2NvbW1vbi5jCj4gaW5kZXggNGQyMmRiOGVjZi4u NGJkZDAxMjhjMiAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL21lZGlhY29kZWNkZWNfY29tbW9u LmMKPiArKysgYi9saWJhdmNvZGVjL21lZGlhY29kZWNkZWNfY29tbW9uLmMKPiBAQCAtMjMsNiAr MjMsNyBAQAo+ICAjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K Pgo+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2F2YXNzZXJ0LmgiCj4gICNpbmNsdWRlICJsaWJhdnV0 aWwvY29tbW9uLmgiCj4gICNpbmNsdWRlICJsaWJhdnV0aWwvaHdjb250ZXh0X21lZGlhY29kZWMu aCIKPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKPiBAQCAtMzAsNiArMzEsNyBAQAo+ICAj aW5jbHVkZSAibGliYXZ1dGlsL3BpeGZtdC5oIgo+ICAjaW5jbHVkZSAibGliYXZ1dGlsL3RpbWUu aCIKPiAgI2luY2x1ZGUgImxpYmF2dXRpbC90aW1lc3RhbXAuaCIKPiArI2luY2x1ZGUgImxpYmF2 dXRpbC9jaGFubmVsX2xheW91dC5oIgo+Cj4gICNpbmNsdWRlICJhdmNvZGVjLmgiCj4gICNpbmNs dWRlICJkZWNvZGUuaCIKPiBAQCAtODUsNiArODcsMTEwIEBACj4gICNkZWZpbmUgT1VUUFVUX0RF UVVFVUVfVElNRU9VVF9VUyA4MDAwCj4gICNkZWZpbmUgT1VUUFVUX0RFUVVFVUVfQkxPQ0tfVElN RU9VVF9VUyAxMDAwMDAwCj4KPiArZW51bSB7Cj4gKyAgICBFTkNPRElOR19QQ01fMTZCSVQgICAg ICAgID0gMHgwMDAwMDAwMiwKPiArICAgIEVOQ09ESU5HX1BDTV84QklUICAgICAgICAgPSAweDAw MDAwMDAzLAo+ICsgICAgRU5DT0RJTkdfUENNX0ZMT0FUICAgICAgICA9IDB4MDAwMDAwMDQsCj4g KyAgICBFTkNPRElOR19QQ01fMjRCSVRfUEFDS0VEID0gMHgwMDAwMDAxNSwKPiArICAgIEVOQ09E SU5HX1BDTV8zMkJJVCAgICAgICAgPSAweDAwMDAwMDE2LAo+ICt9Owo+ICsKPiArc3RhdGljIGNv bnN0IHN0cnVjdCB7Cj4gKwo+ICsgICAgaW50IHBjbV9mb3JtYXQ7Cj4gKyAgICBlbnVtIEFWU2Ft cGxlRm9ybWF0IHNhbXBsZV9mb3JtYXQ7Cj4gKwo+ICt9IHNhbXBsZV9mb3JtYXRzW10gPSB7Cj4g Kwo+ICsgICAgeyBFTkNPRElOR19QQ01fMTZCSVQsICAgICAgICBBVl9TQU1QTEVfRk1UX1MxNiB9 LAo+ICsgICAgeyBFTkNPRElOR19QQ01fOEJJVCwgICAgICAgICBBVl9TQU1QTEVfRk1UX1U4ICB9 LAo+ICsgICAgeyBFTkNPRElOR19QQ01fRkxPQVQsICAgICAgICBBVl9TQU1QTEVfRk1UX0ZMVCB9 LAo+ICsgICAgeyBFTkNPRElOR19QQ01fMjRCSVRfUEFDS0VELCBBVl9TQU1QTEVfRk1UX1MzMiB9 LAo+ICsgICAgeyBFTkNPRElOR19QQ01fMzJCSVQsICAgICAgICBBVl9TQU1QTEVfRk1UX1MzMiB9 LAo+ICsgICAgeyAwIH0KPiArfTsKPiArCj4gK3N0YXRpYyBlbnVtIEFWU2FtcGxlRm9ybWF0IG1j ZGVjX21hcF9wY21fZm9ybWF0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZWRpYUNvZGVjRGVjQ29udGV4dCAq cywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg cGNtX2Zvcm1hdCkKPiArewo+ICsgICAgaW50IGk7Cj4gKyAgICBlbnVtIEFWU2FtcGxlRm9ybWF0 IHJldCA9IEFWX1NBTVBMRV9GTVRfTk9ORTsKPiArCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgRkZf QVJSQVlfRUxFTVMoc2FtcGxlX2Zvcm1hdHMpOyBpKyspIHsKPiArICAgICAgICBpZiAoc2FtcGxl X2Zvcm1hdHNbaV0ucGNtX2Zvcm1hdCA9PSBwY21fZm9ybWF0KSB7Cj4gKyAgICAgICAgICAgIHJl dHVybiBzYW1wbGVfZm9ybWF0c1tpXS5zYW1wbGVfZm9ybWF0Owo+ICsgICAgICAgIH0KPiArICAg IH0KPiArCj4gKyAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIk91dHB1dCBzYW1wbGUg Zm9ybWF0IDB4JXggKHZhbHVlPSVkKSBpcwo+IG5vdCBzdXBwb3J0ZWRcbiIsCj4gKyAgICAgICAg ICAgcGNtX2Zvcm1hdCwgcGNtX2Zvcm1hdCk7Cj4gKwo+ICsgICAgcmV0dXJuIHJldDsKPiArfQo+ ICsKPiArZW51bQo+ICt7Cj4gKyAgQ0hBTk5FTF9PVVRfRlJPTlRfTEVGVCAgICAgICAgICAgICAg ICAgPSAweDQsCj4gKyAgQ0hBTk5FTF9PVVRfRlJPTlRfUklHSFQgICAgICAgICAgICAgICAgPSAw eDgsCj4gKyAgQ0hBTk5FTF9PVVRfRlJPTlRfQ0VOVEVSICAgICAgICAgICAgICAgPSAweDEwLAo+ ICsgIENIQU5ORUxfT1VUX0xPV19GUkVRVUVOQ1kgICAgICAgICAgICAgID0gMHgyMCwKPiArICBD SEFOTkVMX09VVF9CQUNLX0xFRlQgICAgICAgICAgICAgICAgICA9IDB4NDAsCj4gKyAgQ0hBTk5F TF9PVVRfQkFDS19SSUdIVCAgICAgICAgICAgICAgICAgPSAweDgwLAo+ICsgIENIQU5ORUxfT1VU X0ZST05UX0xFRlRfT0ZfQ0VOVEVSICAgICAgID0gMHgxMDAsCj4gKyAgQ0hBTk5FTF9PVVRfRlJP TlRfUklHSFRfT0ZfQ0VOVEVSICAgICAgPSAweDIwMCwKPiArICBDSEFOTkVMX09VVF9CQUNLX0NF TlRFUiAgICAgICAgICAgICAgICA9IDB4NDAwLAo+ICsgIENIQU5ORUxfT1VUX1NJREVfTEVGVCAg ICAgICAgICAgICAgICAgID0gMHg4MDAsCj4gKyAgQ0hBTk5FTF9PVVRfU0lERV9SSUdIVCAgICAg ICAgICAgICAgICAgPSAweDEwMDAsCj4gKyAgQ0hBTk5FTF9PVVRfVE9QX0NFTlRFUiAgICAgICAg ICAgICAgICAgPSAweDIwMDAsCj4gKyAgQ0hBTk5FTF9PVVRfVE9QX0ZST05UX0xFRlQgICAgICAg ICAgICAgPSAweDQwMDAsCj4gKyAgQ0hBTk5FTF9PVVRfVE9QX0ZST05UX0NFTlRFUiAgICAgICAg ICAgPSAweDgwMDAsCj4gKyAgQ0hBTk5FTF9PVVRfVE9QX0ZST05UX1JJR0hUICAgICAgICAgICAg PSAweDEwMDAwLAo+ICsgIENIQU5ORUxfT1VUX1RPUF9CQUNLX0xFRlQgICAgICAgICAgICAgID0g MHgyMDAwMCwKPiArICBDSEFOTkVMX09VVF9UT1BfQkFDS19DRU5URVIgICAgICAgICAgICA9IDB4 NDAwMDAsCj4gKyAgQ0hBTk5FTF9PVVRfVE9QX0JBQ0tfUklHSFQgICAgICAgICAgICAgPSAweDgw MDAwLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gKwo+ICsgICAgaW50IG1h c2s7Cj4gKyAgICB1aW50NjRfdCBsYXlvdXQ7Cj4gKwo+ICt9IGNoYW5uZWxfbWFza3NbXSA9IHsK PiArICAgIHsgQ0hBTk5FTF9PVVRfRlJPTlRfTEVGVCwgICAgICAgICAgICBBVl9DSF9GUk9OVF9M RUZUIH0sCj4gKyAgICB7IENIQU5ORUxfT1VUX0ZST05UX1JJR0hULCAgICAgICAgICAgQVZfQ0hf RlJPTlRfUklHSFQgfSwKPiArICAgIHsgQ0hBTk5FTF9PVVRfRlJPTlRfQ0VOVEVSLCAgICAgICAg ICBBVl9DSF9GUk9OVF9DRU5URVIgfSwKPiArICAgIHsgQ0hBTk5FTF9PVVRfTE9XX0ZSRVFVRU5D WSwgICAgICAgICBBVl9DSF9MT1dfRlJFUVVFTkNZIH0sCj4gKyAgICB7IENIQU5ORUxfT1VUX0JB Q0tfTEVGVCwgICAgICAgICAgICAgQVZfQ0hfQkFDS19MRUZUIH0sCj4gKyAgICB7IENIQU5ORUxf T1VUX0JBQ0tfUklHSFQsICAgICAgICAgICAgQVZfQ0hfQkFDS19SSUdIVCB9LAo+ICsgICAgeyBD SEFOTkVMX09VVF9GUk9OVF9MRUZUX09GX0NFTlRFUiwgIEFWX0NIX0ZST05UX0xFRlRfT0ZfQ0VO VEVSIH0sCj4gKyAgICB7IENIQU5ORUxfT1VUX0ZST05UX1JJR0hUX09GX0NFTlRFUiwgQVZfQ0hf RlJPTlRfUklHSFRfT0ZfQ0VOVEVSIH0sCj4gKyAgICB7IENIQU5ORUxfT1VUX0JBQ0tfQ0VOVEVS LCAgICAgICAgICAgQVZfQ0hfQkFDS19DRU5URVIgfSwKPiArICAgIHsgQ0hBTk5FTF9PVVRfU0lE RV9MRUZULCAgICAgICAgICAgICBBVl9DSF9TSURFX0xFRlQgfSwKPiArICAgIHsgQ0hBTk5FTF9P VVRfU0lERV9SSUdIVCwgICAgICAgICAgICBBVl9DSF9TSURFX1JJR0hUIH0sCj4gKyAgICB7IENI QU5ORUxfT1VUX1RPUF9DRU5URVIsICAgICAgICAgICAgQVZfQ0hfVE9QX0NFTlRFUiB9LAo+ICsg ICAgeyBDSEFOTkVMX09VVF9UT1BfRlJPTlRfTEVGVCwgICAgICAgIEFWX0NIX1RPUF9GUk9OVF9M RUZUIH0sCj4gKyAgICB7IENIQU5ORUxfT1VUX1RPUF9GUk9OVF9DRU5URVIsICAgICAgQVZfQ0hf VE9QX0ZST05UX0NFTlRFUiB9LAo+ICsgICAgeyBDSEFOTkVMX09VVF9UT1BfRlJPTlRfUklHSFQs ICAgICAgIEFWX0NIX1RPUF9GUk9OVF9SSUdIVCB9LAo+ICsgICAgeyBDSEFOTkVMX09VVF9UT1Bf QkFDS19MRUZULCAgICAgICAgIEFWX0NIX1RPUF9CQUNLX0xFRlQgfSwKPiArICAgIHsgQ0hBTk5F TF9PVVRfVE9QX0JBQ0tfQ0VOVEVSLCAgICAgICBBVl9DSF9UT1BfQkFDS19DRU5URVIgfSwKPiAr ICAgIHsgQ0hBTk5FTF9PVVRfVE9QX0JBQ0tfUklHSFQsICAgICAgICBBVl9DSF9UT1BfQkFDS19S SUdIVCB9LAo+ICt9Owo+ICsKPiArc3RhdGljIHVpbnQ2NF90IG1jZGVjX21hcF9jaGFubmVsX21h c2soQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgY2hhbm5lbF9tYXNrKQo+ICt7Cj4gKyAgICBpbnQgaTsKPiArICAgIHVp bnQ2NF90IGNoYW5uZWxfbGF5b3V0ID0gMDsKPiArCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgRkZf QVJSQVlfRUxFTVMoY2hhbm5lbF9tYXNrcyk7IGkrKykgewo+ICsgICAgICAgIGlmIChjaGFubmVs X21hc2sgJiBjaGFubmVsX21hc2tzW2ldLm1hc2spCj4gKyAgICAgICAgICAgIGNoYW5uZWxfbGF5 b3V0IHw9IGNoYW5uZWxfbWFza3NbaV0ubGF5b3V0Owo+ICsgICAgfQo+ICsKPiArICAgIHJldHVy biBjaGFubmVsX2xheW91dDsKPiArfQo+ICsKPiAgZW51bSB7Cj4gICAgICBDT0xPUl9Gb3JtYXRZ VVY0MjBQbGFuYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTMsCj4gICAgICBD T0xPUl9Gb3JtYXRZVVY0MjBTZW1pUGxhbmFyICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4 MTUsCj4gQEAgLTI2NSwxMyArMzcxLDc3IEBAIGZhaWw6Cj4gICAgICByZXR1cm4gcmV0Owo+ICB9 Cj4KPiAtc3RhdGljIGludCBtZWRpYWNvZGVjX3dyYXBfc3dfYnVmZmVyKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lZGlhQ29kZWNE ZWNDb250ZXh0ICpzLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhf dCAqZGF0YSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXpl LAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NpemVfdCBpbmRleCwKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGQU1lZGlhQ29kZWNCdWZmZXJJbmZv ICppbmZvLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZGcmFtZSAqZnJh bWUpCj4gK3N0YXRpYyBpbnQgbWVkaWFjb2RlY193cmFwX3N3X2F1ZGlvX2J1ZmZlcihBVkNvZGVj Q29udGV4dCAqYXZjdHgsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNZWRpYUNvZGVjRGVjQ29udGV4dCAqcywKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRhdGEsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNzaXplX3QgaW5kZXgsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRkFNZWRpYUNvZGVjQnVmZmVySW5mbyAqaW5m bywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWRnJhbWUg KmZyYW1lKQo+ICt7Cj4gKyAgICBpbnQgcmV0ID0gMDsKPiArICAgIGludCBzdGF0dXMgPSAwOwo+ ICsgICAgY29uc3QgaW50IHNhbXBsZV9zaXplID0gYXZfZ2V0X2J5dGVzX3Blcl9zYW1wbGUoYXZj dHgtPnNhbXBsZV9mbXQpOwo+ICsgICAgaWYgKCFzYW1wbGVfc2l6ZSkgewo+ICsgICAgICAgIGF2 X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiQ291bGQgbm90IGdldCBieXRlcyBwZXIgc2FtcGxl XG4iKTsKPiArICAgICAgICBnb3RvIGRvbmU7Cj4gKyAgICB9Cj4gKwo+ICsgICAgZnJhbWUtPmZv cm1hdCA9IGF2Y3R4LT5zYW1wbGVfZm10Owo+ICsgICAgZnJhbWUtPnNhbXBsZV9yYXRlID0gYXZj dHgtPnNhbXBsZV9yYXRlOwo+ICsgICAgZnJhbWUtPm5iX3NhbXBsZXMgPSBpbmZvLT5zaXplIC8g KHNhbXBsZV9zaXplICoKPiBhdmN0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzKTsKPiArCj4gKyAg ICByZXQgPSBhdl9jaGFubmVsX2xheW91dF9jb3B5KCZmcmFtZS0+Y2hfbGF5b3V0LCAmYXZjdHgt PmNoX2xheW91dCk7Cj4gKyAgICBpZiAocmV0IDwgMCkgewo+ICsgICAgICAgIGF2X2xvZyhhdmN0 eCwgQVZfTE9HX0VSUk9SLCAiQ291bGQgbm90IGNvcHkgY2hhbm5lbCBsYXlvdXRcbiIpOwo+ICsg ICAgICAgIGdvdG8gZG9uZTsKPiArICAgIH0KPiArCj4gKyAgICAvKiBNZWRpYUNvZGVjIGJ1ZmZl cnMgbmVlZHMgdG8gYmUgY29waWVkIHRvIG91ciBvd24gcmVmY291bnRlZCBidWZmZXJzCj4gKyAg ICAgKiBiZWNhdXNlIHRoZSBmbHVzaCBjb21tYW5kIGludmFsaWRhdGVzIGFsbCBpbnB1dCBhbmQg b3V0cHV0IGJ1ZmZlcnMuCj4gKyAgICAgKi8KPiArICAgIGlmICgocmV0ID0gZmZfZ2V0X2J1ZmZl cihhdmN0eCwgZnJhbWUsIDApKSA8IDApIHsKPiArICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xP R19FUlJPUiwgIkNvdWxkIG5vdCBhbGxvY2F0ZSBidWZmZXJcbiIpOwo+ICsgICAgICAgIGdvdG8g ZG9uZTsKPiArICAgIH0KPiArCj4gKyAgICAvKiBPdmVycmlkZSBmcmFtZS0+cHRzIGFzIGZmX2dl dF9idWZmZXIgd2lsbCBvdmVycmlkZSBpdHMgdmFsdWUgYmFzZWQKPiArICAgICAqIG9uIHRoZSBs YXN0IGF2cGFja2V0IHJlY2VpdmVkIHdoaWNoIGlzIG5vdCBpbiBzeW5jIHdpdGggdGhlIGZyYW1l Ogo+ICsgICAgICogICAqIE4gYXZwYWNrZXRzIGNhbiBiZSBwdXNoZWQgYmVmb3JlIDEgZnJhbWUg aXMgYWN0dWFsbHkgcmV0dXJuZWQKPiArICAgICAqICAgKiAwLXNpemVkIGF2cGFja2V0cyBhcmUg cHVzaGVkIHRvIGZsdXNoIHJlbWFpbmluZyBmcmFtZXMgYXQgRU9TCj4gKi8KPiArICAgIGlmIChh dmN0eC0+cGt0X3RpbWViYXNlLm51bSAmJiBhdmN0eC0+cGt0X3RpbWViYXNlLmRlbikgewo+ICsg ICAgICAgIGZyYW1lLT5wdHMgPSBhdl9yZXNjYWxlX3EoaW5mby0+cHJlc2VudGF0aW9uVGltZVVz LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWX1RJTUVfQkFTRV9R LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2Y3R4LT5wa3RfdGlt ZWJhc2UpOwo+ICsgICAgfSBlbHNlIHsKPiArICAgICAgICBmcmFtZS0+cHRzID0gaW5mby0+cHJl c2VudGF0aW9uVGltZVVzOwo+ICsgICAgfQo+ICsgICAgZnJhbWUtPnBrdF9kdHMgPSBBVl9OT1BU U19WQUxVRTsKPiArCj4gKyAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19UUkFDRSwKPiArICAgICAg ICAgICAiRnJhbWU6IGZvcm1hdD0lZCBjaGFubmVscz0lZCBzYW1wbGVfcmF0ZT0lZCBuYl9zYW1w bGVzPSVkIiwKPiArICAgICAgICAgICBhdmN0eC0+c2FtcGxlX2ZtdCwgYXZjdHgtPmNoX2xheW91 dC5uYl9jaGFubmVscywKPiBhdmN0eC0+c2FtcGxlX3JhdGUsIGZyYW1lLT5uYl9zYW1wbGVzKTsK PiArCj4gKyAgICBtZW1jcHkoZnJhbWUtPmRhdGFbMF0sIGRhdGEsIGluZm8tPnNpemUpOwo+ICsK PiArICAgIHJldCA9IDA7Cj4gK2RvbmU6Cj4gKyAgICBzdGF0dXMgPSBmZl9BTWVkaWFDb2RlY19y ZWxlYXNlT3V0cHV0QnVmZmVyKHMtPmNvZGVjLCBpbmRleCwgMCk7Cj4gKyAgICBpZiAoc3RhdHVz IDwgMCkgewo+ICsgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRv IHJlbGVhc2Ugb3V0cHV0IGJ1ZmZlclxuIik7Cj4gKyAgICAgICAgcmV0ID0gQVZFUlJPUl9FWFRF Uk5BTDsKPiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMg aW50IG1lZGlhY29kZWNfd3JhcF9zd192aWRlb19idWZmZXIoQVZDb2RlY0NvbnRleHQgKmF2Y3R4 LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVkaWFDb2Rl Y0RlY0NvbnRleHQgKnMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50OF90ICpkYXRhLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZV90IHNpemUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzc2l6ZV90IGluZGV4LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRkZBTWVkaWFDb2RlY0J1ZmZlckluZm8gKmluZm8sCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVkZyYW1lICpmcmFtZSkKPiAgewo+ ICAgICAgaW50IHJldCA9IDA7Cj4gICAgICBpbnQgc3RhdHVzID0gMDsKPiBAQCAtMzQzLDYgKzUx MywyMiBAQCBkb25lOgo+ICAgICAgcmV0dXJuIHJldDsKPiAgfQo+Cj4gK3N0YXRpYyBpbnQgbWVk aWFjb2RlY193cmFwX3N3X2J1ZmZlcihBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZWRpYUNvZGVjRGVjQ29udGV4dCAqcywKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRhdGEsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzaXplX3QgaW5kZXgsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGRkFNZWRpYUNvZGVjQnVmZmVySW5mbyAqaW5m bywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWRnJhbWUgKmZyYW1l KQo+ICt7Cj4gKyAgICBpZiAoYXZjdHgtPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElP KQo+ICsgICAgICAgIHJldHVybiBtZWRpYWNvZGVjX3dyYXBfc3dfYXVkaW9fYnVmZmVyKGF2Y3R4 LCBzLCBkYXRhLCBzaXplLAo+IGluZGV4LCBpbmZvLCBmcmFtZSk7Cj4gKyAgICBlbHNlIGlmIChh dmN0eC0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfVklERU8pCj4gKyAgICAgICAgcmV0dXJu IG1lZGlhY29kZWNfd3JhcF9zd192aWRlb19idWZmZXIoYXZjdHgsIHMsIGRhdGEsIHNpemUsCj4g aW5kZXgsIGluZm8sIGZyYW1lKTsKPiArICAgIGVsc2UKPiArICAgICAgICBhdl9hc3NlcnQwKDAp Owo+ICt9Cj4gKwo+ICAjZGVmaW5lIEFNRURJQUZPUk1BVF9HRVRfSU5UMzIobmFtZSwga2V5LCBt YW5kYXRvcnkpIGRvIHsKPiAgICAgICAgICAgICAgIFwKPiAgICAgIGludDMyX3QgdmFsdWUgPSAw Owo+ICAgICAgICAgICAgICBcCj4gICAgICBpZiAoZmZfQU1lZGlhRm9ybWF0X2dldEludDMyKHMt PmZvcm1hdCwga2V5LCAmdmFsdWUpKSB7Cj4gICAgICAgICAgICAgICBcCj4gQEAgLTM1NCw3ICs1 NDAsNyBAQCBkb25lOgo+ICAgICAgfQo+ICAgICAgICAgICAgICAgXAo+ICB9IHdoaWxlICgwKQo+ ICAgICAgICAgICAgICAgXAo+Cj4gLXN0YXRpYyBpbnQgbWVkaWFjb2RlY19kZWNfcGFyc2VfZm9y bWF0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwKPiBNZWRpYUNvZGVjRGVjQ29udGV4dCAqcykKPiAr c3RhdGljIGludCBtZWRpYWNvZGVjX2RlY19wYXJzZV92aWRlb19mb3JtYXQoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LAo+IE1lZGlhQ29kZWNEZWNDb250ZXh0ICpzKQo+ICB7Cj4gICAgICBpbnQgcmV0 ID0gMDsKPiAgICAgIGludCB3aWR0aCA9IDA7Cj4gQEAgLTQ2Myw2ICs2NDksNjMgQEAgZmFpbDoK PiAgICAgIHJldHVybiByZXQ7Cj4gIH0KPgo+ICtzdGF0aWMgaW50IG1lZGlhY29kZWNfZGVjX3Bh cnNlX2F1ZGlvX2Zvcm1hdChBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gTWVkaWFDb2RlY0RlY0Nv bnRleHQgKnMpCj4gK3sKPiArICAgIGludCByZXQgPSAwOwo+ICsgICAgaW50IHNhbXBsZV9yYXRl ID0gMDsKPiArICAgIGludCBjaGFubmVsX2NvdW50ID0gMDsKPiArICAgIGludCBjaGFubmVsX21h c2sgPSAwOwo+ICsgICAgaW50IHBjbV9lbmNvZGluZyA9IDA7Cj4gKyAgICBjaGFyICpmb3JtYXQg PSBOVUxMOwo+ICsKPiArICAgIGlmICghcy0+Zm9ybWF0KSB7Cj4gKyAgICAgICAgYXZfbG9nKGF2 Y3R4LCBBVl9MT0dfRVJST1IsICJPdXRwdXQgTWVkaWFGb3JtYXQgaXMgbm90IHNldFxuIik7Cj4g KyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPiArICAgIH0KPiArCj4gKyAgICBmb3Jt YXQgPSBmZl9BTWVkaWFGb3JtYXRfdG9TdHJpbmcocy0+Zm9ybWF0KTsKPiArICAgIGlmICghZm9y bWF0KSB7Cj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7Cj4gKyAgICB9Cj4gKyAg ICBhdl9sb2coYXZjdHgsIEFWX0xPR19ERUJVRywgIlBhcnNpbmcgTWVkaWFGb3JtYXQgJXNcbiIs IGZvcm1hdCk7Cj4gKwo+ICsgICAgLyogTWFuZGF0b3J5IGZpZWxkcyAqLwo+ICsgICAgQU1FRElB Rk9STUFUX0dFVF9JTlQzMihjaGFubmVsX2NvdW50LCAiY2hhbm5lbC1jb3VudCIsIDEpOwo+ICsg ICAgQU1FRElBRk9STUFUX0dFVF9JTlQzMihzYW1wbGVfcmF0ZSwgICAic2FtcGxlLXJhdGUiLCAg IDEpOwo+ICsKPiArICAgIEFNRURJQUZPUk1BVF9HRVRfSU5UMzIocGNtX2VuY29kaW5nLCAicGNt LWVuY29kaW5nIiwgMCk7Cj4gKyAgICBpZiAocGNtX2VuY29kaW5nKQo+ICsgICAgICAgIGF2Y3R4 LT5zYW1wbGVfZm10ICA9IG1jZGVjX21hcF9wY21fZm9ybWF0KGF2Y3R4LCBzLCBwY21fZW5jb2Rp bmcpOwo+ICsgICAgZWxzZQo+ICsgICAgICAgIGF2Y3R4LT5zYW1wbGVfZm10ID0gQVZfU0FNUExF X0ZNVF9TMTY7Cj4gKwo+ICsgICAgYXZjdHgtPnNhbXBsZV9yYXRlID0gc2FtcGxlX3JhdGU7Cj4g Kwo+ICsgICAgQU1FRElBRk9STUFUX0dFVF9JTlQzMihjaGFubmVsX21hc2ssICJjaGFubmVsLW1h c2siLCAwKTsKPiArICAgIGlmIChjaGFubmVsX21hc2spCj4gKyAgICAgICAgYXZfY2hhbm5lbF9s YXlvdXRfZnJvbV9tYXNrKCZhdmN0eC0+Y2hfbGF5b3V0LAo+IG1jZGVjX21hcF9jaGFubmVsX21h c2soYXZjdHgsIGNoYW5uZWxfbWFzaykpOwo+ICsgICAgZWxzZQo+ICsgICAgICAgIGF2X2NoYW5u ZWxfbGF5b3V0X2RlZmF1bHQoJmF2Y3R4LT5jaF9sYXlvdXQsIGNoYW5uZWxfY291bnQpOwo+ICsK PiArICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0lORk8sCj4gKyAgICAgICAgIk91dHB1dCBwYXJh bWV0ZXJzIGNoYW5uZWwtY291bnQ9JWQgY2hhbm5lbC1sYXlvdXQ9JXgKPiBzYW1wbGUtcmF0ZT0l ZFxuIiwKPiArICAgICAgICBjaGFubmVsX2NvdW50LCBjaGFubmVsX21hc2ssIHNhbXBsZV9yYXRl KTsKPiArCj4gK2ZhaWw6Cj4gKyAgICBhdl9mcmVlcCgmZm9ybWF0KTsKPiArICAgIHJldHVybiBy ZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbWVkaWFjb2RlY19kZWNfcGFyc2VfZm9ybWF0KEFW Q29kZWNDb250ZXh0ICphdmN0eCwKPiBNZWRpYUNvZGVjRGVjQ29udGV4dCAqcykKPiArewo+ICsg ICAgaWYgKGF2Y3R4LT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9BVURJTykKPiArICAgICAg ICByZXR1cm4gbWVkaWFjb2RlY19kZWNfcGFyc2VfYXVkaW9fZm9ybWF0KGF2Y3R4LCBzKTsKPiAr ICAgIGVsc2UgaWYgKGF2Y3R4LT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9WSURFTykKPiAr ICAgICAgICByZXR1cm4gbWVkaWFjb2RlY19kZWNfcGFyc2VfdmlkZW9fZm9ybWF0KGF2Y3R4LCBz KTsKPiArICAgIGVsc2UKPiArICAgICAgICBhdl9hc3NlcnQwKDApOwo+ICt9Cj4gKwo+ICBzdGF0 aWMgaW50IG1lZGlhY29kZWNfZGVjX2ZsdXNoX2NvZGVjKEFWQ29kZWNDb250ZXh0ICphdmN0eCwK PiBNZWRpYUNvZGVjRGVjQ29udGV4dCAqcykKPiAgewo+ICAgICAgRkZBTWVkaWFDb2RlYyAqY29k ZWMgPSBzLT5jb2RlYzsKPiBAQCAtNDg2LDExICs3MjksOSBAQCBzdGF0aWMgaW50IG1lZGlhY29k ZWNfZGVjX2ZsdXNoX2NvZGVjKEFWQ29kZWNDb250ZXh0Cj4gKmF2Y3R4LCBNZWRpYUNvZGVjRGVj Q29udGV4Cj4gICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gLWludCBmZl9tZWRpYWNvZGVjX2RlY19p bml0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgTWVkaWFDb2RlY0RlY0NvbnRleHQgKnMsCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1pbWUsIEZGQU1lZGlhRm9ybWF0 ICpmb3JtYXQpCj4gK3N0YXRpYyBpbnQgbWVkaWFjb2RlY19kZWNfZ2V0X3ZpZGVvX2NvZGVjKEFW Q29kZWNDb250ZXh0ICphdmN0eCwKPiBNZWRpYUNvZGVjRGVjQ29udGV4dCAqcywKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbWltZSwKPiBG RkFNZWRpYUZvcm1hdCAqZm9ybWF0KQo+ICB7Cj4gLSAgICBpbnQgcmV0ID0gMDsKPiAtICAgIGlu dCBzdGF0dXM7Cj4gICAgICBpbnQgcHJvZmlsZTsKPgo+ICAgICAgZW51bSBBVlBpeGVsRm9ybWF0 IHBpeF9mbXQ7Cj4gQEAgLTQ5OSwxMiArNzQwLDYgQEAgaW50IGZmX21lZGlhY29kZWNfZGVjX2lu aXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+IE1lZGlhQ29kZWNEZWNDb250ZXh0ICpzLAo+ICAg ICAgICAgIEFWX1BJWF9GTVRfTk9ORSwKPiAgICAgIH07Cj4KPiAtICAgIHMtPmF2Y3R4ID0gYXZj dHg7Cj4gLSAgICBhdG9taWNfaW5pdCgmcy0+cmVmY291bnQsIDEpOwo+IC0gICAgYXRvbWljX2lu aXQoJnMtPmh3X2J1ZmZlcl9jb3VudCwgMCk7Cj4gLSAgICBhdG9taWNfaW5pdCgmcy0+c2VyaWFs LCAxKTsKPiAtICAgIHMtPmN1cnJlbnRfaW5wdXRfYnVmZmVyID0gLTE7Cj4gLQo+ICAgICAgcGl4 X2ZtdCA9IGZmX2dldF9mb3JtYXQoYXZjdHgsIHBpeF9mbXRzKTsKPiAgICAgIGlmIChwaXhfZm10 ID09IEFWX1BJWF9GTVRfTUVESUFDT0RFQykgewo+ICAgICAgICAgIEFWTWVkaWFDb2RlY0NvbnRl eHQgKnVzZXJfY3R4ID0gYXZjdHgtPmh3YWNjZWxfY29udGV4dDsKPiBAQCAtNTM2LDggKzc3MSw3 IEBAIGludCBmZl9tZWRpYWNvZGVjX2RlY19pbml0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwKPiBN ZWRpYUNvZGVjRGVjQ29udGV4dCAqcywKPiAgICAgICAgICAvLyBnZXRDb2RlY05hbWVCeVR5cGUo KSBjYW4gZmFpbCBkdWUgdG8gbWlzc2luZyBKVk0sIHdoaWxlIE5ESwo+ICAgICAgICAgIC8vIG1l ZGlhY29kZWMgY2FuIGJlIHVzZWQgd2l0aG91dCBKVk0uCj4gICAgICAgICAgaWYgKCFzLT51c2Vf bmRrX2NvZGVjKSB7Cj4gLSAgICAgICAgICAgIHJldCA9IEFWRVJST1JfRVhURVJOQUw7Cj4gLSAg ICAgICAgICAgIGdvdG8gZmFpbDsKPiArICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJO QUw7Cj4gICAgICAgICAgfQo+ICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0lORk8sICJG YWlsZWQgdG8gZ2V0Q29kZWNOYW1lQnlUeXBlXG4iKTsKPiAgICAgIH0gZWxzZSB7Cj4gQEAgLTU1 NiwxMCArNzkwLDUxIEBAIGludCBmZl9tZWRpYWNvZGVjX2RlY19pbml0KEFWQ29kZWNDb250ZXh0 ICphdmN0eCwKPiBNZWRpYUNvZGVjRGVjQ29udGV4dCAqcywKPiAgICAgIH0KPiAgICAgIGlmICgh cy0+Y29kZWMpIHsKPiAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxl ZCB0byBjcmVhdGUgbWVkaWEgZGVjb2RlciBmb3IKPiB0eXBlICVzIGFuZCBuYW1lICVzXG4iLCBt aW1lLCBzLT5jb2RlY19uYW1lKTsKPiAtICAgICAgICByZXQgPSBBVkVSUk9SX0VYVEVSTkFMOwo+ IC0gICAgICAgIGdvdG8gZmFpbDsKPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsK PiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBtZWRp YWNvZGVjX2RlY19nZXRfYXVkaW9fY29kZWMoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+IE1lZGlh Q29kZWNEZWNDb250ZXh0ICpzLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICptaW1lLAo+IEZGQU1lZGlhRm9ybWF0ICpmb3JtYXQpCj4gK3sK PiArICAgIHMtPmNvZGVjID0gZmZfQU1lZGlhQ29kZWNfY3JlYXRlRGVjb2RlckJ5VHlwZShtaW1l LCBzLT51c2VfbmRrX2NvZGVjKTsKPiArICAgIGlmICghcy0+Y29kZWMpIHsKPiArICAgICAgICBh dl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBjcmVhdGUgbWVkaWEgZGVjb2Rl ciBmb3IKPiBtaW1lICVzXG4iLCBtaW1lKTsKPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRF Uk5BTDsKPiArICAgIH0KPiArCj4gKyAgICBzLT5jb2RlY19uYW1lID0gZmZfQU1lZGlhQ29kZWNf Z2V0TmFtZShzLT5jb2RlYyk7Cj4gKyAgICBpZiAoIXMtPmNvZGVjX25hbWUpIHsKPiArICAgICAg ICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBnZXQgY29kZWMgbmFtZSIp Owo+ICsgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOwo+ICAgICAgfQo+Cj4gKyAgICBy ZXR1cm4gMDsKPiArfQo+ICsKPiAraW50IGZmX21lZGlhY29kZWNfZGVjX2luaXQoQVZDb2RlY0Nv bnRleHQgKmF2Y3R4LCBNZWRpYUNvZGVjRGVjQ29udGV4dCAqcywKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqbWltZSwgRkZBTWVkaWFGb3JtYXQgKmZvcm1hdCkKPiAr ewo+ICsgICAgaW50IHJldDsKPiArICAgIGludCBzdGF0dXM7Cj4gKwo+ICsgICAgcy0+YXZjdHgg PSBhdmN0eDsKPiArICAgIGF0b21pY19pbml0KCZzLT5yZWZjb3VudCwgMSk7Cj4gKyAgICBhdG9t aWNfaW5pdCgmcy0+aHdfYnVmZmVyX2NvdW50LCAwKTsKPiArICAgIGF0b21pY19pbml0KCZzLT5z ZXJpYWwsIDEpOwo+ICsgICAgcy0+Y3VycmVudF9pbnB1dF9idWZmZXIgPSAtMTsKPiArCj4gKyAg ICBpZiAoYXZjdHgtPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPKQo+ICsgICAgICAg IHJldCA9IG1lZGlhY29kZWNfZGVjX2dldF9hdWRpb19jb2RlYyhhdmN0eCwgcywgbWltZSwgZm9y bWF0KTsKPiArICAgIGVsc2UgaWYgKGF2Y3R4LT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9W SURFTykKPiArICAgICAgICByZXQgPSBtZWRpYWNvZGVjX2RlY19nZXRfdmlkZW9fY29kZWMoYXZj dHgsIHMsIG1pbWUsIGZvcm1hdCk7Cj4gKyAgICBlbHNlCj4gKyAgICAgICAgYXZfYXNzZXJ0MCgw KTsKPiArICAgIGlmIChyZXQgPCAwKQo+ICsgICAgICAgIGdvdG8gZmFpbDsKPiArCj4gICAgICBz dGF0dXMgPSBmZl9BTWVkaWFDb2RlY19jb25maWd1cmUocy0+Y29kZWMsIGZvcm1hdCwgcy0+c3Vy ZmFjZSwgTlVMTCwKPiAwKTsKPiAgICAgIGlmIChzdGF0dXMgPCAwKSB7Cj4gICAgICAgICAgY2hh ciAqZGVzYyA9IGZmX0FNZWRpYUZvcm1hdF90b1N0cmluZyhmb3JtYXQpOwo+IEBAIC01ODMsMTIg Kzg1OCwxNCBAQCBpbnQgZmZfbWVkaWFjb2RlY19kZWNfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZj dHgsCj4gTWVkaWFDb2RlY0RlY0NvbnRleHQgKnMsCj4gICAgICAgICAgZ290byBmYWlsOwo+ICAg ICAgfQo+Cj4gLSAgICBzLT5mb3JtYXQgPSBmZl9BTWVkaWFDb2RlY19nZXRPdXRwdXRGb3JtYXQo cy0+Y29kZWMpOwo+IC0gICAgaWYgKHMtPmZvcm1hdCkgewo+IC0gICAgICAgIGlmICgocmV0ID0g bWVkaWFjb2RlY19kZWNfcGFyc2VfZm9ybWF0KGF2Y3R4LCBzKSkgPCAwKSB7Cj4gLSAgICAgICAg ICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLAo+IC0gICAgICAgICAgICAgICAgIkZhaWxl ZCB0byBjb25maWd1cmUgY29udGV4dFxuIik7Cj4gLSAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAr ICAgIGlmIChhdmN0eC0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfVklERU8pIHsKPiArICAg ICAgICBzLT5mb3JtYXQgPSBmZl9BTWVkaWFDb2RlY19nZXRPdXRwdXRGb3JtYXQocy0+Y29kZWMp Owo+ICsgICAgICAgIGlmIChzLT5mb3JtYXQpIHsKPiArICAgICAgICAgICAgaWYgKChyZXQgPSBt ZWRpYWNvZGVjX2RlY19wYXJzZV9mb3JtYXQoYXZjdHgsIHMpKSA8IDApIHsKPiArICAgICAgICAg ICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLAo+ICsgICAgICAgICAgICAgICAgICAg ICJGYWlsZWQgdG8gY29uZmlndXJlIGNvbnRleHRcbiIpOwo+ICsgICAgICAgICAgICAgICAgZ290 byBmYWlsOwo+ICsgICAgICAgICAgICB9Cj4gICAgICAgICAgfQo+ICAgICAgfQo+Cj4gLS0KPiAy LjQ1LjIKPgoKUGluZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0 dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJz Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZm bXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==