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 2660E40610 for ; Sun, 27 Feb 2022 03:03:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DA8B168AF4C; Sun, 27 Feb 2022 05:03:09 +0200 (EET) Received: from mail-oo1-f48.google.com (mail-oo1-f48.google.com [209.85.161.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 31F87689A2B for ; Sun, 27 Feb 2022 05:03:03 +0200 (EET) Received: by mail-oo1-f48.google.com with SMTP id u47-20020a4a9732000000b00316d0257de0so13250496ooi.7 for ; Sat, 26 Feb 2022 19:03:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:content-language:to :references:from:subject:in-reply-to:content-transfer-encoding; bh=xdihO9Z2aRnjjvgv1XfEoaoCClioSkFx9gY95EGK01Y=; b=luhe90Qb8wYUSWvKbhHHT/BS9PCHP9Q7eq2FVqmXhSaopubFzSRidO0/D89GczKCBt DwPjvWiQ2/7Yq42x7O3btEViYmkZVz98FuIez7Nos4AAr3COsWlLnZ1KhD4iT8rjcwDp ksZU4vywDcGsQ0S51NTeTOhDgH5tE0uO4GVkz9M0gMgHdhLgeHb7Deis6vSS1cDzje7Q 27KZRfcWRMEzB/jVd/bmaBivv2zZfCuQ3NFJaORg1Lj8A1vUhnE9PfcXAhRlqj0ZEnT6 Z0dAMCUS5txS/TmdF6T7mLaqOWntvtjSFdTr9vZ8X1zohw6XnxO8NHd9acm1WI0/o6nv zNzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:to:references:from:subject:in-reply-to :content-transfer-encoding; bh=xdihO9Z2aRnjjvgv1XfEoaoCClioSkFx9gY95EGK01Y=; b=CKNuWB6LcTpQWvAz/gAnH7QOzp6nXWKSmVSOztySAOKKmLc0mj8tWYFFyudYphy6oM zpXfBrsYfceronBUmKNAyx9TlYBWY2bD0GVNmIjqj99i9RxICxe2o6GDQ06JK9DjWmT2 RFjLgC16gcxhcA263J0kWrJ1BDpF6SGf+pUUq49orcguo0tU/We+O2ZR2Mxg+6/HDLbF /Ck5enHQfR/rygNMvaAL9GlQusYck5R8EdFg9udoo7HSwZ6HK18DW5dXFGH1d7X9mkE+ rpRiT0uD8k9VHVG1PdvfPl8KxGBE+hwmUCJCYhS59JChf1vAyNjNtyb4yOKiF8KmH+kS /QIw== X-Gm-Message-State: AOAM531LIpU2nRJnkvKMnKKaNsymWFfbmmzSNWudeYx/+oEHAieSzqjP bGYEBWyXADh6rt4+0Jgv53d8yoibvONZ2g== X-Google-Smtp-Source: ABdhPJyeSF5OwdpWSAV2Jy6oAvb7AvNc8bab1/98uXF1jczXY+QZKkWjQiKfedrV8TjI2lQF0AAuwg== X-Received: by 2002:a05:6870:5597:b0:d6:db62:b488 with SMTP id n23-20020a056870559700b000d6db62b488mr4918805oao.232.1645930980378; Sat, 26 Feb 2022 19:03:00 -0800 (PST) Received: from [192.168.0.10] ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id a69-20020a4a4c48000000b0031bec1608fbsm3101410oob.17.2022.02.26.19.02.59 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 26 Feb 2022 19:02:59 -0800 (PST) Message-ID: <5cea3644-c9a7-f9e9-be74-691d11722762@gmail.com> Date: Sun, 27 Feb 2022 00:02:57 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <925e5a3e-2a24-a6f3-f927-a666ef6e656f@gmail.com> From: James Almer In-Reply-To: <925e5a3e-2a24-a6f3-f927-a666ef6e656f@gmail.com> Subject: Re: [FFmpeg-devel] [PATCH v3 1/2] libavcodec: Added DFPWM1a codec 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gMi8yNi8yMDIyIDg6MjYgUE0sIEphY2sgQnJ1aWVubmUgd3JvdGU6Cj4gCj4gIEZyb20gdGhl IHdpa2kgcGFnZSAoaHR0cHM6Ly93aWtpLnZleGF0b3MuY29tL2RmcHdtKToKPj4gREZQV00gKER5 bmFtaWMgRmlsdGVyIFB1bHNlIFdpZHRoIE1vZHVsYXRpb24pIGlzIGFuIGF1ZGlvIGNvZGVjCj4+ IGNyZWF0ZWQgYnkgQmVuIOKAnEdyZWFzZU1vbmtleeKAnSBSdXNzZWxsIGluIDIwMTIsIG9yaWdp bmFsbHkgdG8gYmUgdXNlZAo+PiBhcyBhIHZvaWNlIGNvZGVjIGZvciBhc2lla2llcmthJ3MgcGl4 bWVzcywgYSBDIHJlbWFrZSBvZiA2NHBpeGVscy4KPj4gSXQgaXMgYSAxLWJpdC1wZXItc2FtcGxl IGNvZGVjIHdoaWNoIHVzZXMgYSBkeW5hbWljLXN0cmVuZ3RoIG9uZS1wb2xlCj4+IGxvdy1wYXNz IGZpbHRlciBhcyBhIHByZWRpY3Rvci4gRHVlIHRvIHRoZSBmYWN0IHRoYXQgYSByYXcgRFBGV00g ZGVjb2RpbmcKPj4gY3JlYXRlcyBhIGhpZ2gtcGl0Y2hlZCB3aGluZSwgaXQgaXMgb2Z0ZW4gZm9s bG93ZWQgYnkgc29tZSAKPj4gcG9zdC1wcm9jZXNzaW5nCj4+IGZpbHRlcnMgdG8gbWFrZSB0aGUg c3RyZWFtIG1vcmUgbGlzdGVuYWJsZS4KPiAKPiBJdCBoYXMgcmVjZW50bHkgZ2FpbmVkIHBvcHVs YXJpdHkgdGhyb3VnaCB0aGUgQ29tcHV0ZXJDcmFmdCBtb2QgZm9yCj4gTWluZWNyYWZ0LCB3aGlj aCBhZGRlZCBzdXBwb3J0IGZvciBhdWRpbyB0aHJvdWdoIHRoaXMgY29kZWMsIGFzIHdlbGwgYXMK PiB0aGUgQ29tcHV0cm9uaWNzIGV4cGFuc2lvbiB3aGljaCBwcmVjZWVkZWQgdGhlIG9mZmljaWFs IHN1cHBvcnQuIFRoZXNlCj4gYm90aCBpbXBsZW1lbnQgdGhlIHNsaWdodGx5IGFkanVzdGVkIDFh IHZlcnNpb24gb2YgdGhlIGNvZGVjLCB3aGljaCBpcwo+IHRoZSB2ZXJzaW9uIEkgaGF2ZSBjaG9z ZW4gZm9yIHRoaXMgcGF0Y2guCj4gCj4gVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGNvZGVjICh3aXRo IGVuY29kaW5nIGFuZCBkZWNvZGluZykgZm9yIERGUFdNMWEuCj4gCj4gVGhlIGNvZGVjIHNvdXJj ZXMgYXJlIHByZXR0eSBzaW1wbGU6IHRoZXkgdXNlIHRoZSByZWZlcmVuY2UgY29kZWMgd2l0aAo+ IGEgYmFzaWMgd3JhcHBlciB0byBjb25uZWN0IGl0IHRvIHRoZSBGRm1wZWcgQVZDb2RlYyBzeXN0 ZW0uCj4gCj4gVGhpcyBwYXRjaCB3aWxsIGJlIGhpZ2hseSB1c2VmdWwgdG8gQ29tcHV0ZXJDcmFm dCBkZXZlbG9wZXJzIHdobyBhcmUKPiB3b3JraW5nIHdpdGggYXVkaW8sIGFzIGl0IGlzIHRoZSBz dGFuZGFyZCBmb3JtYXQgZm9yIGF1ZGlvLCBhbmQgdGhlcmUKPiBhcmUgZmV3IHVzZXItZnJpZW5k bHkgZW5jb2RlcnMgb3V0IHRoZXJlLiBJdCB3aWxsIHN0cmVhbWxpbmUgdGhlIHByb2Nlc3MKPiBm b3IgaW1wb3J0aW5nIGF1ZGlvLCByZXBsYWNpbmcgdGhlIG5lZWQgdG8gd3JpdGUgY29kZSBvciB1 c2UgdG9vbHMgdGhhdAo+IHJlcXVpcmUgdmVyeSBzcGVjaWZpYyBpbnB1dCBmb3JtYXRzLgo+IAo+ IFlvdSBtYXkgdXNlIHRoZSBDcmFmdE9TLVBDIHByb2dyYW0gKGh0dHBzOi8vd3d3LmNyYWZ0b3Mt cGMuY2MpIHRvIHRlc3QKPiBvdXQgREZQV00gcGxheWJhY2suIFRvIHVzZSBpdCwgcnVuIHRoZSBw cm9ncmFtIGFuZCB0eXBlIHRoaXMgY29tbWFuZDoKPiAiYXR0YWNoIGxlZnQgc3BlYWtlciIgVGhl biBydW4gInNwZWFrZXIgcGxheSA8ZmlsZS5kZnB3bT4iIGZvciBlYWNoIGZpbGUuCj4gVGhlIGFw cCBydW5zIGluIGEgc2FuZGJveCwgc28gZmlsZXMgaGF2ZSB0byBiZSB0cmFuc2ZlcnJlZCBpbiBm aXJzdDsKPiB0aGUgZWFzaWVzdCB3YXkgdG8gZG8gdGhpcyBpcyB0byBzaW1wbHkgZHJhZyB0aGUg ZmlsZSBvbiB0aGUgd2luZG93Lgo+IChPciBjb3B5IGZpbGVzIHRvIHRoZSBmb2xkZXIgYXQgaHR0 cHM6Ly93d3cuY3JhZnRvcy1wYy5jYy9kb2NzL3NhdmVzLikKPiAKPiBTYW1wbGUgREZQV00gZmls ZXMgY2FuIGJlIGdlbmVyYXRlZCB3aXRoIGFuIG9ubGluZSB0b29sIGF0Cj4gaHR0cHM6Ly9tdXNp Yy5tYWRlZm9yLmNjLiBUaGlzIGlzIHRoZSBjdXJyZW50IGJlc3Qgd2F5IHRvIGVuY29kZSBERlBX TQo+IGZpbGVzLiBTaW1wbHkgZHJhZyBhbiBhdWRpbyBmaWxlIG9udG8gdGhlIHBhZ2UsIGFuZCBp dCB3aWxsIGVuY29kZSBpdCwKPiBnaXZpbmcgYSBkb3dubG9hZCBsaW5rIG9uIHRoZSBwYWdlLgo+ IAo+IEkndmUgbWFkZSBzdXJlIHRvIHVwZGF0ZSBhbGwgb2YgdGhlIGRvY3MgYXMgcGVyIERldmVs b3BlcsKnNywgYW5kIEkndmUKPiB0ZXN0ZWQgaXQgYXMgcGVyIHNlY3Rpb24gOC4gVGVzdCBmaWxl cyBlbmNvZGVkIHRvIERGUFdNIHBsYXkgY29ycmVjdGx5Cj4gaW4gQ29tcHV0ZXJDcmFmdCwgYW5k IG90aGVyIGZpbGVzIHRoYXQgd29yayBpbiBDQyBhcmUgY29ycmVjdGx5IGRlY29kZWQuCj4gSSBo YXZlIGFsc28gdmVyaWZpZWQgdGhhdCBjb3JydXB0IGZpbGVzIGRvIG5vdCBjcmFzaCB0aGUgZGVj b2RlciAtIHRoaXMKPiBzaG91bGQgdGhlb3JldGljYWxseSBub3QgYmUgYW4gaXNzdWUgYXMgdGhl IHJlc3VsdCBzaXplIGlzIGNvbnN0YW50IHdpdGgKPiByZXNwZWN0IHRvIHRoZSBpbnB1dCBzaXpl Lgo+IAo+IENoYW5nZXMgc2luY2UgdGhlIHByaW9yIHYyIHBhdGNoOgo+IEkndmUgZm91bmQgdGhh dCB0aGUgcmVmZXJlbmNlIGVuY29kZXIgaGFzIGEgZmV3IGVycm9ycywgYW5kIHNvdW5kcwo+IHdv cnNlIHRoYW4gdGhlIEphdmEtYmFzZWQgaW1wbGVtZW50YXRpb24gdGhhdCBpcyB1c2VkIG1vc3Qg b2Z0ZW4uIEkgZ290Cj4gaW4gY29udGFjdCB3aXRoIHNvbWVvbmUgd2hvIGtub3dzIERGUFdNIG11 Y2ggYmV0dGVyIHRoYW4gSSBkbywgYW5kIEkKPiB3b3JrZWQgd2l0aCB0aGVtIHRvIG1ha2UgYSBm ZXcgYWRqdXN0bWVudHMgdGhhdCBzaG91bGQgaW1wcm92ZSB0aGUKPiBhdWRpbyBxdWFsaXR5LiBJ IGFsc28gbWFkZSBzdXJlIHRoYXQgdGhlIG91dHB1dCBtYXRjaGVzIHRoZSBKYXZhCj4gY29kZWMg ZXhhY3RseSwgc28gaXQgc2hvdWxkIGhhdmUgdGhlIGV4YWN0IHNhbWUgcXVhbGl0eSBhcyBvdGhl ciBjb2RlY3MuCj4gCj4gU2lnbmVkLW9mZi1ieTogSmFjayBCcnVpZW5uZSA8amFja2JydWllbm5l QGdtYWlsLmNvbT4KPiAtLS0KPiAgwqBDaGFuZ2Vsb2fCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB8wqDCoCAxICsKPiAgwqBNQUlOVEFJTkVSU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfMKgwqAgMSArCj4gIMKgZG9jL2dlbmVyYWxfY29udGVudHMudGV4aSB8wqDCoCAxICsK PiAgwqBsaWJhdmNvZGVjL01ha2VmaWxlwqDCoMKgwqDCoMKgIHzCoMKgIDIgKwo+ICDCoGxpYmF2 Y29kZWMvYWxsY29kZWNzLmPCoMKgwqAgfMKgwqAgMiArCj4gIMKgbGliYXZjb2RlYy9jb2RlY19k ZXNjLmPCoMKgIHzCoMKgIDcgKysrCj4gIMKgbGliYXZjb2RlYy9jb2RlY19pZC5owqDCoMKgwqAg fMKgwqAgMSArCj4gIMKgbGliYXZjb2RlYy9kZnB3bWRlYy5jwqDCoMKgwqAgfCAxMjkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgwqBsaWJhdmNvZGVjL2RmcHdtZW5j LmPCoMKgwqDCoCB8IDEyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAg wqBsaWJhdmNvZGVjL3V0aWxzLmPCoMKgwqDCoMKgwqDCoCB8wqDCoCAyICsKPiAgwqBsaWJhdmNv ZGVjL3ZlcnNpb24uaMKgwqDCoMKgwqAgfMKgwqAgMiArLQo+ICDCoDExIGZpbGVzIGNoYW5nZWQs IDI3MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gIMKgY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYmF2Y29kZWMvZGZwd21kZWMuYwo+ICDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVj L2RmcHdtZW5jLmMKCj4gZGlmZiAtLWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwo+IGluZGV4 IDVhZDJjZWYuLjUxNzBhNmEgMTAwNjQ0Cj4gLS0tIGEvQ2hhbmdlbG9nCj4gKysrIGIvQ2hhbmdl bG9nCj4gQEAgLTQsNiArNCw3IEBAIHJlbGVhc2VzIGFyZSBzb3J0ZWQgZnJvbSB5b3VuZ2VzdCB0 byBvbGRlc3QuCj4gIHZlcnNpb24gNS4xOgo+ICAtIGRpYWxvZ3VlIGVuaGFuY2UgYXVkaW8gZmls dGVyCj4gIC0gZHJvcHBlZCBvYnNvbGV0ZSBYdk1DIGh3YWNjZWwKPiArLSBERlBXTSBhdWRpbyBl bmNvZGVyL2RlY29kZXIKPiAgCj4gIAo+ICB2ZXJzaW9uIDUuMDoKPiBkaWZmIC0tZ2l0IGEvTUFJ TlRBSU5FUlMgYi9NQUlOVEFJTkVSUwo+IGluZGV4IGYzM2NjYmQuLjU3YjZmMzMgMTAwNjQ0Cj4g LS0tIGEvTUFJTlRBSU5FUlMKPiArKysgYi9NQUlOVEFJTkVSUwo+IEBAIC0xNjEsNiArMTYxLDcg QEAgQ29kZWNzOgo+ICAgIGNzY2QuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVp bWFyIERvZWZmaW5nZXIKPiAgICBjdXZpZGRlYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRpbW8gUm90aGVucGllbGVyCj4gICAgZGNhKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb284Ngo+ICsgIGRmcHdtKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSmFj ayBCcnVpZW5uZQo+ICAgIGRpcmFjKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9z dGlzbGF2IFBlaGxpdmFub3YKPiAgICBkbnhoZCogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJhcHRpc3RlIENvdWR1cmllcgo+ICAgIGRvbGJ5X2UqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZm9vODYKPiBkaWZmIC0tZ2l0IGEvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aSBi L2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRleGkKPiBpbmRleCBkZjE2OTJjLi4xNGFlYWVkIDEwMDY0 NAo+IC0tLSBhL2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRleGkKPiArKysgYi9kb2MvZ2VuZXJhbF9j b250ZW50cy50ZXhpCj4gQEAgLTExOTQsNiArMTE5NCw3IEBAIGZvbGxvd2luZyBpbWFnZSBmb3Jt YXRzIGFyZSBzdXBwb3J0ZWQ6Cj4gIEBpdGVtIENSSSBIQ0EgICAgICAgICAgICAgICAgQHRhYiAg ICAgQHRhYiBYCj4gIEBpdGVtIERlbHBoaW5lIFNvZnR3YXJlIEludGVybmF0aW9uYWwgQ0lOIGF1 ZGlvICBAdGFiICAgICBAdGFiICBYCj4gICAgICBAdGFiIENvZGVjIHVzZWQgaW4gRGVscGhpbmUg U29mdHdhcmUgSW50ZXJuYXRpb25hbCBnYW1lcy4KPiArQGl0ZW0gREZQV00gICAgICAgICAgICAg ICAgICBAdGFiICBYICBAdGFiICBYCj4gIEBpdGVtIERpZ2l0YWwgU3BlZWNoIFN0YW5kYXJkIC0g U3RhbmRhcmQgUGxheSBtb2RlIChEU1MgU1ApIEB0YWIgICAgIEB0YWIgIFgKPiAgQGl0ZW0gRGlz Y3dvcmxkIElJIEJNViBBdWRpbyBAdGFiICAgICBAdGFiICBYCj4gIEBpdGVtIENPT0sgICAgICAg ICAgICAgICAgICAgQHRhYiAgICAgQHRhYiAgWAo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL01h a2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQo+IGluZGV4IDYwNzZiNGEuLjc0NzQyMjAgMTAw NjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9NYWtlZmlsZQo+ICsrKyBiL2xpYmF2Y29kZWMvTWFrZWZp bGUKPiBAQCAtMjg5LDYgKzI4OSw4IEBAIE9CSlMtJChDT05GSUdfREVSRl9EUENNX0RFQ09ERVIp ICAgICAgICs9IGRwY20ubwo+ICBPQkpTLSQoQ09ORklHX0RJUkFDX0RFQ09ERVIpICAgICAgICAg ICArPSBkaXJhY2RlYy5vIGRpcmFjLm8gZGlyYWNkc3AubyBkaXJhY3RhYi5vIFwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyYWNfYXJpdGgubyBkaXJhY19k d3QubyBkaXJhY192bGMubwo+ICBPQkpTLSQoQ09ORklHX0RGQV9ERUNPREVSKSAgICAgICAgICAg ICArPSBkZmEubwo+ICtPQkpTLSQoQ09ORklHX0RGUFdNX0RFQ09ERVIpICAgICAgICAgICArPSBk ZnB3bWRlYy5vCj4gK09CSlMtJChDT05GSUdfREZQV01fRU5DT0RFUikgICAgICAgICAgICs9IGRm cHdtZW5jLm8KPiAgT0JKUy0kKENPTkZJR19ETlhIRF9ERUNPREVSKSAgICAgICAgICAgKz0gZG54 aGRkZWMubyBkbnhoZGRhdGEubwo+ICBPQkpTLSQoQ09ORklHX0ROWEhEX0VOQ09ERVIpICAgICAg ICAgICArPSBkbnhoZGVuYy5vIGRueGhkZGF0YS5vCj4gIE9CSlMtJChDT05GSUdfRE9MQllfRV9E RUNPREVSKSAgICAgICAgICs9IGRvbGJ5X2UubyBkb2xieV9lX3BhcnNlLm8ga2Jkd2luLm8KPiBk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hbGxjb2RlY3MuYyBiL2xpYmF2Y29kZWMvYWxsY29kZWNz LmMKPiBpbmRleCBkMWUxMDE5Li5jM2EwYzI2IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvYWxs Y29kZWNzLmMKPiArKysgYi9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCj4gQEAgLTQzNyw2ICs0Mzcs OCBAQCBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9ibXZfYXVkaW9fZGVjb2RlcjsKPiAgZXh0ZXJu IGNvbnN0IEFWQ29kZWMgZmZfY29va19kZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgQVZDb2RlYyBm Zl9kY2FfZW5jb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfZGNhX2RlY29kZXI7Cj4g K2V4dGVybiBjb25zdCBBVkNvZGVjIGZmX2RmcHdtX2VuY29kZXI7Cj4gK2V4dGVybiBjb25zdCBB VkNvZGVjIGZmX2RmcHdtX2RlY29kZXI7Cj4gIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2RvbGJ5 X2VfZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfZHNkX2xzYmZfZGVjb2RlcjsK PiAgZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfZHNkX21zYmZfZGVjb2RlcjsKPiBkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy9jb2RlY19kZXNjLmMgYi9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYwo+IGlu ZGV4IDcyNWM2ODcuLjgxZjNiM2MgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9jb2RlY19kZXNj LmMKPiArKysgYi9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYwo+IEBAIC0zMjM3LDYgKzMyMzcsMTMg QEAgc3RhdGljIGNvbnN0IEFWQ29kZWNEZXNjcmlwdG9yIGNvZGVjX2Rlc2NyaXB0b3JzW10gPSB7 Cj4gICAgICAgICAgLmxvbmdfbmFtZSA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJNU04gU2lyZW4i KSwKPiAgICAgICAgICAucHJvcHMgICAgID0gQVZfQ09ERUNfUFJPUF9JTlRSQV9PTkxZIHwgQVZf Q09ERUNfUFJPUF9MT1NTWSwKPiAgICAgIH0sCj4gKyAgICB7Cj4gKyAgICAgICAgLmlkICAgICAg ICA9IEFWX0NPREVDX0lEX0RGUFdNLAo+ICsgICAgICAgIC50eXBlICAgICAgPSBBVk1FRElBX1RZ UEVfQVVESU8sCj4gKyAgICAgICAgLm5hbWUgICAgICA9ICJkZnB3bSIsCj4gKyAgICAgICAgLmxv bmdfbmFtZSA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJERlBXTSAoRHluYW1pYyBGaWx0ZXIgUHVs c2UgV2lkdGggTW9kdWxhdGlvbikiKSwKPiArICAgICAgICAucHJvcHMgICAgID0gQVZfQ09ERUNf UFJPUF9MT1NTWSwKPiArICAgIH0sCj4gIAo+ICAgICAgLyogc3VidGl0bGUgY29kZWNzICovCj4g ICAgICB7Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvY29kZWNfaWQuaCBiL2xpYmF2Y29kZWMv Y29kZWNfaWQuaAo+IGluZGV4IGFiMjY1ZWMuLjNmZmI5YmQgMTAwNjQ0Cj4gLS0tIGEvbGliYXZj b2RlYy9jb2RlY19pZC5oCj4gKysrIGIvbGliYXZjb2RlYy9jb2RlY19pZC5oCj4gQEAgLTUxNiw2 ICs1MTYsNyBAQCBlbnVtIEFWQ29kZWNJRCB7Cj4gICAgICBBVl9DT0RFQ19JRF9IQ0EsCj4gICAg ICBBVl9DT0RFQ19JRF9GQVNUQVVESU8sCj4gICAgICBBVl9DT0RFQ19JRF9NU05TSVJFTiwKPiAr ICAgIEFWX0NPREVDX0lEX0RGUFdNLAo+ICAKPiAgICAgIC8qIHN1YnRpdGxlIGNvZGVjcyAqLwo+ ICAgICAgQVZfQ09ERUNfSURfRklSU1RfU1VCVElUTEUgPSAweDE3MDAwLCAgICAgICAgICAvLy88 IEEgZHVtbXkgSUQgcG9pbnRpbmcgYXQgdGhlIHN0YXJ0IG9mIHN1YnRpdGxlIGNvZGVjcy4KPiBk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kZnB3bWRlYy5jIGIvbGliYXZjb2RlYy9kZnB3bWRlYy5j Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5iNzgzYWFkCj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL2xpYmF2Y29kZWMvZGZwd21kZWMuYwo+IEBAIC0wLDAgKzEsMTI5IEBA Cj4gKy8qCj4gKyAqIERGUFdNIGRlY29kZXIKPiArICogQ29weXJpZ2h0IChjKSAyMDIyIEphY2sg QnJ1aWVubmUKPiArICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE2IEJlbiAiR3JlYXNlTW9ua2V5 IiBSdXNzZWxsCj4gKyAqCj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPiArICoK PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgo+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICogRkZtcGVn IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCj4gKyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhbG9u ZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ICsgKiBG b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s IE1BIDAyMTEwLTEzMDEgVVNBCj4gKyAqLwo+ICsKPiArLyoqCj4gKyAqIEBmaWxlCj4gKyAqIERG UFdNMWEgZGVjb2Rlcgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaW50ZXJuYWwu aCIKPiArI2luY2x1ZGUgImF2Y29kZWMuaCIKPiArI2luY2x1ZGUgImNvZGVjX2lkLmgiCj4gKyNp bmNsdWRlICJpbnRlcm5hbC5oIgo+ICsKPiArdHlwZWRlZiBzdHJ1Y3Qgewo+ICsgICAgaW50IGZx LCBxLCBzLCBsdDsKPiArfSBERlBXTVN0YXRlOwo+ICsKPiArLy8gREZQV00gY29kZWMgZnJvbSBo dHRwczovL2dpdGh1Yi5jb20vQ2hlblRocmVhZC9kZnB3bS9ibG9iL21hc3Rlci8xYS8KPiArLy8g TGljZW5zZWQgaW4gdGhlIHB1YmxpYyBkb21haW4KPiArCj4gKyNpZm5kZWYgQ09OU1RfUFJFQwoK UmVtb3ZlIHRoaXMgY2hlY2suIE5vdGhpbmcgc2hvdWxkIGhhdmUgZGVmaW5lZCBpdCBhdCB0aGlz IHBvaW50LgoKPiArI2RlZmluZSBDT05TVF9QUkVDIDEwCj4gKyNlbmRpZgo+ICsKPiArc3RhdGlj IHZvaWQgYXVfZGVjb21wcmVzcyhERlBXTVN0YXRlICpzdGF0ZSwgaW50IGZzLCBpbnQgbGVuLCB1 aW50OF90ICpvdXRidWYsIHVpbnQ4X3QgKmluYnVmKQo+ICt7Cj4gKyAgICBpbnQgaSwgajsKPiAr ICAgIHVpbnQ4X3QgZDsKClVuc2lnbmVkIGlzIGJldHRlciB0aGFuIGZpeGVkIHNpemUgdHlwZXMg Zm9yIGEgc2NhbGFyIGxpa2UgdGhpcy4KCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKysp IHsKCmZvciAoaW50IGkuLi4KCj4gKyAgICAgICAgLy8gZ2V0IGJpdHMKPiArICAgICAgICBkID0g KihpbmJ1ZisrKTsKPiArICAgICAgICBmb3IgKGogPSAwOyBqIDwgODsgaisrKSB7Cgpmb3IgKGlu dCBqLi4uCgo+ICsgICAgICAgICAgICBpbnQgbnEsIGxxLCBzdCwgbnMsIG92Owo+ICsgICAgICAg ICAgICAvLyBzZXQgdGFyZ2V0Cj4gKyAgICAgICAgICAgIGludCB0ID0gKChkJjEpID8gMTI3IDog LTEyOCk7Cj4gKyAgICAgICAgICAgIGQgPj49IDE7Cj4gKwo+ICsgICAgICAgICAgICAvLyBhZGp1 c3QgY2hhcmdlCj4gKyAgICAgICAgICAgIG5xID0gc3RhdGUtPnEgKyAoKHN0YXRlLT5zICogKHQt c3RhdGUtPnEpICsgKDE8PChDT05TVF9QUkVDLTEpKSk+PkNPTlNUX1BSRUMpOwo+ICsgICAgICAg ICAgICBpZihucSA9PSBzdGF0ZS0+cSAmJiBucSAhPSB0KQo+ICsgICAgICAgICAgICAgICAgbnEg Kz0gKHQgPT0gMTI3ID8gMSA6IC0xKTsKPiArICAgICAgICAgICAgbHEgPSBzdGF0ZS0+cTsKPiAr ICAgICAgICAgICAgc3RhdGUtPnEgPSBucTsKPiArCj4gKyAgICAgICAgICAgIC8vIGFkanVzdCBz dHJlbmd0aAo+ICsgICAgICAgICAgICBzdCA9ICh0ICE9IHN0YXRlLT5sdCA/IDAgOiAoMTw8Q09O U1RfUFJFQyktMSk7Cj4gKyAgICAgICAgICAgIG5zID0gc3RhdGUtPnM7Cj4gKyAgICAgICAgICAg IGlmKG5zICE9IHN0KQo+ICsgICAgICAgICAgICAgICAgbnMgKz0gKHN0ICE9IDAgPyAxIDogLTEp Owo+ICsjaWYgQ09OU1RfUFJFQyA+IDgKClNhbWUsIHJlbW92ZSB0aGlzIGNoZWNrLgoKPiArICAg ICAgICAgICAgaWYobnMgPCAoMjw8KENPTlNUX1BSRUMtOCkpKSBucyA9ICgyPDwoQ09OU1RfUFJF Qy04KSk7Cj4gKyNlbmRpZgo+ICsgICAgICAgICAgICBzdGF0ZS0+cyA9IG5zOwo+ICsKPiArICAg ICAgICAgICAgLy8gRklMVEVSOiBwZXJmb3JtIGFudGlqZXJrCj4gKyAgICAgICAgICAgIG92ID0g KHQgIT0gc3RhdGUtPmx0ID8gKG5xK2xxKzEpPj4xIDogbnEpOwo+ICsKPiArICAgICAgICAgICAg Ly8gRklMVEVSOiBwZXJmb3JtIExQRgo+ICsgICAgICAgICAgICBzdGF0ZS0+ZnEgKz0gKChmcyoo b3Ytc3RhdGUtPmZxKSArIDB4ODApPj44KTsKPiArICAgICAgICAgICAgb3YgPSBzdGF0ZS0+ZnE7 Cj4gKwo+ICsgICAgICAgICAgICAvLyBvdXRwdXQgc2FtcGxlCj4gKyAgICAgICAgICAgICoob3V0 YnVmKyspID0gb3YgKyAxMjg7Cj4gKwo+ICsgICAgICAgICAgICBzdGF0ZS0+bHQgPSB0Owo+ICsg ICAgICAgIH0KPiArICAgIH0KPiArfQo+ICsKPiArc3RhdGljIGF2X2NvbGQgaW50IGRmcHdtX2Rl Y19pbml0KHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqY3R4KQo+ICt7Cj4gKyAgICBERlBXTVN0YXRl ICpzdGF0ZSA9IGN0eC0+cHJpdl9kYXRhOwo+ICsKPiArICAgIHN0YXRlLT5mcSA9IDA7Cj4gKyAg ICBzdGF0ZS0+cSA9IDA7Cj4gKyAgICBzdGF0ZS0+cyA9IDA7Cj4gKyAgICBzdGF0ZS0+bHQgPSAt MTI4Owo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGRmcHdtX2Rl Y19mcmFtZShzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgKmN0eCwgdm9pZCAqZGF0YSwKPiArICAgIGlu dCAqZ290X2ZyYW1lLCBzdHJ1Y3QgQVZQYWNrZXQgKnBhY2tldCkKPiArewo+ICsgICAgREZQV01T dGF0ZSAqc3RhdGUgPSBjdHgtPnByaXZfZGF0YTsKPiArICAgIEFWRnJhbWUgKmZyYW1lID0gZGF0 YTsKPiArCj4gKyAgICBmcmFtZS0+Zm9ybWF0ID0gQVZfU0FNUExFX0ZNVF9VODsKPiArICAgIGZy YW1lLT5uYl9zYW1wbGVzID0gcGFja2V0LT5zaXplICogODsKPiArICAgIGZyYW1lLT5jaGFubmVs X2xheW91dCA9IEFWX0NIX0xBWU9VVF9NT05POwoKVGhlc2Ugc2hvdWxkIGJlIHNldCBpbiB0aGUg QVZDb2RlY0NvbnRleHQgaW4gZGZwd21fZGVjX2luaXQoKSBhYm92ZS4gCmZmX2dldF9idWZmZXIo KSB3aWxsIHRoZW4gY29weSB0aGVtIHRvIHRoZSBmcmFtZSBoZXJlLgoKQWxzbywgbWlzc2luZyBj aGFubmVscyBhbmQgc2FtcGxlX3JhdGUuCgo+ICsKPiArICAgIGZmX2dldF9idWZmZXIoY3R4LCBm cmFtZSwgMCk7Cj4gKwo+ICsgICAgYXVfZGVjb21wcmVzcyhzdGF0ZSwgMTQwLCBwYWNrZXQtPnNp emUsIGZyYW1lLT5kYXRhWzBdLCBwYWNrZXQtPmRhdGEpOwo+ICsKPiArICAgIGlmIChnb3RfZnJh bWUpICpnb3RfZnJhbWUgPSAxOwoKZ290X2ZyYW1lIGlzIG5ldmVyIE5VTEwuCgo+ICsgICAgcmV0 dXJuIHBhY2tldC0+c2l6ZTsKPiArfQo+ICsKPiArY29uc3QgQVZDb2RlYyBmZl9kZnB3bV9kZWNv ZGVyID0gewo+ICsgICAgLm5hbWUgICAgICAgICAgID0gImRmcHdtIiwKPiArICAgIC5sb25nX25h bWUgICAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJERlBXTTFhIGF1ZGlvIiksCj4gKyAgICAu dHlwZSAgICAgICAgICAgPSBBVk1FRElBX1RZUEVfQVVESU8sCj4gKyAgICAuaWQgICAgICAgICAg ICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPiArICAgIC5wcml2X2RhdGFfc2l6ZSA9IHNpemVvZihE RlBXTVN0YXRlKSwKPiArICAgIC5pbml0ICAgICAgICAgICA9IGRmcHdtX2RlY19pbml0LAo+ICsg ICAgLmRlY29kZSAgICAgICAgID0gZGZwd21fZGVjX2ZyYW1lLAo+ICsgICAgLmNhcGFiaWxpdGll cyAgID0gQVZfQ09ERUNfQ0FQX0RSMSwKCkFsc28gbmVlZHMgQVZfQ09ERUNfQ0FQX0NIQU5ORUxf Q09ORi4KCj4gKyAgICAuY2Fwc19pbnRlcm5hbCAgPSBGRl9DT0RFQ19DQVBfSU5JVF9USFJFQURT QUZFLAo+ICt9Owo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKRml4IHRoaXMgcGxlYXNl LgoKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kZnB3bWVuYy5jIGIvbGliYXZjb2RlYy9kZnB3 bWVuYy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5jOTczY2M4Cj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xpYmF2Y29kZWMvZGZwd21lbmMuYwo+IEBAIC0wLDAgKzEs MTIzIEBACj4gKy8qCj4gKyAqIERGUFdNIGVuY29kZXIKPiArICogQ29weXJpZ2h0IChjKSAyMDIy IEphY2sgQnJ1aWVubmUKPiArICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE2IEJlbiAiR3JlYXNl TW9ua2V5IiBSdXNzZWxsCj4gKyAqCj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4K PiArICoKPiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgo+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICog RkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Cj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gKyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5z ZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC b3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4gKyAqLwo+ICsKPiArLyoqCj4gKyAqIEBmaWxlCj4g KyAqIERGUFdNMWEgZW5jb2Rlcgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaW50 ZXJuYWwuaCIKPiArI2luY2x1ZGUgImF2Y29kZWMuaCIKPiArI2luY2x1ZGUgImNvZGVjX2lkLmgi Cj4gKyNpbmNsdWRlICJpbnRlcm5hbC5oIgo+ICsKPiArdHlwZWRlZiBzdHJ1Y3Qgewo+ICsgICAg aW50IGZxLCBxLCBzLCBsdDsKPiArfSBERlBXTVN0YXRlOwo+ICsKPiArLy8gREZQV00gY29kZWMg ZnJvbSBodHRwczovL2dpdGh1Yi5jb20vQ2hlblRocmVhZC9kZnB3bS9ibG9iL21hc3Rlci8xYS8K PiArLy8gTGljZW5zZWQgaW4gdGhlIHB1YmxpYyBkb21haW4KPiArCj4gKyNpZm5kZWYgQ09OU1Rf UFJFQwoKU2FtZSBhcyBhYm92ZS4KCj4gKyNkZWZpbmUgQ09OU1RfUFJFQyAxMAo+ICsjZW5kaWYK PiArCj4gKy8vIG5vdGUsIGxlbiBkZW5vdGVzIGhvdyBtYW55IGNvbXByZXNzZWQgYnl0ZXMgdGhl cmUgYXJlICh1bmNvbXByZXNzZWQgYnl0ZXMgLyA4KS4KPiArc3RhdGljIHZvaWQgYXVfY29tcHJl c3MoREZQV01TdGF0ZSAqc3RhdGUsIGludCBsZW4sIHVpbnQ4X3QgKm91dGJ1ZiwgdWludDhfdCAq aW5idWYpCj4gK3sKPiArICAgIGludCBpLCBqOwo+ICsgICAgdWludDhfdCBkID0gMDsKPiArICAg IGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewo+ICsgICAgICAgIGZvciAoaiA9IDA7IGogPCA4 OyBqKyspIHsKClNhbWUuCgo+ICsgICAgICAgICAgICBpbnQgbnEsIHN0LCBuczsKPiArICAgICAg ICAgICAgLy8gZ2V0IHNhbXBsZQo+ICsgICAgICAgICAgICBpbnQgdiA9ICooaW5idWYrKykgLSAx Mjg7Cj4gKyAgICAgICAgICAgIC8vIHNldCBiaXQgLyB0YXJnZXQKPiArICAgICAgICAgICAgaW50 IHQgPSAodiA+IHN0YXRlLT5xIHx8ICh2ID09IHN0YXRlLT5xICYmIHYgPT0gMTI3KSA/IDEyNyA6 IC0xMjgpOwo+ICsgICAgICAgICAgICBkID4+PSAxOwo+ICsgICAgICAgICAgICBpZih0ID4gMCkK PiArICAgICAgICAgICAgICAgIGQgfD0gMHg4MDsKPiArCj4gKyAgICAgICAgICAgIC8vIGFkanVz dCBjaGFyZ2UKPiArICAgICAgICAgICAgbnEgPSBzdGF0ZS0+cSArICgoc3RhdGUtPnMgKiAodC1z dGF0ZS0+cSkgKyAoMTw8KENPTlNUX1BSRUMtMSkpKT4+Q09OU1RfUFJFQyk7Cj4gKyAgICAgICAg ICAgIGlmKG5xID09IHN0YXRlLT5xICYmIG5xICE9IHQpCj4gKyAgICAgICAgICAgICAgICBucSAr PSAodCA9PSAxMjcgPyAxIDogLTEpOwo+ICsgICAgICAgICAgICBzdGF0ZS0+cSA9IG5xOwo+ICsK PiArICAgICAgICAgICAgLy8gYWRqdXN0IHN0cmVuZ3RoCj4gKyAgICAgICAgICAgIHN0ID0gKHQg IT0gc3RhdGUtPmx0ID8gMCA6ICgxPDxDT05TVF9QUkVDKS0xKTsKPiArICAgICAgICAgICAgbnMg PSBzdGF0ZS0+czsKPiArICAgICAgICAgICAgaWYobnMgIT0gc3QpCj4gKyAgICAgICAgICAgICAg ICBucyArPSAoc3QgIT0gMCA/IDEgOiAtMSk7Cj4gKyNpZiBDT05TVF9QUkVDID4gOAoKU2FtZQoK PiArICAgICAgICAgICAgaWYobnMgPCAoMjw8KENPTlNUX1BSRUMtOCkpKSBucyA9ICgyPDwoQ09O U1RfUFJFQy04KSk7Cj4gKyNlbmRpZgo+ICsgICAgICAgICAgICBzdGF0ZS0+cyA9IG5zOwo+ICsK PiArICAgICAgICAgICAgc3RhdGUtPmx0ID0gdDsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAg IC8vIG91dHB1dCBiaXRzCj4gKyAgICAgICAgKihvdXRidWYrKykgPSBkOwo+ICsgICAgfQo+ICt9 Cj4gKwo+ICtzdGF0aWMgYXZfY29sZCBpbnQgZGZwd21fZW5jX2luaXQoc3RydWN0IEFWQ29kZWND b250ZXh0ICpjdHgpCj4gK3sKPiArICAgIERGUFdNU3RhdGUgKnN0YXRlID0gY3R4LT5wcml2X2Rh dGE7Cj4gKwo+ICsgICAgc3RhdGUtPmZxID0gMDsKPiArICAgIHN0YXRlLT5xID0gMDsKPiArICAg IHN0YXRlLT5zID0gMDsKPiArICAgIHN0YXRlLT5sdCA9IC0xMjg7CgpTYW1wbGUgcmF0ZT8KCj4g Kwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZGZwd21fZW5jX2ZyYW1l KHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqY3R4LCBzdHJ1Y3QgQVZQYWNrZXQgKnBhY2tldCwKPiAr ICAgIGNvbnN0IHN0cnVjdCBBVkZyYW1lICpmcmFtZSwgaW50ICpnb3RfcGFja2V0KQo+ICt7Cj4g KyAgICBERlBXTVN0YXRlICpzdGF0ZSA9IGN0eC0+cHJpdl9kYXRhOwo+ICsgICAgaW50IHNpemUg PSBmcmFtZS0+bmJfc2FtcGxlcyAvIDggKyAoZnJhbWUtPm5iX3NhbXBsZXMgJSA4ID4gMCA/IDEg OiAwKTsKPiArCj4gKyAgICBpZiAocGFja2V0LT5zaXplIDwgc2l6ZSkgYXZfZ3Jvd19wYWNrZXQo cGFja2V0LCBzaXplIC0gcGFja2V0LT5zaXplKTsKPiArICAgIGVsc2UgaWYgKHBhY2tldC0+c2l6 ZSA+IHNpemUpIGF2X3Nocmlua19wYWNrZXQocGFja2V0LCBzaXplKTsKClRoZSBwYWNrZXQgaXMg YWx3YXlzICJjbGVhbiIgYXQgdGhpcyBwb2ludC4gVGhlc2UgY2hlY2tzIGFyZSAKdW5uZWNlc3Nh cnksIGFuZCB0aGUgZWxzZSBwYXRoIHdpbGwgbmV2ZXIgYmUgdGFrZW4uCgpZb3Ugc2hvdWxkIGZv ciB0aGF0IG1hdHRlciB1c2UgZmZfZ2V0X2VuY29kZV9idWZmZXIoKSB0byBhbGxvY2F0ZSB0aGUg CnBhY2tldCBidWZmZXIsIGFuZCBzZXQgdGhlIEFWX0NPREVDX0NBUF9EUjEgY2FwYWJpbGl0eSBm b3IgaXQuCgo+ICsKPiArICAgIGF1X2NvbXByZXNzKHN0YXRlLCBzaXplLCBwYWNrZXQtPmRhdGEs IGZyYW1lLT5kYXRhWzBdKTsKPiArCj4gKyAgICBpZiAoZ290X3BhY2tldCkgKmdvdF9wYWNrZXQg PSAxOwoKU2FtZSwgZ290X3BhY2tldCBpcyBuZXZlciBOVUxMLgoKPiArICAgIHJldHVybiAwOwo+ ICt9Cj4gKwo+ICtjb25zdCBBVkNvZGVjIGZmX2RmcHdtX2VuY29kZXIgPSB7Cj4gKyAgICAubmFt ZSAgICAgICAgICAgID0gImRmcHdtIiwKPiArICAgIC5sb25nX25hbWUgICAgICAgPSBOVUxMX0lG X0NPTkZJR19TTUFMTCgiREZQV00xYSBhdWRpbyIpLAo+ICsgICAgLnR5cGUgICAgICAgICAgICA9 IEFWTUVESUFfVFlQRV9BVURJTywKPiArICAgIC5pZCAgICAgICAgICAgICAgPSBBVl9DT0RFQ19J RF9ERlBXTSwKPiArICAgIC5wcml2X2RhdGFfc2l6ZSAgPSBzaXplb2YoREZQV01TdGF0ZSksCj4g KyAgICAuaW5pdCAgICAgICAgICAgID0gZGZwd21fZW5jX2luaXQsCj4gKyAgICAuZW5jb2RlMiAg ICAgICAgID0gZGZwd21fZW5jX2ZyYW1lLAo+ICsgICAgLnNhbXBsZV9mbXRzICAgICA9IChjb25z dCBlbnVtIEFWU2FtcGxlRm9ybWF0W10pe0FWX1NBTVBMRV9GTVRfVTgsIEFWX1NBTVBMRV9GTVRf Tk9ORX0sCj4gKyAgICAuY2hhbm5lbF9sYXlvdXRzID0gKGNvbnN0IHVpbnQ2NF90W10pe0FWX0NI X0xBWU9VVF9NT05PLCAwfSwKPiArICAgIC5jYXBhYmlsaXRpZXMgICAgPSBBVl9DT0RFQ19DQVBf VkFSSUFCTEVfRlJBTUVfU0laRSwKPiArICAgIC5jYXBzX2ludGVybmFsICAgPSBGRl9DT0RFQ19D QVBfSU5JVF9USFJFQURTQUZFLAo+ICt9Owo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3V0aWxz LmMgYi9saWJhdmNvZGVjL3V0aWxzLmMKPiBpbmRleCA2ZjlkOTBhLi4wNjZkYTc2IDEwMDY0NAo+ IC0tLSBhL2xpYmF2Y29kZWMvdXRpbHMuYwo+ICsrKyBiL2xpYmF2Y29kZWMvdXRpbHMuYwo+IEBA IC01NzcsNiArNTc3LDggQEAgZW51bSBBVkNvZGVjSUQgYXZfZ2V0X3BjbV9jb2RlYyhlbnVtIEFW U2FtcGxlRm9ybWF0IGZtdCwgaW50IGJlKQo+ICBpbnQgYXZfZ2V0X2JpdHNfcGVyX3NhbXBsZShl bnVtIEFWQ29kZWNJRCBjb2RlY19pZCkKPiAgewo+ICAgICAgc3dpdGNoIChjb2RlY19pZCkgewo+ ICsgICAgY2FzZSBBVl9DT0RFQ19JRF9ERlBXTToKPiArICAgICAgICByZXR1cm4gMTsKPiAgICAg IGNhc2UgQVZfQ09ERUNfSURfQURQQ01fU0JQUk9fMjoKPiAgICAgICAgICByZXR1cm4gMjsKPiAg ICAgIGNhc2UgQVZfQ09ERUNfSURfQURQQ01fU0JQUk9fMzoKPiBkaWZmIC0tZ2l0IGEvbGliYXZj b2RlYy92ZXJzaW9uLmggYi9saWJhdmNvZGVjL3ZlcnNpb24uaAo+IGluZGV4IGQ5MDA1MDMuLjg0 ZjM5NzkgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy92ZXJzaW9uLmgKPiArKysgYi9saWJhdmNv ZGVjL3ZlcnNpb24uaAo+IEBAIC0yOCw3ICsyOCw3IEBACj4gICNpbmNsdWRlICJsaWJhdnV0aWwv dmVyc2lvbi5oIgo+ICAKPiAgI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgIDU5Cj4g LSNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SICAyMQo+ICsjZGVmaW5lIExJQkFWQ09E RUNfVkVSU0lPTl9NSU5PUiAgMjIKPiAgI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8g MTAwCj4gIAo+ICAjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgIEFWX1ZFUlNJT05fSU5U KExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiwgXAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWct ZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1w ZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1w ZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=