From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=tsBevby6; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=6zNXqPZ1; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=a0wx4Otj; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ygUuQHAs; dkim-atps=neutral Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by passt.top (Postfix) with ESMTPS id 1498D5A0269 for ; Tue, 06 Oct 2026 11:41:28 +0200 (CEST) Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 93EFA1F8D5; Tue, 6 Oct 2026 09:41:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1791279682; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=uQHAuQ19jJ6VqsK5UVYCkwhI8A9P5fE+dkLBaevHh6A=; b=tsBevby6EFIwpsX1fBpCHFLYdj2VaV8DxzmTyjdTUxv1423jmEt9x2RBLaTfr2ywqejI6Z 4hEwgS/PIuD93gp7ald7pH31ariwCXL06A/mU6PhL8ceeDKlg8YqekRoKynQsWTT2MSkc4 uV8Rg5kfoWbVw8xQZidfr1b+Gio/8Ts= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1791279682; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=uQHAuQ19jJ6VqsK5UVYCkwhI8A9P5fE+dkLBaevHh6A=; b=6zNXqPZ17VzsHxiWK+fN4E+LAxSOb6Rb0S7L+/Ljbaxrs2cL36NYXiTVCOGUGV+ZuZ0B2D /g3atQVcaP8sYICA== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1791279678; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=uQHAuQ19jJ6VqsK5UVYCkwhI8A9P5fE+dkLBaevHh6A=; b=a0wx4OtjKRcLOg13FrZV6P50S1u9kVsgjKcA3lGu+sEWSlPJq1LBrYF6XrHFcakD/ezk21 6F+idungfWbZlrmW+4baKk8/4hSlEP4nb4sVSZP4aQKaKfJWqieKlfsVMeeEJho+cfQo5s 13P2kiXdGlG/ipoNVCiinzmeKzOrMYU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1791279678; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=uQHAuQ19jJ6VqsK5UVYCkwhI8A9P5fE+dkLBaevHh6A=; b=ygUuQHAsYQJP5m+xu5nv1fuOoqOIqU+uICrUv1sdhySkyqdcg8wlzFhoii+QVO+k3PVaUQ jgD0gjVJBdMIC9Dw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 52D2B136F2; Tue, 6 Oct 2026 09:41:18 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id /PYgCT7CxGrxaAAAD6G6ig (envelope-from ); Tue, 06 Oct 2026 09:41:18 +0000 Message-ID: <2e4b2a71-a7e3-4a26-aa8f-65295402481c@suse.de> Date: Tue, 6 Oct 2026 11:41:17 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] tcp_splice: avoid delay on certain transfers To: Stefano Brivio References: <20261002163925.1338988-1-bwiedemann@suse.de> <20261005213711.23b92b3c@elisabeth> Content-Language: en-US From: "Bernhard M. Wiedemann" Autocrypt: addr=bwiedemann@suse.de; keydata= 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 12bW2FfpiwAGOQ== In-Reply-To: <20261005213711.23b92b3c@elisabeth> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------dV0uIDhRJSVNA2yi6UvcS0Kt" X-Spamd-Result: default: False [-5.25 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SIGNED_PGP(-2.00)[]; MIME_BASE64_TEXT_BOGUS(1.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999]; MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain,text/x-python]; NEURAL_HAM_SHORT(-0.16)[-0.778]; MIME_BASE64_TEXT(0.10)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:+,5:+,6:~]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RCVD_TLS_ALL(0.00)[]; TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.de:mid]; HAS_ATTACHMENT(0.00)[] X-Spam-Flag: NO X-Spam-Score: -5.25 X-Spam-Level: X-MailFrom: bwiedemann@suse.de X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation Message-ID-Hash: LG3YLTOQK33DFVG3RUM3K67FYB6FS343 X-Message-ID-Hash: LG3YLTOQK33DFVG3RUM3K67FYB6FS343 X-Mailman-Approved-At: Tue, 06 Oct 2026 12:30:55 +0200 CC: passt-dev@passt.top 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: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------dV0uIDhRJSVNA2yi6UvcS0Kt Content-Type: multipart/mixed; boundary="------------M6IB0mjSnlTN9H9638LeUrGl"; protected-headers="v1" From: "Bernhard M. Wiedemann" To: Stefano Brivio Cc: passt-dev@passt.top Message-ID: <2e4b2a71-a7e3-4a26-aa8f-65295402481c@suse.de> Subject: Re: [PATCH] tcp_splice: avoid delay on certain transfers References: <20261002163925.1338988-1-bwiedemann@suse.de> <20261005213711.23b92b3c@elisabeth> In-Reply-To: <20261005213711.23b92b3c@elisabeth> --------------M6IB0mjSnlTN9H9638LeUrGl Content-Type: multipart/mixed; boundary="------------jHuXS9s8DGqUO88DOVwNn5zg" --------------jHuXS9s8DGqUO88DOVwNn5zg Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQoNCk9uIDA1LzEwLzIwMjYgMjEuMzcsIFN0ZWZhbm8gQnJpdmlvIHdyb3RlOg0KPiBCZXJu YXJkLCB0aGFua3MgZm9yIHRoZSBpbnZlc3RpZ2F0aW9uIGFuZCBmb3IgdGhlIHBhdGNoLiBK dXN0IG9uZSBkb3VidDoNClsuLi5dDQo+IEknbSBhIGJpdCB3b3JyaWVkIHdlIG1pZ2h0IGNh dXNlIHVubmVjZXNzYXJ5IHNldHNvY2tvcHQoKSBjYWxscyBpbiBzb21lDQo+IGNvcm5lciBj YXNlcyBpZiB3ZSBnbyB0aGlzIHdheSwgZXZlbiB0aG91Z2ggaXQncyBhIHJhdGhlciBtaW5v ciBjb25jZXJuDQo+ICh3ZSBqdXN0IGNhbGxlZCBzcGxpY2UoKSwgYW5kIHRoYXQgc2V0c29j a29wdCgpIGlzIG5vdCBfdGhhdF8gZXhwZW5zaXZlDQo+IGluIGNvbXBhcmlzb24pLg0KVGhl ICdjb3JrZWQnIHZhcmlhYmxlIHNob3VsZCBlbnN1cmUgdGhhdCB3ZSBvbmx5IGFkZCB0aGUg c2V0c29ja29wdCB3aGVuIA0KaXQgd291bGQgb3RoZXJ3aXNlIGFkZCB0aGUgdW5uZWNjZXNh cnkgMjAwbXMgZGVsYXkuDQoNCkkgYXR0YWNoZWQgdGhlIHJlcHJvZHVjZXJzIGFuZCBiZW5j aG1hcmtpbmcgdG9vbHMuDQpUaGUgZmluZGluZyBmcm9tIHJ1bm5pbmcgaXQgd2FzIHRoYXQg U1BMSUNFX0ZfTU9SRSBnaXZlcyBwbGVudHkgZXh0cmEgDQpwZXJmb3JtYW5jZSBldmVuIGZv ciA4SyBwaXBlcyBhbmQgc2V0c29ja29wdCBoYXJkbHkgY29zdHMgYW55dGhpbmcuDQoNClRv IHRlc3Q6DQojIG1heWJlIHdpdGggYWRqdXN0bWVudCB0byAvcHJvYy9zeXMvZnMvcGlwZS11 c2VyLXBhZ2VzLXNvZnQNCnBhc3RhIC0tY29uZmlnLW5ldCAtdCAxMjcuMC4wLjEvMjU0MzI6 MTU0MzIgLS0gcHl0aG9uMyByci5weSBzZXJ2ZSAxNTQzMg0KcHl0aG9uMyByci5weSAyNTQz Mg0KDQoNCiAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUkA0K4pSCICBCdWlsZCAg4pSCICBQaXBlcyAg4pSCIFdvcnN0IGxhdGVuY3kg 4pSCIFVwbG9hZCAoR2JpdC9zKSDilIIgRG93bmxvYWQvR2JpdCAg4pSCDQrilJzilIDilIDi lIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQNCuKUgiBiYXNl ICAgIOKUgiA4IEtpQiAgIOKUgiAyMDggbXMgICAgICAgIOKUgiA4OeKAkzkxICAgICAgICAg ICDilIIgODfigJM4OSAgICAgICAgICDilIINCuKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpA0K4pSCIHBhdGNoZWQg4pSCIDggS2lCICAg 4pSCIDAuMSBtcyAgICAgICAg4pSCIDg44oCTODkgICAgICAgICAgIOKUgiA4NuKAkzg5ICAg ICAgICAgIOKUgg0K4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSkDQrilIIgbm9tb3JlICDilIIgOCBLaUIgICDilIIgMC4xIG1zICAgICAg ICDilIIgNDLigJM0MyAgICAgICAgICAg4pSCIDQwICAgICAgICAgICAgIOKUgg0K4pSc4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS84pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkDQrilIIg YmFzZSAgICDilIIgZGVmYXVsdCDilIIgMC4zIG1zICAgICAgICDilIIgMjAz4oCTMjA0ICAg ICAgICAg4pSCIDE4OeKAkzE5OCAgICAgICAg4pSCDQrilJzilIDilIDilIDilIDilIDilIDi lIDilIDilIDilLzilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQNCuKUgiBwYXRjaGVkIOKUgiBkZWZh dWx0IOKUgiAwLjEgbXMgICAgICAgIOKUgiAyMDPigJMyMDUgICAgICAgICDilIIgMTg14oCT MTkwICAgICAgICDilIINCuKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUpA0K4pSCIG5vbW9yZSAg4pSCIGRlZmF1bHQg4pSCIDAuMSBtcyAg ICAgICAg4pSCIDE5M+KAkzIwMyAgICAgICAgIOKUgiAxNzfigJMxOTAgICAgICAgIOKUgg0K 4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY DQoNCg0KQ2lhbw0KQmVybmhhcmQgTS4NCg== --------------jHuXS9s8DGqUO88DOVwNn5zg Content-Type: text/x-python; charset=UTF-8; name="bulk.py" Content-Disposition: attachment; filename="bulk.py" Content-Transfer-Encoding: base64 IiIiQnVsayB0aHJvdWdocHV0IHRocm91Z2ggYSBUQ1AgcG9ydC4gc2VydmVyOiBidWxrLnB5 IHNlcnZlIFBPUlQ7IGNsaWVudDogYnVsay5weSBQT1JUIE1pQiBSVU5TIiIiCmltcG9ydCBz b2NrZXQsIHN0YXRpc3RpY3MsIHN5cywgdGltZQpDSCA9IDEgPDwgMjAKZGVmIHNpbmsocyk6 CiAgICBidWYgPSBieXRlYXJyYXkoQ0gpOyBuID0gMAogICAgd2hpbGUgKHIgOj0gcy5yZWN2 X2ludG8oYnVmKSk6IG4gKz0gcgogICAgcmV0dXJuIG4KZGVmIHNvdXJjZShzLCB0b3RhbCk6 CiAgICBtdiA9IG1lbW9yeXZpZXcoYnl0ZXMoQ0gpKTsgc2VudCA9IDAKICAgIHdoaWxlIHNl bnQgPCB0b3RhbDogcy5zZW5kYWxsKG12KTsgc2VudCArPSBDSAogICAgcy5zaHV0ZG93bihz b2NrZXQuU0hVVF9XUikKaWYgc3lzLmFyZ3ZbMV0gPT0gInNlcnZlIjoKICAgIGwgPSBzb2Nr ZXQuc29ja2V0KCk7IGwuc2V0c29ja29wdChzb2NrZXQuU09MX1NPQ0tFVCwgc29ja2V0LlNP X1JFVVNFQUREUiwgMSkKICAgIGwuYmluZCgoIjAuMC4wLjAiLCBpbnQoc3lzLmFyZ3ZbMl0p KSk7IGwubGlzdGVuKCkKICAgIHdoaWxlIFRydWU6CiAgICAgICAgcywgXyA9IGwuYWNjZXB0 KCk7IGYgPSBzLm1ha2VmaWxlKCJyYiIpOyBjbWQgPSBmLnJlYWRsaW5lKCkuc3BsaXQoKQog ICAgICAgIGlmIG5vdCBjbWQ6ICAgICAgICAgICAgICAjIHJlYWRpbmVzcyBwcm9iZQogICAg ICAgICAgICBmLmNsb3NlKCk7IHMuY2xvc2UoKTsgY29udGludWUKICAgICAgICBpZiBjbWRb MF0gPT0gYiJ1cCI6ICAgICAgIyBjbGllbnQgc2VuZHMsIHdlIGNvdW50IGFuZCByZXBseSB3 aXRoIGJ5dGUgY291bnQKICAgICAgICAgICAgYnVmID0gYnl0ZWFycmF5KENIKTsgbiA9IDAK ICAgICAgICAgICAgd2hpbGUgKHIgOj0gZi5yZWFkaW50byhidWYpKTogbiArPSByCiAgICAg ICAgICAgIHMuc2VuZGFsbChzdHIobikuZW5jb2RlKCkpOyBmLmNsb3NlKCk7IHMuY2xvc2Uo KQogICAgICAgIGVsc2U6ICAgICAgICAgICAgICAgICAgICAjIGRvd246IHdlIHNlbmQgTiBi eXRlcwogICAgICAgICAgICBzb3VyY2UocywgaW50KGNtZFsxXSkpOyBzaW5rKHMpOyBmLmNs b3NlKCk7IHMuY2xvc2UoKQplbHNlOgogICAgcG9ydCwgbWliLCBydW5zID0gaW50KHN5cy5h cmd2WzFdKSwgaW50KHN5cy5hcmd2WzJdKSwgaW50KHN5cy5hcmd2WzNdKTsgdG90YWwgPSBt aWIgKiBDSAogICAgZm9yIGQgaW4gKHN5cy5hcmd2WzQ6XSBvciBbInVwIiwgImRvd24iXSk6 CiAgICAgICAgcmF0ZXMgPSBbXQogICAgICAgIGZvciBfIGluIHJhbmdlKHJ1bnMpOgogICAg ICAgICAgICBzID0gc29ja2V0LmNyZWF0ZV9jb25uZWN0aW9uKCgiMTI3LjAuMC4xIiwgcG9y dCkpOyB0MCA9IHRpbWUucGVyZl9jb3VudGVyKCkKICAgICAgICAgICAgcy5zZW5kYWxsKGYi e2R9IHt0b3RhbH1cbiIuZW5jb2RlKCkpCiAgICAgICAgICAgIGlmIGQgPT0gInVwIjoKICAg ICAgICAgICAgICAgIHNvdXJjZShzLCB0b3RhbCkKICAgICAgICAgICAgICAgIGdvdCA9IGIi IgogICAgICAgICAgICAgICAgd2hpbGUgKGMgOj0gcy5yZWN2KDY0KSk6IGdvdCArPSBjCiAg ICAgICAgICAgICAgICBhc3NlcnQgaW50KGdvdCkgPT0gdG90YWwsIGdvdAogICAgICAgICAg ICBlbHNlOgogICAgICAgICAgICAgICAgYXNzZXJ0IHNpbmsocykgPT0gdG90YWwKICAgICAg ICAgICAgcmF0ZXMuYXBwZW5kKHRvdGFsIC8gKHRpbWUucGVyZl9jb3VudGVyKCkgLSB0MCkg LyAxZTkgKiA4KQogICAgICAgICAgICBzLmNsb3NlKCkKICAgICAgICBwcmludChmIntkOjR9 OiBtZWRpYW4ge3N0YXRpc3RpY3MubWVkaWFuKHJhdGVzKTo2LjJmfSBHYml0L3MgICgiICsg IiAiLmpvaW4oZiJ7cjouMmZ9IiBmb3IgciBpbiByYXRlcykgKyAiKSIsIGZsdXNoPVRydWUp Cg== --------------jHuXS9s8DGqUO88DOVwNn5zg Content-Type: text/x-python; charset=UTF-8; name="rr.py" Content-Disposition: attachment; filename="rr.py" Content-Transfer-Encoding: base64 IiIiUmVxdWVzdC9yZXNwb25zZSBsYXRlbmN5IHRocm91Z2ggYSBUQ1AgcG9ydC4gc2VydmVy OiByci5weSBzZXJ2ZSBQT1JUOyBjbGllbnQ6IHJyLnB5IFBPUlQiIiIKaW1wb3J0IHNvY2tl dCwgc3RydWN0LCBzeXMsIHRpbWUKZGVmIHJlY3ZuKHMsIG4pOgogICAgYiA9IGJ5dGVhcnJh eSgpCiAgICB3aGlsZSBsZW4oYikgPCBuOgogICAgICAgIGMgPSBzLnJlY3YobiAtIGxlbihi KSkKICAgICAgICBpZiBub3QgYzogcmFpc2UgRU9GRXJyb3IKICAgICAgICBiICs9IGMKICAg IHJldHVybiBieXRlcyhiKQppZiBzeXMuYXJndlsxXSA9PSAic2VydmUiOgogICAgbCA9IHNv Y2tldC5zb2NrZXQoKTsgbC5zZXRzb2Nrb3B0KHNvY2tldC5TT0xfU09DS0VULCBzb2NrZXQu U09fUkVVU0VBRERSLCAxKQogICAgbC5iaW5kKCgiMC4wLjAuMCIsIGludChzeXMuYXJndlsy XSkpKTsgbC5saXN0ZW4oKQogICAgd2hpbGUgVHJ1ZToKICAgICAgICBzLCBfID0gbC5hY2Nl cHQoKTsgcy5zZXRzb2Nrb3B0KHNvY2tldC5JUFBST1RPX1RDUCwgc29ja2V0LlRDUF9OT0RF TEFZLCAxKQogICAgICAgIHRyeToKICAgICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAg ICAgICAgIHJlcSwgcmVzcCA9IHN0cnVjdC51bnBhY2soIiFJSSIsIHJlY3ZuKHMsIDgpKTsg cmVjdm4ocywgcmVxKTsgcy5zZW5kYWxsKGIiciIgKiByZXNwKQogICAgICAgIGV4Y2VwdCBF T0ZFcnJvcjoKICAgICAgICAgICAgcy5jbG9zZSgpCmVsc2U6CiAgICBzID0gc29ja2V0LmNy ZWF0ZV9jb25uZWN0aW9uKCgiMTI3LjAuMC4xIiwgaW50KHN5cy5hcmd2WzFdKSkpOyBzLnNl dHNvY2tvcHQoc29ja2V0LklQUFJPVE9fVENQLCBzb2NrZXQuVENQX05PREVMQVksIDEpCiAg ICBmb3IgbGFiZWwsIHJlcSwgcmVzcCBpbiBbKCJyZXF1ZXN0IiwgbiwgMTYpIGZvciBuIGlu ICg0MDAwLCA3MzcyLCA3MzgwLCA4MDAwLCA5MDAwLCAxNjAwMCwgMjAwMDApXSArIFsoInJl c3BvbnNlIiwgMTYsIG4pIGZvciBuIGluICg0MDAwLCA3MzgwLCA4MDAwLCAxNjAwMCwgNjQw MDApXToKICAgICAgICB0cyA9IFtdCiAgICAgICAgZm9yIF8gaW4gcmFuZ2UoMyk6CiAgICAg ICAgICAgIHQwID0gdGltZS5wZXJmX2NvdW50ZXIoKTsgcy5zZW5kYWxsKHN0cnVjdC5wYWNr KCIhSUkiLCByZXEsIHJlc3ApICsgYiJxIiAqIHJlcSk7IHJlY3ZuKHMsIHJlc3ApOyB0cy5h cHBlbmQoKHRpbWUucGVyZl9jb3VudGVyKCkgLSB0MCkgKiAxMDAwKQogICAgICAgIHByaW50 KGYie2xhYmVsOjh9IHttYXgocmVxLCByZXNwKSBpZiBsYWJlbCA9PSAncmVxdWVzdCcgYW5k IEZhbHNlIGVsc2UgKHJlcSBpZiBsYWJlbD09J3JlcXVlc3QnIGVsc2UgcmVzcCk6NmR9IEI6 ICIgKyAiICIuam9pbihmInt0OjYuMWZ9IiBmb3IgdCBpbiB0cykgKyAiIG1zIiwgZmx1c2g9 VHJ1ZSkK --------------jHuXS9s8DGqUO88DOVwNn5zg-- --------------M6IB0mjSnlTN9H9638LeUrGl-- --------------dV0uIDhRJSVNA2yi6UvcS0Kt Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTykslvYmKwlIQesLNdovN53d8CLgUCasTCPQUDAAAAAAAKCRBdovN53d8CLhWx AP9hL9ln6LYNhcDDmXBzHWE9h++QWPYX9pGHaliyose5sQEAhlGGNvQBsTSiUqRGEdNiCPa4rr9P GR4TnK6y7PMbfQw= =VqH3 -----END PGP SIGNATURE----- --------------dV0uIDhRJSVNA2yi6UvcS0Kt--