From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTP id 14EF25A0304 for ; Fri, 17 May 2024 16:13:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1715955210; 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=H594D/ENed7ZQX+SzKRKVhxQIzOlkVWvhfTm4jeQWvs=; b=QoTGWAfr1C/xwXFLw59lYCGgVtm/LFKnqlhFT1fX4QoilzaSj8G6IaP14D4x5DVUITSfHQ ZZD+mq2ML9GU/IfXsW8YJwCG2HHiy7CvHhIKe4PfKU1BJA85vAkJ3Y4Tt2gUMXZQZWPBJR GluFz6zCqfI93Ssa//K6VWCDrjM6do8= Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-100-iYNzBPKNMm-2QRrJmhSA-w-1; Fri, 17 May 2024 10:13:28 -0400 X-MC-Unique: iYNzBPKNMm-2QRrJmhSA-w-1 Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-43b08a9d373so100332691cf.3 for ; Fri, 17 May 2024 07:13:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715955208; x=1716560008; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=H594D/ENed7ZQX+SzKRKVhxQIzOlkVWvhfTm4jeQWvs=; b=KZioAJfCpG5ziAISE+gC6+rkXzkQ5LNZdxSOo8Th1vty5xmWh1ChBNS34vMYFJUQGb nst//zBon1t95/AFW2JjuDOvnLR+E8JsrK8NDGs8PtUwG7cGwz+RtkvvrcMO0e9uHGay hMsZOY1LTpoDRsKGWRaCGr22o899bFDyrdyZUloYAyVH7T3dwzELyJb4JXEaJFBndgcv nfzlxROwAa/KVFPQmL8uEK3CFMLC9IfVIxTzRRLO6LunX5MJdPjfyiVn3EDSbDyWRybE RcNh63mIY4h0cuw/S6Qno2UcnmbkDCuwV1TQIZtcyskHLAqawGl2l8QgrK8TLOm18mM0 /8Mg== X-Gm-Message-State: AOJu0YzGrCICuwnMhPt6zeACv+RPOcuHZ005m48dzmZ2AdOxvduLpJ2Y 0IuIMA0Mqy4reCYk8onMUvTKRhAE07COG7EompaPia/hCeTLOiSj5cMyAqk7+9ncCkIOrg52EkO wzAcNHI1Mi5SqQRsRmt6WPcGtx0SikfkP6ds88/xvHI9oZ6CulQ== X-Received: by 2002:a05:622a:1906:b0:43a:f441:b3b2 with SMTP id d75a77b69052e-43dfdb22321mr298970121cf.17.1715955207872; Fri, 17 May 2024 07:13:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEdu4Zd8wap5Iqdt8OueF4RFsCIv4poM9OcYSNAk98AHnJlxx98JpApkea9jC7/UT80bb0SCg== X-Received: by 2002:a05:622a:1906:b0:43a:f441:b3b2 with SMTP id d75a77b69052e-43dfdb22321mr298969751cf.17.1715955207350; Fri, 17 May 2024 07:13:27 -0700 (PDT) Received: from [10.0.0.97] ([24.225.234.80]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-43df550c10fsm111008221cf.43.2024.05.17.07.13.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 17 May 2024 07:13:27 -0700 (PDT) Message-ID: Date: Fri, 17 May 2024 10:13:26 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH v5 3/3] tcp: allow retransmit when peer receive window is zero To: Stefano Brivio References: <20240516213328.1049176-1-jmaloy@redhat.com> <20240516213328.1049176-4-jmaloy@redhat.com> <20240517002110.1c957b6d@elisabeth> <20240517141519.499f362f@elisabeth> From: Jon Maloy In-Reply-To: <20240517141519.499f362f@elisabeth> X-Mimecast-Spam-Score: 0 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: FXZOBJ2U4426XCDGK4IVPIERG36ZG7NK X-Message-ID-Hash: FXZOBJ2U4426XCDGK4IVPIERG36ZG7NK 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, 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: DQoNCk9uIDIwMjQtMDUtMTcgMDg6MTUsIFN0ZWZhbm8gQnJpdmlvIHdyb3RlOg0KPiBPbiBUaHUs IDE2IE1heSAyMDI0IDIyOjM5OjUzIC0wNDAwDQo+IEpvbiBNYWxveSA8am1hbG95QHJlZGhhdC5j b20+IHdyb3RlOg0KPg0KPj4gT24gMjAyNC0wNS0xNiAxODoyMSwgU3RlZmFubyBCcml2aW8gd3Jv dGU6DQo+Pj4gT24gVGh1LCAxNiBNYXkgMjAyNCAxNzozMzoyOCAtMDQwMA0KPj4+IEpvbiBNYWxv eSA8am1hbG95QHJlZGhhdC5jb20+IHdyb3RlOg0KPj4+ICAgDQo+Pj4+IEEgYnVnIGluIGtlcm5l bCBUQ1AgbWF5IGxlYWQgdG8gYSBkZWFkbG9jayB3aGVyZSBhIHplcm8gd2luZG93IGlzIHNlbnQN Cj4+Pj4gZnJvbSB0aGUgcGVlciwgd2hpbGUgaXQgaXMgdW5hYmxlIHRvIHNlbmQgb3V0IHdpbmRv dyB1cGRhdGVzIGV2ZW4gYWZ0ZXINCj4+Pj4gcmVhZHMgaGF2ZSBmcmVlZCB1cCBlbm91Z2ggYnVm ZmVyIHNwYWNlIHRvIHBlcm1pdCBhIGxhcmdlciB3aW5kb3cuDQo+Pj4+IEluIHRoaXMgc2l0dWF0 aW9uLCBuZXcgd2luZG93IGFkdmVydGlzZW1udHMgZnJvbSB0aGUgcGVlciBjYW4gb25seSBiZQ0K Pj4+PiB0cmlnZ2VyZWQgYnkgcGFja2V0cyBhcnJpdmluZyBmcm9tIHRoaXMgc2lkZS4NCj4+Pj4N Cj4+Pj4gSG93ZXZlciwgc3VjaCBwYWNrZXRzIGFyZSBuZXZlciBzZW50LCBiZWNhdXNlIHRoZSB6 ZXJvLXdpbmRvdyBjb25kaXRpb24NCj4+Pj4gY3VycmVudGx5IHByZXZlbnRzIHRoaXMgc2lkZSBm cm9tIHNlbmRpbmcgb3V0IGFueSBwYWNrZXRzIHdoYXRzb2V2ZXINCj4+Pj4gdG8gdGhlIHBlZXIu DQo+Pj4+DQo+Pj4+IFdlIG5vdGljZSB0aGF0IHRoZSBhYm92ZSBidWcgaXMgdHJpZ2dlcmVkICpv bmx5KiBhZnRlciB0aGUgcGVlciBoYXMNCj4+Pj4gZHJvcHBlZCBhbiBhcnJpdmluZyBwYWNrZXQg YmVjYXVzZSBvZiBzZXZlcmUgbWVtb3J5IHNxdWVlemUsIGFuZCB0aGF0IHdlDQo+Pj4+IGhlbmNl IGFsd2F5cyBlbnRlciBhIHJldHJhbnNtaXNzaW9uIHNpdHVhdGlvbiB3aGVuIHRoaXMgb2NjdXJz LiBUaGlzDQo+Pj4+IGFsc28gbWVhbnMgdGhhdCBpdCBnb2VzIGFnYWluc3QgdGhlIFJGQyA5Mjkz IHJlY29tbWVuZGF0aW9uIHRoYXQgYQ0KPj4+PiBwcmV2aW91c2x5IGFkdmVydGlzZWQgd2luZG93 IG5ldmVyIHNob3VsZCBzaHJpbmsuDQo+Pj4+DQo+Pj4+IFJGQyA5MjkzIGdpdmVzIHRoZSBzb2x1 dGlvbiB0byB0aGlzIHNpdHVhdGlvbi4gSW4gY2hhcHRlciAzLjYuMSB3ZSBmaW5kDQo+Pj4+IHRo ZSBmb2xsb3dpbmcgc3RhdGVtZW50Og0KPj4+PiAiQSBUQ1AgcmVjZWl2ZXIgU0hPVUxEIE5PVCBz aHJpbmsgdGhlIHdpbmRvdywgaS5lLiwgbW92ZSB0aGUgcmlnaHQNCj4+Pj4gd2luZG93IGVkZ2Ug dG8gdGhlIGxlZnQgKFNITEQtMTQpLiBIb3dldmVyLCBhIHNlbmRpbmcgVENQIHBlZXIgTVVTVA0K Pj4+PiBiZSByb2J1c3QgYWdhaW5zdCB3aW5kb3cgc2hyaW5raW5nLCB3aGljaCBtYXkgY2F1c2Ug dGhlDQo+Pj4+ICJ1c2FibGUgd2luZG93IiAoc2VlIFNlY3Rpb24gMy44LjYuMi4xKSB0byBiZWNv bWUgbmVnYXRpdmUgKE1VU1QtMzQpLg0KPj4+Pg0KPj4+PiBJZiB0aGlzIGhhcHBlbnMsIHRoZSBz ZW5kZXIgU0hPVUxEIE5PVCBzZW5kIG5ldyBkYXRhIChTSExELTE1KSwgYnV0DQo+Pj4+IFNIT1VM RCByZXRyYW5zbWl0IG5vcm1hbGx5IHRoZSBvbGQgdW5hY2tub3dsZWRnZWQgZGF0YSBiZXR3ZWVu IFNORC5VTkENCj4+Pj4gYW5kIFNORC5VTkErU05ELldORCAoU0hMRC0xNikuIFRoZSBzZW5kZXIg TUFZIGFsc28gcmV0cmFuc21pdCBvbGQgZGF0YQ0KPj4+PiBiZXlvbmQgU05ELlVOQStTTkQuV05E IChNQVktNykiDQo+Pj4+DQo+Pj4+IFdlIG5ldmVyIHNlZSB0aGUgd2luZG93IGJlY29tZSBuZWdh dGl2ZSwgYnV0IHdlIGludGVycHJldCB0aGlzIGFzIGENCj4+Pj4gcmVjb21tZW5kYXRpb24gdG8g dXNlIHRoZSBwcmV2aW91c2x5IGF2YWlsYWJsZSB3aW5kb3cgZHVyaW5nDQo+Pj4+IHJldHJhbnNt aXNzaW9uIGV2ZW4gd2hlbiB0aGUgY3VycmVudGx5IGFkdmVydGlzZWQgd2luZG93IGlzIHplcm8u DQo+Pj4+DQo+Pj4+IFdlIHVzZSB0aGUgYWJvdmUgbWVjaGFuaXNtIG9ubHkgZm9yIHRpbWVyLWlu ZHVjZWQgcmV0cmFuc21pdHMsIHdoaWxlDQo+Pj4+IHRoZSBmYXN0LXJldHJhbnNtaXQgbWVjaGFu aXNtIHdvbid0IHRyaWdnZXIgb24gdGhpcyBjb25kaXRpb24uDQo+Pj4+DQo+Pj4+IEl0IHNob3Vs ZCBiZSBub3RlZCB0aGF0IGFsdGhvdWdoIHRoaXMgc29sdmVzIHRoZSBwcm9ibGVtIHdlIGhhdmUg YXQNCj4+Pj4gaGFuZCwgaXQgaXMgbm90IGEgZ2VudWluZSBzb2x1dGlvbiB0byB0aGUga2VybmVs IGJ1Zy4gVGhlcmUgbWF5IHdlbGwNCj4+Pj4gYmUgVENQIHN0YWNrcyBhcm91bmQgaW4gb3RoZXIg T1MtZXMgd2hpY2ggZG9uJ3QgZG8gdGhpcywgbm9yIGhhdmUNCj4+Pj4ga2VlcC1hbGl2ZSBwcm9i aW5nIGFzIGFuIGFsdGVybmF0dmUgd2F5IHRvIHNvbHZlIHRoZSBzaXR1YXRpb24uDQo+Pj4+DQo+ Pj4+IFNpZ25lZC1vZmYtYnk6IEpvbiBNYWxveSA8am1hbG95QHJlZGhhdC5jb20+DQo+Pj4+DQo+ Pj4+IC0tLQ0KPj4+PiB2MjogLSBVc2luZyBwcmV2aW91c2x5IGFkdmVydGlzZWQgd2luZG93IGR1 cmluZyByZXRyYW5zbWlzc2lvbiwgaW5zdGVhZA0KPj4+PiAgICAgICAgIGhpZ2hlc3Qgc2VuZCBz ZXF1ZW5jZWNlIG51bWJlciBpbiB0aGUgY3ljbGUuDQo+Pj4+IHYzOiAtIFJlYmFzZWQgdG8gbmV3 ZXN0IGNvZGUNCj4+Pj4gICAgICAgLSBDaGFuZ2VzIGJhc2VkIG9uIGZlZWRiYWNrIGZyb20gUEFT U1QgdGVhbQ0KPj4+PiAgICAgICAtIFNlbmRpbmcgb3V0IGVtcHR5IHByb2JlIG1lc3NhZ2UgYXQg dGltZXIgZXhwaXJhdGlvbiB3aGVuDQo+Pj4+ICAgICAgICAgd2UgYXJlIG5vdCBpbiByZXRyYW5z bWl0IHNpdHVhdGlvbi4NCj4+Pj4gdjQ6IC0gU29tZSBzbWFsbCBjaGFuZ2VzIGJhc2VkIG9uIGZl ZWRiYWNrIGZyb20gUEFTU1QgdGVhbS4NCj4+Pj4gICAgICAgLSBSZXBsYWNlZCBmYXN0IHJldHJh bnNtaXQgd2l0aCBhIG9uZS10aW1lICdmYXN0IHByb2JlJyB3aGVuDQo+Pj4+ICAgICAgICAgd2lu ZG93IGlzIHplcm8uDQo+Pj4+IHY1OiAtIEdhdmUgdXAgb24gJ2Zhc3QgcHJvYmluZycgZm9yIG5v dy4gV2hlbiBJIGdvdCB0aGUgc2VxdWVuY2UNCj4+Pj4gICAgICAgICBudW1iZXJzIHJpZ2h0IGlu IHRoZSBmbGFnIG1lc3NhZ2UgKGFmdGVyIGhhdmluZyBlbXB0aWVkIHRoZSB0YXANCj4+Pj4gICAg ICAgICBxdWV1ZSksIGl0IHR1cm5zIG91dCBhbiBlbXB0eSBtZXNzYWdlIGRvZXMgKm5vdCogZm9y Y2UgYSBuZXcgcGVlcg0KPj4+PiAgICAgICAgIHdpbmRvdyB1cGRhdGUgYXMgd2FzIG15IHByZXZp b3VzIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNvZGUuDQo+Pj4+ICAgICAgIC0gQWRkZWQgY3BwY2hl Y2sgc3VwcHJlc3Npb24gbGluZSAod2hpY2ggSSB3YXMgdW5hYmxlIHRvIHZlcmlmeSkNCj4+PiAu Li5obW0sIHdoeT8gQWxsIGl0IHRha2VzIGlzIGEgJ21ha2UgY3BwY2hlY2snLiBPciBpcyB5b3Vy IHZlcnNpb24gb2YNCj4+PiBjcHBjaGVjayBub3Qgc2hvd2luZyBpdD8NCj4+IEV4YWN0bHkuIE15 IHZlcnNpb24gaXMgdG9vIHJlY2VudCwgSSB0aGluay4NCj4+PiAgIA0KPj4+PiAgICAgICAgIGFz IHN1Z2dlc3RlZCBieSBTLiBCcml2aW8uDQo+Pj4+ICAgICAgIC0gUmVtb3ZlZCBzZW5kaW5nIG9m IGVtcHR5IHByb2JlIHdoZW4gd2luZG93IGZyb20gdGFwIHNpZGUgaXMgemVyby4NCj4+Pj4gICAg ICAgICBJdCBsb29rcyBwb2ludGxlc3MgYXQgdGhlIG1vbWVudCwgYXQgbGVhc3QgZm9yIHNvbHZp bmcgdGhlIGFib3ZlDQo+Pj4+ICAgICAgICAgZGVzY3JpYmVkIHNpdHVhdGlvbi4NCj4+PiBTbywg YXMgZmFyIGFzIEkgdW5kZXJzdGFuZCwgdGhpcyBwYXRjaCBub3cgZG9lc24ndCBpbnRyb2R1Y2Ug YW55DQo+Pj4gZnVuY3Rpb25hbCBjaGFuZ2UsIGV4Y2VwdCB0aGF0IGlmIGFuIGV4aXN0aW5nIHRp bWVyIGhhcHBlbmVkIHRvIGJlDQo+Pj4gcGVuZGluZyAodGhpcyBwYXRjaCBuZXZlciBzY2hlZHVs ZXMgaXQpLA0KPj4+ICAgIGFuZCB0aGUgd2luZG93IF93ZV8gYXJlDQo+Pj4gYWR2ZXJ0aXNpbmcg KHduZF90b190YXApIGlzIHplcm8gKEknbSBub3Qgc3VyZSB3aHkgdGhhdCdzIHJlbGV2YW50KSwN Cj4+PiB0aGVuIHdlJ2xsIHNlbmQgYW4gQUNLIHNlZ21lbnQuDQo+PiBUaGUgY2hhbmdlIGlzIHRo YXQgd2UgcmVhbGx5IHdpbGwgZG8gYSByZXRyYW5zbWl0IGZyb20gdGhlIHRpbWVyIGhhbmRsZXIs DQo+PiBpZ25vcmluZyB0aGF0IGN1cnJlbnQgd2luZG93IGlzIHplcm8uDQo+IC4uLmJ1dCBob3cg ZG9lcyB0aGUgd2luZG93ICp3ZSogYWR2ZXJ0aXNlIG1hdHRlciBoZXJlPyBZb3UncmUgY2hlY2tp bmcNCj4gY29ubi0+d25kX3RvX3RhcCBub3csIG5vdCBjb25uLT53bmRfZnJvbV90YXAuIEFueXdh eSwgaWYgeW91J3JlIG5vdw0KPiBhYmFuZG9uaW5nIHRoaXMgYXBwcm9hY2gsIGl0IGRvZXNuJ3Qg bWF0dGVyLg0KSXQgZG9lc24ndCBtYXR0ZXIgYXQgYWxsLiBJIHN0YXRlZCBpbiB0aGUgdGhlIGNv bW1lbnQgdGhhdCBJIGhhZCByZW1vdmVkIA0KdGhpcyBvbmUsIGJ1dCBmb3Jnb3QgdG8gZG/CoCBp dC4gOi0pDQoNCj4NCj4+IFRoaXMgc29sdmVzIHRoZSBkZWFkbG9jayBwcm9ibGVtDQo+PiBJIGhh dmUgYmVlbiBkZXNjcmliaW5nLCBidXQgaXQgaXMgbm90IGEgZ29vZCBzb2x1dGlvbi4NCj4+DQo+ PiBPbmUgcHJvYmxlbSBpcyB0aGF0IG5ldyBpbmNvbWluZyBkYXRhIHdpbGwgY2F1c2UgYW4gRVBP TExJTiBldmVudCwNCj4+IHdoaWNoIHdpbGwgY2F1c2UgYSBjYWxsIHRvIHRjcF9kYXRhX2Zyb21f c29jaygpLCB3aGljaCB3aWxsIGFsc28gaWdub3JlDQo+PiB0aGUgemVyby13aW5kb3cuDQo+IFJp Z2h0IG5vdyBpdCBkb2Vzbid0IGlnbm9yZSBpdC4gRG8geW91IHBsYW4gdG8gdXNlIHRoYXQgZnVu Y3Rpb24gdG8NCj4gY2hlY2sgaWYgdGhlIHVzYWJsZSB3aW5kb3cgaXMgbm93IG5lZ2F0aXZlIChi ZWNhdXNlIHRoZSB3aW5kb3cgdmFsdWUgaXMNCj4gemVybyBidXQgd2UgaGF2ZSB1bmFja25vd2xl ZGdlZCBkYXRhKSwgYW5kIHJlLXNlbmQgc29tZXRoaW5nIGluIHRoYXQNCj4gY2FzZT8NClllcywg aXQgaXMgaWdub3JpbmcgaXQsIGJlY2F1c2UgbWF4X3NlbmQgaXMgYmFzZWQgb24gc2VxX3duZF9l ZGdlX2Zyb21fdGFwLA0Kd2hpY2ggd2Fzbid0IG1vdmVkIHdoZW4gd2UgcmVjZWl2ZWQgdGhlIHpl cm8td2luZG93IGFkdmVyaXNlbWVudC4NCj4NCj4+IFRoaXMgaXMgZWFzeSB0byBmaXgsIEkgcmVh bGl6ZToNCj4+DQo+PiAgIMKgaWYgKGV2ZW50cyAmIEVQT0xMSU4gJiYgY29ubi0+d25kX2Zyb21f dGFwKQ0KPj4gICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRjcF9kYXRhX2Zyb21fc29j ayhjLCBjb25uKTsNClRoaXMgaXMgbXkgcGxhbi4NCj4+IFRoZSBuZXh0IGlzIHRoYXQgSSB3b3Vs ZCBsaWtlIHRvIHN0YXJ0IGEgc2hvcnQgdGltZXIgd2hlbiBJIHJlY2VpdmUNCj4+IHRoZSB6ZXJv LXdpbmRvdyBhbmQgc2VxX3RvX3RhcCA+IHNlcV9hY2tfZnJvbV90YXAgKHNhbWUgY29uZGl0aW9u DQo+PiBhcyBpbiBwcmV2aW91cyB2ZXJzaW9ucywgYnV0IHdpdGhvdXQgc2VuZGluZyB0aGUgZmxh ZyBwYWNrZXQpLg0KPj4gQXMgZmFyIGFzIEkgY2FuIHNlZSB0aGVyZSBpcyBubyBzaW1wbGUgd2F5 IHRvIHNjaGVkdWxlIHRoZSB0aW1lciB0bw0KPj4gdGhlIHZhbHVlIEkgd2FudC4gSSBhbSBvcGVu IHRvIHN1Z2dlc3Rpb25zIGhlcmUuDQo+IFlvdSBjb3VsZCByZXVzZS9hYnVzZSBBQ0tfVE9fVEFQ X0RVRSAoYWZ0ZXIgYWxsLCB5b3Ugd2FudCB0byBzZW5kIGENCj4ga2VlcC1hbGl2ZSBpbiBhIHdo aWxlKSwgYW5kIHNjaGVkdWxlIGEgZGlmZmVyZW50IHRpbWVvdXQgaW4NCj4gdGNwX3RpbWVyX2N0 bCgpIGlmIHRoZSBwZWVyIHdpbmRvdyBpcyB6ZXJvLg0KPg0KPiBUaGVuLCBpbiB0aGUgdGltZXIg aGFuZGxlciwgZGVwZW5kaW5nIG9uIHRoZSBwZWVyIHdpbmRvdywgeW91IHdvdWxkDQo+IGNoZWNr IGlmIHlvdSB3YW50IHRvIHVzZSBBQ0tfSUZfTkVFREVEIChubyBrZWVwYWxpdmUpLCBvciBBQ0sg KGZvcmNlIGENCj4ga2VlcGFsaXZlIGluIGFueSBjYXNlKS4NCj4NCkFzIGl0IGlzIG5vdywgQUNL X0ZST01fVEFQX0RVRSB3aXRoIGFzc29jaWF0ZWQgdGltZXIgaXMgYWx3YXlzIHNldCB3aGVuDQp3 ZSByZWNlaXZlIHRoZSB6ZXJvLXdpbmRvdywgc28gaXQga2luZCBvZiB3b3Jrcy4gVGhlIGRvd25z aWRlIGlzIHRoYXQgSQ0Kc2VlIGEgZ2xpdGNoIG9mIDEtMiBzZWNvbmRzIG5vdyBhbmQgdGhlbiB1 bnRpbCB0cmFmZmljIHJlY292ZXJzLg0KVHJ5aW5nIHdpdGggMTAgbXMgYXMgeW91IHN1Z2dlc3Qg aXMgbXVjaCBiZXR0ZXIuIEknbGwgZ2l2ZSBpdCBhIHRyeS4NCg0KLy8vam9uDQoNCg0K