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 F3C2E40529 for ; Tue, 21 Dec 2021 10:44:49 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C41D068AE80; Tue, 21 Dec 2021 12:44:46 +0200 (EET) Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 764D968A4CD for ; Tue, 21 Dec 2021 12:44:40 +0200 (EET) Received: by mail-io1-f50.google.com with SMTP id e128so17142817iof.1 for ; Tue, 21 Dec 2021 02:44:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=luminvent-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=KSISVGtT8G+z7G2ppREzk1FL88ZnK7SgSanC4RXC154=; b=rAEn8oBDfLTk+0d/I0V9TBsf3c87Kig3jMU2mnOKNk5bojznM/41SjexWjz35XUzUr CGxRZFXXWGvkMsTBOi0sTQJYacqLBiWUhhzqOcYM/JLvKYE4zUFYkxa55Xfx1t+PTOXP ijJp795ztZ7oecqrHjlhyYQ/8R+WbIxlX5hO0Z/U2A/3Bzyz+Yku7xx5h0T1PVjRlu/M QILTpCv4fJe7ZhXMgOVhAG+6uIXbZmGyeUgqGEhQuDd84RN0cc8SWfdYi7BdxNs/ZKgQ QcHNuESvIvjJTl4fhCTCi2l7deXdjGEdSP3GRcqfXrx57yT6YvK5kFXkbPPjdla79Jqg mxaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=KSISVGtT8G+z7G2ppREzk1FL88ZnK7SgSanC4RXC154=; b=PYKrAdlcJ8+UIBejGmDOlb6Cq8MTSShy5/CgfSHRUXFk1fnYtGfWaW+fnupD1ys1pW EC9d3Z5nmc6e0OKovV0+714rQmCR+EggctWa2ZDjN+tCvE/iM31qkTS3ki/oJY404WH3 kkCkiAmMAFkirqBkL0BSmuC7fw8D95YJwAswAEdIm44g64HU/oXntoERaYdm0ksT7xEg hoU8SKGAkVifr5dVQsezjJTy4ubcdFAzyM47SfkI6AcgB9Y/N+ZAlo3Z/+Y8uRSOdo0g 1gUWd602vN7qiKx14ruQXF7gFnmalkacMsRdxGQIb/bKBlv1Ijhi5RNGFNcQfj6NFTDe +HYA== X-Gm-Message-State: AOAM531cXRrpfPc4waFJsZD0lyA2lP342LqZlqfyyX6HvTcXA/vPt3+/ YHBdLFBR4gAJ8ycYZMRIpocg3LsKC/32yjeOtUA60DgdMdw= X-Google-Smtp-Source: ABdhPJwv1wckmDt2fORIuaB9VldWjtGhuE6P0Y9waSgrJ/6GydG0El9qMelDP19kFe4vVymhvd6ZwpbPFko60UOm2qA= X-Received: by 2002:a05:6602:3d3:: with SMTP id g19mr1232105iov.104.1640083478261; Tue, 21 Dec 2021 02:44:38 -0800 (PST) MIME-Version: 1.0 References: <20211203095742.16108-1-marc-antoine.arnaud@luminvent.com> In-Reply-To: From: Marc-Antoine ARNAUD Date: Tue, 21 Dec 2021 11:44:27 +0100 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 1/2] avformat/mxf: support MCA audio information 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: TGUgdmVuLiAxNyBkw6ljLiAyMDIxIMOgIDE5OjEyLCBNYXJ0b24gQmFsaW50IDxjdXNAcGFzc3dk Lmh1PiBhIMOpY3JpdCA6Cgo+Cj4KPiBPbiBGcmksIDE3IERlYyAyMDIxLCBNYXJjLUFudG9pbmUg QVJOQVVEIHdyb3RlOgo+Cj4gPiBIaSBhbGwsCj4gPgo+ID4gQ2FuIEkgaGF2ZSBhbiB1cGRhdGUg b24gdGhpcyBwYXRjaCBzdWJtaXNzaW9uID8KPiA+IElzIHNvbWV0aGluZyByZXF1aXJlZCB0byBi ZSBkb25lIGJlZm9yZSBpdCBjYW4gYmUgbWVyZ2VkID8KPgo+IE5ldyBjaGFubmVsIGxheW91dCBB UEkgaXMgb24gaXRzIHdheSwgd2hpY2ggbWFrZXMgaW4tZGVtdXhlciBjaGFubmVsCj4gcmVvcmRl cmluZyB1bmVlZGVkLiBUaGVyZWZvcmUgdGhlIHJlb3JkZXJpbmcgb3B0aW9uIHNob3VsZCBub3Qg YmUgYWRkZWQKPiBhcyBpdCBpcyBpbiB0aGlzIHBhdGNoLiBJIGNhbiByZXdvcmsgdGhlIHBhdGNo IGFmdGVyIHRoZSBjaGFubmVsIGxheW91dAo+IEFQSSBpcyBpbi4gKHNob3VsZCBoYXBwZW4gaW4g YSBjb3VwbGUgb2Ygd2Vla3MgYXQgbW9zdCkuCj4KPiBSZWdhcmRzLAo+IE1hcnRvbgo+CgpTbyBp dCB3aWxsIGhhcHBlbiBvbmx5IGFmdGVyIHRoZSByZWxlYXNlIDUgb2YgRkZNcGVnIHJpZ2h0ID8K CklzIGl0IHBvc3NpYmxlIHRvIG1lcmdlIGl0LCBhbmQgd2UgY2FuIHJld29yayBpdCBhZnRlciB0 aGUgbmV3IEFQSSBpcwpyZWxlYXNlZCA/ClBhdGNoZXMgYXJlIHJlbGF0ZWQgdG8gSU1GIChuZXcg Zm9ybWF0KSBwYXRjaGVzLCBhbmQgaWYgRkZtcGVnIGNhbiBhY2NlcHQKSU1GIHdpdGhvdXQgTUNB IHN1cHBvcnQgaXQgd2lsbCBnZW5lcmF0ZSBhIGxvdCBvZiBlcnJvcnMgaW4gYXVkaW8gbWFwcGlu Zy4KU28gZXZlbiBpZiBpdCdzIG5vdCBwZXJmb3JtYW50IGZvciBub3csIGlzIGl0IHBvc3NpYmxl IHRvIGltYWdpbmUgdG8gbWVyZ2UKcGF0Y2hlcyBhbmQgcmV3b3JrIGFmdGVyID8KClRoYW5rcyBh IGxvdCwKTWFyYy1BbnRvaW5lCgoKCj4KPiA+Cj4gPiBUaGFua3MgeW91LAo+ID4gTWFyYy1BbnRv aW5lCj4gPgo+ID4KPiA+IExlIHZlbi4gMyBkw6ljLiAyMDIxIMOgIDEwOjU3LCBNYXJjLUFudG9p bmUgQXJuYXVkCj4gPiA8bWFyYy1hbnRvaW5lLmFybmF1ZEBsdW1pbnZlbnQuY29tPiBhIMOpY3Jp dCA6Cj4gPj4KPiA+PiAtLS0KPiA+PiAgZG9jL2RlbXV4ZXJzLnRleGkgICAgIHwgIDEwICsrCj4g Pj4gIGxpYmF2Zm9ybWF0L214Zi5oICAgICB8ICAgMyArCj4gPj4gIGxpYmF2Zm9ybWF0L214ZmRl Yy5jICB8IDMzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ PiAgbGliYXZmb3JtYXQvdmVyc2lvbi5oIHwgICAyICstCj4gPj4gIDQgZmlsZXMgY2hhbmdlZCwg MzQzIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEv ZG9jL2RlbXV4ZXJzLnRleGkgYi9kb2MvZGVtdXhlcnMudGV4aQo+ID4+IGluZGV4IGNhYjhhNzA3 MmMuLjIzYjY3NTM2MDIgMTAwNjQ0Cj4gPj4gLS0tIGEvZG9jL2RlbXV4ZXJzLnRleGkKPiA+PiAr KysgYi9kb2MvZGVtdXhlcnMudGV4aQo+ID4+IEBAIC03NzAsNiArNzcwLDE2IEBAIE1KUEVHIHN0 cmVhbS4gVHVybmluZyB0aGlzIG9wdGlvbiBvbiBieSBzZXR0aW5nIGl0Cj4gdG8gMSB3aWxsIHJl c3VsdCBpbiBhIHN0cmljdGUKPiA+PiAgb2YgdGhlIGJvdW5kYXJ5IHZhbHVlLgo+ID4+ICBAZW5k IHRhYmxlCj4gPj4KPiA+PiArQHNlY3Rpb24gbXhmCj4gPj4gKwo+ID4+ICtNWEYgZGVtdXhlci4K PiA+PiArCj4gPj4gK0B0YWJsZSBAb3B0aW9uCj4gPj4gKwo+ID4+ICtAaXRlbSAtc2tpcF9hdWRp b19yZW9yZGVyaW5nIEB2YXJ7Ym9vbH0KPiA+PiArVGhpcyBvcHRpb24gd2lsbCBkaXNhYmxlIHRo ZSBhdWRpbyByZW9yZGVyaW5nIGJhc2VkIG9uIE11bHRpLUNoYW5uZWwKPiBBdWRpbyAoTUNBKSBs YWJlbGxpbmcgKFNNUFRFIFNULTM3Ny00KS4KPiA+PiArQGVuZCB0YWJsZQo+ID4+ICsKPiA+PiAg QHNlY3Rpb24gcmF3dmlkZW8KPiA+Pgo+ID4+ICBSYXcgdmlkZW8gZGVtdXhlci4KPiA+PiBkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvbXhmLmggYi9saWJhdmZvcm1hdC9teGYuaAo+ID4+IGluZGV4 IGZlOWM1MjczMmMuLmQ1M2ExNmRmNTEgMTAwNjQ0Cj4gPj4gLS0tIGEvbGliYXZmb3JtYXQvbXhm LmgKPiA+PiArKysgYi9saWJhdmZvcm1hdC9teGYuaAo+ID4+IEBAIC01MCw2ICs1MCw5IEBAIGVu dW0gTVhGTWV0YWRhdGFTZXRUeXBlIHsKPiA+PiAgICAgIFRhZ2dlZFZhbHVlLAo+ID4+ICAgICAg VGFwZURlc2NyaXB0b3IsCj4gPj4gICAgICBBVkNTdWJEZXNjcmlwdG9yLAo+ID4+ICsgICAgQXVk aW9DaGFubmVsTGFiZWxTdWJEZXNjcmlwdG9yLAo+ID4+ICsgICAgU291bmRmaWVsZEdyb3VwTGFi ZWxTdWJEZXNjcmlwdG9yLAo+ID4+ICsgICAgR3JvdXBPZlNvdW5kZmllbGRHcm91cHNMYWJlbFN1 YkRlc2NyaXB0b3IsCj4gPj4gIH07Cj4gPj4KPiA+PiAgZW51bSBNWEZGcmFtZUxheW91dCB7Cj4g Pj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L214ZmRlYy5jIGIvbGliYXZmb3JtYXQvbXhmZGVj LmMKPiA+PiBpbmRleCBhZjlkMzNmNzk2Li42ZTFkYTc1NTQyIDEwMDY0NAo+ID4+IC0tLSBhL2xp YmF2Zm9ybWF0L214ZmRlYy5jCj4gPj4gKysrIGIvbGliYXZmb3JtYXQvbXhmZGVjLmMKPiA+PiBA QCAtNTEsMTEgKzUxLDE0IEBACj4gPj4gICNpbmNsdWRlICJsaWJhdnV0aWwvbWFzdGVyaW5nX2Rp c3BsYXlfbWV0YWRhdGEuaCIKPiA+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9tYXRoZW1hdGljcy5o Igo+ID4+ICAjaW5jbHVkZSAibGliYXZjb2RlYy9ieXRlc3RyZWFtLmgiCj4gPj4gKyNpbmNsdWRl ICJsaWJhdmNvZGVjL2ludGVybmFsLmgiCj4gPj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvY2hhbm5l bF9sYXlvdXQuaCIKPiA+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3JpdGUuaCIKPiA+ PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9wYXJzZXV0aWxzLmgiCj4gPj4gICNpbmNsdWRlICJsaWJh dnV0aWwvdGltZWNvZGUuaCIKPiA+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKPiA+PiAg I2luY2x1ZGUgImF2Zm9ybWF0LmgiCj4gPj4gKyNpbmNsdWRlICJhdmxhbmd1YWdlLmgiCj4gPj4g ICNpbmNsdWRlICJpbnRlcm5hbC5oIgo+ID4+ICAjaW5jbHVkZSAibXhmLmgiCj4gPj4KPiA+PiBA QCAtMTc3LDYgKzE4MCw4IEBAIHR5cGVkZWYgc3RydWN0IHsKPiA+PiAgICAgIGludCBib2R5X3Np ZDsKPiA+PiAgICAgIE1YRldyYXBwaW5nU2NoZW1lIHdyYXBwaW5nOwo+ID4+ICAgICAgaW50IGVk aXRfdW5pdHNfcGVyX3BhY2tldDsgLyogaG93IG1hbnkgZWRpdCB1bml0cyB0byByZWFkIGF0IGEK PiB0aW1lIChQQ00sIENsaXBXcmFwcGVkKSAqLwo+ID4+ICsgICAgaW50IHJlcXVpcmVfcmVvcmRl cmluZzsKPiA+PiArICAgIGludCBjaGFubmVsX29yZGVyaW5nW0ZGX1NBTkVfTkJfQ0hBTk5FTFNd Owo+ID4+ICB9IE1YRlRyYWNrOwo+ID4+Cj4gPj4gIHR5cGVkZWYgc3RydWN0IE1YRkRlc2NyaXB0 b3Igewo+ID4+IEBAIC0yMDUsNiArMjEwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgTVhGRGVzY3JpcHRv ciB7Cj4gPj4gICAgICB1bnNpZ25lZCBpbnQgdmVydF9zdWJzYW1wbGluZzsKPiA+PiAgICAgIFVJ RCAqZmlsZV9kZXNjcmlwdG9yc19yZWZzOwo+ID4+ICAgICAgaW50IGZpbGVfZGVzY3JpcHRvcnNf Y291bnQ7Cj4gPj4gKyAgICBVSUQgKnN1Yl9kZXNjcmlwdG9yc19yZWZzOwo+ID4+ICsgICAgaW50 IHN1Yl9kZXNjcmlwdG9yc19jb3VudDsKPiA+PiAgICAgIGludCBsaW5rZWRfdHJhY2tfaWQ7Cj4g Pj4gICAgICB1aW50OF90ICpleHRyYWRhdGE7Cj4gPj4gICAgICBpbnQgZXh0cmFkYXRhX3NpemU7 Cj4gPj4gQEAgLTIxNyw2ICsyMjQsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgTVhGRGVzY3JpcHRvciB7 Cj4gPj4gICAgICBzaXplX3QgY29sbF9zaXplOwo+ID4+ICB9IE1YRkRlc2NyaXB0b3I7Cj4gPj4K PiA+PiArdHlwZWRlZiBzdHJ1Y3QgTVhGTUNBU3ViRGVzY3JpcHRvciB7Cj4gPj4gKyAgICBNWEZN ZXRhZGF0YVNldCBtZXRhOwo+ID4+ICsgICAgVUlEIHVpZDsKPiA+PiArICAgIFVJRCBtY2FfbGlu a19pZDsKPiA+PiArICAgIFVJRCBzb3VuZGZpZWxkX2dyb3VwX2xpbmtfaWQ7Cj4gPj4gKyAgICBV SUQgKmdyb3VwX29mX3NvdW5kZmllbGRfZ3JvdXBzX2xpbmtfaWRfcmVmczsKPiA+PiArICAgIGlu dCBncm91cF9vZl9zb3VuZGZpZWxkX2dyb3Vwc19saW5rX2lkX2NvdW50Owo+ID4+ICsgICAgVUlE IG1jYV9sYWJlbF9kaWN0aW9uYXJ5X2lkOwo+ID4+ICsgICAgaW50IG1jYV9jaGFubmVsX2lkOwo+ ID4+ICsgICAgY2hhciAqbGFuZ3VhZ2U7Cj4gPj4gK30gTVhGTUNBU3ViRGVzY3JpcHRvcjsKPiA+ PiArCj4gPj4gIHR5cGVkZWYgc3RydWN0IE1YRkluZGV4VGFibGVTZWdtZW50IHsKPiA+PiAgICAg IE1YRk1ldGFkYXRhU2V0IG1ldGE7Cj4gPj4gICAgICBpbnQgZWRpdF91bml0X2J5dGVfY291bnQ7 Cj4gPj4gQEAgLTI5MCw2ICszMDksNyBAQCB0eXBlZGVmIHN0cnVjdCBNWEZDb250ZXh0IHsKPiA+ PiAgICAgIGludCBuYl9pbmRleF90YWJsZXM7Cj4gPj4gICAgICBNWEZJbmRleFRhYmxlICppbmRl eF90YWJsZXM7Cj4gPj4gICAgICBpbnQgZWlhNjA4X2V4dHJhY3Q7Cj4gPj4gKyAgICBpbnQgc2tp cF9hdWRpb19yZW9yZGVyaW5nOwo+ID4+ICB9IE1YRkNvbnRleHQ7Cj4gPj4KPiA+PiAgLyogTk9U RToga2x2X29mZnNldCBpcyBub3Qgc2V0ICgtMSkgZm9yIGxvY2FsIGtleXMgKi8KPiA+PiBAQCAt MzExLDYgKzMzMSw3IEBAIHN0YXRpYyBjb25zdCB1aW50OF90IG14Zl9zeXN0ZW1faXRlbV9rZXlf Y3BbXQo+ICAgICAgICAgPSB7IDB4MDYsMHgwZSwweDJiLDB4Cj4gPj4gIHN0YXRpYyBjb25zdCB1 aW50OF90IG14Zl9zeXN0ZW1faXRlbV9rZXlfZ2NbXSAgICAgICAgICAgICAgPSB7Cj4gMHgwNiww eDBlLDB4MmIsMHgzNCwweDAyLDB4NTMsMHgwMSwweDAxLDB4MGQsMHgwMSwweDAzLDB4MDEsMHgx NCB9Owo+ID4+ICBzdGF0aWMgY29uc3QgdWludDhfdCBteGZfa2x2X2tleVtdICAgICAgICAgICAg ICAgICAgICAgICAgID0gewo+IDB4MDYsMHgwZSwweDJiLDB4MzQgfTsKPiA+PiAgc3RhdGljIGNv bnN0IHVpbnQ4X3QgbXhmX2FwcGxlX2NvbGxfcHJlZml4W10gICAgICAgICAgICAgICA9IHsKPiAw eDA2LDB4MGUsMHgyYiwweDM0LDB4MDEsMHgwMSwweDAxLDB4MGUsMHgwZSwweDIwLDB4MDQsMHgw MSwweDA1LDB4MDMsMHgwMQo+IH07Cj4gPj4gKwo+ID4+ICAvKiBjb21wbGV0ZSBrZXlzIHRvIG1h dGNoICovCj4gPj4gIHN0YXRpYyBjb25zdCB1aW50OF90IG14Zl9jcnlwdG9fc291cmNlX2NvbnRh aW5lcl91bFtdICAgICAgPSB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDAxLDB4MDEsMHgwMSww eDA5LDB4MDYsMHgwMSwweDAxLDB4MDIsMHgwMiwweDAwLDB4MDAsMHgwMAo+IH07Cj4gPj4gIHN0 YXRpYyBjb25zdCB1aW50OF90IG14Zl9lbmNyeXB0ZWRfdHJpcGxldF9rZXlbXSAgICAgICAgICAg PSB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDAyLDB4MDQsMHgwMSwweDA3LDB4MGQsMHgwMSww eDAzLDB4MDEsMHgwMiwweDdlLDB4MDEsMHgwMAo+IH07Cj4gPj4gQEAgLTMyMyw2ICszNDQsMTcg QEAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgbXhmX2luZGlyZWN0X3ZhbHVlX3V0ZjE2YmVbXQo+ICAg ICAgICAgPSB7IDB4NDIsMHgwMSwweDEwLDB4Cj4gPj4gIHN0YXRpYyBjb25zdCB1aW50OF90IG14 Zl9hcHBsZV9jb2xsX21heF9jbGxbXSAgICAgICAgICAgICAgPSB7Cj4gMHgwNiwweDBlLDB4MmIs MHgzNCwweDAxLDB4MDEsMHgwMSwweDBlLDB4MGUsMHgyMCwweDA0LDB4MDEsMHgwNSwweDAzLDB4 MDEsMHgwMQo+IH07Cj4gPj4gIHN0YXRpYyBjb25zdCB1aW50OF90IG14Zl9hcHBsZV9jb2xsX21h eF9mYWxsW10gICAgICAgICAgICAgPSB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDAxLDB4MDEs MHgwMSwweDBlLDB4MGUsMHgyMCwweDA0LDB4MDEsMHgwNSwweDAzLDB4MDEsMHgwMgo+IH07Cj4g Pj4KPiA+PiArc3RhdGljIGNvbnN0IHVpbnQ4X3QgbXhmX21jYV9sYWJlbF9kaWN0aW9uYXJ5X2lk W10gICAgICAgICA9IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDEsMHgwMSwweDAxLDB4MGUs MHgwMSwweDAzLDB4MDcsMHgwMSwweDAxLDB4MDAsMHgwMCwweDAwCj4gfTsKPiA+PiArc3RhdGlj IGNvbnN0IHVpbnQ4X3QgbXhmX21jYV90YWdfc3ltYm9sW10gICAgICAgICAgICAgICAgICA9IHsK PiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDEsMHgwMSwweDAxLDB4MGUsMHgwMSwweDAzLDB4MDcs MHgwMSwweDAyLDB4MDAsMHgwMCwweDAwCj4gfTsKPiA+PiArc3RhdGljIGNvbnN0IHVpbnQ4X3Qg bXhmX21jYV90YWdfbmFtZVtdICAgICAgICAgICAgICAgICAgICA9IHsKPiAweDA2LDB4MGUsMHgy YiwweDM0LDB4MDEsMHgwMSwweDAxLDB4MGUsMHgwMSwweDAzLDB4MDcsMHgwMSwweDAzLDB4MDAs MHgwMCwweDAwCj4gfTsKPiA+PiArc3RhdGljIGNvbnN0IHVpbnQ4X3QgbXhmX2dyb3VwX29mX3Nv dW5kZmllbGRfZ3JvdXBzX2xpbmtfaWRbXSA9IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDEs MHgwMSwweDAxLDB4MGUsMHgwMSwweDAzLDB4MDcsMHgwMSwweDA0LDB4MDAsMHgwMCwweDAwCj4g fTsKPiA+PiArc3RhdGljIGNvbnN0IHVpbnQ4X3QgbXhmX21jYV9saW5rX2lkW10gICAgICAgICAg ICAgICAgICAgICA9IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDEsMHgwMSwweDAxLDB4MGUs MHgwMSwweDAzLDB4MDcsMHgwMSwweDA1LDB4MDAsMHgwMCwweDAwCj4gfTsKPiA+PiArc3RhdGlj IGNvbnN0IHVpbnQ4X3QgbXhmX21jYV9jaGFubmVsX2lkW10gICAgICAgICAgICAgICAgICA9IHsK PiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDEsMHgwMSwweDAxLDB4MGUsMHgwMSwweDAzLDB4MDQs MHgwYSwweDAwLDB4MDAsMHgwMCwweDAwCj4gfTsKPiA+PiArc3RhdGljIGNvbnN0IHVpbnQ4X3Qg bXhmX3NvdW5kZmllbGRfZ3JvdXBfbGlua19pZFtdICAgICAgICA9IHsKPiAweDA2LDB4MGUsMHgy YiwweDM0LDB4MDEsMHgwMSwweDAxLDB4MGUsMHgwMSwweDAzLDB4MDcsMHgwMSwweDA2LDB4MDAs MHgwMCwweDAwCj4gfTsKPiA+PiArc3RhdGljIGNvbnN0IHVpbnQ4X3QgbXhmX21jYV9yZmM1NjQ2 X3Nwb2tlbl9sYW5ndWFnZVtdICAgICA9IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDEsMHgw MSwweDAxLDB4MGQsMHgwMywweDAxLDB4MDEsMHgwMiwweDAzLDB4MTUsMHgwMCwweDAwCj4gfTsK PiA+PiArCj4gPj4gK3N0YXRpYyBjb25zdCB1aW50OF90IG14Zl9zdWJfZGVzY3JpcHRvcltdICAg ICAgICAgICAgICAgICAgPSB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDAxLDB4MDEsMHgwMSww eDA5LDB4MDYsMHgwMSwweDAxLDB4MDQsMHgwNiwweDEwLDB4MDAsMHgwMAo+IH07Cj4gPj4gKwo+ ID4+ICBzdGF0aWMgY29uc3QgdWludDhfdCBteGZfbWFzdGVyaW5nX2Rpc3BsYXlfcHJlZml4WzEz XSAgICAgID0gewo+IEZGX01YRl9NYXN0ZXJpbmdEaXNwbGF5X1BSRUZJWCB9Owo+ID4+ICBzdGF0 aWMgY29uc3QgdWludDhfdCBteGZfbWFzdGVyaW5nX2Rpc3BsYXlfdWxzWzRdWzE2XSA9IHsKPiA+ PiAgICAgIEZGX01YRl9NYXN0ZXJpbmdEaXNwbGF5UHJpbWFyaWVzLAo+ID4+IEBAIC0zNDMsNiAr Mzc1LDEzIEBAIHN0YXRpYyB2b2lkIG14Zl9mcmVlX21ldGFkYXRhc2V0KE1YRk1ldGFkYXRhU2V0 Cj4gKipjdHgsIGludCBmcmVlY3R4KQo+ID4+ICAgICAgICAgIGF2X2ZyZWVwKCYoKE1YRkRlc2Ny aXB0b3IgKikqY3R4KS0+bWFzdGVyaW5nKTsKPiA+PiAgICAgICAgICBhdl9mcmVlcCgmKChNWEZE ZXNjcmlwdG9yICopKmN0eCktPmNvbGwpOwo+ID4+ICAgICAgICAgIGF2X2ZyZWVwKCYoKE1YRkRl c2NyaXB0b3IgKikqY3R4KS0+ZmlsZV9kZXNjcmlwdG9yc19yZWZzKTsKPiA+PiArICAgICAgICBh dl9mcmVlcCgmKChNWEZEZXNjcmlwdG9yICopKmN0eCktPnN1Yl9kZXNjcmlwdG9yc19yZWZzKTsK PiA+PiArICAgICAgICBicmVhazsKPiA+PiArICAgIGNhc2UgQXVkaW9DaGFubmVsTGFiZWxTdWJE ZXNjcmlwdG9yOgo+ID4+ICsgICAgY2FzZSBTb3VuZGZpZWxkR3JvdXBMYWJlbFN1YkRlc2NyaXB0 b3I6Cj4gPj4gKyAgICBjYXNlIEdyb3VwT2ZTb3VuZGZpZWxkR3JvdXBzTGFiZWxTdWJEZXNjcmlw dG9yOgo+ID4+ICsgICAgICAgIGF2X2ZyZWVwKCYoKE1YRk1DQVN1YkRlc2NyaXB0b3IgKikqY3R4 KS0+bGFuZ3VhZ2UpOwo+ID4+ICsgICAgICAgIGF2X2ZyZWVwKCYoKE1YRk1DQVN1YkRlc2NyaXB0 b3IKPiAqKSpjdHgpLT5ncm91cF9vZl9zb3VuZGZpZWxkX2dyb3Vwc19saW5rX2lkX3JlZnMpOwo+ ID4+ICAgICAgICAgIGJyZWFrOwo+ID4+ICAgICAgY2FzZSBTZXF1ZW5jZToKPiA+PiAgICAgICAg ICBhdl9mcmVlcCgmKChNWEZTZXF1ZW5jZSAqKSpjdHgpLT5zdHJ1Y3R1cmFsX2NvbXBvbmVudHNf cmVmcyk7Cj4gPj4gQEAgLTkwNiw2ICs5NDUsMzAgQEAgc3RhdGljIGludCBteGZfcmVhZF9zdHJv bmdfcmVmX2FycmF5KEFWSU9Db250ZXh0Cj4gKnBiLCBVSUQgKipyZWZzLCBpbnQgKmNvdW50KQo+ ID4+ICAgICAgcmV0dXJuIDA7Cj4gPj4gIH0KPiA+Pgo+ID4+ICtzdGF0aWMgaW5saW5lIGludCBt eGZfcmVhZF91c19hc2NpaV9zdHJpbmcoQVZJT0NvbnRleHQgKnBiLCBpbnQgc2l6ZSwKPiBjaGFy Kiogc3RyKQo+ID4+ICt7Cj4gPj4gKyAgICBpbnQgcmV0Owo+ID4+ICsgICAgc2l6ZV90IGJ1Zl9z aXplOwo+ID4+ICsKPiA+PiArICAgIGlmIChzaXplIDwgMCB8fCBzaXplID4gSU5UX01BWCAtIDEp Cj4gPj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPiA+PiArCj4gPj4gKyAgICBi dWZfc2l6ZSA9IHNpemUgKyAxOwo+ID4+ICsgICAgYXZfZnJlZSgqc3RyKTsKPiA+PiArICAgICpz dHIgPSBhdl9tYWxsb2MoYnVmX3NpemUpOwo+ID4+ICsgICAgaWYgKCEqc3RyKQo+ID4+ICsgICAg ICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPj4gKwo+ID4+ICsgICAgcmV0ID0gYXZpb19n ZXRfc3RyKHBiLCBzaXplLCAqc3RyLCBidWZfc2l6ZSk7Cj4gPj4gKwo+ID4+ICsgICAgaWYgKHJl dCA8IDApIHsKPiA+PiArICAgICAgICBhdl9mcmVlcChzdHIpOwo+ID4+ICsgICAgICAgIHJldHVy biByZXQ7Cj4gPj4gKyAgICB9Cj4gPj4gKwo+ID4+ICsgICAgcmV0dXJuIHJldDsKPiA+PiArfQo+ ID4+ICsKPiA+PiAgc3RhdGljIGlubGluZSBpbnQgbXhmX3JlYWRfdXRmMTZfc3RyaW5nKEFWSU9D b250ZXh0ICpwYiwgaW50IHNpemUsCj4gY2hhcioqIHN0ciwgaW50IGJlKQo+ID4+ICB7Cj4gPj4g ICAgICBpbnQgcmV0Owo+ID4+IEBAIC0xMzYwLDExICsxNDIzLDQwIEBAIHN0YXRpYyBpbnQgbXhm X3JlYWRfZ2VuZXJpY19kZXNjcmlwdG9yKHZvaWQKPiAqYXJnLCBBVklPQ29udGV4dCAqcGIsIGlu dCB0YWcsIGludAo+ID4+ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci0+Y29sbC0+TWF4RkFM TCA9IGF2aW9fcmIxNihwYik7Cj4gPj4gICAgICAgICAgICAgIH0KPiA+PiAgICAgICAgICB9Cj4g Pj4gKwo+ID4+ICsgICAgICAgIGlmIChJU19LTFZfS0VZKHVpZCwgbXhmX3N1Yl9kZXNjcmlwdG9y KSkKPiA+PiArICAgICAgICAgICAgcmV0dXJuIG14Zl9yZWFkX3N0cm9uZ19yZWZfYXJyYXkocGIs Cj4gJmRlc2NyaXB0b3ItPnN1Yl9kZXNjcmlwdG9yc19yZWZzLCAmZGVzY3JpcHRvci0+c3ViX2Rl c2NyaXB0b3JzX2NvdW50KTsKPiA+PiArCj4gPj4gICAgICAgICAgYnJlYWs7Cj4gPj4gICAgICB9 Cj4gPj4gICAgICByZXR1cm4gMDsKPiA+PiAgfQo+ID4+Cj4gPj4gK3N0YXRpYyBpbnQgbXhmX3Jl YWRfbWNhX3N1Yl9kZXNjcmlwdG9yKHZvaWQgKmFyZywgQVZJT0NvbnRleHQgKnBiLCBpbnQKPiB0 YWcsIGludCBzaXplLCBVSUQgdWlkLCBpbnQ2NF90IGtsdl9vZmZzZXQpCj4gPj4gK3sKPiA+PiAr ICAgIE1YRk1DQVN1YkRlc2NyaXB0b3IgKm1jYV9zdWJfZGVzY3JpcHRvciA9IGFyZzsKPiA+PiAr Cj4gPj4gKyAgICBpZiAoSVNfS0xWX0tFWSh1aWQsIG14Zl9tY2FfbGFiZWxfZGljdGlvbmFyeV9p ZCkpCj4gPj4gKyAgICAgICAgYXZpb19yZWFkKHBiLCBtY2Ffc3ViX2Rlc2NyaXB0b3ItPm1jYV9s YWJlbF9kaWN0aW9uYXJ5X2lkLCAxNik7Cj4gPj4gKwo+ID4+ICsgICAgaWYgKElTX0tMVl9LRVko dWlkLCBteGZfbWNhX2xpbmtfaWQpKQo+ID4+ICsgICAgICAgIGF2aW9fcmVhZChwYiwgbWNhX3N1 Yl9kZXNjcmlwdG9yLT5tY2FfbGlua19pZCwgMTYpOwo+ID4+ICsKPiA+PiArICAgIGlmIChJU19L TFZfS0VZKHVpZCwgbXhmX3NvdW5kZmllbGRfZ3JvdXBfbGlua19pZCkpCj4gPj4gKyAgICAgICAg YXZpb19yZWFkKHBiLCBtY2Ffc3ViX2Rlc2NyaXB0b3ItPnNvdW5kZmllbGRfZ3JvdXBfbGlua19p ZCwKPiAxNik7Cj4gPj4gKwo+ID4+ICsgICAgaWYgKElTX0tMVl9LRVkodWlkLCBteGZfZ3JvdXBf b2Zfc291bmRmaWVsZF9ncm91cHNfbGlua19pZCkpCj4gPj4gKyAgICAgICAgcmV0dXJuIG14Zl9y ZWFkX3N0cm9uZ19yZWZfYXJyYXkocGIsCj4gJm1jYV9zdWJfZGVzY3JpcHRvci0+Z3JvdXBfb2Zf c291bmRmaWVsZF9ncm91cHNfbGlua19pZF9yZWZzLAo+ICZtY2Ffc3ViX2Rlc2NyaXB0b3ItPmdy b3VwX29mX3NvdW5kZmllbGRfZ3JvdXBzX2xpbmtfaWRfY291bnQpOwo+ID4+ICsKPiA+PiArICAg IGlmIChJU19LTFZfS0VZKHVpZCwgbXhmX21jYV9jaGFubmVsX2lkKSkKPiA+PiArICAgICAgICBt Y2Ffc3ViX2Rlc2NyaXB0b3ItPm1jYV9jaGFubmVsX2lkID0gYXZpb19yYjMyKHBiKTsKPiA+PiAr Cj4gPj4gKyAgICBpZiAoSVNfS0xWX0tFWSh1aWQsIG14Zl9tY2FfcmZjNTY0Nl9zcG9rZW5fbGFu Z3VhZ2UpKQo+ID4+ICsgICAgICAgIHJldHVybiBteGZfcmVhZF91c19hc2NpaV9zdHJpbmcocGIs IHNpemUsCj4gJm1jYV9zdWJfZGVzY3JpcHRvci0+bGFuZ3VhZ2UpOwo+ID4+ICsKPiA+PiArICAg IHJldHVybiAwOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICBzdGF0aWMgaW50IG14Zl9yZWFkX2luZGly ZWN0X3ZhbHVlKHZvaWQgKmFyZywgQVZJT0NvbnRleHQgKnBiLCBpbnQKPiBzaXplKQo+ID4+ICB7 Cj4gPj4gICAgICBNWEZUYWdnZWRWYWx1ZSAqdGFnZ2VkX3ZhbHVlID0gYXJnOwo+ID4+IEBAIC0x NDk0LDYgKzE1ODYsNTAgQEAgc3RhdGljIGNvbnN0IE1YRkNvZGVjVUwKPiBteGZfZGF0YV9lc3Nl bmNlX2NvbnRhaW5lcl91bHNbXSA9IHsKPiA+PiAgICAgIHsgewo+IDB4MDAsMHgwMCwweDAwLDB4 MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAw LDB4MDAKPiB9LCAgMCwgQVZfQ09ERUNfSURfTk9ORSB9LAo+ID4+ICB9Owo+ID4+Cj4gPj4gK3R5 cGVkZWYgc3RydWN0IE1YRkNoYW5uZWxPcmRlcmluZ1VMIHsKPiA+PiArICAgIFVJRCB1aWQ7Cj4g Pj4gKyAgICB1aW50NjRfdCBsYXlvdXRfbWFzazsKPiA+PiArICAgIGVudW0gQVZBdWRpb1NlcnZp Y2VUeXBlIHNlcnZpY2VfdHlwZTsKPiA+PiArfSBNWEZDaGFubmVsT3JkZXJpbmdVTDsKPiA+PiAr Cj4gPj4gK3N0YXRpYyBjb25zdCBNWEZDaGFubmVsT3JkZXJpbmdVTCBteGZfY2hhbm5lbF9vcmRl cmluZ1tdID0gewo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEs MHgwMSwweDBkLDB4MDMsMHgwMiwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMAo+IH0sIEFW X0NIX0ZST05UX0xFRlQsICAgICAgICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwg Ly8gTGVmdAo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgw MSwweDBkLDB4MDMsMHgwMiwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMAo+IH0sIEFWX0NI X0ZST05UX1JJR0hULCAgICAgICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8g UmlnaHQKPiA+PiArICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQsMHgwNCwweDAxLDB4MDEs MHgwZCwweDAzLDB4MDIsMHgwMSwweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAKPiB9LCBBVl9DSF9G Uk9OVF9DRU5URVIsICAgICAgICAgIEFWX0FVRElPX1NFUlZJQ0VfVFlQRV9NQUlOIH0sIC8vIENl bnRlcgo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSww eDBkLDB4MDMsMHgwMiwweDAxLDB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMAo+IH0sIEFWX0NIX0xP V19GUkVRVUVOQ1ksICAgICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8gTG93 Cj4gRnJlcXVlbmN5IEVmZmVjdHMKPiA+PiArICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQs MHgwNCwweDAxLDB4MDEsMHgwZCwweDAzLDB4MDIsMHgwMSwweDA1LDB4MDAsMHgwMCwweDAwLDB4 MDAKPiB9LCBBVl9DSF9TSURFX0xFRlQsICAgICAgICAgICAgIEFWX0FVRElPX1NFUlZJQ0VfVFlQ RV9NQUlOIH0sIC8vIExlZnQKPiBTdXJyb3VuZAo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4 MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBkLDB4MDMsMHgwMiwweDAxLDB4MDYsMHgwMCwweDAw LDB4MDAsMHgwMAo+IH0sIEFWX0NIX1NJREVfUklHSFQsICAgICAgICAgICAgQVZfQVVESU9fU0VS VklDRV9UWVBFX01BSU4gfSwgLy8gUmlnaHQKPiBTdXJyb3VuZAo+ID4+ICsgICAgeyB7Cj4gMHgw NiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBkLDB4MDMsMHgwMiwweDAxLDB4MDcs MHgwMCwweDAwLDB4MDAsMHgwMAo+IH0sIEFWX0NIX1NJREVfTEVGVCwgICAgICAgICAgICAgQVZf QVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8gTGVmdCBTaWRlCj4gU3Vycm91bmQKPiA+PiAr ICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQsMHgwNCwweDAxLDB4MDEsMHgwZCwweDAzLDB4 MDIsMHgwMSwweDA4LDB4MDAsMHgwMCwweDAwLDB4MDAKPiB9LCBBVl9DSF9TSURFX1JJR0hULCAg ICAgICAgICAgIEFWX0FVRElPX1NFUlZJQ0VfVFlQRV9NQUlOIH0sIC8vIFJpZ2h0IFNpZGUKPiBT dXJyb3VuZAo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgw MSwweDBkLDB4MDMsMHgwMiwweDAxLDB4MDksMHgwMCwweDAwLDB4MDAsMHgwMAo+IH0sIEFWX0NI X0JBQ0tfTEVGVCwgICAgICAgICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8g TGVmdCBSZWFyCj4gU3Vycm91bmQKPiA+PiArICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQs MHgwNCwweDAxLDB4MDEsMHgwZCwweDAzLDB4MDIsMHgwMSwweDBhLDB4MDAsMHgwMCwweDAwLDB4 MDAKPiB9LCBBVl9DSF9CQUNLX1JJR0hULCAgICAgICAgICAgIEFWX0FVRElPX1NFUlZJQ0VfVFlQ RV9NQUlOIH0sIC8vIFJpZ2h0IFJlYXIKPiBTdXJyb3VuZAo+ID4+ICsgICAgeyB7Cj4gMHgwNiww eDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBkLDB4MDMsMHgwMiwweDAxLDB4MGIsMHgw MCwweDAwLDB4MDAsMHgwMAo+IH0sIEFWX0NIX0ZST05UX0xFRlRfT0ZfQ0VOVEVSLCAgQVZfQVVE SU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8gTGVmdCBDZW50ZXIKPiA+PiArICAgIHsgewo+IDB4 MDYsMHgwZSwweDJiLDB4MzQsMHgwNCwweDAxLDB4MDEsMHgwZCwweDAzLDB4MDIsMHgwMSwweDBj LDB4MDAsMHgwMCwweDAwLDB4MDAKPiB9LCBBVl9DSF9GUk9OVF9SSUdIVF9PRl9DRU5URVIsIEFW X0FVRElPX1NFUlZJQ0VfVFlQRV9NQUlOIH0sIC8vIFJpZ2h0Cj4gQ2VudGVyCj4gPj4gKyAgICB7 IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDQsMHgwMSwweDAxLDB4MGQsMHgwMywweDAyLDB4 MDEsMHgwZCwweDAwLDB4MDAsMHgwMCwweDAwCj4gfSwgQVZfQ0hfQkFDS19DRU5URVIsICAgICAg ICAgICBBVl9BVURJT19TRVJWSUNFX1RZUEVfTUFJTiB9LCAvLyBDZW50ZXIKPiBTdXJyb3VuZAo+ ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBkLDB4 MDMsMHgwMiwweDAxLDB4MGUsMHgwMCwweDAwLDB4MDAsMHgwMAo+IH0sIEFWX0NIX0ZST05UX0NF TlRFUiwgICAgICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX1ZJU1VBTExZX0lNUEFJUkVEIH0s Cj4gLy8gSGVhcmluZyBpbXBhaXJlZCBhdWRpbyBjaGFubmVsCj4gPj4gKyAgICB7IHsKPiAweDA2 LDB4MGUsMHgyYiwweDM0LDB4MDQsMHgwMSwweDAxLDB4MGQsMHgwMywweDAyLDB4MDEsMHgwZiww eDAwLDB4MDAsMHgwMCwweDAwCj4gfSwgQVZfQ0hfRlJPTlRfQ0VOVEVSLCAgICAgICAgICBBVl9B VURJT19TRVJWSUNFX1RZUEVfSEVBUklOR19JTVBBSVJFRCB9LAo+IC8vIFZpc3VhbGx5IGltcGFp cmVkIG5hcnJhdGl2ZSBhdWRpbyBjaGFubmVsCj4gPj4gKyAgICB7IHsKPiAweDA2LDB4MGUsMHgy YiwweDM0LDB4MDQsMHgwMSwweDAxLDB4MGQsMHgwMywweDAyLDB4MDEsMHgzMCwweDAxLDB4MDEs MHgwMCwweDAwCj4gfSwgQVZfQ0hfVE9QX0ZST05UX0xFRlQsICAgICAgICBBVl9BVURJT19TRVJW SUNFX1RZUEVfTUFJTiB9LCAvLyBMZWZ0IEhlaWdodAo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBl LDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBkLDB4MDMsMHgwMiwweDAxLDB4MzAsMHgwMSww eDAyLDB4MDAsMHgwMAo+IH0sIEFWX0NIX1RPUF9GUk9OVF9SSUdIVCwgICAgICAgQVZfQVVESU9f U0VSVklDRV9UWVBFX01BSU4gfSwgLy8gUmlnaHQKPiBIZWlnaHQKPiA+PiArICAgIHsgewo+IDB4 MDYsMHgwZSwweDJiLDB4MzQsMHgwNCwweDAxLDB4MDEsMHgwZCwweDAzLDB4MDIsMHgwMSwweDMw LDB4MDEsMHgwMywweDAwLDB4MDAKPiB9LCBBVl9DSF9UT1BfRlJPTlRfQ0VOVEVSLCAgICAgIEFW X0FVRElPX1NFUlZJQ0VfVFlQRV9NQUlOIH0sIC8vIENlbnRlcgo+IEhlaWdodAo+ID4+ICsgICAg eyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBkLDB4MDMsMHgwMiww eDAxLDB4MzAsMHgwMSwweDA0LDB4MDAsMHgwMAo+IH0sIEFWX0NIX1RPUF9TSURFX0xFRlQsICAg ICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8gTGVmdAo+IFN1cnJvdW5kIEhl aWdodAo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSww eDBkLDB4MDMsMHgwMiwweDAxLDB4MzAsMHgwMSwweDA1LDB4MDAsMHgwMAo+IH0sIEFWX0NIX1RP UF9TSURFX1JJR0hULCAgICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8gUmln aHQKPiBTdXJyb3VuZCBIZWlnaHQKPiA+PiArICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQs MHgwNCwweDAxLDB4MDEsMHgwZCwweDAzLDB4MDIsMHgwMSwweDMwLDB4MDEsMHgwNiwweDAwLDB4 MDAKPiB9LCBBVl9DSF9UT1BfU0lERV9MRUZULCAgICAgICAgIEFWX0FVRElPX1NFUlZJQ0VfVFlQ RV9NQUlOIH0sIC8vIExlZnQgU2lkZQo+IFN1cnJvdW5kIEhlaWdodAo+ID4+ICsgICAgeyB7Cj4g MHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSwweDBkLDB4MDMsMHgwMiwweDAxLDB4 MzAsMHgwMSwweDA3LDB4MDAsMHgwMAo+IH0sIEFWX0NIX1RPUF9TSURFX1JJR0hULCAgICAgICAg QVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8gUmlnaHQgU2lkZQo+IFN1cnJvdW5kIEhl aWdodAo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgwMSww eDBkLDB4MDMsMHgwMiwweDAxLDB4MzAsMHgwMSwweDA4LDB4MDAsMHgwMAo+IH0sIEFWX0NIX1RP UF9CQUNLX0xFRlQsICAgICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8gTGVm dCBSZWFyCj4gU3Vycm91bmQgSGVpZ2h0Cj4gPj4gKyAgICB7IHsKPiAweDA2LDB4MGUsMHgyYiww eDM0LDB4MDQsMHgwMSwweDAxLDB4MGQsMHgwMywweDAyLDB4MDEsMHgzMCwweDAxLDB4MDksMHgw MCwweDAwCj4gfSwgQVZfQ0hfVE9QX0JBQ0tfUklHSFQsICAgICAgICBBVl9BVURJT19TRVJWSUNF X1RZUEVfTUFJTiB9LCAvLyBSaWdodCBSZWFyCj4gU3Vycm91bmQgSGVpZ2h0Cj4gPj4gKyAgICB7 IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDQsMHgwMSwweDAxLDB4MGQsMHgwMywweDAyLDB4 MDEsMHgzMCwweDAxLDB4MGEsMHgwMCwweDAwCj4gfSwgQVZfQ0hfVE9QX1NJREVfTEVGVCwgICAg ICAgICBBVl9BVURJT19TRVJWSUNFX1RZUEVfTUFJTiB9LCAvLyBMZWZ0IFRvcAo+IFN1cnJvdW5k Cj4gPj4gKyAgICB7IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDQsMHgwMSwweDAxLDB4MGQs MHgwMywweDAyLDB4MDEsMHgzMCwweDAxLDB4MGIsMHgwMCwweDAwCj4gfSwgQVZfQ0hfVE9QX1NJ REVfUklHSFQsICAgICAgICBBVl9BVURJT19TRVJWSUNFX1RZUEVfTUFJTiB9LCAvLyBSaWdodCBU b3AKPiBTdXJyb3VuZAo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4 MDEsMHgwMSwweDBkLDB4MDMsMHgwMiwweDAxLDB4MzAsMHgwMSwweDBjLDB4MDAsMHgwMAo+IH0s IEFWX0NIX1RPUF9DRU5URVIsICAgICAgICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4g fSwgLy8gVG9wCj4gU3Vycm91bmQKPiA+PiArICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQs MHgwNCwweDAxLDB4MDEsMHgwZCwweDAzLDB4MDIsMHgwMSwweDMwLDB4MDEsMHgwZCwweDAwLDB4 MDAKPiB9LCBBVl9DSF9MT1dfRlJFUVVFTkNZLCAgICAgICAgIEFWX0FVRElPX1NFUlZJQ0VfVFlQ RV9NQUlOIH0sIC8vIExlZnQgRnJvbnQKPiBTdWJ3b29mZXIKPiA+PiArICAgIHsgewo+IDB4MDYs MHgwZSwweDJiLDB4MzQsMHgwNCwweDAxLDB4MDEsMHgwZCwweDAzLDB4MDIsMHgwMSwweDMwLDB4 MDEsMHgwZSwweDAwLDB4MDAKPiB9LCBBVl9DSF9MT1dfRlJFUVVFTkNZXzIsICAgICAgIEFWX0FV RElPX1NFUlZJQ0VfVFlQRV9NQUlOIH0sIC8vIFJpZ2h0Cj4gRnJvbnQgU3Vid29vZmVyCj4gPj4g KyAgICB7IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4MDQsMHgwMSwweDAxLDB4MGQsMHgwMyww eDAyLDB4MDEsMHgzMCwweDAxLDB4MGYsMHgwMCwweDAwCj4gfSwgQVZfQ0hfVE9QX0JBQ0tfQ0VO VEVSLCAgICAgICBBVl9BVURJT19TRVJWSUNFX1RZUEVfTUFJTiB9LCAvLyBDZW50ZXIKPiBSZWFy IEhlaWdodAo+ID4+ICsgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDA0LDB4MDEsMHgw MSwweDBkLDB4MDMsMHgwMiwweDAxLDB4MzAsMHgwMSwweDEwLDB4MDAsMHgwMAo+IH0sIEFWX0NI X0JBQ0tfQ0VOVEVSLCAgICAgICAgICAgQVZfQVVESU9fU0VSVklDRV9UWVBFX01BSU4gfSwgLy8g Q2VudGVyIFJlYXIKPiA+PiArICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQsMHgwNCwweDAx LDB4MDEsMHgwZCwweDAzLDB4MDIsMHgwMSwweDMwLDB4MDEsMHgxMSwweDAwLDB4MDAKPiB9LCBB Vl9DSF9CT1RUT01fRlJPTlRfTEVGVCwgICAgIEFWX0FVRElPX1NFUlZJQ0VfVFlQRV9NQUlOIH0s IC8vIExlZnQgQmVsb3cKPiA+PiArICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQsMHgwNCww eDAxLDB4MDEsMHgwZCwweDAzLDB4MDIsMHgwMSwweDMwLDB4MDEsMHgxMiwweDAwLDB4MDAKPiB9 LCBBVl9DSF9CT1RUT01fRlJPTlRfUklHSFQsICAgIEFWX0FVRElPX1NFUlZJQ0VfVFlQRV9NQUlO IH0sIC8vIFJpZ2h0IEJlbG93Cj4gPj4gKyAgICB7IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4 MDQsMHgwMSwweDAxLDB4MGQsMHgwMywweDAyLDB4MDEsMHgzMCwweDAxLDB4MTMsMHgwMCwweDAw Cj4gfSwgQVZfQ0hfQk9UVE9NX0ZST05UX0NFTlRFUiwgICBBVl9BVURJT19TRVJWSUNFX1RZUEVf TUFJTiB9LCAvLyBDZW50ZXIKPiBCZWxvdwo+ID4+ICsgICAgeyB7Cj4gMHgwMCwweDAwLDB4MDAs MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4 MDAsMHgwMAo+IH0sIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfQVVESU9fU0VSVklD RV9UWVBFX05CIH0sCj4gPj4gK307Cj4gPj4gKwo+ID4+ICBzdGF0aWMgTVhGV3JhcHBpbmdTY2hl bWUgbXhmX2dldF93cmFwcGluZ19raW5kKFVJRAo+ICplc3NlbmNlX2NvbnRhaW5lcl91bCkKPiA+ PiAgewo+ID4+ICAgICAgaW50IHZhbDsKPiA+PiBAQCAtMjI5Miw2ICsyNDI4LDE1NiBAQCBzdGF0 aWMgZW51bSBBVkNvbG9yUmFuZ2UKPiBteGZfZ2V0X2NvbG9yX3JhbmdlKE1YRkNvbnRleHQgKm14 ZiwgTVhGRGVzY3JpcHRvciAqZGVzCj4gPj4gICAgICByZXR1cm4gQVZDT0xfUkFOR0VfVU5TUEVD SUZJRUQ7Cj4gPj4gIH0KPiA+Pgo+ID4+ICtzdGF0aWMgaW50IGlzX3BjbShlbnVtIEFWQ29kZWNJ RCBjb2RlY19pZCkKPiA+PiArewo+ID4+ICsgICAgLyogd2Ugb25seSBjYXJlIGFib3V0ICJub3Jt YWwiIFBDTSBjb2RlY3MgdW50aWwgd2UgZ2V0IHNhbXBsZXMgKi8KPiA+PiArICAgIHJldHVybiBj b2RlY19pZCA+PSBBVl9DT0RFQ19JRF9QQ01fUzE2TEUgJiYgY29kZWNfaWQgPAo+IEFWX0NPREVD X0lEX1BDTV9TMjREQVVEOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgaW50IHNldF9sYW5n dWFnZShBVkZvcm1hdENvbnRleHQgKnMsIGNvbnN0IGNoYXIgKnJmYzU2NDYsCj4gQVZEaWN0aW9u YXJ5ICoqbWV0KQo+ID4+ICt7Cj4gPj4gKyAgICAvLyBsYW5ndWFnZSBhYmJyIHNob3VsZCBjb250 YWluIGF0IGxlYXN0IDIgY2hhcnMKPiA+PiArICAgIGlmIChyZmM1NjQ2ICYmIHN0cmxlbihyZmM1 NjQ2KSA+IDEpIHsKPiA+PiArICAgICAgICBjaGFyIHByaW1hcnlfdGFnWzRdID0KPiA+PiArICAg ICAgICAgICAge3JmYzU2NDZbMF0sIHJmYzU2NDZbMV0sIHJmYzU2NDZbMl0gIT0gJy0nID8gcmZj NTY0NlsyXSA6Cj4gJ1wwJywgJ1wwJ307Cj4gPj4gKwo+ID4+ICsgICAgICAgIGNvbnN0IGNoYXIg KmlzbzYzOTIgICAgICAgPSBmZl9jb252ZXJ0X2xhbmdfdG8ocHJpbWFyeV90YWcsCj4gPj4gKwo+ ICBBVl9MQU5HX0lTTzYzOV8yX0JJQkwpOwo+ID4+ICsgICAgICAgIGlmIChpc282MzkyKQo+ID4+ ICsgICAgICAgICAgICByZXR1cm4oYXZfZGljdF9zZXQobWV0LCAibGFuZ3VhZ2UiLCBpc282Mzky LCAwKSk7Cj4gPj4gKyAgICB9Cj4gPj4gKyAgICByZXR1cm4gMDsKPiA+PiArfQo+ID4+ICsKPiA+ PiArc3RhdGljIE1YRk1DQVN1YkRlc2NyaXB0b3IgKmZpbmRfbWNhX2xpbmtfaWQoTVhGQ29udGV4 dCAqbXhmLCBlbnVtCj4gTVhGTWV0YWRhdGFTZXRUeXBlIHR5cGUsIFVJRCAqbWNhX2xpbmtfaWQp Cj4gPj4gK3sKPiA+PiArICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbXhmLT5tZXRhZGF0YV9zZXRz X2NvdW50OyBrKyspIHsKPiA+PiArICAgICAgICBNWEZNQ0FTdWJEZXNjcmlwdG9yICpncm91cCA9 Cj4gKE1YRk1DQVN1YkRlc2NyaXB0b3IqKW14Zi0+bWV0YWRhdGFfc2V0c1trXTsKPiA+PiArICAg ICAgICBpZiAoZ3JvdXAtPm1ldGEudHlwZSA9PSB0eXBlICYmICFtZW1jbXAoJmdyb3VwLT5tY2Ff bGlua19pZCwKPiBtY2FfbGlua19pZCwgMTYpKQo+ID4+ICsgICAgICAgICAgICByZXR1cm4gZ3Jv dXA7Cj4gPj4gKyAgICB9Cj4gPj4gKyAgICByZXR1cm4gTlVMTDsKPiA+PiArfQo+ID4+ICsKPiA+ PiArc3RhdGljIGludCBwYXJzZV9tY2FfbGFiZWxzKE1YRkNvbnRleHQgKm14ZiwgTVhGVHJhY2sg KnNvdXJjZV90cmFjaywKPiBNWEZEZXNjcmlwdG9yICpkZXNjcmlwdG9yLCBBVlN0cmVhbSAqc3Qp Cj4gPj4gK3sKPiA+PiArICAgIHVpbnQ2NF90IHJvdXRpbmdbRkZfU0FORV9OQl9DSEFOTkVMU10g PSB7MH07Cj4gPj4gKyAgICBjaGFyICpsYW5ndWFnZSA9IE5VTEw7Cj4gPj4gKyAgICBpbnQgYW1i aWdvdXNfbGFuZ3VhZ2UgPSAwOwo+ID4+ICsgICAgZW51bSBBVkF1ZGlvU2VydmljZVR5cGUgc2Vy dmljZV90eXBlID0gQVZfQVVESU9fU0VSVklDRV9UWVBFX05COwo+ID4+ICsgICAgaW50IGFtYmln b3VzX3NlcnZpY2VfdHlwZSA9IDA7Cj4gPj4gKyAgICBpbnQgaGFzX2NoYW5uZWxfbGFiZWwgPSAw Owo+ID4+ICsKPiA+PiArICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVzY3JpcHRvci0+c3ViX2Rl c2NyaXB0b3JzX2NvdW50OyBpKyspIHsKPiA+PiArICAgICAgICBjaGFyICpjaGFubmVsX2xhbmd1 YWdlOwo+ID4+ICsKPiA+PiArICAgICAgICBNWEZNQ0FTdWJEZXNjcmlwdG9yICpsYWJlbCA9IG14 Zl9yZXNvbHZlX3N0cm9uZ19yZWYobXhmLAo+ICZkZXNjcmlwdG9yLT5zdWJfZGVzY3JpcHRvcnNf cmVmc1tpXSwgQXVkaW9DaGFubmVsTGFiZWxTdWJEZXNjcmlwdG9yKTsKPiA+PiArICAgICAgICBp ZiAobGFiZWwgPT0gTlVMTCkKPiA+PiArICAgICAgICAgICAgY29udGludWU7Cj4gPj4gKwo+ID4+ ICsgICAgICAgIGhhc19jaGFubmVsX2xhYmVsID0gMTsKPiA+PiArICAgICAgICBmb3IgKGNvbnN0 IE1YRkNoYW5uZWxPcmRlcmluZ1VMKiBjaGFubmVsX29yZGVyaW5nID0KPiBteGZfY2hhbm5lbF9v cmRlcmluZzsgY2hhbm5lbF9vcmRlcmluZy0+dWlkWzBdOyBjaGFubmVsX29yZGVyaW5nKyspIHsK PiA+PiArICAgICAgICAgICAgaWYgKElTX0tMVl9LRVkoY2hhbm5lbF9vcmRlcmluZy0+dWlkLAo+ IGxhYmVsLT5tY2FfbGFiZWxfZGljdGlvbmFyeV9pZCkpIHsKPiA+PiArICAgICAgICAgICAgICAg IGludCB0YXJnZXRfY2hhbm5lbCA9IGxhYmVsLT5tY2FfY2hhbm5lbF9pZDsKPiA+PiArICAgICAg ICAgICAgICAgIGlmICh0YXJnZXRfY2hhbm5lbCA9PSAwICYmIGRlc2NyaXB0b3ItPmNoYW5uZWxz ID09IDEpCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NoYW5uZWwgPSAxOwo+ID4+ ICsgICAgICAgICAgICAgICAgaWYgKHRhcmdldF9jaGFubmVsIDw9IDAgfHwgdGFyZ2V0X2NoYW5u ZWwgPgo+IGRlc2NyaXB0b3ItPmNoYW5uZWxzKSB7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAg YXZfbG9nKG14Zi0+ZmMsIEFWX0xPR19FUlJPUiwKPiAiQXVkaW9DaGFubmVsTGFiZWxTdWJEZXNj cmlwdG9yIGhhcyBpbnZhbGlkIE1DQSBjaGFubmVsIElEICVkXG4iLAo+IHRhcmdldF9jaGFubmVs KTsKPiA+PiArICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsK PiA+PiArICAgICAgICAgICAgICAgIH0KPiA+PiArICAgICAgICAgICAgICAgIHJvdXRpbmdbdGFy Z2V0X2NoYW5uZWwgLSAxXSA9Cj4gY2hhbm5lbF9vcmRlcmluZy0+bGF5b3V0X21hc2s7Cj4gPj4g KyAgICAgICAgICAgICAgICBpZiAoc2VydmljZV90eXBlID09IEFWX0FVRElPX1NFUlZJQ0VfVFlQ RV9OQikKPiA+PiArICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX3R5cGUgPSBjaGFubmVsX29y ZGVyaW5nLT5zZXJ2aWNlX3R5cGU7Cj4gPj4gKyAgICAgICAgICAgICAgICBlbHNlIGlmIChzZXJ2 aWNlX3R5cGUgIT0KPiBjaGFubmVsX29yZGVyaW5nLT5zZXJ2aWNlX3R5cGUpCj4gPj4gKyAgICAg ICAgICAgICAgICAgICAgYW1iaWdvdXNfc2VydmljZV90eXBlID0gMTsKPiA+PiArICAgICAgICAg ICAgICAgIGJyZWFrOwo+ID4+ICsgICAgICAgICAgICB9Cj4gPj4gKyAgICAgICAgfQo+ID4+ICsK PiA+PiArICAgICAgICBjaGFubmVsX2xhbmd1YWdlID0gbGFiZWwtPmxhbmd1YWdlOwo+ID4+ICsg ICAgICAgIGlmICghY2hhbm5lbF9sYW5ndWFnZSkgewo+ID4+ICsgICAgICAgICAgICBNWEZNQ0FT dWJEZXNjcmlwdG9yICpncm91cCA9IGZpbmRfbWNhX2xpbmtfaWQobXhmLAo+IFNvdW5kZmllbGRH cm91cExhYmVsU3ViRGVzY3JpcHRvciwgJmxhYmVsLT5zb3VuZGZpZWxkX2dyb3VwX2xpbmtfaWQp Owo+ID4+ICsgICAgICAgICAgICBpZiAoZ3JvdXApIHsKPiA+PiArICAgICAgICAgICAgICAgIGNo YW5uZWxfbGFuZ3VhZ2UgPSBncm91cC0+bGFuZ3VhZ2U7Cj4gPj4gKyAgICAgICAgICAgICAgICBp ZiAoIWNoYW5uZWxfbGFuZ3VhZ2UgJiYKPiBncm91cC0+Z3JvdXBfb2Zfc291bmRmaWVsZF9ncm91 cHNfbGlua19pZF9jb3VudCkgewo+ID4+ICsgICAgICAgICAgICAgICAgICAgIE1YRk1DQVN1YkRl c2NyaXB0b3IgKnN1cGVyZ3JvdXAgPQo+IGZpbmRfbWNhX2xpbmtfaWQobXhmLCBHcm91cE9mU291 bmRmaWVsZEdyb3Vwc0xhYmVsU3ViRGVzY3JpcHRvciwKPiA+PiArCj4gIGdyb3VwLT5ncm91cF9v Zl9zb3VuZGZpZWxkX2dyb3Vwc19saW5rX2lkX3JlZnMpOwo+ID4+ICsgICAgICAgICAgICAgICAg ICAgIGlmIChzdXBlcmdyb3VwKQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVs X2xhbmd1YWdlID0gc3VwZXJncm91cC0+bGFuZ3VhZ2U7Cj4gPj4gKyAgICAgICAgICAgICAgICB9 Cj4gPj4gKyAgICAgICAgICAgIH0KPiA+PiArICAgICAgICB9Cj4gPj4gKyAgICAgICAgaWYgKGNo YW5uZWxfbGFuZ3VhZ2UpIHsKPiA+PiArICAgICAgICAgICAgaWYgKGxhbmd1YWdlICYmIHN0cmNt cChsYW5ndWFnZSwgY2hhbm5lbF9sYW5ndWFnZSkpCj4gPj4gKyAgICAgICAgICAgICAgICBhbWJp Z291c19sYW5ndWFnZSA9IDE7Cj4gPj4gKyAgICAgICAgICAgIGVsc2UKPiA+PiArICAgICAgICAg ICAgICAgIGxhbmd1YWdlID0gY2hhbm5lbF9sYW5ndWFnZTsKPiA+PiArICAgICAgICB9Cj4gPj4g KyAgICB9Cj4gPj4gKwo+ID4+ICsgICAgaWYgKGxhbmd1YWdlICYmICFhbWJpZ291c19sYW5ndWFn ZSkgewo+ID4+ICsgICAgICAgaW50IHJldCA9IHNldF9sYW5ndWFnZShteGYtPmZjLCBsYW5ndWFn ZSwgJnN0LT5tZXRhZGF0YSk7Cj4gPj4gKyAgICAgICBpZiAocmV0IDwgMCkKPiA+PiArICAgICAg ICAgICByZXR1cm4gcmV0Owo+ID4+ICsgICAgfQo+ID4+ICsKPiA+PiArICAgIGlmIChzZXJ2aWNl X3R5cGUgIT0gQVZfQVVESU9fU0VSVklDRV9UWVBFX05CICYmIHNlcnZpY2VfdHlwZSAhPQo+IEFW X0FVRElPX1NFUlZJQ0VfVFlQRV9NQUlOICYmICFhbWJpZ291c19zZXJ2aWNlX3R5cGUpIHsKPiA+ PiArICAgICAgICBlbnVtIEFWQXVkaW9TZXJ2aWNlVHlwZSAqYXN0Owo+ID4+ICsgICAgICAgIHVp bnQ4X3QqIHNpZGVfZGF0YSA9IGF2X3N0cmVhbV9uZXdfc2lkZV9kYXRhKHN0LAo+IEFWX1BLVF9E QVRBX0FVRElPX1NFUlZJQ0VfVFlQRSwgc2l6ZW9mKCphc3QpKTsKPiA+PiArICAgICAgICBpZiAo IXNpZGVfZGF0YSkKPiA+PiArICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiA+ PiArICAgICAgICBhc3QgPSAoZW51bSBBVkF1ZGlvU2VydmljZVR5cGUqKXNpZGVfZGF0YTsKPiA+ PiArICAgICAgICAqYXN0ID0gc2VydmljZV90eXBlOwo+ID4+ICsgICAgfQo+ID4+ICsKPiA+PiAr ICAgIGlmIChoYXNfY2hhbm5lbF9sYWJlbCkgewo+ID4+ICsgICAgICAgIHVpbnQ2NF90IGNoYW5u ZWxfbGF5b3V0ID0gMDsKPiA+PiArICAgICAgICBpbnQgcmVxdWlyZV9yZW9yZGVyID0gMDsKPiA+ PiArCj4gPj4gKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZXNjcmlwdG9yLT5jaGFubmVs czsgaSsrKSB7Cj4gPj4gKyAgICAgICAgICAgIGlmICghcm91dGluZ1tpXSkgewo+ID4+ICsgICAg ICAgICAgICAgICAgYXZfbG9nKG14Zi0+ZmMsIEFWX0xPR19XQVJOSU5HLCAiRGVzaWduYXRpb24g b2YgYXVkaW8KPiBjaGFubmVsICVkIGluIHN0cmVhbSAjJWQgaXMgdW5rbm93biBvciB1bnN1cHBv cnRlZCwgIgo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZmFsbGluZyBiYWNrIHRvCj4gdW5rbm93biBjaGFubmVsIGxheW91dFxuIiwgc3QtPmlu ZGV4LCBpKTsKPiA+PiArICAgICAgICAgICAgICAgIHJldHVybiAwOwo+ID4+ICsgICAgICAgICAg ICB9Cj4gPj4gKyAgICAgICAgICAgIGlmIChjaGFubmVsX2xheW91dCAmIHJvdXRpbmdbaV0pIHsK PiA+PiArICAgICAgICAgICAgICAgIGF2X2xvZyhteGYtPmZjLCBBVl9MT0dfV0FSTklORywgIiVz IGF1ZGlvIGNoYW5uZWwgaXMKPiB1c2VkIG11bHRpcGxlIHRpbWVzIGluIHN0cmVhbSAjJWQsICIK PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZh bGxpbmcgYmFjayB0bwo+IHVua25vd24gY2hhbm5lbCBsYXlvdXRcbiIsCj4gPj4gKwo+IGF2X2dl dF9jaGFubmVsX25hbWUocm91dGluZ1tpXSksIHN0LT5pbmRleCk7Cj4gPj4gKyAgICAgICAgICAg ICAgICByZXR1cm4gMDsKPiA+PiArICAgICAgICAgICAgfQo+ID4+ICsgICAgICAgICAgICBpZiAo cm91dGluZ1tpXSA8IGNoYW5uZWxfbGF5b3V0KQo+ID4+ICsgICAgICAgICAgICAgICAgcmVxdWly ZV9yZW9yZGVyID0gMTsKPiA+PiArICAgICAgICAgICAgY2hhbm5lbF9sYXlvdXQgfD0gcm91dGlu Z1tpXTsKPiA+PiArICAgICAgICB9Cj4gPj4gKwo+ID4+ICsgICAgICAgIGF2X2Fzc2VydDAoZGVz Y3JpcHRvci0+Y2hhbm5lbHMgPT0KPiBhdl9nZXRfY2hhbm5lbF9sYXlvdXRfbmJfY2hhbm5lbHMo Y2hhbm5lbF9sYXlvdXQpKTsKPiA+PiArCj4gPj4gKyAgICAgICAgaWYgKHJlcXVpcmVfcmVvcmRl cikgewo+ID4+ICsgICAgICAgICAgICBpZiAobXhmLT5za2lwX2F1ZGlvX3Jlb3JkZXJpbmcpCj4g Pj4gKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+PiArICAgICAgICAgICAgaWYgKCFpc19w Y20oc3QtPmNvZGVjcGFyLT5jb2RlY19pZCkpIHsKPiA+PiArICAgICAgICAgICAgICAgIGF2X2xv ZyhteGYtPmZjLCBBVl9MT0dfV0FSTklORywgIkF1ZGlvIGNoYW5uZWwKPiByZW9yZGVyaW5nIGZv ciBzdHJlYW0gIyVkIGlzIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSBpdCBpcyB1c2luZyBhIG5vbi1Q Q00KPiBjb2RlYywgIgo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZmFsbGluZyBiYWNrIHRvCj4gdW5rbm93biBjaGFubmVsIGxheW91dFxuIiwg c3QtPmluZGV4KTsKPiA+PiArICAgICAgICAgICAgICAgIHJldHVybiAwOwo+ID4+ICsgICAgICAg ICAgICB9Cj4gPj4gKyAgICAgICAgICAgIGF2X2xvZyhteGYtPmZjLCBBVl9MT0dfVkVSQk9TRSwg Ik1DQSBtYXBwaW5nIGZvciBzdHJlYW0KPiAjJWQ6ICIsIHN0LT5pbmRleCk7Cj4gPj4gKyAgICAg ICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZGVzY3JpcHRvci0+Y2hhbm5lbHM7IGorKykgewo+ ID4+ICsgICAgICAgICAgICAgICAgaW50IHJlb3JkZXJlZF9jaGFubmVsID0KPiBhdl9nZXRfY2hh bm5lbF9sYXlvdXRfY2hhbm5lbF9pbmRleChjaGFubmVsX2xheW91dCwgcm91dGluZ1tqXSk7Cj4g Pj4gKyAgICAgICAgICAgICAgICBhdl9hc3NlcnQwKHJlb3JkZXJlZF9jaGFubmVsID49IDAgJiYg cmVvcmRlcmVkX2NoYW5uZWwKPiA8IGRlc2NyaXB0b3ItPmNoYW5uZWxzKTsKPiA+PiArICAgICAg ICAgICAgICAgIHNvdXJjZV90cmFjay0+Y2hhbm5lbF9vcmRlcmluZ1tqXSA9IHJlb3JkZXJlZF9j aGFubmVsOwo+ID4+ICsgICAgICAgICAgICAgICAgYXZfbG9nKG14Zi0+ZmMsIEFWX0xPR19WRVJC T1NFLCAiJXMlczogJWQtPiVkIiwgaiA/ICIsCj4gIiA6ICIiLCBhdl9nZXRfY2hhbm5lbF9uYW1l KHJvdXRpbmdbal0pLCBqLCByZW9yZGVyZWRfY2hhbm5lbCk7Cj4gPj4gKyAgICAgICAgICAgIH0K PiA+PiArICAgICAgICAgICAgYXZfbG9nKG14Zi0+ZmMsIEFWX0xPR19WRVJCT1NFLCAiXG4iKTsK PiA+PiArICAgICAgICAgICAgc291cmNlX3RyYWNrLT5yZXF1aXJlX3Jlb3JkZXJpbmcgPSAxOwo+ ID4+ICsgICAgICAgIH0KPiA+PiArCj4gPj4gKyAgICAgICAgc3QtPmNvZGVjcGFyLT5jaGFubmVs X2xheW91dCA9IGNoYW5uZWxfbGF5b3V0Owo+ID4+ICsgICAgfQo+ID4+ICsKPiA+PiArICAgIHJl dHVybiAwOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICBzdGF0aWMgaW50IG14Zl9wYXJzZV9zdHJ1Y3R1 cmFsX21ldGFkYXRhKE1YRkNvbnRleHQgKm14ZikKPiA+PiAgewo+ID4+ICAgICAgTVhGUGFja2Fn ZSAqbWF0ZXJpYWxfcGFja2FnZSA9IE5VTEw7Cj4gPj4gQEAgLTI2ODgsNiArMjk3NCwxNSBAQCBz dGF0aWMgaW50Cj4gbXhmX3BhcnNlX3N0cnVjdHVyYWxfbWV0YWRhdGEoTVhGQ29udGV4dCAqbXhm KQo+ID4+ICAgICAgICAgICAgICAgICAgc3RpLT5uZWVkX3BhcnNpbmcgPSBBVlNUUkVBTV9QQVJT RV9GVUxMOwo+ID4+ICAgICAgICAgICAgICB9Cj4gPj4gICAgICAgICAgICAgIHN0LT5jb2RlY3Bh ci0+Yml0c19wZXJfY29kZWRfc2FtcGxlID0KPiBhdl9nZXRfYml0c19wZXJfc2FtcGxlKHN0LT5j b2RlY3Bhci0+Y29kZWNfaWQpOwo+ID4+ICsKPiA+PiArICAgICAgICAgICAgaWYgKGRlc2NyaXB0 b3ItPmNoYW5uZWxzIDw9IDAgfHwgZGVzY3JpcHRvci0+Y2hhbm5lbHMgPj0KPiBGRl9TQU5FX05C X0NIQU5ORUxTKSB7Cj4gPj4gKyAgICAgICAgICAgICAgICBhdl9sb2cobXhmLT5mYywgQVZfTE9H X0VSUk9SLCAiSW52YWxpZCBudW1iZXIgb2YKPiBjaGFubmVscyAlZCwgbXVzdCBiZSBsZXNzIHRo YW4gJWRcbiIsIGRlc2NyaXB0b3ItPmNoYW5uZWxzLAo+IEZGX1NBTkVfTkJfQ0hBTk5FTFMpOwo+ ID4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gPj4gKyAg ICAgICAgICAgIH0KPiA+PiArCj4gPj4gKyAgICAgICAgICAgIHJldCA9IHBhcnNlX21jYV9sYWJl bHMobXhmLCBzb3VyY2VfdHJhY2ssIGRlc2NyaXB0b3IsIHN0KTsKPiA+PiArICAgICAgICAgICAg aWYgKHJldCA8IDApCj4gPj4gKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4+ICAgICAg ICAgIH0gZWxzZSBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9E QVRBKSB7Cj4gPj4gICAgICAgICAgICAgIGVudW0gQVZNZWRpYVR5cGUgdHlwZTsKPiA+PiAgICAg ICAgICAgICAgY29udGFpbmVyX3VsID0KPiBteGZfZ2V0X2NvZGVjX3VsKG14Zl9kYXRhX2Vzc2Vu Y2VfY29udGFpbmVyX3VscywgZXNzZW5jZV9jb250YWluZXJfdWwpOwo+ID4+IEBAIC0yODg4LDYg KzMxODMsOSBAQCBzdGF0aWMgY29uc3QgTVhGTWV0YWRhdGFSZWFkVGFibGVFbnRyeQo+IG14Zl9t ZXRhZGF0YV9yZWFkX3RhYmxlW10gPSB7Cj4gPj4gICAgICB7IHsKPiAweDA2LDB4MGUsMHgyYiww eDM0LDB4MDIsMHg1MywweDAxLDB4MDEsMHgwZCwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHg1 YywweDAwCj4gfSwgbXhmX3JlYWRfZ2VuZXJpY19kZXNjcmlwdG9yLCBzaXplb2YoTVhGRGVzY3Jp cHRvciksIERlc2NyaXB0b3IgfSwgLyoKPiBWQU5DL1ZCSSAtIFNNUFRFIDQzNk0gKi8KPiA+PiAg ICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQsMHgwMiwweDUzLDB4MDEsMHgwMSwweDBkLDB4 MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDVlLDB4MDAKPiB9LCBteGZfcmVhZF9nZW5lcmljX2Rl c2NyaXB0b3IsIHNpemVvZihNWEZEZXNjcmlwdG9yKSwgRGVzY3JpcHRvciB9LCAvKgo+IE1QRUcy QXVkaW9EZXNjcmlwdG9yICovCj4gPj4gICAgICB7IHsKPiAweDA2LDB4MGUsMHgyYiwweDM0LDB4 MDIsMHg1MywweDAxLDB4MDEsMHgwZCwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHg2NCwweDAw Cj4gfSwgbXhmX3JlYWRfZ2VuZXJpY19kZXNjcmlwdG9yLCBzaXplb2YoTVhGRGVzY3JpcHRvciks IERlc2NyaXB0b3IgfSwgLyogREMKPiBUaW1lZCBUZXh0IERlc2NyaXB0b3IgKi8KPiA+PiArICAg IHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQsMHgwMiwweDUzLDB4MDEsMHgwMSwweDBkLDB4MDEs MHgwMSwweDAxLDB4MDEsMHgwMSwweDZiLDB4MDAKPiB9LCBteGZfcmVhZF9tY2Ffc3ViX2Rlc2Ny aXB0b3IsIHNpemVvZihNWEZNQ0FTdWJEZXNjcmlwdG9yKSwKPiBBdWRpb0NoYW5uZWxMYWJlbFN1 YkRlc2NyaXB0b3IgfSwKPiA+PiArICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQsMHgwMiww eDUzLDB4MDEsMHgwMSwweDBkLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDZjLDB4MDAKPiB9 LCBteGZfcmVhZF9tY2Ffc3ViX2Rlc2NyaXB0b3IsIHNpemVvZihNWEZNQ0FTdWJEZXNjcmlwdG9y KSwKPiBTb3VuZGZpZWxkR3JvdXBMYWJlbFN1YkRlc2NyaXB0b3IgfSwKPiA+PiArICAgIHsgewo+ IDB4MDYsMHgwZSwweDJiLDB4MzQsMHgwMiwweDUzLDB4MDEsMHgwMSwweDBkLDB4MDEsMHgwMSww eDAxLDB4MDEsMHgwMSwweDZkLDB4MDAKPiB9LCBteGZfcmVhZF9tY2Ffc3ViX2Rlc2NyaXB0b3Is IHNpemVvZihNWEZNQ0FTdWJEZXNjcmlwdG9yKSwKPiBHcm91cE9mU291bmRmaWVsZEdyb3Vwc0xh YmVsU3ViRGVzY3JpcHRvciB9LAo+ID4+ICAgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCww eDAyLDB4NTMsMHgwMSwweDAxLDB4MGQsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4M0EsMHgw MAo+IH0sIG14Zl9yZWFkX3RyYWNrLCBzaXplb2YoTVhGVHJhY2spLCBUcmFjayB9LCAvKiBTdGF0 aWMgVHJhY2sgKi8KPiA+PiAgICAgIHsgewo+IDB4MDYsMHgwZSwweDJiLDB4MzQsMHgwMiwweDUz LDB4MDEsMHgwMSwweDBkLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDNCLDB4MDAKPiB9LCBt eGZfcmVhZF90cmFjaywgc2l6ZW9mKE1YRlRyYWNrKSwgVHJhY2sgfSwgLyogR2VuZXJpYyBUcmFj ayAqLwo+ID4+ICAgICAgeyB7Cj4gMHgwNiwweDBlLDB4MmIsMHgzNCwweDAyLDB4NTMsMHgwMSww eDAxLDB4MGQsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MTQsMHgwMAo+IH0sIG14Zl9yZWFk X3RpbWVjb2RlX2NvbXBvbmVudCwgc2l6ZW9mKE1YRlRpbWVjb2RlQ29tcG9uZW50KSwKPiBUaW1l Y29kZUNvbXBvbmVudCB9LAo+ID4+IEBAIC0zMTg3LDEyICszNDg1LDYgQEAgc3RhdGljIHZvaWQK PiBteGZfY29tcHV0ZV9lc3NlbmNlX2NvbnRhaW5lcnMoQVZGb3JtYXRDb250ZXh0ICpzKQo+ID4+ ICAgICAgfQo+ID4+ICB9Cj4gPj4KPiA+PiAtc3RhdGljIGludCBpc19wY20oZW51bSBBVkNvZGVj SUQgY29kZWNfaWQpCj4gPj4gLXsKPiA+PiAtICAgIC8qIHdlIG9ubHkgY2FyZSBhYm91dCAibm9y bWFsIiBQQ00gY29kZWNzIHVudGlsIHdlIGdldCBzYW1wbGVzICovCj4gPj4gLSAgICByZXR1cm4g Y29kZWNfaWQgPj0gQVZfQ09ERUNfSURfUENNX1MxNkxFICYmIGNvZGVjX2lkIDwKPiBBVl9DT0RF Q19JRF9QQ01fUzI0REFVRDsKPiA+PiAtfQo+ID4+IC0KPiA+PiAgc3RhdGljIE1YRkluZGV4VGFi bGUgKm14Zl9maW5kX2luZGV4X3RhYmxlKE1YRkNvbnRleHQgKm14ZiwgaW50Cj4gaW5kZXhfc2lk KQo+ID4+ICB7Cj4gPj4gICAgICBpbnQgaTsKPiA+PiBAQCAtMzYxOSw2ICszOTExLDI1IEBAIHN0 YXRpYyBpbnQgbXhmX3NldF9wdHMoTVhGQ29udGV4dCAqbXhmLCBBVlN0cmVhbQo+ICpzdCwgQVZQ YWNrZXQgKnBrdCkKPiA+PiAgICAgIHJldHVybiAwOwo+ID4+ICB9Cj4gPj4KPiA+PiArc3RhdGlj IGludCBteGZfYXVkaW9fcmVtYXBwaW5nKGludCogY2hhbm5lbF9vcmRlcmluZywgdWludDhfdCog ZGF0YSwKPiBpbnQgc2l6ZSwgaW50IHNhbXBsZV9zaXplLCBpbnQgY2hhbm5lbHMpCj4gPj4gK3sK PiA+PiArICAgIGludCBzYW1wbGVfb2Zmc2V0ID0gY2hhbm5lbHMgKiBzYW1wbGVfc2l6ZTsKPiA+ PiArICAgIGludCBudW1iZXJfb2Zfc2FtcGxlcyA9IHNpemUgLyBzYW1wbGVfb2Zmc2V0Owo+ID4+ ICsgICAgdWludDhfdCB0bXBbRkZfU0FORV9OQl9DSEFOTkVMUyAqIDRdOwo+ID4+ICsgICAgdWlu dDhfdCogZGF0YV9wdHIgPSBkYXRhOwo+ID4+ICsKPiA+PiArICAgIGZvciAoaW50IHNhbXBsZSA9 IDA7IHNhbXBsZSA8IG51bWJlcl9vZl9zYW1wbGVzOyArK3NhbXBsZSkgewo+ID4+ICsgICAgICAg IG1lbWNweSh0bXAsIGRhdGFfcHRyLCBzYW1wbGVfb2Zmc2V0KTsKPiA+PiArCj4gPj4gKyAgICAg ICAgZm9yIChpbnQgY2hhbm5lbCA9IDA7IGNoYW5uZWwgPCBjaGFubmVsczsgKytjaGFubmVsKSB7 Cj4gPj4gKyAgICAgICAgICAgIG1lbWNweSgmZGF0YV9wdHJbc2FtcGxlX3NpemUgKiBjaGFubmVs X29yZGVyaW5nW2NoYW5uZWxdXSwKPiAmdG1wW3NhbXBsZV9zaXplICogY2hhbm5lbF0sIHNhbXBs ZV9zaXplKTsKPiA+PiArICAgICAgICB9Cj4gPj4gKwo+ID4+ICsgICAgICAgIGRhdGFfcHRyICs9 IHNhbXBsZV9vZmZzZXQ7Cj4gPj4gKyAgICB9Cj4gPj4gKyAgICByZXR1cm4gMDsKPiA+PiArfQo+ ID4+ICsKPiA+PiAgc3RhdGljIGludCBteGZfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpz LCBBVlBhY2tldCAqcGt0KQo+ID4+ICB7Cj4gPj4gICAgICBLTFZQYWNrZXQga2x2Owo+ID4+IEBA IC0zNzMzLDYgKzQwNDQsMTUgQEAgc3RhdGljIGludCBteGZfcmVhZF9wYWNrZXQoQVZGb3JtYXRD b250ZXh0ICpzLAo+IEFWUGFja2V0ICpwa3QpCj4gPj4gICAgICAgICAgICAgICAgICByZXR1cm4g cmV0Owo+ID4+ICAgICAgICAgICAgICB9Cj4gPj4KPiA+PiArICAgICAgICAgICAgLy8gZm9yIGF1 ZGlvLCBwcm9jZXNzIGF1ZGlvIHJlbWFwcGluZyBpZiBNQ0EgbGFiZWwKPiByZXF1aXJlcyBpdAo+ ID4+ICsgICAgICAgICAgICBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY190eXBlID09IEFWTUVESUFf VFlQRV9BVURJTyAmJgo+IHRyYWNrLT5yZXF1aXJlX3Jlb3JkZXJpbmcpIHsKPiA+PiArICAgICAg ICAgICAgICAgIGludCBieXRlX3Blcl9zYW1wbGUgPQo+IHN0LT5jb2RlY3Bhci0+Yml0c19wZXJf Y29kZWRfc2FtcGxlIC8gODsKPiA+PiArICAgICAgICAgICAgICAgIHJldCA9IG14Zl9hdWRpb19y ZW1hcHBpbmcodHJhY2stPmNoYW5uZWxfb3JkZXJpbmcsCj4gcGt0LT5kYXRhLCBwa3QtPnNpemUs IGJ5dGVfcGVyX3NhbXBsZSwgc3QtPmNvZGVjcGFyLT5jaGFubmVscyk7Cj4gPj4gKyAgICAgICAg ICAgICAgICBpZiAocmV0IDwgMCkgewo+ID4+ICsgICAgICAgICAgICAgICAgICAgIHJldHVybiBy ZXQ7Cj4gPj4gKyAgICAgICAgICAgICAgICB9Cj4gPj4gKyAgICAgICAgICAgIH0KPiA+PiArCj4g Pj4gICAgICAgICAgICAgIC8qIHNlZWsgZm9yIHRydW5jYXRlZCBwYWNrZXRzICovCj4gPj4gICAg ICAgICAgICAgIGF2aW9fc2VlayhzLT5wYiwga2x2Lm5leHRfa2x2LCBTRUVLX1NFVCk7Cj4gPj4K PiA+PiBAQCAtMzkyMCw2ICs0MjQwLDkgQEAgc3RhdGljIGNvbnN0IEFWT3B0aW9uIG9wdGlvbnNb XSA9IHsKPiA+PiAgICAgIHsgImVpYTYwOF9leHRyYWN0IiwgImV4dHJhY3QgZWlhIDYwOCBjYXB0 aW9ucyBmcm9tIHM0MzZtIHRyYWNrIiwKPiA+PiAgICAgICAgb2Zmc2V0b2YoTVhGQ29udGV4dCwg ZWlhNjA4X2V4dHJhY3QpLCBBVl9PUFRfVFlQRV9CT09MLCB7Lmk2NCA9Cj4gMH0sIDAsIDEsCj4g Pj4gICAgICAgIEFWX09QVF9GTEFHX0RFQ09ESU5HX1BBUkFNIH0sCj4gPj4gKyAgICB7ICJza2lw X2F1ZGlvX3Jlb3JkZXJpbmciLCAic2tpcCBhdWRpbyByZW9yZGVyaW5nIGJhc2VkIG9uCj4gTXVs dGktQ2hhbm5lbCBBdWRpbyBsYWJlbGxpbmciLAo+ID4+ICsgICAgICBvZmZzZXRvZihNWEZDb250 ZXh0LCBza2lwX2F1ZGlvX3Jlb3JkZXJpbmcpLCBBVl9PUFRfVFlQRV9CT09MLAo+IHsuaTY0ID0g MH0sIDAsIDEsCj4gPj4gKyAgICAgIEFWX09QVF9GTEFHX0RFQ09ESU5HX1BBUkFNIH0sCj4gPj4g ICAgICB7IE5VTEwgfSwKPiA+PiAgfTsKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1h dC92ZXJzaW9uLmggYi9saWJhdmZvcm1hdC92ZXJzaW9uLmgKPiA+PiBpbmRleCAwNzA1ZWU0MTEy Li4yMWNhNmVkMDk2IDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2Zm9ybWF0L3ZlcnNpb24uaAo+ID4+ ICsrKyBiL2xpYmF2Zm9ybWF0L3ZlcnNpb24uaAo+ID4+IEBAIC0zMyw3ICszMyw3IEBACj4gPj4g IC8vIEFsc28gcGxlYXNlIGFkZCBhbnkgdGlja2V0IG51bWJlcnMgdGhhdCB5b3UgYmVsaWV2ZSBt aWdodCBiZQo+IGFmZmVjdGVkIGhlcmUKPiA+PiAgI2RlZmluZSBMSUJBVkZPUk1BVF9WRVJTSU9O X01BSk9SICA1OQo+ID4+ICAjZGVmaW5lIExJQkFWRk9STUFUX1ZFUlNJT05fTUlOT1IgICA5Cj4g Pj4gLSNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lPTl9NSUNSTyAxMDIKPiA+PiArI2RlZmluZSBM SUJBVkZPUk1BVF9WRVJTSU9OX01JQ1JPIDEwMwo+ID4+Cj4gPj4gICNkZWZpbmUgTElCQVZGT1JN QVRfVkVSU0lPTl9JTlQKPiBBVl9WRVJTSU9OX0lOVChMSUJBVkZPUk1BVF9WRVJTSU9OX01BSk9S LCBcCj4gPj4KPiAgTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiwgXAo+ID4+IC0tCj4gPj4gMi4z My4xCj4gPj4KPiA+Cj4gPgo+ID4gLS0KPiA+IE1hcmMtQW50b2luZSBBUk5BVUQKPiA+IENFTyAm IEZvdW5kZXIKPiA+Cj4gPiBtb2JpbGU6ICArMzMgNiA4NCA3MSA4NCA0NQo+ID4gZW1haWw6ICAg ICBhcm5hdWQubWFyYy1hbnRvaW5lQGx1bWludmVudC5jb20KPiA+IHdlYnNpdGU6ICBsdW1pbnZl bnQuY29tCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+ID4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcKPiA+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+ ID4KPiA+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+ID4gZmZt cGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGZmbXBl Zy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+IGh0dHBzOi8v ZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+Cj4gVG8gdW5zdWJzY3Jp YmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZt cGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KPgoKCi0tIApNYXJjLUFudG9pbmUg QVJOQVVECkNFTyAmIEZvdW5kZXIKCm1vYmlsZTogICszMyA2IDg0IDcxIDg0IDQ1IDwrMzMrNis4 NCs3MSs4NCs0NT4KZW1haWw6ICAgICBhcm5hdWQgPGFybmF1ZC5tYXJjLWFudG9pbmVAbHVtaW52 ZW50LmNvbT4KLm1hcmMtYW50b2luZUBsdW1pbnZlbnQuY29tIDxhcm5hdWQubWFyYy1hbnRvaW5l QGx1bWludmVudC5jb20+Cjxhcm5hdWQubWFyYy1hbnRvaW5lQGx1bWludmVudC5jb20+CndlYnNp dGU6ICBsdW1pbnZlbnQuY29tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVl c3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K