From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=HxSpS5Xz; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTPS id 96B8B5A0632 for ; Thu, 13 Feb 2025 20:07:28 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1739473647; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wiFrQgVCWqiBzbL7hnpDltgOH91CIwJuisQUomQeDL8=; b=HxSpS5Xzd2hiTxCX6MXqnRo3bqW8nbIbEY/dc5qxw8pvgQI8AXNNWfIg778hJPIXzsnky5 KZaeEyJ8wkvKJckpIXHaKQvkdB1ImCv6VNVyjTg7NX/9auDVhAErIy8/nznH7KEuYsoe0P Tum7Dw2OQCD3k5IIdDdTNTu3vUZ+Nj8= Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-316-C-FGh7kNOL-cMXQodIJ3qQ-1; Thu, 13 Feb 2025 14:07:26 -0500 X-MC-Unique: C-FGh7kNOL-cMXQodIJ3qQ-1 X-Mimecast-MFC-AGG-ID: C-FGh7kNOL-cMXQodIJ3qQ_1739473645 Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-72709649749so1404a34.2 for ; Thu, 13 Feb 2025 11:07:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739473645; x=1740078445; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wiFrQgVCWqiBzbL7hnpDltgOH91CIwJuisQUomQeDL8=; b=osM5k+XXOCXY+jzlKD5nxLpYlqzf4+tLF2To/pa5+HExqyRptyeBYDRncQ9j/maduN ms5xNW/+VkoM4XCeAixKsyxyJu+fz0MLFXC3u79xQuzYaCbjjTfmFkNsSMyDBedOFTwB BbtxsC7rcl6KHoymnW9xrhN10wttlCVUu4kDAb5ba16t8ZRgf2af+tArl82pZIYCq3oA muiYTr2j1MnVI4oBnwdzVqaOKE+cRPOrg8Ap89mnM/Kod7HS2s6ghFz909yBsaUHnQ0+ 8GqgogIm2m6M/JcZecbYNGMk5+a3SXkbPrKZi+V1pitj3QhbH8NnoEIIDWIfTQBNfYrr H9EQ== X-Gm-Message-State: AOJu0YzvAdoGqhFbD5KOvQOHvB+dzJlc6+2mXVGbuxITwrHGcXSJoMzk Z5L1QBrg1PxrtzCvg7H/mUj/44Z1GjUa+f92bo0//sve9GW2WT9eMC/m6kwKN6Fwi6DktK7Ao/X WEb5jkjXnLcDZl7u3wao9gh+DCuyQmqkHgghQMqAhmP4JSANGAw== X-Gm-Gg: ASbGnctY+aiV43V82YqQYSQ5xKC3gWRKFI7yb5EPO0myzZI9nDs/01jTm3VHIfAJ6YG lSU2tNnAUbn/hVRx7mz4lMQisDVsTHnaGCN8Rsdq0owGVIDbpkkmrbCeVLj0HsPDlKh6Lyhtwmo uS2uwjT0scTwZ0i7aZBgRk0oYycYDxh1zP1gHyrWxM6gflXBDyQzLZXEclPMWX8+gdMRIHJw8t1 9W88iHTLW8z2Ah75jUHuiDe154tkq3pg9YS9ghiGI6Bb6F98n0hLwkkTqAyPrkUzteZOUfYhax/ wGI= X-Received: by 2002:a05:6830:4882:b0:71f:c1df:1824 with SMTP id 46e09a7af769-726fe7da6damr2842718a34.17.1739473645323; Thu, 13 Feb 2025 11:07:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IH+VM+5n39at1UlQxxnjoV1xUKrVvVl6PFbRsMwiCk+zWVdGLjfD3UPTF6F5mBCQi6/6dj9Fw== X-Received: by 2002:a05:6830:4882:b0:71f:c1df:1824 with SMTP id 46e09a7af769-726fe7da6damr2842696a34.17.1739473644952; Thu, 13 Feb 2025 11:07:24 -0800 (PST) Received: from [10.0.0.215] ([24.225.235.209]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-727001ff3absm846579a34.39.2025.02.13.11.07.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Feb 2025 11:07:24 -0800 (PST) Message-ID: Date: Thu, 13 Feb 2025 14:07:22 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] udp: create and send ICMPv4 to local peer when applicable From: Jon Maloy To: David Gibson References: <20250209170056.1160547-1-jmaloy@redhat.com> In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: S6tYkmoWnyGuHw3lmdI9nYR5WbveX60P3JSSLExsygE_1739473645 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: ZS4ZZAEDYJGJA4I5Z24FDDSABUG2RPSA X-Message-ID-Hash: ZS4ZZAEDYJGJA4I5Z24FDDSABUG2RPSA X-MailFrom: jmaloy@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: passt-dev@passt.top, sbrivio@redhat.com, lvivier@redhat.com, dgibson@redhat.com X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDIwMjUtMDItMTIgMTY6MzksIEpvbiBNYWxveSB3cm90ZToNCj4gDQo+IA0KPiBPbiAy MDI1LTAyLTEwIDE5OjU1LCBEYXZpZCBHaWJzb24gd3JvdGU6DQo+PiBPbiBTdW4sIEZlYiAwOSwg MjAyNSBhdCAxMjowMDo1NlBNIC0wNTAwLCBKb24gTWFsb3kgd3JvdGU6DQo+Pj4gV2hlbiBhIGxv Y2FsIHBlZXIgc2VuZHMgYSBVRFAgbWVzc2FnZSB0byBhIG5vbi1leGlzdGluZyBwb3J0IG9uIGFu DQo+Pj4gZXhpc3RpbmcgcmVtb3RlIGhvc3QsIHRoYXQgaG9zdCB3aWxsIHJldHVybiBhbiBJQ01Q IG1lc3NhZ2UgY29udGFpbmluZw0KPj4+IHRoZSBlcnJvciBjb2RlIElDTVBfUE9SVF9VTlJFQUNI LCBwbHVzIHRoZSBoZWFkZXIgYW5kIHRoZSBmaXJzdCBlaWdodA0KPj4+IGJ5dGVzIG9mIHRoZSBv cmlnaW5hbCBtZXNzYWdlLiBJZiB0aGUgc2VuZGVyIHNvY2tldCBoYXMgYmVlbiBjb25uZWN0ZWQs DQo+Pj4gaXQgdXNlcyB0aGlzIG1lc3NhZ2UgdG8gaXNzdWUgYSAiQ29ubmVjdGlvbiBSZWZ1c2Vk IiBldmVudCB0byB0aGUgdXNlci4NCj4gDQo+IFsuLi5dDQo+IA0KPj4+ICt2b2lkICp0YXBfcHVz aF9pcDRoKHN0cnVjdCBpcGhkciAqaXA0aCwgc3RydWN0IGluX2FkZHIgc3JjLA0KPj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBpbl9hZGRyIGRzdCwgc2l6ZV90IGw0bGVuLCB1aW50 OF90IHByb3RvKQ0KPj4NCj4+IEFzIGRpc2N1c3NlZCBvbiBvdXIgY2FsbCwgaXQgcHJvYmFibHkg bWFrZXMgc2Vuc2UgdG8gYWx0ZXIgdGhpcyB0byBzZXQNCj4+IHRoZSBEb24ndCBGcmFnbWVudCBi aXQgYWx3YXlzLg0KPiANCj4gSSBoYXZlIGJlZW4gc3R1ZHlpbmcgdGhlIExpbnV4IGNvZGUsIGJ1 dCB0aGlzIGlzIGhhbmRsZWQgaW4gc28gbWFueSANCj4gcGxhY2VzIHRoYXQgaXQgaXQgaGFyZCB0 byBnZXQgYSBmdWxsIGdyaXAgb24gaXQuIFdpcmVzaGFyayBsb2dzIHNlZW0NCj4gdG8gaW5kaWNh dGUgdGhhdCBpdCBpcyBhbHdheXMgc2V0LCBhbmQgZ29vZ2xpbmcgYSBiaXQgb24gdGhlIHN1Ympl Y3QNCj4gaW5kaWNhdGVzIHRoZSBzYW1lLiBJIHRoaW5rIGl0IGlzIHNhZmUgdG8gZG8gaXQsIHNv IGlmIHlvdSBhZ3JlZSBJDQo+IGNhbiBwb3N0IGEgcHJlcGVuZGluZyBwYXRjaCBzZXR0aW5nIHRo aXMuDQo+IA0KPj4NCj4+PiDCoCB7DQo+Pj4gwqDCoMKgwqDCoCB1aW50MTZfdCBsM2xlbiA9IGw0 bGVuICsgc2l6ZW9mKCppcDRoKTsNCj4+PiBkaWZmIC0tZ2l0IGEvdGFwLmggYi90YXAuaA0KPj4+ IGluZGV4IGRmYmQ4YjkuLjNiYTAwYzEgMTAwNjQ0DQo+Pj4gLS0tIGEvdGFwLmgNCj4+PiArKysg Yi90YXAuaA0KPj4+IEBAIC00NCw2ICs0NCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0YXBfaGRy X3VwZGF0ZShzdHJ1Y3QgdGFwX2hkciANCj4+PiAqdGhkciwgc2l6ZV90IGwybGVuKQ0KPj4+IMKg wqDCoMKgwqDCoMKgwqDCoCB0aGRyLT52bmV0X2xlbiA9IGh0b25sKGwybGVuKTsNCj4+PiDCoCB9 DQo+IA0KPiBbLi4uXQ0KPj4+ICsgKiB1ZHBfc2VuZF9jb25uX2ZhaWxfaWNtcDQoKSAtIENvbnN0 cnVjdCBhbmQgc2VuZCBJQ01QIHRvIGxvY2FsIHBlZXINCj4+PiArICogQGM6wqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgRXhlY3V0aW9uIGNvbnRleHQNCj4+PiArICogQGVlOsKgwqDCoMKgwqAg RXh0ZW5kZWQgZXJyb3IgZGVzY3JpcHRvcg0KPj4+ICsgKiBAcmVmOsKgwqDCoMKgwqAgZXBvbGwg cmVmZXJlbmNlDQo+Pj4gKyAqIEBpb3Y6wqDCoMKgwqDCoCBGaXJzdCBieXRlcyAobWF4IDgpIG9m IG9yaWdpbmFsIFVEUCBtZXNzYWdlIGJvZHkNCj4+DQo+PiBJIGRvbid0IGxvdmUgcGFzc2luZyB0 aGlzIGFzIGFuIGlvdiwgYmVjYXVzZSB0aGF0IHRlbmRzIHRvIGltcGx5IHRoZXJlDQo+PiBtaWdo dCBiZSBtdWx0aXBsZSBidWZmZXJzLCB3aGljaCBpcyBub3QgdGhlIGNhc2UgaGVyZSAoYm90aCB0 aGUgY2FsbGVyDQo+PiBhbmQgY2FsbGVlIHJlcXVpcmUgYSBzaW5nbGUgYnVmZmVyKS4NCj4gDQo+ IFRoZSByZWFsIHJlYXNvbiBpcyB0aGF0IGNzdW1fdWRwNCgpIHJlcXVpcmVzIGFuIGlvdiwgc28g aWYgd2UgZG9uJ3QNCj4gcGFzcyBpdCBoZXJlIHdlIHdpbGwgaGF2ZSB0byByZWNyZWF0ZSBpdCBp bnNpZGUgdGhlIG5ldyBmdW5jdGlvbi4NCj4gDQo+Pg0KPj4+ICsgKi8NCj4+PiArc3RhdGljIHZv aWQgdWRwX3NlbmRfY29ubl9mYWlsX2ljbXA0KGNvbnN0IHN0cnVjdCBjdHggKmMsDQo+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IHNvY2tf ZXh0ZW5kZWRfZXJyICplZSwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB1bmlvbiBlcG9sbF9yZWYgcmVmLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBpb3ZlYyAqaW92KQ0KPj4NCj4+DQo+Pg0KPj4+ICt7 DQo+Pj4gK8KgwqDCoCBmbG93X3NpZHhfdCB0b3NpZHggPSBmbG93X3NpZHhfb3Bwb3NpdGUocmVm LmZsb3dzaWRlKTsNCj4+DQo+PiBUaGlzIGlzIHN1YnRseSwgYnV0IGJhZGx5IHdyb25nLsKgIHJl Zi5mbG93c2lkZSBpcyBvbmx5IHZhbGlkIGlmIHRoZQ0KPj4gcmVmIGlzIG9mIGEgdHlwZSB3aGlj aCB1c2VzIHRoZSBmbG93c2lkZSBmaWVsZC7CoCBUaGF0J3MgdHJ1ZSBmb3IgVURQDQo+PiByZXBs eSBzb2NrZXRzLCBidXQgKm5vdCogZm9yIFVEUCBsaXN0ZW5pbmcgc29ja2V0cywgYW5kDQo+PiB1 ZHBfc29ja19lcnJzKCkgaXMgY2FsbGVkIG9uIGJvdGguwqAgSSB0aGluayB0aGlzIGZ1bmN0aW9u IG5lZWRzIHRvDQo+PiB0YWtlIGFuIGV4cGxpY2l0IGZsb3dzaWRlLg0KPiANCj4gWWVzLCBJIHdh cyBhIGxpdHRsZSB1bmNlcnRhaW4gYWJvdXQgdGhpcy4gQ2FuIHlvdSBnaXZlIG1lIHNtYWxsIGNv ZGUNCj4gc25pcHBldCBvZiBob3cgdGhpcyBzaG91bGQgYmUgZG9uZT8NCj4gDQo+Pg0KPj4+ICvC oMKgwqAgY29uc3Qgc3RydWN0IGZsb3dzaWRlICp0b3NpZGUgPSBmbG93c2lkZV9hdF9zaWR4KHRv c2lkeCk7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgaW5fYWRkciBvYWRkciA9IHRvc2lkZS0+b2FkZHIu djRtYXBwZWQuYTQ7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgaW5fYWRkciBlYWRkciA9IHRvc2lkZS0+ ZWFkZHIudjRtYXBwZWQuYTQ7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgaW92X3RhaWwgZGF0YSA9IElP Vl9UQUlMKGlvdiwgMSwgMCk7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3Qgew0KPj4+ICvCoMKgwqDCoMKg wqDCoCBzdHJ1Y3QgaWNtcGhkciBpY21wNGg7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBp cGhkciBpcDRoOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgdWRwaGRyIHVoOw0KPj4+ICvC oMKgwqDCoMKgwqDCoCBjaGFyIGRhdGFbOF07DQo+Pj4gK8KgwqDCoCB9IG1zZzsNCj4+DQo+PiBO ZWVkcyBhICgocGFja2VkKSkgYXR0cmlidXRlIHRvIGVuc3VyZSB3ZSBkb24ndCBnZXQgY29tcGls ZXIgcGFkZGluZy4NCg0KSSBnZXQNCnVkcC5jOjQzNzoyMzogd2FybmluZzogdGFraW5nIGFkZHJl c3Mgb2YgcGFja2VkIG1lbWJlciBvZiDigJhzdHJ1Y3QgDQo8YW5vbnltb3VzPuKAmSBtYXkgcmVz dWx0IGluIGFuIHVuYWxpZ25lZCBwb2ludGVyIHZhbHVlIA0KWy1XYWRkcmVzcy1vZi1wYWNrZWQt bWVtYmVyXQ0KICAgNDM3IHwgICAgICAgICB0YXBfcHVzaF9pcDRoKCZtc2cuaXA0aCwgZWFkZHIs IG9hZGRyLCB1ZHBsZW4sIA0KSVBQUk9UT19VRFApOw0KDQpBbHNvLCB0aGUgc2l6ZXMgb2YgdGhl c2UgbWVtYmVycyBhcmUgOCsyMCs4KzgsIHNvIEkgY2Fubm90IHNlZSBob3cNCnRoaXMgc3RydWN0 IGNhbiBwb3NzaWJseSBiZSBwYWNrZWQgb3IgaG93IHRoZXJlIGNhbiBiZSBhbiB1bmFsaWduZWQN CnBvaW50ZXIuDQpJbiBzaG9ydDogKChwYWNrZWQpKSBzZWVtcyB1bm5lY2Vzc2FyeSwgYW5kIG9u bHkgY2F1c2VzIHByb2JsZW1zLg0KDQovam9uDQoNCj4+DQo+IG9rLg0KPj4gSXQgdG9vayBtZSBh IG1pbnV0ZSB0byB3b3JrIG91dCB3aGF0IHdhcyBnb2luZyBvbiBoZXJlLsKgIFNwZWNpZmljYWxs eQ0KPj4gdGhhdCBpcDRoIGFuZCB1aCBoZXJlIGFyZW4ndCB0aGUgaGVhZGVycyBvZiB0aGUgcGFj a2V0IHdlJ3JlIHNlbmRpbmcNCj4+IG5vdywgYnV0IHRoZSByZWNvbnN0cnVjdGVkIGhlYWRlcnMg b2YgdGhlIHBhY2tldCB0aGF0IHByb21wdGVkIHRoZQ0KPj4gSUNNUCBlcnJvci4NCj4gDQo+IFll cywgSSB0cnkgdG8gcmUtY3JlYXRlIHRoZSBvcmlnaW5hbCBtZXNzYWdlIGFzIGNsb3NlbHkgYXMg cG9zc2libGUuDQo+IA0KPj4NCj4+PiArwqDCoMKgIHNpemVfdCB1ZHBsZW4gPSBzaXplb2YobXNn LnVoKSArIGlvdi0+aW92X2xlbjsNCj4+PiArwqDCoMKgIHNpemVfdCBtc2dsZW4gPSBzaXplb2Yo bXNnLmljbXA0aCkgKyBzaXplb2YobXNnLmlwNGgpICsgdWRwbGVuOw0KPj4+ICsNCj4+PiArwqDC oMKgIG1lbXNldCgmbXNnLCAwLCBzaXplb2YobXNnKSk7DQo+Pj4gK8KgwqDCoCBtc2cuaWNtcDRo LnR5cGUgPSBlZS0+ZWVfdHlwZTsNCj4+PiArwqDCoMKgIG1zZy5pY21wNGguY29kZSA9IGVlLT5l ZV9jb2RlOw0KPj4+ICvCoMKgwqAgdGFwX3B1c2hfaXA0aCgmbXNnLmlwNGgsIGVhZGRyLCBvYWRk ciwgdWRwbGVuLCBJUFBST1RPX1VEUCk7DQo+Pg0KPj4gVGhpcyBpc24ndCBxdWl0ZSBhIG5hdHVy YWwgZml0LsKgIEl0IGRvZXMgd29yaywgYnV0IHRoZSB0YXBfcHVzaF8oKQ0KPj4gZnVuY3Rpb25z IGFyZSBraW5kIG9mIGRlc2lnbmVkIHRvIHdvcmsgd2l0aCBhIGJ5dGUgYnVmZmVyIHdoZXJlIHdl DQo+PiBvbmx5IHdvcmsgb3V0IHRoZSBwb3NpdGlvbnMgb2YgaGVhZGVycyBhcyB3ZSBjb25zdHJ1 Y3QgdGhlbS7CoCBQcm9iYWJseQ0KPj4gYSBjbGVhbiB1cCBmb3Igc29tZSBvdGhlciBkYXkuDQo+ Pg0KPj4+ICvCoMKgwqAgbXNnLnVoLnNvdXJjZSA9IGh0b25zKHRvc2lkZS0+ZXBvcnQpOw0KPj4+ ICvCoMKgwqAgbXNnLnVoLmRlc3QgPSBodG9ucyh0b3NpZGUtPm9wb3J0KTsNCj4+PiArwqDCoMKg IG1zZy51aC5sZW4gPSBodG9ucyh1ZHBsZW4pOw0KPj4+ICvCoMKgwqAgY3N1bV91ZHA0KCZtc2cu dWgsIG9hZGRyLCBlYWRkciwgJmRhdGEpOw0KPj4NCj4+IEl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8g c3BsaXQgYSB0YXBfcHVzaF91aDQoKSBmdW5jdGlvbiBvdXQgZnJvbQ0KPj4gdGFwX3VkcDRfc2Vu ZCgpIHdoaWNoIHlvdSBjb3VsZCByZS11c2UgaGVyZS4NCj4gDQo+IEdvb2QgcG9pbnQuDQo+Pg0K Pj4+ICvCoMKgwqAgbWVtY3B5KCZtc2cuZGF0YSwgaW92LT5pb3ZfYmFzZSwgaW92LT5pb3ZfbGVu KTsNCj4+PiArwqDCoMKgIHRhcF9pY21wNF9zZW5kKGMsIG9hZGRyLCBlYWRkciwgJm1zZywgbXNn bGVuKTsNCj4+PiArfQ0KPj4+ICsNCj4+PiDCoCAvKioNCj4+PiDCoMKgICogdWRwX3NvY2tfcmVj dmVycigpIC0gUmVjZWl2ZSBhbmQgY2xlYXIgYW4gZXJyb3IgZnJvbSBhIHNvY2tldA0KPj4+IC0g KiBAczrCoMKgwqDCoMKgwqDCoCBTb2NrZXQgdG8gcmVjZWl2ZSBmcm9tDQo+Pj4gKyAqIEBjOsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEV4ZWN1dGlvbiBjb250ZXh0DQo+Pj4gKyAqIEByZWY6 wqDCoMKgwqDCoCBlcG9sbCByZWZlcmVuY2UNCj4+PiDCoMKgICoNCj4+PiDCoMKgICogUmV0dXJu OiAxIGlmIGVycm9yIHJlY2VpdmVkIGFuZCBwcm9jZXNzZWQsIDAgaWYgbm8gbW9yZSBlcnJvcnMg DQo+Pj4gaW4gcXVldWUsIDwgMA0KPj4+IMKgwqAgKsKgwqDCoMKgwqDCoMKgwqAgaWYgdGhlcmUg d2FzIGFuIGVycm9yIHJlYWRpbmcgdGhlIHF1ZXVlDQo+Pj4gwqDCoCAqDQo+Pj4gwqDCoCAqICNz eXNjYWxscyByZWN2bXNnDQo+Pj4gwqDCoCAqLw0KPj4+IC1zdGF0aWMgaW50IHVkcF9zb2NrX3Jl Y3ZlcnIoaW50IHMpDQo+Pj4gK3N0YXRpYyBpbnQgdWRwX3NvY2tfcmVjdmVycihjb25zdCBzdHJ1 Y3QgY3R4ICpjLCB1bmlvbiBlcG9sbF9yZWYgcmVmKQ0KPj4NCj4+IFNpbWlsYXJseSB1ZHBfc29j a19yZWN2ZXJyKCkgaXMgdXNlZCBib3RoIG9uICJsaXN0ZW5pbmciIGFuZCByZXBseQ0KPj4gc29j a2V0cywgc28gaXQncyBub3QgcmVhbGx5IHNhZmUgdG8gdXNlIHRoZSByZWYgaGVyZS7CoCBZb3Ug Y2FuDQo+PiBleHBsaWNpdGx5IHBhc3MgdGhlIGZkIGVhc2lseSBlbm91Z2guwqAgVGhlIGZsb3cg aXMgdHJpY2tpZXIuLi4NCj4gDQo+IEkgY2FuIHBhc3MgKmJvdGgqIHRoZSBmZCBhbmQgcmVmLCBh bHRlcm5hdGl2ZWRseSB0aGUgZmxvd3NpZGUsIGJ1dA0KPiBpdCBsb29rcyByZWR1bmRhbnQgYW5k IGFkZHMgZXh0cmEgY29kZS4NCj4gSWYgSSBhZGQgYSBmbG93c2lkZSBzdHJ1Y3QgaW5zdGVhZCBv ZiByZWYgSSB3aWxsIG5lZWQgdG8gZGVjbGFyZQ0KPiB0aGF0IGF0IHRoZSBhbGwgdGhlIG11bHRp cGxlIGxvY2F0aW9ucyB3aGVyZSB1ZHBfc29ja19lcnJzKCkuDQo+IERvIHlvdSBoYXZlIGEgZ29v ZCBzdWdnZXN0aW9uPw0KPiANCj4+DQo+Pj4gwqAgew0KPj4+IMKgwqDCoMKgwqAgY29uc3Qgc3Ry dWN0IHNvY2tfZXh0ZW5kZWRfZXJyICplZTsNCj4+PiDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCBj bXNnaGRyICpoZHI7DQo+Pj4gwqDCoMKgwqDCoCBjaGFyIGJ1ZltDTVNHX1NQQUNFKHNpemVvZigq ZWUpKV07DQo+Pj4gK8KgwqDCoCBjaGFyIHVkcF9kYXRhWzhdOw0KPj4+ICvCoMKgwqAgaW50IHMg PSByZWYuZmQ7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgaW92ZWMgaW92ID0gew0KPj4+ICvCoMKgwqDC oMKgwqDCoCAuaW92X2Jhc2UgPSB1ZHBfZGF0YSwNCj4+PiArwqDCoMKgwqDCoMKgwqAgLmlvdl9s ZW4gPSBzaXplb2YodWRwX2RhdGEpDQo+IA0KPiBbLi4uXQ0KPiANCj4+PiDCoMKgwqDCoMKgIGlm IChyYyA8IDApDQo+Pj4gQEAgLTU1OCw3ICs2MDcsNyBAQCBzdGF0aWMgdm9pZCB1ZHBfYnVmX2xp c3Rlbl9zb2NrX2hhbmRsZXIoY29uc3QgDQo+Pj4gc3RydWN0IGN0eCAqYywNCj4+PiDCoMKgwqDC oMKgIGNvbnN0IHNvY2tsZW5fdCBzYXNpemUgPSBzaXplb2YodWRwX21ldGFbMF0uc19pbik7DQo+ Pj4gwqDCoMKgwqDCoCBpbnQgbiwgaTsNCj4+PiAtwqDCoMKgIGlmICh1ZHBfc29ja19lcnJzKGMs IHJlZi5mZCwgZXZlbnRzKSA8IDApIHsNCj4+PiArwqDCoMKgIGlmICh1ZHBfc29ja19lcnJzKGMs IHJlZiwgZXZlbnRzKSA8IDApIHsNCj4+DQo+PiAuLi4gYmVjYXVzZSBpbiB0aGUgbGlzdGVuaW5n IHNvY2tldCBjYXNlIHdlIGRvbid0IGtub3cgdGhlIGZsb3cgdW50aWwNCj4+IHdlJ3ZlIGxvb2tl ZCBhdCB0aGUgcGFja2V0LsKgIEknZCBiZSB0ZW1wdGVkIGFzIGEgZmlyc3QgY3V0IHRvIG9ubHkg ZG8NCj4+IHRoZSBJQ01QIHRoaW5nIGZvciBlcnJvcnMgb24gcmVwbHkgc29ja2V0cy4NCj4gDQo+ IEkgY2FuIHRyeSB0aGF0LCBidXQgaXQgd291bGQgZmVlbCBhIGxpdHRsZSByZWR1Y2VkLg0KPiAN Cj4+DQo+PiBMaXN0ZW5pbmcgc29ja2V0cyB3aWxsIGJlIHRyaWNraWVyLsKgIEkgdGhpbmsgd2Un bGwgaGF2ZSB0byBhY3R1YWxseQ0KPj4gY2hlY2sgbXNnX25hbWUgaW4gdGhlIHJlY2VpdmVkIGVy cm9yIGluIG9yZGVyIHRvIHdvcmsgb3V0IHdoaWNoIGZsb3cNCj4+IGl0IGJlbG9uZ3MgdG8uDQo+ IA0KPiBBY3R1YWxseSwgSSBkaWQgdGhhdCBmaXJzdCwgdW50aWwgSSByZWFsaXplZCBJIGNvdWxk IGV4dHJhY3QgdGhlIHNvdXJjZQ0KPiBJUCBhZGRyZXNzIGZyb20gdGhlIGZsb3cgb2JqZWN0LiBC dXQgaG93IGRvZXMgdGhhdCBoZWxwPw0KPiANCj4gLy8vam9uDQo+IA0KPiANCg0K