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 5FA5B46B0A for ; Mon, 3 Jul 2023 08:27:31 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 693E868C533; Mon, 3 Jul 2023 11:27:29 +0300 (EEST) Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C9DE268C1E7 for ; Mon, 3 Jul 2023 11:27:22 +0300 (EEST) Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-312824aa384so4605929f8f.1 for ; Mon, 03 Jul 2023 01:27:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kynesim-co-uk.20221208.gappssmtp.com; s=20221208; t=1688372842; x=1690964842; h=content-transfer-encoding:mime-version:user-agent:in-reply-to :references:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=KSkFaeuieyKJ+MESR2XFCyx9EKY0Ide1zpy0u1nMvFk=; b=isBIC4wzGSSH28yimKYfWW6ZC5q0qvw80Bz/yGRZhinBzdSpUWJEecjlIOL8gqNZg5 PzPo5XesKrp+FtxxGvtG4DLy3INv0+kElLk2q5azN8rcbxwCTKiO619IvSZlIQlnkcJs XO7Mwupi9sTlaOXiUdhg0HjYkNa+Xtx3sin8tulpoTaHODw2bg672uf++r5pqEuNVMXR cHBgt8tx/+hKXkQoxRzXoaZGYffedIQPHptwk28Y7KN14jQleu8k1kCgvCJTCPT7BmxQ 5cHOjHFq6hi07CQElqmIu8P7K4KuIKhe+2R+YeXHLY+OMYSgfwbqOjC14ALhMaohaxS2 NuKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688372842; x=1690964842; h=content-transfer-encoding:mime-version:user-agent:in-reply-to :references:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=KSkFaeuieyKJ+MESR2XFCyx9EKY0Ide1zpy0u1nMvFk=; b=dMzn7VHYGR98xYfGOhr7OBv1OVX0Z8ElHhupXq9WEhF6b5snmT4orh+gmN7f7LWz1M tbeo2LMi16ifrCnq/Vjo1a+q2Na215V51U6EkYDeQ2coFURcIa0h250vjpw1jTkn8EEi iEELX6kpYwiyGhT/0pxVq2qbZ/X54VcET9l3YlWm/5PKk3er25pOzfrUrAB+gdJl9b/U QVSy4RCri5ZXR4VyuEDrcDMbQoItvC1GbB+YDZbCvo5aE8CYg0TOrEmgNWXM0D+rRh+j 8Fb3YRFuhka2HYUuoZvQjaoEduCoffWK7vNga2dPbbHJ3qpqRPPzvg8BjvbmxQpisA5M WrGQ== X-Gm-Message-State: ABy/qLbXVewutSHslcogus4yITMBvrwJqJfBLqJSJAZ35dFGvMsoXz4b 2BXTjeU56EWCXUWG9CTuGQSQ/w== X-Google-Smtp-Source: APBJJlFDSPXS2PFsIGK41DJw0soICOy7k+G1TMAbt418HTjd3JFL7v52EhUD3sUI/hTo4hW7sjM10Q== X-Received: by 2002:a5d:4106:0:b0:314:1f1e:3a85 with SMTP id l6-20020a5d4106000000b003141f1e3a85mr7208383wrp.61.1688372841676; Mon, 03 Jul 2023 01:27:21 -0700 (PDT) Received: from CTHALPA.outer.uphall.net (cpc1-cmbg20-2-0-cust759.5-4.cable.virginm.net. [86.21.218.248]) by smtp.gmail.com with ESMTPSA id d5-20020adff845000000b003141b9ddab3sm9990340wrq.114.2023.07.03.01.27.21 (version=TLS1 cipher=ECDHE-ECDSA-AES128-SHA bits=128/128); Mon, 03 Jul 2023 01:27:21 -0700 (PDT) From: John Cox To: =?utf-8?Q?Martin_Storsj=C3=B6?= Date: Mon, 03 Jul 2023 09:27:21 +0100 Message-ID: <8d15aidfe26uan2tirdvs9m9e3vdj09n3g@4ax.com> References: <20230702123242.232484-1-jc@kynesim.co.uk> <20230702123242.232484-13-jc@kynesim.co.uk> <216b3a66-23de-35-1423-9df84a1ee16@martin.st> In-Reply-To: <216b3a66-23de-35-1423-9df84a1ee16@martin.st> User-Agent: ForteAgent/8.00.32.1272 MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH v2 12/15] avfilter/vf_bwdif: Add a filter_line3 method for optimisation 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: Thomas Mundt , 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: T24gTW9uLCAzIEp1bCAyMDIzIDAwOjEyOjQ2ICswMzAwIChFRVNUKSwgeW91IHdyb3RlOgoKPk9u IFN1biwgMiBKdWwgMjAyMywgVGhvbWFzIE11bmR0IHdyb3RlOgo+Cj4+IEFtIFNvLiwgMi4gSnVs aSAyMDIzIHVtIDE0OjM0wqBVaHIgc2NocmllYiBKb2huIENveCA8amNAa3luZXNpbS5jby51az46 Cj4+ICAgICAgIEFkZCBhbiBvcHRpb25hbCBmaWx0ZXJfbGluZTMgdG8gdGhlIGF2YWlsYWJsZSBv cHRpbWlzYXRpb25zLgo+Pgo+PiAgICAgICBmaWx0ZXJfbGluZTMgaXMgZXF1aXZhbGVudCB0byBm aWx0ZXJfbGluZSwgbWVtY3B5LCBmaWx0ZXJfbGluZQo+Pgo+PiAgICAgICBmaWx0ZXJfbGluZSBz aGFyZXMgcXVpdGUgYSBudW1iZXIgb2YgbG9hZHMgYW5kIHNvbWUgY2FsY3VsYXRpb25zCj4+ICAg ICAgIGluCj4+ICAgICAgIGNvbW1vbiB3aXRoIGl0cyBuZXh0IGl0ZXJhdGlvbiBhbmQgdGVzdGlu ZyBzaG93cyB0aGF0IHVzaW5nCj4+ICAgICAgIGFhcmNoNjQKPj4gICAgICAgbmVvbiBmaWx0ZXJf bGluZTNzIHBlcmZvcm1hbmNlIGlzIDMwJSBiZXR0ZXIgdGhhbiB0d28KPj4gICAgICAgZmlsdGVy X2xpbmVzCj4+ICAgICAgIGFuZCBhIG1lbWNweS4KPj4KPj4gICAgICAgU2lnbmVkLW9mZi1ieTog Sm9obiBDb3ggPGpjQGt5bmVzaW0uY28udWs+Cj4+ICAgICAgIC0tLQo+PiAgICAgICDCoGxpYmF2 ZmlsdGVyL2J3ZGlmLmjCoCDCoCB8wqAgNyArKysrKysrCj4+ICAgICAgIMKgbGliYXZmaWx0ZXIv dmZfYndkaWYuYyB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gICAgICAg wqAyIGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKykKPj4KPj4gICAgICAgZGlmZiAtLWdp dCBhL2xpYmF2ZmlsdGVyL2J3ZGlmLmggYi9saWJhdmZpbHRlci9id2RpZi5oCj4+ICAgICAgIGlu ZGV4IGNjZTk5OTUzZjMuLjQ5NmNlYzcyZWYgMTAwNjQ0Cj4+ICAgICAgIC0tLSBhL2xpYmF2Zmls dGVyL2J3ZGlmLmgKPj4gICAgICAgKysrIGIvbGliYXZmaWx0ZXIvYndkaWYuaAo+PiAgICAgICBA QCAtMzUsNiArMzUsOSBAQCB0eXBlZGVmIHN0cnVjdCBCV0RJRkNvbnRleHQgewo+PiAgICAgICDC oCDCoCDCoHZvaWQgKCpmaWx0ZXJfZWRnZSkodm9pZCAqZHN0LCB2b2lkICpwcmV2LCB2b2lkICpj dXIsIHZvaWQKPj4gICAgICAgKm5leHQsCj4+ICAgICAgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgaW50IHcsIGludCBwcmVmcywgaW50IG1yZWZzLCBpbnQKPj4gICAgICAg cHJlZnMyLCBpbnQgbXJlZnMyLAo+PiAgICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoGludCBwYXJpdHksIGludCBjbGlwX21heCwgaW50IHNwYXQpOwo+PiAgICAgICAr wqAgwqAgdm9pZCAoKmZpbHRlcl9saW5lMykodm9pZCAqZHN0LCBpbnQgZHN0cmlkZSwKPj4gICAg ICAgK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY29uc3Qgdm9pZCAqcHJl diwgY29uc3Qgdm9pZCAqY3VyLAo+PiAgICAgICBjb25zdCB2b2lkICpuZXh0LCBpbnQgcHJlZnMs Cj4+ICAgICAgICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGludCB3LCBp bnQgcGFyaXR5LCBpbnQgY2xpcF9tYXgpOwo+PiAgICAgICDCoH0gQldESUZDb250ZXh0Owo+Pgo+ PiAgICAgICDCoHZvaWQgZmZfYndkaWZfaW5pdF9maWx0ZXJfbGluZShCV0RJRkNvbnRleHQgKmJ3 ZGlmLCBpbnQKPj4gICAgICAgYml0X2RlcHRoKTsKPj4gICAgICAgQEAgLTUzLDQgKzU2LDggQEAg dm9pZCBmZl9id2RpZl9maWx0ZXJfbGluZV9jKHZvaWQgKmRzdDEsIHZvaWQKPj4gICAgICAgKnBy ZXYxLCB2b2lkICpjdXIxLCB2b2lkICpuZXh0MSwKPj4gICAgICAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpbnQgcHJlZnMzLCBpbnQgbXJlZnMzLCBpbnQgcHJl ZnM0LAo+PiAgICAgICBpbnQgbXJlZnM0LAo+PiAgICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoGludCBwYXJpdHksIGludCBjbGlwX21heCk7Cj4+Cj4+ICAg ICAgICt2b2lkIGZmX2J3ZGlmX2ZpbHRlcl9saW5lM19jKHZvaWQgKiBkc3QxLCBpbnQgZF9zdHJp ZGUsCj4+ICAgICAgICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oGNvbnN0IHZvaWQgKiBwcmV2MSwgY29uc3Qgdm9pZCAqCj4+ICAgICAgIGN1cjEsIGNvbnN0IHZv aWQgKiBuZXh0MSwgaW50IHNfc3RyaWRlLAo+PiAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpbnQgdywgaW50IHBhcml0eSwgaW50IGNsaXBfbWF4KTsK Pj4gICAgICAgKwo+PiAgICAgICDCoCNlbmRpZiAvKiBBVkZJTFRFUl9CV0RJRl9IICovCj4+ICAg ICAgIGRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92Zl9id2RpZi5jIGIvbGliYXZmaWx0ZXIvdmZf YndkaWYuYwo+PiAgICAgICBpbmRleCAyNjM0OWRhMWZkLi41MmJjNjc2Y2Y4IDEwMDY0NAo+PiAg ICAgICAtLS0gYS9saWJhdmZpbHRlci92Zl9id2RpZi5jCj4+ICAgICAgICsrKyBiL2xpYmF2Zmls dGVyL3ZmX2J3ZGlmLmMKPj4gICAgICAgQEAgLTE1MCw2ICsxNTAsMzEgQEAgdm9pZCBmZl9id2Rp Zl9maWx0ZXJfbGluZV9jKHZvaWQgKmRzdDEsCj4+ICAgICAgIHZvaWQgKnByZXYxLCB2b2lkICpj dXIxLCB2b2lkICpuZXh0MSwKPj4gICAgICAgwqAgwqAgwqBGSUxURVIyKCkKPj4gICAgICAgwqB9 Cj4+Cj4+ICAgICAgICsjZGVmaW5lIE5FWFRfTElORSgpXAo+PiAgICAgICArwqAgwqAgZHN0ICs9 IGRfc3RyaWRlOyBcCj4+ICAgICAgICvCoCDCoCBwcmV2ICs9IHByZWZzOyBcCj4+ICAgICAgICvC oCDCoCBjdXLCoCArPSBwcmVmczsgXAo+PiAgICAgICArwqAgwqAgbmV4dCArPSBwcmVmczsKPj4g ICAgICAgKwo+PiAgICAgICArdm9pZCBmZl9id2RpZl9maWx0ZXJfbGluZTNfYyh2b2lkICogZHN0 MSwgaW50IGRfc3RyaWRlLAo+PiAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqBjb25zdCB2b2lkICogcHJldjEsIGNvbnN0IHZvaWQgKgo+PiAgICAgICBj dXIxLCBjb25zdCB2b2lkICogbmV4dDEsIGludCBzX3N0cmlkZSwKPj4gICAgICAgK8KgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgaW50IHcsIGludCBwYXJpdHksIGlu dCBjbGlwX21heCkKPj4gICAgICAgK3sKPj4gICAgICAgK8KgIMKgIGNvbnN0IGludCBwcmVmcyA9 IHNfc3RyaWRlOwo+PiAgICAgICArwqAgwqAgdWludDhfdCAqIGRzdMKgID0gZHN0MTsKPj4gICAg ICAgK8KgIMKgIGNvbnN0IHVpbnQ4X3QgKiBwcmV2ID0gcHJldjE7Cj4+ICAgICAgICvCoCDCoCBj b25zdCB1aW50OF90ICogY3VywqAgPSBjdXIxOwo+PiAgICAgICArwqAgwqAgY29uc3QgdWludDhf dCAqIG5leHQgPSBuZXh0MTsKPj4gICAgICAgKwo+PiAgICAgICArwqAgwqAgZmZfYndkaWZfZmls dGVyX2xpbmVfYyhkc3QsICh2b2lkKilwcmV2LCAodm9pZCopY3VyLAo+PiAgICAgICAodm9pZCop bmV4dCwgdywKPj4gICAgICAgK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgcHJlZnMsIC1wcmVmcywgcHJlZnMgKiAyLCAtIHByZWZzICoKPj4gICAgICAgMiwgcHJlZnMg KiAzLCAtcHJlZnMgKiAzLCBwcmVmcyAqIDQsIC1wcmVmcyAqIDQsIHBhcml0eSwKPj4gICAgICAg Y2xpcF9tYXgpOwo+PiAgICAgICArwqAgwqAgTkVYVF9MSU5FKCk7Cj4+ICAgICAgICvCoCDCoCBt ZW1jcHkoZHN0LCBjdXIsIHcpOwo+PiAgICAgICArwqAgwqAgTkVYVF9MSU5FKCk7Cj4+ICAgICAg ICvCoCDCoCBmZl9id2RpZl9maWx0ZXJfbGluZV9jKGRzdCwgKHZvaWQqKXByZXYsICh2b2lkKilj dXIsCj4+ICAgICAgICh2b2lkKiluZXh0LCB3LAo+PiAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBwcmVmcywgLXByZWZzLCBwcmVmcyAqIDIsIC0gcHJlZnMg Kgo+PiAgICAgICAyLCBwcmVmcyAqIDMsIC1wcmVmcyAqIDMsIHByZWZzICogNCwgLXByZWZzICog NCwgcGFyaXR5LAo+PiAgICAgICBjbGlwX21heCk7Cj4+ICAgICAgICt9Cj4+ICAgICAgICsKPj4g ICAgICAgwqB2b2lkIGZmX2J3ZGlmX2ZpbHRlcl9lZGdlX2Modm9pZCAqZHN0MSwgdm9pZCAqcHJl djEsIHZvaWQKPj4gICAgICAgKmN1cjEsIHZvaWQgKm5leHQxLAo+PiAgICAgICDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGludCB3LCBpbnQgcHJlZnMsIGludCBt cmVmcywgaW50Cj4+ICAgICAgIHByZWZzMiwgaW50IG1yZWZzMiwKPj4gICAgICAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpbnQgcGFyaXR5LCBpbnQgY2xpcF9t YXgsIGludCBzcGF0KQo+PiAgICAgICBAQCAtMjQ0LDYgKzI2OSwxMSBAQCBzdGF0aWMgaW50IGZp bHRlcl9zbGljZShBVkZpbHRlckNvbnRleHQKPj4gICAgICAgKmN0eCwgdm9pZCAqYXJnLCBpbnQg am9ibnIsIGludCBuYl9qb2JzKQo+PiAgICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCByZWZzIDw8IDEsIC0ocmVmcyA8PCAxKSwKPj4gICAgICAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgdGQtPnBhcml0eSBe IHRkLT50ZmYsIGNsaXBfbWF4LAo+PiAgICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCAoeSA8IDIpIHx8ICgoeSArIDMpID4gdGQtPmgpID8gMAo+PiAg ICAgICA6IDEpOwo+PiAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAgfSBlbHNlIGlmIChzLT5maWx0 ZXJfbGluZTMgJiYgeSArIDIgPCBzbGljZV9lbmQgJiYKPj4gICAgICAgeSArIDYgPCB0ZC0+aCkg ewo+PiAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcy0+ZmlsdGVyX2xpbmUzKGRzdCwK Pj4gICAgICAgdGQtPmZyYW1lLT5saW5lc2l6ZVt0ZC0+cGxhbmVdLAo+PiAgICAgICArwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcHJldiwgY3VyLCBuZXh0 LCBsaW5lc2l6ZSwKPj4gICAgICAgdGQtPncsCj4+ICAgICAgICvCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0ZC0+cGFyaXR5IF4gdGQtPnRmZiwKPj4gICAg ICAgY2xpcF9tYXgpOwo+PiAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgeSArPSAyOwo+ PiAgICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoH0gZWxzZSB7Cj4+ICAgICAgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgcy0+ZmlsdGVyX2xpbmUoZHN0LCBwcmV2LCBjdXIsIG5leHQsIHRkLT53 LAo+PiAgICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCByZWZzLCAtcmVmcywgcmVmcyA8PCAxLCAtKHJlZnMKPj4gICAgICAgPDwgMSksCj4+IAo+PiAK Pj4gTWF5YmUgSSdtIG1pc3Npbmcgc29tZXRoaW5nLCBidXQgZG9lc24ndCB0aGlzIGtpY2sgb3V0 IG1vc3Qgb2YgdGhlIHg4NiBTSU1ECj4+IG9wdGltaXphdGlvbiBiZWNhdXNlIHRoZXJlIGlzIG5v IGZpbHRlcl9saW5lMz8KPgo+SXQgbG9va3MgdG8gbWUgbGlrZSBpdCBkb2Vzbid0OyBpdCBhZGRz IGEgbmV3IG9wdGlvbmFsIGZ1bmN0aW9uIHBvaW50ZXIsIAo+YnV0IHRoZSByZWZlcmVuY2UgQyBm dW5jdGlvbiBpc24ndCBzZXQuIFNvIGJ5IGRlZmF1bHQgKGFuZCBvbiB4ODYpIAo+ZmlsdGVyX2xp bmUzIGlzIG51bGwsIGFuZCB0aGUgb2xkIGFzc2VtYmx5IG9wdGltaXplZCBjb2RlcGF0aHMgYXJl IHVzZWQuIAo+QnV0IGlmIGFuIGFyY2hpdGVjdHVyZSBkb2VzIGltcGxlbWVudCBmaWx0ZXJfbGlu ZTMsIHRoYXQncyB1c2VkIGluc3RlYWQgb2YgCj5maWx0ZXJfbGluZS4KCkluZGVlZCAtIHRoYXQg aXMgYm90aCB0aGUgaW50ZW50IGFuZCB3aGF0IGFwcGVhcnMgdG8gb2NjdXIgd2hlbiBJIHRlc3QK aXQuIEknZCBoYXZlIG1hZGUgdGhlIEMgbGluZTMgZnVuY3Rpb24gY2FsbCBkb3duIHRvIGxpbmUg aWYgSSBoYWQgYW55CmNvbnRleHQgdGhhdCBhbGxvd2VkIGl0IGJ1dCBwYXNzaW5nIGEgcmVhbCBj b250ZXh0IHNlZW1lZCBhZ2FpbnN0IHRoZQpzcGlyaXQgb2YgbmVhcmx5IGFsbCB0aGUgYXNtIG9w dGltaXNhdGlvbnMuCgpSZWdhcmRzCgpKQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBm Zm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZl bAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZl bC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==