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 7CADA44385 for ; Fri, 10 Mar 2023 10:49:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 923FB68BD58; Fri, 10 Mar 2023 12:49:21 +0200 (EET) Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AE1E968AFAC for ; Fri, 10 Mar 2023 12:49:15 +0200 (EET) Received: by mail-qt1-f173.google.com with SMTP id cf14so5144160qtb.10 for ; Fri, 10 Mar 2023 02:49:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678445353; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=OPkez0DIZe/YbYbYnM06iauskeDFUSw17HQD0qSsAz4=; b=LZL6D9UmvzhgbMIdTT6i7xqX8sakmz8jzNbbE/BjwPTExFvaGH7TP7f56aCxcXO3xk Fvrem3DNwzlk+kNjVBBm/KyjggHITyYh3C+EKeLAQygJSkyA0Db6zasBaQajEDFQ+nOk W7WDvpJkpMBKOkKn6K1/VyS9XALbhTDiaBPJGZgtT+OBjCWNGdw84+/amn71LyV1Y7QY 7yOoUGTf4s4D+LtcdtDUWgR+hc4WkwRbH+O973Nr3M0LHc6HHO4exYV2wXLhESGxgJ9B hCfF9iUE8xMcCP1hyh1Mz7ZI7QYhkOvPj47Y/f0H3SoL3o2dOAYb+H8VBjxGBOg0YPpo yOXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678445353; h=cc: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=OPkez0DIZe/YbYbYnM06iauskeDFUSw17HQD0qSsAz4=; b=07ejJvxSNRC7+k+e7TyCgly7O4IdJ+6RIfaDzkVQsbDVpYyUbj7MZVOdrB2gSwaLx3 nHCRArhKFgYEQuSg8rxCnVTcLxrzOwSfpEb8EzWKqDEw3W4VE+TKQyvhM39yxQVyS6G5 u+QZ31yHg1C04RlJj2BfNTlc7MaFEgh6gEygR3OjFdX3LamS1I259oMU5k1bjmqTKjgz bTurWn5bCUI8E8P+0lflNa6UO5Ffz6qPDe9tR9wSLkvH9BjmEQ8kyAgqHnOhJRaEjAT9 ieSiMt0MoN7vr03aqZNqCmUAZoAZlINle3AAkg9FJNZYZWwte+OvKt/pM6+zz5GuDJKB G9gw== X-Gm-Message-State: AO0yUKUGZ0QgspusIrjHDYTcCkrCDe+CYFG5iHkfsi1TM2eF4hUA3FYx Zl8MG2ew8w+Or8IP/dq9zpqlajHn3PuYhn2rChNESCrIx2c= X-Google-Smtp-Source: AK7set99a89F2yecLFCCpbnwMQoPRp65KE2p7s10PJwqpVZCTGNgQq62J/6UUxHPhL8sD2ACue/Cu4MpHgdWFExjPM4= X-Received: by 2002:ac8:14c:0:b0:3bf:c40b:ecc1 with SMTP id f12-20020ac8014c000000b003bfc40becc1mr7327415qtg.1.1678445353355; Fri, 10 Mar 2023 02:49:13 -0800 (PST) MIME-Version: 1.0 References: <20230111140532.26467-1-yizhuo.liu753@gmail.com> In-Reply-To: From: yizhuo liu Date: Fri, 10 Mar 2023 18:49:02 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] [add video filter hsl(Hue, Saturation, Lightness)] 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 Cc: wangwei1237@gmail.com, "2498228118@qq.com" <2498228118@qq.com> 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: ZGVhciBQYXVsLCBoc2wgaW50ZWdyYXRlIGludG8gc2lnbmFsc3RhdHMgaGFzIGJlZW4gZG9uZSwg dGhhbmsgdSBmb3IgYWR2aWNlCgpsb29raW5nIGZvcndhcmQgdG8geW91ciByZXBseQoKYmVzaCB3 aXNoZXMKCmF0dGFjaG1lbnQgKCByZWNlbnQgY29tbWl0ICkKaHR0cHM6Ly9wYXRjaHdvcmsuZmZt cGVnLm9yZy9wcm9qZWN0L2ZmbXBlZy9wYXRjaC8yMDIzMDMwOTEzMzUxNy4yNjY4My0xLXlpemh1 by5saXU3NTNAZ21haWwuY29tLwoKCgpQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+IOS6 jjIwMjPlubQx5pyIMTLml6Xlkajlm5sgMDU6MTHlhpnpgZPvvJoKCj4gT24gMS8xMS8yMywgUGF1 bCBCIE1haG9sIDxvbmVtZGFAZ21haWwuY29tPiB3cm90ZToKPiA+IE9uIDEvMTEvMjMsIGxpdXlp emh1byA8eWl6aHVvLmxpdTc1M0BnbWFpbC5jb20+IHdyb3RlOgo+ID4+IEZyb206ICIyNDk4MjI4 MTE4QHFxLmNvbSIgPDI0OTgyMjgxMThAcXEuY29tPgo+ID4+Cj4gPj4gLS0tCj4gPj4gIGxpYmF2 ZmlsdGVyL01ha2VmaWxlICAgICAgICB8ICAgMSArCj4gPj4gIGxpYmF2ZmlsdGVyL2FsbGZpbHRl cnMuYyAgICB8ICAgMSArCj4gPj4gIGxpYmF2ZmlsdGVyL3ZmX2hzbC5jICAgICAgICB8IDMxMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+PiAgdGVzdHMvZmF0ZS1ydW4u c2ggICAgICAgICAgIHwgICAyICsKPiA+PiAgdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFrIHwg ICAzICsKPiA+PiAgdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLWhzbCAgIHwgICAxICsKPiA+PiAgNiBm aWxlcyBjaGFuZ2VkLCAzMTggaW5zZXJ0aW9ucygrKQo+ID4+ICBjcmVhdGUgbW9kZSAxMDA2NDQg bGliYXZmaWx0ZXIvdmZfaHNsLmMKPiA+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL3JlZi9m YXRlL2ZpbHRlci1oc2wKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9NYWtlZmls ZSBiL2xpYmF2ZmlsdGVyL01ha2VmaWxlCj4gPj4gaW5kZXggNTc4M2JlMjgxZC4uYjllZDllMDY1 YSAxMDA2NDQKPiA+PiAtLS0gYS9saWJhdmZpbHRlci9NYWtlZmlsZQo+ID4+ICsrKyBiL2xpYmF2 ZmlsdGVyL01ha2VmaWxlCj4gPj4gQEAgLTE4Miw2ICsxODIsNyBAQCBPQkpTLSQoQ09ORklHX1NJ TkVfRklMVEVSKSAgICAgICAgICAgICAgICAgICArPQo+ID4+IGFzcmNfc2luZS5vCj4gPj4gIE9C SlMtJChDT05GSUdfQU5VTExTSU5LX0ZJTFRFUikgICAgICAgICAgICAgICs9IGFzaW5rX2FudWxs c2luay5vCj4gPj4KPiA+PiAgIyB2aWRlbyBmaWx0ZXJzCj4gPj4gK09CSlMtJChDT05GSUdfSFNM X0ZJTFRFUikgICAgICAgICAgICAgICAgICAgICs9IHZmX2hzbC5vCj4gPj4gIE9CSlMtJChDT05G SUdfQUREUk9JX0ZJTFRFUikgICAgICAgICAgICAgICAgICs9IHZmX2FkZHJvaS5vCj4gPj4gIE9C SlMtJChDT05GSUdfQUxQSEFFWFRSQUNUX0ZJTFRFUikgICAgICAgICAgICs9IHZmX2V4dHJhY3Rw bGFuZXMubwo+ID4+ICBPQkpTLSQoQ09ORklHX0FMUEhBTUVSR0VfRklMVEVSKSAgICAgICAgICAg ICArPSB2Zl9hbHBoYW1lcmdlLm8KPiA+PiBmcmFtZXN5bmMubwo+ID4+IGRpZmYgLS1naXQgYS9s aWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMgYi9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKPiA+PiBp bmRleCA1Mjc0MWI2MGU0Li42OTEwMTg5Y2U0IDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2ZmlsdGVy L2FsbGZpbHRlcnMuYwo+ID4+ICsrKyBiL2xpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYwo+ID4+IEBA IC0xNjksNiArMTY5LDcgQEAgZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX2FzcmNfc2luZTsKPiA+ Pgo+ID4+ICBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfYXNpbmtfYW51bGxzaW5rOwo+ID4+Cj4g Pj4gK2V4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9oc2w7Cj4gPj4gIGV4dGVybiBjb25zdCBB VkZpbHRlciBmZl92Zl9hZGRyb2k7Cj4gPj4gIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9h bHBoYWV4dHJhY3Q7Cj4gPj4gIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9hbHBoYW1lcmdl Owo+ID4+IGRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9oc2wuYyBiL2xpYmF2ZmlsdGVyL3Zm X2hzbC5jCj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+PiBpbmRleCAwMDAwMDAwMDAwLi40 N2M5YWY5MTIwCj4gPj4gLS0tIC9kZXYvbnVsbAo+ID4+ICsrKyBiL2xpYmF2ZmlsdGVyL3ZmX2hz bC5jCj4gPj4gQEAgLTAsMCArMSwzMTAgQEAKPiA+PiArLyoKPiA+PiArICogQ29weXJpZ2h0IChj KSAyMDIyIFdhbmcgV2VpIDx3YW5nd2VpMTIzN0BnbWFpbC5jb20+Cj4gPj4gKyAqIENvcHlyaWdo dCAoYykgMjAyMiBMaXUgeWl6aHVvICA8eWl6aHVvLmxpdTc1M0BnbWFpbC5jb20+Cj4gPj4gKyAq Cj4gPj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPiA+PiArICoKPiA+PiArICog RkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ ID4+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCj4gPj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ID4+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiA+PiArICoKPiA+PiAr ICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCj4gPj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCj4gPj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4gPj4gKyAqIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gPj4gKyAqCj4gPj4gKyAqIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKPiA+PiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0 byB0aGUgRnJlZSBTb2Z0d2FyZQo+ID4+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCj4gPj4gMDIxMTAtMTMwMQo+ID4+IFVT QQo+ID4+ICsgKi8KPiA+PiArCj4gPj4gKy8qKgo+ID4+ICsgKiBAZmlsZQo+ID4+ICsgKiBDYWxj dWxhdGUgdGhlIEhTTCBjb2xvciBzcGFjZSBpbmZvcm1hdGlvbi4KPiA+PiArICogSFNMIGlzIGEg Y29sb3Igc3BhY2UgdGhhdCBpcyBtb3JlIHBlcmNlcHR1YWxseSB1bmlmb3JtIHRoYW4gUkdCIDoK PiA+PiArICogICAgIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9hbmRfSFNWCj4g Pgo+ID4gYmV0dGVyIGludGVncmF0ZSB0aGlzIGludG8gc2lnbmFsc3RhdHMgZmlsdGVyLCBhcyBp dCBkb2VzIG5vdCBkbwo+ID4gY29tcGFyZSBvZiAyIGlucHV0cy4KPiA+Cj4KPiBBbHNvIHVzZSBh bHJlYWR5IGF2YWlsYWJsZSBtYWNyb3MsIEZGTUFYKDMpIEZGTUlOKDMpIC4uLgo+Cj4gPj4gKyAq Lwo+ID4+ICsKPiA+PiArI2luY2x1ZGUgPG1hdGguaD4KPiA+PiArCj4gPj4gKyNpbmNsdWRlICJs aWJhdnV0aWwvaW1ndXRpbHMuaCIKPiA+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5hbC5o Igo+ID4+ICsjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgo+ID4+ICsjaW5jbHVkZSAibGlic3dz Y2FsZS9zd3NjYWxlLmgiCj4gPj4gKwo+ID4+ICsjaW5jbHVkZSAiYXZmaWx0ZXIuaCIKPiA+PiAr I2luY2x1ZGUgImZvcm1hdHMuaCIKPiA+PiArI2luY2x1ZGUgImludGVybmFsLmgiCj4gPj4gKyNp bmNsdWRlICJ2aWRlby5oIgo+ID4+ICsKPiA+PiArdHlwZWRlZiBmbG9hdCBudW07Cj4gPj4gKwo+ ID4+ICt0eXBlZGVmIHN0cnVjdCBIU0xfQ09MT1Igewo+ID4+ICsgICAgbnVtIEg7Cj4gPj4gKyAg ICBudW0gUzsKPiA+PiArICAgIG51bSBMOwo+ID4+ICt9IEhTTF9DT0xPUjsKPiA+PiArCj4gPj4g K3R5cGVkZWYgc3RydWN0IEhTTENvbnRleHQgewo+ID4+ICsgICAgY29uc3QgQVZDbGFzcyAqY2xh c3M7Cj4gPj4gKyAgICBpbnQgd2lkdGgsIGhlaWdodDsKPiA+PiArICAgIHVpbnQ2NF90IG5iX2Zy YW1lczsKPiA+PiArICAgIGZsb2F0IG1heF9odWUsIG1heF9zYXQsIG1heF9saWdodDsKPiA+PiAr ICAgIGZsb2F0IG1pbl9odWUsIG1pbl9zYXQsIG1pbl9saWdodDsKPiA+PiArICAgIGZsb2F0IHN1 bV9odWUsIHN1bV9zYXQsIHN1bV9saWdodDsKPiA+PiArICAgIGludCBwcmludF9zdW1tYXJ5Owo+ ID4+ICsgICAgQVZGcmFtZSAqcmdiRnJhbWU7Cj4gPj4gKyAgICBlbnVtIEFWUGl4ZWxGb3JtYXQg cmdiX2Zvcm1hdDsKPiA+PiArfSBIU0xDb250ZXh0Owo+ID4+ICsKPiA+PiArc3RhdGljIGNvbnN0 IGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10c1tdID0gewo+ID4+ICsgICAgQVZfUElYX0ZNVF9Z VVY0MjBQLCAgIEFWX1BJWF9GTVRfWVVWNDIyUCwKPiA+PiArICAgIEFWX1BJWF9GTVRfWVVWSjQy MFAsICBBVl9QSVhfRk1UX1lVVko0MjJQLAo+ID4+ICsgICAgQVZfUElYX0ZNVF9ZVVY0MjBQMTAs IEFWX1BJWF9GTVRfWVVWNDIyUDEwLAo+ID4+ICsgICAgQVZfUElYX0ZNVF9OT05FCj4gPj4gK307 Cj4gPj4gKwo+ID4+ICtzdGF0aWMgYXZfY29sZCBpbnQgaW5pdChBVkZpbHRlckNvbnRleHQgKmN0 eCkKPiA+PiArewo+ID4+ICsgICAgLy8gVXNlciBvcHRpb25zIGJ1dCBubyBpbnB1dCBkYXRhCj4g Pj4gKyAgICBIU0xDb250ZXh0ICpzID0gY3R4LT5wcml2Owo+ID4+ICsgICAgcy0+bWF4X2h1ZSAg ICA9IDA7Cj4gPj4gKyAgICBzLT5tYXhfc2F0ICAgID0gMDsKPiA+PiArICAgIHMtPm1heF9saWdo dCAgPSAwOwo+ID4+ICsKPiA+PiArICAgIHJldHVybiAwOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtz dGF0aWMgYXZfY29sZCB2b2lkIHVuaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKPiA+PiArewo+ ID4+ICsgICAgSFNMQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsKPiA+PiArCj4gPj4gKyAgICBpZiAo cy0+cHJpbnRfc3VtbWFyeSkgewo+ID4+ICsgICAgICAgIGZsb2F0IGF2Z19odWUgICA9IHMtPnN1 bV9odWUgICAvIHMtPm5iX2ZyYW1lczsKPiA+PiArICAgICAgICBmbG9hdCBhdmdfc2F0ICAgPSBz LT5zdW1fc2F0ICAgLyBzLT5uYl9mcmFtZXM7Cj4gPj4gKyAgICAgICAgZmxvYXQgYXZnX2xpZ2h0 ID0gcy0+c3VtX2xpZ2h0IC8gcy0+bmJfZnJhbWVzOwo+ID4+ICsgICAgICAgIGF2X2xvZyhjdHgs IEFWX0xPR19JTkZPLAo+ID4+ICsgICAgICAgICAgICAgICAiSFNMIFN1bW1hcnk6XG5Ub3RhbCBm cmFtZXM6ICUiUFJJZDY0IlxuXG4iCj4gPj4gKyAgICAgICAgICAgICAgICJIdWUgSW5mb3JtYXRp b246XG5BdmVyYWdlOiAlLjFmXG5NYXg6ICUuMWZcbk1pbjoKPiA+PiAlLjFmXG5cbiIKPiA+PiAr ICAgICAgICAgICAgICAgIlNhdHVyYXRpb24gSW5mb3JtYXRpb246XG5BdmVyYWdlOiAlLjFmXG5N YXg6ICUuMWZcbk1pbjoKPiA+PiAlLjFmXG5cbiIKPiA+PiArICAgICAgICAgICAgICAgIkxpZ2h0 bmVzcyBJbmZvcm1hdGlvbjpcbkF2ZXJhZ2U6ICUuMWZcbk1heDogJS4xZlxuTWluOgo+ID4+ICUu MWZcblxuIiwKPiA+PiArICAgICAgICAgICAgICAgcy0+bmJfZnJhbWVzLAo+ID4+ICsgICAgICAg ICAgICAgICBhdmdfaHVlLCAgIHMtPm1heF9odWUsICAgcy0+bWluX2h1ZSwKPiA+PiArICAgICAg ICAgICAgICAgYXZnX3NhdCAgICogMTAwLCBzLT5tYXhfc2F0ICAgKiAxMDAsIHMtPm1pbl9zYXQg ICAqIDEwMCwKPiA+PiArICAgICAgICAgICAgICAgYXZnX2xpZ2h0ICogMTAwLCBzLT5tYXhfbGln aHQgKiAxMDAsIHMtPm1pbl9saWdodCAqIDEwMAo+ID4+ICsgICAgICAgICk7Cj4gPj4gKyAgICB9 Cj4gPj4gKwo+ID4+ICsgICAgYXZfZnJhbWVfZnJlZSgmcy0+cmdiRnJhbWUpOwo+ID4+ICt9Cj4g Pj4gKwo+ID4+ICtzdGF0aWMgaW50IGNvbmZpZ19pbnB1dChBVkZpbHRlckxpbmsgKmlubGluaykK PiA+PiArewo+ID4+ICsgICAgLy8gVmlkZW8gaW5wdXQgZGF0YSBhdmlsYWJsZQo+ID4+ICsgICAg QVZGaWx0ZXJDb250ZXh0ICpjdHggPSBpbmxpbmstPmRzdDsKPiA+PiArICAgIEhTTENvbnRleHQg KnMgPSBjdHgtPnByaXY7Cj4gPj4gKwo+ID4+ICsgICAgLy8gZnJlZSBwcmV2aW91cyBidWZmZXJz IGluIGNhc2UgdGhleSBhcmUgYWxsb2NhdGVkIGFscmVhZHkKPiA+PiArICAgIGF2X2ZyYW1lX2Zy ZWUoJnMtPnJnYkZyYW1lKTsKPiA+PiArICAgIHMtPndpZHRoICA9IGlubGluay0+dzsKPiA+PiAr ICAgIHMtPmhlaWdodCA9IGlubGluay0+aDsKPiA+PiArICAgIHMtPnJnYl9mb3JtYXQgPSBBVl9Q SVhfRk1UX1JHQjI0Owo+ID4+ICsgICAgcy0+cmdiRnJhbWUgPSBhdl9mcmFtZV9hbGxvYygpOwo+ ID4+ICsgICAgaWYgKCFzLT5yZ2JGcmFtZSkgewo+ID4+ICsgICAgICAgIHJldHVybiBBVkVSUk9S KEVOT01FTSk7Cj4gPj4gKyAgICB9Cj4gPj4gKwo+ID4+ICsgICAgcy0+cmdiRnJhbWUtPmZvcm1h dCA9IHMtPnJnYl9mb3JtYXQ7Cj4gPj4gKyAgICBzLT5yZ2JGcmFtZS0+d2lkdGggID0gcy0+d2lk dGg7Cj4gPj4gKyAgICBzLT5yZ2JGcmFtZS0+aGVpZ2h0ID0gcy0+aGVpZ2h0Owo+ID4+ICsgICAg aWYgKGF2X2ZyYW1lX2dldF9idWZmZXIocy0+cmdiRnJhbWUsIDApKSB7Cj4gPj4gKyAgICAgICAg cmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiA+PiArICAgIH0KPiA+PiArCj4gPj4gKyAgICByZXR1 cm4gMDsKPiA+PiArfQo+ID4+ICsKPiA+PiArc3RhdGljIHZvaWQgc2V0X21ldGEoQVZEaWN0aW9u YXJ5ICoqbWV0YWRhdGEsIGNvbnN0IGNoYXIgKmtleSwgZmxvYXQgZCkKPiA+PiArewo+ID4+ICsg ICAgY2hhciB2YWx1ZVsxMjhdOwo+ID4+ICsgICAgc25wcmludGYodmFsdWUsIHNpemVvZih2YWx1 ZSksICIlMC4xZiIsIGQpOwo+ID4+ICsgICAgYXZfZGljdF9zZXQobWV0YWRhdGEsIGtleSwgdmFs dWUsIDApOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgdm9pZCBZVVYyUkdCKGNvbnN0IEFW RnJhbWUqIHNyYywgZW51bSBBVlBpeGVsRm9ybWF0IGRzdEZvcm1hdCwKPiA+PiBBVkZyYW1lKiBk c3QpCj4gPj4gK3sKPiA+PiArICAgIGludCB3aWR0aCAgPSBzcmMtPndpZHRoOwo+ID4+ICsgICAg aW50IGhlaWdodCA9IHNyYy0+aGVpZ2h0Owo+ID4+ICsKPiA+PiArICAgIHN0cnVjdCBTd3NDb250 ZXh0KiBjb252ZXJzaW9uID0gTlVMTDsKPiA+PiArICAgIGNvbnZlcnNpb24gPSBzd3NfZ2V0Q29u dGV4dCh3aWR0aCwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQs Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVudW0gQVZQaXhlbEZvcm1h dClzcmMtPmZvcm1hdCwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0 aCwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0Rm9ybWF0LAo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNXU19GQVNUX0JJTElORUFSLAo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM KTsKPiA+PiArICAgIHN3c19zY2FsZShjb252ZXJzaW9uLCBzcmMtPmRhdGEsIHNyYy0+bGluZXNp emUsIDAsIGhlaWdodCwKPiA+PiBkc3QtPmRhdGEsCj4gPj4gZHN0LT5saW5lc2l6ZSk7Cj4gPj4g KyAgICBzd3NfZnJlZUNvbnRleHQoY29udmVyc2lvbik7Cj4gPj4gK30KPiA+PiArCj4gPj4gK3N0 YXRpYyBjb25zdCBmbG9hdCBFUFNJTE9OID0gMWUtOTsKPiA+PiArCj4gPj4gKy8qKiBAYnJpZWYg TWluIG9mIEEgYW5kIEIgKi8KPiA+PiArI2RlZmluZSBNSU4oQSxCKSAgICAoKChBKSA8PSAoQikp ID8gKEEpIDogKEIpKQo+ID4+ICsKPiA+PiArLyoqIEBicmllZiBNYXggb2YgQSBhbmQgQiAqLwo+ ID4+ICsjZGVmaW5lIE1BWChBLEIpICAgICgoKEEpID49IChCKSkgPyAoQSkgOiAoQikpCj4gPj4g Kwo+ID4+ICsvKiogQGJyaWVmIE1pbiBvZiBBLCBCLCBhbmQgQyAqLwo+ID4+ICsjZGVmaW5lIE1J TjMoQSxCLEMpICAgICgoKEEpIDw9IChCKSkgPyBNSU4oQSxDKSA6IE1JTihCLEMpKQo+ID4+ICsK PiA+PiArLyoqIEBicmllZiBNYXggb2YgQSwgQiwgYW5kIEMgKi8KPiA+PiArI2RlZmluZSBNQVgz KEEsQixDKSAgICAoKChBKSA+PSAoQikpID8gTUFYKEEsQykgOiBNQVgoQixDKSkKPiA+PiArCj4g Pj4gKy8qKiBAYnJpZWYgRXF1YWwgb2YgQSBhbmQgQiAqLwo+ID4+ICsjZGVmaW5lIEVRKEEsQikg ICAgKChmYWJzKChBKSAtIChCKSkgPCBFUFNJTE9OKSA/IDEgOiAwKQo+ID4+ICsKPiA+PiArCj4g Pj4gKy8qKgo+ID4+ICsgKiBAYnJpZWYgQ29udmVydCBhbiBzUkdCIGNvbG9yIHRvIEh1ZS1TYXR1 cmF0aW9uLUxpZ2h0bmVzcyAoSFNMKQo+ID4+ICsgKgo+ID4+ICsgKiBAcGFyYW0gSCwgUywgTCBw b2ludGVycyB0byBob2xkIHRoZSByZXN1bHQKPiA+PiArICogQHBhcmFtIFIsIEcsIEIgdGhlIGlu cHV0IHNSR0IgdmFsdWVzIHNjYWxlZCBpbiBbMCwxXQo+ID4+ICsgKgo+ID4+ICsgKiBUaGlzIHJv dXRpbmUgdHJhbnNmb3JtcyBmcm9tIHNSR0IgdG8gdGhlIGRvdWJsZSBoZXhjb25lIEhTTCBjb2xv cgo+ID4+IHNwYWNlCj4gPj4gKyAqIFRoZSBzUkdCIHZhbHVlcyBhcmUgYXNzdW1lZCB0byBiZSBi ZXR3ZWVuIDAgYW5kIDEuICBUaGUgb3V0cHV0cyBhcmUKPiA+PiArICogICBIID0gaGV4YWdvbmFs IGh1ZSBhbmdsZSAgICAgICAgICAgICAgICAoMCA8PSBIIDwgMzYwKSwKPiA+PiArICogICBTID0g eyBDLygyTCkgICAgIGlmIEwgPD0gMS8yICAgICAgICAgICAoMCA8PSBTIDw9IDEpLAo+ID4+ICsg KiAgICAgICB7IEMvKDIgLSAyTCkgaWYgTCA+ICAxLzIKPiA+PiArICogICBMID0gKG1heChSJyxH JyxCJykgKyBtaW4oUicsRycsQicpKS8yICAoMCA8PSBMIDw9IDEpLAo+ID4+ICsgKiB3aGVyZSBD ID0gbWF4KFInLEcnLEInKSAtIG1pbihSJyxHJyxCJykuCj4gPj4gKyAqCj4gPj4gKyAqIFdpa2lw ZWRpYTogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IU0xfYW5kX0hTVgo+ID4+ICsgKi8K PiA+PiArc3RhdGljIHZvaWQgUkdCMkhTTChudW0gKkgsIG51bSAqUywgbnVtICpMLCBudW0gUiwg bnVtIEcsIG51bSBCKQo+ID4+ICt7Cj4gPj4gKyAgICBudW0gTWF4ID0gTUFYMyhSLCBHLCBCKTsK PiA+PiArICAgIG51bSBNaW4gPSBNSU4zKFIsIEcsIEIpOwo+ID4+ICsgICAgbnVtIEMgPSBNYXgg LSBNaW47Cj4gPj4gKwo+ID4+ICsgICAgKkwgPSAoTWF4ICsgTWluKSAvIDI7Cj4gPj4gKwo+ID4+ ICsgICAgaWYgKEMgPiAwKSB7Cj4gPj4gKyAgICAgICAgaWYgKEVRKE1heCwgUikpIHsKPiA+PiAr ICAgICAgICAgICAgKkggPSAoRyAtIEIpIC8gQzsKPiA+PiArCj4gPj4gKyAgICAgICAgICAgIGlm IChHIDwgQikgewo+ID4+ICsgICAgICAgICAgICAgICAgKkggKz0gNjsKPiA+PiArICAgICAgICAg ICAgfQo+ID4+ICsgICAgICAgIH0gZWxzZSBpZiAoRVEoTWF4LCBHKSkgewo+ID4+ICsgICAgICAg ICAgICAqSCA9IDIgKyAoQiAtIFIpIC8gQzsKPiA+PiArICAgICAgICB9IGVsc2Ugewo+ID4+ICsg ICAgICAgICAgICAqSCA9IDQgKyAoUiAtIEcpIC8gQzsKPiA+PiArICAgICAgICB9Cj4gPj4gKwo+ ID4+ICsgICAgICAgICpIICo9IDYwOwo+ID4+ICsgICAgICAgICpTID0gKCpMIDw9IDAuNSkgPyAo Qy8oMiooKkwpKSkgOiAoQy8oMiAtIDIqKCpMKSkpOwo+ID4+ICsgICAgfSBlbHNlIHsKPiA+PiAr ICAgICAgICAqSCA9ICpTID0gMDsKPiA+PiArICAgIH0KPiA+PiArfQo+ID4+ICsKPiA+PiArc3Rh dGljIHZvaWQgY2FsY0hTTChIU0xDb250ZXh0ICpjdHgsIEFWRnJhbWUgKmZyYW1lLCBIU0xfQ09M T1IgKmhzbCkKPiA+PiArewo+ID4+ICsgICAgLy8gQ29udmVydCB0byBSR0IKPiA+PiArICAgIFlV VjJSR0IoZnJhbWUsIGN0eC0+cmdiX2Zvcm1hdCwgY3R4LT5yZ2JGcmFtZSk7Cj4gPj4gKwo+ID4+ ICsgICAgaW50IGNudCA9IGZyYW1lLT53aWR0aCAqIGZyYW1lLT5oZWlnaHQ7Cj4gPj4gKyAgICBu dW0gUiA9IDAsIEcgPSAwLCBCID0gMDsKPiA+PiArICAgIG51bSBIID0gMCwgUyA9IDAsIEwgPSAw Owo+ID4+ICsgICAgbnVtIEhfc3VtID0gMCwgU19zdW0gPSAwLCBMX3N1bSA9IDA7Cj4gPj4gKwo+ ID4+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbnQ7IGkrKykgewo+ID4+ICsgICAgICAgIFIg PSBjdHgtPnJnYkZyYW1lLT5kYXRhWzBdWzMgKiBpXTsKPiA+PiArICAgICAgICBHID0gY3R4LT5y Z2JGcmFtZS0+ZGF0YVswXVszICogaSArIDFdOwo+ID4+ICsgICAgICAgIEIgPSBjdHgtPnJnYkZy YW1lLT5kYXRhWzBdWzMgKiBpICsgMl07Cj4gPj4gKyAgICAgICAgUkdCMkhTTCgmSCwgJlMsICZM LCBSLzI1NSwgRy8yNTUsIEIvMjU1KTsKPiA+PiArICAgICAgICBIX3N1bSArPSBIOwo+ID4+ICsg ICAgICAgIFNfc3VtICs9IFM7Cj4gPj4gKyAgICAgICAgTF9zdW0gKz0gTDsKPiA+PiArICAgIH0K PiA+PiArCj4gPj4gKyAgICBoc2wtPkggPSBIX3N1bSAvIGNudDsKPiA+PiArICAgIGhzbC0+UyA9 IFNfc3VtIC8gY250Owo+ID4+ICsgICAgaHNsLT5MID0gTF9zdW0gLyBjbnQ7Cj4gPj4gKwo+ID4+ ICsgICAgLy8gYXZfbG9nKGN0eCwgQVZfTE9HX0lORk8sICJIOiAlLjFmLCBTOiAlLjFmLCBMOiAl LjFmXG4iLAo+ID4+ICsgICAgLy8gICAgICAgIGhzbC0+SCwgaHNsLT5TICogMTAwLCBoc2wtPkwg KiAxMDApOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgaW50IGZpbHRlcl9mcmFtZShBVkZp bHRlckxpbmsgKmlubGluaywgQVZGcmFtZSAqZnJhbWUpCj4gPj4gK3sKPiA+PiArICAgIEFWRmls dGVyQ29udGV4dCAqY3R4ID0gaW5saW5rLT5kc3Q7Cj4gPj4gKyAgICBIU0xDb250ZXh0ICpzID0g Y3R4LT5wcml2Owo+ID4+ICsgICAgcy0+bmJfZnJhbWVzKys7Cj4gPj4gKwo+ID4+ICsgICAgSFNM X0NPTE9SIGhzbDsKPiA+PiArICAgIGNhbGNIU0wocywgZnJhbWUsICZoc2wpOwo+ID4+ICsKPiA+ PiArICAgIC8vIENhbGN1bGF0ZSBzdGF0aXN0aWNzCj4gPj4gKyAgICBzLT5tYXhfaHVlICAgID0g Zm1heGYoaHNsLkgsIHMtPm1heF9odWUpOwo+ID4+ICsgICAgcy0+bWF4X3NhdCAgICA9IGZtYXhm KGhzbC5TLCBzLT5tYXhfc2F0KTsKPiA+PiArICAgIHMtPm1heF9saWdodCAgPSBmbWF4Zihoc2wu TCwgcy0+bWF4X2xpZ2h0KTsKPiA+PiArICAgIHMtPnN1bV9odWUgICArPSBoc2wuSDsKPiA+PiAr ICAgIHMtPnN1bV9zYXQgICArPSBoc2wuUzsKPiA+PiArICAgIHMtPnN1bV9saWdodCArPSBoc2wu TDsKPiA+PiArICAgIHMtPm1pbl9odWUgICAgPSBzLT5uYl9mcmFtZXMgPT0gMSA/IGhzbC5IIDog Zm1pbmYoaHNsLkgsCj4gPj4gcy0+bWluX2h1ZSk7Cj4gPj4gKyAgICBzLT5taW5fc2F0ICAgID0g cy0+bmJfZnJhbWVzID09IDEgPyBoc2wuUyA6IGZtaW5mKGhzbC5TLAo+ID4+IHMtPm1pbl9zYXQp Owo+ID4+ICsgICAgcy0+bWluX2xpZ2h0ICA9IHMtPm5iX2ZyYW1lcyA9PSAxID8gaHNsLkwgOiBm bWluZihoc2wuTCwKPiA+PiBzLT5taW5fbGlnaHQpOwo+ID4+ICsKPiA+PiArICAgIC8vIFNldCBI U0wgaW5mb3JtYXRpb24gaW4gZnJhbWUgbWV0YWRhdGEKPiA+PiArICAgIHNldF9tZXRhKCZmcmFt ZS0+bWV0YWRhdGEsICJsYXZmaS5oc2wuaHVlIiwgICBoc2wuSCk7Cj4gPj4gKyAgICBzZXRfbWV0 YSgmZnJhbWUtPm1ldGFkYXRhLCAibGF2ZmkuaHNsLnNhdCIsICAgaHNsLlMgKiAxMDApOwo+ID4+ ICsgICAgc2V0X21ldGEoJmZyYW1lLT5tZXRhZGF0YSwgImxhdmZpLmhzbC5saWdodCIsIGhzbC5M ICogMTAwKTsKPiA+PiArCj4gPj4gKyAgICByZXR1cm4gZmZfZmlsdGVyX2ZyYW1lKGlubGluay0+ ZHN0LT5vdXRwdXRzWzBdLCBmcmFtZSk7Cj4gPj4gK30KPiA+PiArCj4gPj4gKyNkZWZpbmUgT0ZG U0VUKHgpIG9mZnNldG9mKEhTTENvbnRleHQsIHgpCj4gPj4gKyNkZWZpbmUgRkxBR1MgQVZfT1BU X0ZMQUdfVklERU9fUEFSQU18QVZfT1BUX0ZMQUdfRklMVEVSSU5HX1BBUkFNCj4gPj4gKwo+ID4+ ICtzdGF0aWMgY29uc3QgQVZPcHRpb24gaHNsX29wdGlvbnNbXSA9IHsKPiA+PiArICAgIHsgInBy aW50X3N1bW1hcnkiLCAiUHJpbnQgc3VtbWFyeSBzaG93aW5nIGF2ZXJhZ2UgdmFsdWVzIiwKPiA+ PiBPRkZTRVQocHJpbnRfc3VtbWFyeSksIEFWX09QVF9UWVBFX0JPT0wsIHsgLmk2ND0wIH0sIDAs IDEsIEZMQUdTIH0sCj4gPj4gKyAgICB7IE5VTEwgfQo+ID4+ICt9Owo+ID4+ICsKPiA+PiArQVZG SUxURVJfREVGSU5FX0NMQVNTKGhzbCk7Cj4gPj4gKwo+ID4+ICtzdGF0aWMgY29uc3QgQVZGaWx0 ZXJQYWQgYXZmaWx0ZXJfdmZfaHNsX2lucHV0c1tdID0gewo+ID4+ICsgICAgewo+ID4+ICsgICAg ICAgIC5uYW1lICAgICAgICAgPSAiZGVmYXVsdCIsCj4gPj4gKyAgICAgICAgLnR5cGUgICAgICAg ICA9IEFWTUVESUFfVFlQRV9WSURFTywKPiA+PiArICAgICAgICAuY29uZmlnX3Byb3BzID0gY29u ZmlnX2lucHV0LAo+ID4+ICsgICAgICAgIC5maWx0ZXJfZnJhbWUgPSBmaWx0ZXJfZnJhbWUsCj4g Pj4gKyAgICB9LAo+ID4+ICt9Owo+ID4+ICsKPiA+PiArc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFk IGF2ZmlsdGVyX3ZmX2hzbF9vdXRwdXRzW10gPSB7Cj4gPj4gKyAgICB7Cj4gPj4gKyAgICAgICAg Lm5hbWUgPSAiZGVmYXVsdCIsCj4gPj4gKyAgICAgICAgLnR5cGUgPSBBVk1FRElBX1RZUEVfVklE RU8KPiA+PiArICAgIH0sCj4gPj4gK307Cj4gPj4gKwo+ID4+ICtjb25zdCBBVkZpbHRlciBmZl92 Zl9oc2wgPSB7Cj4gPj4gKyAgICAubmFtZSAgICAgICAgICA9ICJoc2wiLAo+ID4+ICsgICAgLmRl c2NyaXB0aW9uICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiQ2FsY3VsYXRlIHRoZSBIU0wgY29s b3IKPiBzcGFjZQo+ID4+IGluZm9ybWF0aW9uLiIpLAo+ID4+ICsgICAgLnByaXZfc2l6ZSAgICAg PSBzaXplb2YoSFNMQ29udGV4dCksCj4gPj4gKyAgICAucHJpdl9jbGFzcyAgICA9ICZoc2xfY2xh c3MsCj4gPj4gKyAgICAuaW5pdCAgICAgICAgICA9IGluaXQsCj4gPj4gKyAgICAudW5pbml0ICAg ICAgICA9IHVuaW5pdCwKPiA+PiArICAgIC5mbGFncyAgICAgICAgID0gQVZGSUxURVJfRkxBR19N RVRBREFUQV9PTkxZLAo+ID4+ICsgICAgRklMVEVSX1BJWEZNVFNfQVJSQVkocGl4X2ZtdHMpLAo+ ID4+ICsgICAgRklMVEVSX0lOUFVUUyhhdmZpbHRlcl92Zl9oc2xfaW5wdXRzKSwKPiA+PiArICAg IEZJTFRFUl9PVVRQVVRTKGF2ZmlsdGVyX3ZmX2hzbF9vdXRwdXRzKSwKPiA+PiArfTsKPiA+PiBk aWZmIC0tZ2l0IGEvdGVzdHMvZmF0ZS1ydW4uc2ggYi90ZXN0cy9mYXRlLXJ1bi5zaAo+ID4+IGlu ZGV4IDYxY2M1OWFjYzAuLmMzNTA1NzBmNWIgMTAwNzU1Cj4gPj4gLS0tIGEvdGVzdHMvZmF0ZS1y dW4uc2gKPiA+PiArKysgYi90ZXN0cy9mYXRlLXJ1bi5zaAo+ID4+IEBAIC0xLDUgKzEsNyBAQAo+ ID4+ICAjISAvYmluL3NoCj4gPj4KPiA+PiArc2V0IC14Cj4gPj4gKwo+ID4+ICBleHBvcnQgTENf QUxMPUMKPiA+Pgo+ID4+ICBiYXNlPSQoZGlybmFtZSAkMCkKPiA+PiBkaWZmIC0tZ2l0IGEvdGVz dHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFrIGIvdGVzdHMvZmF0ZS9maWx0ZXItdmlkZW8ubWFrCj4g Pj4gaW5kZXggNjM4NzNhN2EwNy4uYWE5ODEyYWExOCAxMDA2NDQKPiA+PiAtLS0gYS90ZXN0cy9m YXRlL2ZpbHRlci12aWRlby5tYWsKPiA+PiArKysgYi90ZXN0cy9mYXRlL2ZpbHRlci12aWRlby5t YWsKPiA+PiBAQCAtNDA4LDYgKzQwOCw5IEBAIGZhdGUtZmlsdGVyLXNjYWxlMjAwOiBDTUQgPSB2 aWRlb19maWx0ZXIKPiA+PiAic2NhbGU9dz0yMDA6aD0yMDAiCj4gPj4gIEZBVEVfRklMVEVSX1ZT WU5USF9WSURFT19GSUxURVItJChDT05GSUdfU0NBTEVfRklMVEVSKSArPQo+ID4+IGZhdGUtZmls dGVyLXNjYWxlNTAwCj4gPj4gIGZhdGUtZmlsdGVyLXNjYWxlNTAwOiBDTUQgPSB2aWRlb19maWx0 ZXIgInNjYWxlPXc9NTAwOmg9NTAwIgo+ID4+Cj4gPj4gK0ZBVEVfRklMVEVSX1ZTWU5USF9WSURF T19GSUxURVItJChDT05GSUdfU0NBTEVfRklMVEVSKSArPQo+ID4+IGZhdGUtZmlsdGVyLWhzbAo+ ID4+ICtmYXRlLWZpbHRlci1oc2w6IENNRCA9IHZpZGVvX2ZpbHRlciAiaHNsPXByaW50X3N1bW1h cnk9MSIKPiA+PiArCj4gPj4gIEZBVEVfRklMVEVSX1ZTWU5USC0kKGNhbGwgQUxMWUVTLCBURVNU U1JDX0ZJTFRFUiBTQ0FMRTJSRUZfRklMVEVSCj4gPj4gTlVMTFNJTktfRklMVEVSIEZSQU1FTUQ1 X01VWEVSIEZJTEVfUFJPVE9DT0wgUElQRV9QUk9UT0NPTCkgKz0KPiA+PiBmYXRlLWZpbHRlci1z Y2FsZTJyZWZfa2VlcF9hc3BlY3QKPiA+PiAgZmF0ZS1maWx0ZXItc2NhbGUycmVmX2tlZXBfYXNw ZWN0Ogo+ID4+IHRlc3RzL2RhdGEvZmlsdGVyZ3JhcGhzL3NjYWxlMnJlZl9rZWVwX2FzcGVjdAo+ ID4+ICBmYXRlLWZpbHRlci1zY2FsZTJyZWZfa2VlcF9hc3BlY3Q6IENNRCA9IGZyYW1lbWQ1IC1m cmFtZXM6diA1Cj4gPj4gLWZpbHRlcl9jb21wbGV4X3NjcmlwdAo+ID4+ICQoVEFSR0VUX1BBVEgp L3Rlc3RzL2RhdGEvZmlsdGVyZ3JhcGhzL3NjYWxlMnJlZl9rZWVwX2FzcGVjdCAtbWFwCj4gPj4g IlttYWluXSIKPiA+PiBkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLWhzbCBiL3Rl c3RzL3JlZi9mYXRlL2ZpbHRlci1oc2wKPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4+IGlu ZGV4IDAwMDAwMDAwMDAuLmFlMGEwNjRmNDYKPiA+PiAtLS0gL2Rldi9udWxsCj4gPj4gKysrIGIv dGVzdHMvcmVmL2ZhdGUvZmlsdGVyLWhzbAo+ID4+IEBAIC0wLDAgKzEgQEAKPiA+PiAraHNsICAg ICAgICAgICAgZmNiMDA3MjQ5ZmJhOTM3MWZlODRhNjFjOTc0ZmNiMDAKPiA+PiAtLQo+ID4+IDIu MjQuMyAoQXBwbGUgR2l0LTEyOCkKPiA+Pgo+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+ID4+ IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gPj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4v bGlzdGluZm8vZmZtcGVnLWRldmVsCj4gPj4KPiA+PiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGlu ayBhYm92ZSwgb3IgZW1haWwKPiA+PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdp dGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+ID4+Cj4gPgo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+ IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz dGluZm8vZmZtcGVnLWRldmVsCj4KPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwg b3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAi dW5zdWJzY3JpYmUiLgo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcK aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1 YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RA ZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K