From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=; dkim=pass header.d=herbertland.com; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=herbertland.com policy.dmarc=reject Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) by mail.toke.dk (Postfix) with ESMTPS id 0A6796628C4 for ; Wed, 10 Sep 2025 15:59:55 +0200 (CEST) Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-336a85b8fc5so50931251fa.3 for ; Wed, 10 Sep 2025 06:59:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland.com; s=google; t=1757512794; x=1758117594; darn=lists.bufferbloat.net; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=XgIQOTV3Dr1roq097QZcdJ0YH3ZlV8BJd8h6Yz2irAU=; b=eEyVd3m1VKRr+z/cERI9HOd81t5RSd2wN75eAbgybNVGMWQWJmlK2KolGlzbDVzsqO HgbKjATURnweZncWatRzw5tKgymFkLapK/vSwL/LXglDJkvUv/k3PoSvTbxNCxWNMR7+ cyo/bFympmcZ6n0RwAWVhLMrK1y0NqGHWjfLSbumQSXA+5Xtkxgc2EBXk0L/Uvm6pxW2 0C9LhDY7HQt0vlksoc+qcmVbFVKzcYc8e+N33CF9iT0jTeMffIdcKt4zEEx/HiK7CUfm nn4U8W0XmAIZnZKvA8nUjtoFNkYWtB1Zr/iaJhA3jWnA6o2cmRIowApYPkFhp76Q4rVt qPyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757512794; x=1758117594; 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=XgIQOTV3Dr1roq097QZcdJ0YH3ZlV8BJd8h6Yz2irAU=; b=kTfIj2cH9k0jaHGcMdFT7vDZABcOWSZaLE8wqAcMib3+ewf4+EZ0iTQ8uWeMih6KH3 YxI+OCzM1fr34AFdGctoAJRfquqA3/Eh8zN5n22Qa+BsANjvfOUwMIQZ58iZKxUElTHa r59dd0CVBFuTcUgo8cv6zDlnDKL1kV+ySVwZRMKcb2p+M9Zfx4UZL3nLuhBuSccAoai6 +41mCBJ2b0DK0QqkqBy3vCSV4NTszYgIQX94LCH2F3rhqOydeZ7YR4Eth1wu/aynP9rs X33l1CzHkm8XcWZLYXugrBsjU/IUQ4uoqAdNA3FZGu7KP8/IpMahfdQtKzXGlf96wCGO YP6g== X-Forwarded-Encrypted: i=1; AJvYcCVqSZzMr2zNQiGe+Od9dCVg8Tt9puBy0Y4xUnF3g7PrShFJzjhngnvRxvqG/M4ihVAqTyU=@lists.bufferbloat.net X-Gm-Message-State: AOJu0YyjFyBW01OdlZAhEV65aqh2WyWW8vJhYRi0T7RkHLE1jBB7ATGx jRPdrpCnUnH7AFn/H3M9rDF//pbeltW7QWvvhDO5nmYDuXT2wScY9g9Yt07l+zKtZWWyfGWGjZm QBtrWHI5Cfjtxdd8t8rvclm3g7Xih9x1wJS9VJKQX X-Gm-Gg: ASbGncsGgKMKS2IA9szQm92Su9fFwzloMDc/0qdVV2CHIr2o3sva5ZiTfsGG12u5q4j LWD6tg1XYcwuYYKIJjBA6U7ykV6zB9n+NqfM0K9W9L7RoQ2400XWnFFQDTUf4Y3jJf0KCTedjkK hM8aWc9k/8TmduEBFSs7TAOReczntBgsMA3k9iJdBf5awJacQmSGpPLv+sjfznu4kU7Cch/ZkDI 2prc1GHPZkyt0Xxf2tkGAWD8BAovrVjSXIVnryG X-Google-Smtp-Source: AGHT+IFcg7xtxFsevwMNxgBq26wB+Lt56LiKum1J+EuLOTcqxp2czfMM6hE2btsuaYbU0y451wq2Yl4y1iPBdrEebJY= X-Received: by 2002:a2e:be9e:0:b0:337:f429:2281 with SMTP id 38308e7fff4ca-33b4e07f02fmr46199431fa.16.1757512793239; Wed, 10 Sep 2025 06:59:53 -0700 (PDT) MIME-Version: 1.0 References: <1757449551.421420786@apps.rackspace.com> In-Reply-To: From: Tom Herbert Date: Wed, 10 Sep 2025 08:59:40 -0500 X-Gm-Features: Ac12FXxByEez3Zy25iGgkq2913Tjq3bprHVjUOJkvyKsMB0RBU4j6ANoYeuaYWM Message-ID: To: BeckW@telekom.de Cc: Frantisek Borsik , dpreed@deepplum.com, cake@lists.bufferbloat.net, codel@lists.bufferbloat.net, bloat@lists.bufferbloat.net, rpm@lists.bufferbloat.net X-MailFrom: tom@herbertland.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation Message-ID-Hash: CUUX4EWQUNNBUUAZAX7RAI4ZVYBGX25V X-Message-ID-Hash: CUUX4EWQUNNBUUAZAX7RAI4ZVYBGX25V X-Mailman-Approved-At: Wed, 10 Sep 2025 16:03:26 +0200 Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list Subject: [Rpm] Re: [Bloat] Re: [Cake] Re: XDP2 is here - from one and only Tom Herbert (almost to the date, 10 years after XDP was released) List-Id: revolutions per minute - a new metric for measuring responsiveness Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gV2VkLCBTZXAgMTAsIDIwMjUsIDE6NTTigK9BTSA8QmVja1dAdGVsZWtvbS5kZT4gd3JvdGU6 DQoNCj4gSW50ZXJlc3Rpbmcgd29yayEgT25lIHByb2JsZW0gb2YgUDQgaXMgdGhhdCB0aGUgbmV0 d29ya2luZyBoYXJkd2FyZSB2YXJpZXMNCj4gc28gbXVjaCBpbiBudW1iZXIgb2YgcmVzb3VyY2Vz IChxdWV1ZXMsIHNjaGVkdWxlcnMsIHBvbGljZXJzLCBjb3VudGVycywNCj4gdGFibGUgbWVtb3J5 KSB0aGF0IHRoZSBjb2RlIGluZXZpdGFibHkgYmVjb21lcyB0aWVkIHRvIGEgY2VydGFpbiBzeXN0 ZW0uDQo+IEl0IHdpbGwgYmUgZGlmZmljdWx0IHRvIGFic3RyYWN0IHRoZSBwZWN1bGlhcml0aWVz IG9mIHN5c3RlbXMgLS0gZWcNCj4gQnJvYWRjb20gODg4MDAgdnMgbGludXgga2VybmVsIC0tIGlu IGEgZ29vZCB3YXkuDQo+DQoNCkhpIFdvbGZnYW5nDQoNCj4NClllcywgdGhlIG5vbi1wb3J0YWJp bGl0eSBvZiBQNCBjb2RlIGJldHdlZW4gZGlmZmVyZW50IGFyY2hpdGVjdHVyZXMgaGFzDQpiZWVu IHJhaXNlZCBhcyBhbiBpc3N1ZS4gSSBiZWxpZXZlIHRoaXMgaXMgc3Vic2V0IG9mIHRoZSBnZW5l cmFsIHByb2JsZW0NCnRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGggZGlmZmVyaW5nIHJlc291cmNl IGNvbnN0cmFpbnRzIGFjcm9zcyB0YXJnZXRzDQoobGlrZSBkaWZmZXJlbnQgbWVtb3J5IHJlc291 cmNlcywgaGFyZHdhcmUgYWNjZWxlcmF0b3JzLCB0YWJsZSBzaXplcywgZXRjDQopLiBJdCBzaG91 bGQgYmUgYSBwcm9ibGVtIG9mIHJlc291cmNlIGNvbnN0cmFpbnRzLCBhbmQgbm90IGRpZmZlcmVu Y2VzIGluDQpjb3JlIGZ1bmN0aW9uYWxpdHkgc3VwcG9ydGVkIGJ5IHRoZSB0YXJnZXRzDQoNCkkg dGhpbmsgdGhlcmUncyB0aHJlZSBwb3NzaWJpbGl0aWVzOg0KDQoxKSBXZSBjcmVhdGUgYW4gaW1h Z2UgYW5kIGF0dGVtcHQgdG8gcmVzb2x2ZSB0aGUgcmVzb3VyY2UgY29uc3RyYWludHMgYXQNCnJ1 bnRpbWUgKGxvYWQgdGltZSkuIERldGVybWluZSB0aGUgcmVzb3VyY2VzIGFuZCBydW4gd2l0aCB0 aG9zZS4gSXQncw0KcG9zc2libGUgdGhhdCBhIEhXIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBoYXZl IHN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIG1lZXQNCnRoZSBwcm9ncmFtbWVyJ3MgcmVxdWlyZW1l bnRzIGluIHdoaWNoIGNhc2Ugd2UgbWF5IGhhdmUgdG8gaW5mb3JtIHRoZSB1c2VyDQp0aGUgcHJv Z3JhbSBjYW4ndCBydW4gKGUuZy5pZiB0aGUgcHJvZ3JhbW1lciB3YW50cyBsaW5lIHJhdGUgZW5j cnlwdGlvbiwNCmJ1dCB0aGVyZSdzIG5vIEhXIGFjY2VsZXJhdG9ycyB0aGVuIHRoZSBwcm9ncmFt IHJlcXVpcmVtZW50cyBjYW4ndCBiZSBtZXQNCmFuZCB0aGUgcHJvZ3JhbSBjYW4ndCBydW4gb24g dGhhdCB0YXJnZXQpLg0KMikgUmVjb21waWxlIHRoZSBiYWNrZW5kIHRvIHRoZSBkaWZmZXJlbnQg dGFyZ2V0cy4gVGhpcyBpcyBuZWVkZWQgd2hlbiB0aGUNCmV4ZWN1dGFibGUgaXMgaW5jb21wYXRp YmxlIGJldHdlZW4gdGFyZ2V0cy4gVGhlIGdvYWwgaXMgdG8gc3RpbGwgYmUNCnRyYW5zcGFyZW50 IHRvIHRoZSB1c2VyLCBidXQgd2Ugc3RpbGwgbmVlZCB0byBtZWV0IHRoZSByZXF1aXJlbWVudCBv ZiB0aGUNCmFwcGxpY2F0aW9uLg0KMykgQ2hhbmdlIHRoZSBzb3VyY2UgY29kZSBpZiB0aGUgaGFy ZHdhcmUgcGVjdWxpYXJpdGllcyBhcmUgbm90IHRyYW5zcGFyZW50DQp0byBwcm9ncmFtIHNvdXJj ZS4gT2J2aW91c2x5LCB0aGlzIGlzIHRoZSBsZWFzdCBwcmVmZXJyZWQgb3B0aW9uLCBidXQgaWYN CnRoZXJlJ3Mgbm8gYWx0ZXJuYXRpdmUgdGhlbiB0aGUgZ29hbCBoZXJlIHdvdWxkIGJlIHRvIGlz b2xhdGUgdGhlIHRhcmdldA0Kc3BlY2lmaWMgY29kZSBhcyBtdWNoIGFzIHBvc3NpYmxlLiBIb3Bl ZnVsbHksIHRoZSB2YXN0IG1ham9yaXR5IG9mIHByb2dyYW0NCmNvZGUgaXMgdGFyZ2V0IGFnbm9z dGljIGFuZCB0aGVyZSdzIGp1c3QgYSBsaXR0bGUgZ2x1ZSBjb2RlIGZvciBlYWNoIHRhcmdldC4N Cg0KVG9tDQoNCg0KDQo+IFdvbGZnYW5nDQo+DQo+IC0tLS0tVXJzcHLDvG5nbGljaGUgTmFjaHJp Y2h0LS0tLS0NCj4gVm9uOiBUb20gSGVyYmVydCB2aWEgQmxvYXQgPGJsb2F0QGxpc3RzLmJ1ZmZl cmJsb2F0Lm5ldD4NCj4gR2VzZW5kZXQ6IERpZW5zdGFnLCA5LiBTZXB0ZW1iZXIgMjAyNSAyMzoz Nw0KPiBBbjogRnJhbnRpc2VrIEJvcnNpayA8ZnJhbnRpc2VrLmJvcnNpa0BnbWFpbC5jb20+DQo+ IENjOiBEYXZpZCBQLiBSZWVkIDxkcHJlZWRAZGVlcHBsdW0uY29tPjsgQ2FrZSBMaXN0IDwNCj4g Y2FrZUBsaXN0cy5idWZmZXJibG9hdC5uZXQ+OyBjb2RlbEBsaXN0cy5idWZmZXJibG9hdC5uZXQ7 IGJsb2F0IDwNCj4gYmxvYXRAbGlzdHMuYnVmZmVyYmxvYXQubmV0PjsgSmVyZW15IEF1c3RpbiB2 aWEgUnBtIDwNCj4gcnBtQGxpc3RzLmJ1ZmZlcmJsb2F0Lm5ldD4NCj4gQmV0cmVmZjogW0Jsb2F0 XSBSZTogW0Nha2VdIFJlOiBYRFAyIGlzIGhlcmUgLSBmcm9tIG9uZSBhbmQgb25seSBUb20NCj4g SGVyYmVydCAoYWxtb3N0IHRvIHRoZSBkYXRlLCAxMCB5ZWFycyBhZnRlciBYRFAgd2FzIHJlbGVh c2VkKQ0KPg0KPiBPbiBUdWUsIFNlcCA5LCAyMDI1LCA1OjAz4oCvUE0gRnJhbnRpc2VrIEJvcnNp ayA8ZnJhbnRpc2VrLmJvcnNpa0BnbWFpbC5jb20+DQo+IHdyb3RlOg0KPg0KPiA+IFRoYW5rcyBh IGxvdCwgRGF2aWQuDQo+ID4NCj4gPiBJIGhhdmUgYXNrZWQgVG9tIGlmIGhlIHdhbnRzIHRvIGpv aW4gdXMgYW5kIGhlIHNob3VsZCBiZSBoZXJlIHRvIGNoYXQNCj4gPiB3aXRoIHVzIG5vdy4NCj4g Pg0KPiA+IEFsbCB0aGUgYmVzdCwNCj4gPg0KPiA+IEZyYW5rDQo+ID4NCj4gPiBGcmFudGlzZWsg KEZyYW5rKSBCb3JzaWsNCj4gPg0KPiA+DQo+ID4gKkluIGxvdmluZyBtZW1vcnkgb2YgRGF2ZSBU w6RodDogKjE5NjUtMjAyNQ0KPiA+DQo+ID4gaHR0cHM6Ly9kZXUwMS5zYWZlbGlua3MucHJvdGVj dGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbGlicg0KPiA+IGVxb3MuaW8lMkYy MDI1JTJGMDQlMkYwMSUyRmluLWxvdmluZy1tZW1vcnktb2YtZGF2ZSUyRiZkYXRhPTA1JTdDMDIl N0MNCj4gPiBCZWNrVyU0MHRlbGVrb20uZGUlN0MyOTlkNjRiOWI3NmI0ZDRjZjg4YjA4ZGRmMDM5 ZTEwNSU3Q2JkZTRkZmZjNGI2MDRjDQo+ID4gZjY4YjA0YTVlZWIyNWY1YzRmJTdDMCU3QzAlN0M2 Mzg5MzA4NTM2MDkyNzY3MDIlN0NVbmtub3duJTdDVFdGcGJHWnNiMw0KPiA+IGQ4ZXlKRmJYQjBl VTFoY0draU9uUnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtGT0lq b2kNCj4gPiBUV0ZwYkNJc0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPVRBQTZO ZEVrQjNLUVF0OFVoS3FzM1pLdUxqDQo+ID4gTjdBOWg5SjlGQWpOUkREdVUlM0QmcmVzZXJ2ZWQ9 MA0KPiA+DQo+ID4NCj4gPiBodHRwczovL2RldTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxv b2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZ3d3cuDQo+ID4gbGlua2VkaW4uY29tJTJGaW4lMkZm cmFudGlzZWtib3JzaWsmZGF0YT0wNSU3QzAyJTdDQmVja1clNDB0ZWxla29tLmRlJQ0KPiA+IDdD Mjk5ZDY0YjliNzZiNGQ0Y2Y4OGIwOGRkZjAzOWUxMDUlN0NiZGU0ZGZmYzRiNjA0Y2Y2OGIwNGE1 ZWViMjVmNWM0ZiUNCj4gPiA3QzAlN0MwJTdDNjM4OTMwODUzNjA5Mjk3MDMxJTdDVW5rbm93biU3 Q1RXRnBiR1pzYjNkOGV5SkZiWEIwZVUxaGNHa2lPDQo+ID4gblJ5ZFdVc0lsWWlPaUl3TGpBdU1E QXdNQ0lzSWxBaU9pSlhhVzR6TWlJc0lrRk9Jam9pVFdGcGJDSXNJbGRVSWpveWZRJQ0KPiA+IDNE JTNEJTdDMCU3QyU3QyU3QyZzZGF0YT11Y0w3VSUyRlE4MWtzMDluVkVHVWJlJTJGRnExcmhKTkxh ZWdpY3YlMkZMQ1YNCj4gPiBjSWxnJTNEJnJlc2VydmVkPTANCj4gPg0KPiA+IFNpZ25hbCwgVGVs ZWdyYW0sIFdoYXRzQXBwOiArNDIxOTE5NDE2NzE0DQo+ID4NCj4gPiBpTWVzc2FnZSwgbW9iaWxl OiArNDIwNzc1MjMwODg1DQo+ID4NCj4gPiBTa3lwZTogY2FzaW9hNTMwMmNhDQo+ID4NCj4gPiBm cmFudGlzZWsuYm9yc2lrQGdtYWlsLmNvbQ0KPiA+DQo+ID4NCj4gPiBPbiBUdWUsIFNlcCA5LCAy MDI1IGF0IDEwOjI14oCvUE0gRGF2aWQgUC4gUmVlZCA8ZHByZWVkQGRlZXBwbHVtLmNvbT4NCj4g d3JvdGU6DQo+ID4NCj4gPiA+IEhpIEZyYW5rIC0NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+ IEkgdGhpbmsgaXQgaXMgaW50ZXJlc3RpbmcgYXMgYSBjb25jZXB0LiBBIHByb2plY3QgSSBhbSBh ZHZpc2luZyBoYXMNCj4gPiA+IGJlZW4gdXNpbmcgRFBESyB2ZXJ5IGVmZmVjdGl2ZWx5IHRvIGdl dCByaWQgb2YgdGhlIGh1Z2UgcGF0aCBhbmQNCj4gPiA+IGxvY2tpbmcNCj4gPiBkZWxheXMNCj4g PiA+IGluIHRoZSBjdXJyZW50IExpbnV4IG5ldHdvcmsgc3RhY2suIFhEUDIgY291bGQgYmUgc3Vw cG9ydGVkIGluIGENCj4gPiA+IHJpbmczDQo+ID4gPiAodXNlcikgYWRkcmVzcyBzcGFjZSwgYWNo aWV2aW5nIGEgc2ltaWxhciByZXN1bHQuDQo+ID4NCj4NCj4gSEkgRGF2aWQsDQo+DQo+IFRoZSBp ZGVhIGlzIHlvdSBjb3VsZCB3cml0ZSB0aGUgY29kZSBpbiBYRFAyIGFuZCBpdCB3b3VsZCBiZSBj b21waWxlZCB0bw0KPiBEUERLIG9yIGVCUEYgYW5kIHRoZSBjb21waWxlciB3b3VsZCBoYW5kbGUg dGhlIG9wdGltaXphdGlvbnMuDQo+DQo+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBCdXQg SSBkb24ndCB0aGluayBYRFAyIGlzIGdvaW5nIHRoYXQgZGlyZWN0aW9uIC0gc28gaXQgbWF5IGJl DQo+ID4gPiBzdHVja2ludG8gdGhlIG1lc3Mgb2Yga2VybmVsIHNwYWNlIG5ldHdvcmtpbmcuIEFk ZGluZyBlQlBGIG9ubHkgaGFzDQo+ID4gPiBtYWRlIHRoaXMgbW9yZQ0KPiA+IG9mDQo+ID4gPiBh IG1lc3MsIGJ5IHRoZSB3YXkgKGFuZCBhZGRpbmcgYSBuZXcgImNvbXBpbGVyIiB0aGF0IG5lZWRz IHRvIGJlDQo+ID4gPiB2ZXJpcmllZCBhcyBzYWZlIGZvciB0aGUga2VybmVsKS4NCj4NCj4NCj4g VGhpbmsgb2YgWERQMiBhcyB0aGUgZ2VuZXJhbGl6YXRpb24gb2YgWERQIHRvIGdvIGJleW9uZCBq dXN0IHRoZSBrZXJuZWwuDQo+IFRoZSBpZGVhIGlzIHRoYXQgdGhlIHVzZXIgd3JpdGVzIHRoZWly IGRhdGFwYXRoIGNvZGUgb25jZSBhbmQgdGhleSBjb21waWxlDQo+IGl0IHRvIHJ1biBpbiB3aGF0 ZXZlciB0YXJnZXRzIHRoZXkgaGF2ZS0tIERQREssIFA0LCBvdGhlciBwcm9ncmFtbWFibGUNCj4g aGFyZHdhcmUsIGFuZCB5ZXMgWERQL2VCUEYuIEl0J3MgcmVhbGx5IG5vdCBsaW1pdGVkIHRvIGtl cm5lbCBuZXR3b3JraW5nLg0KPg0KPiBBcyBmb3IgdGhlIG5hbWUgWERQMiwgd2hlbiB3ZSBjcmVh dGVkIFhEUCwgZVhwcmVzcyBEYXRhUGF0aCwgbXkgdmlzaW9uIHdhcw0KPiB0aGF0IGl0IHdvdWxk IGJlIGltcGxlbWVudGF0aW9uIGFnbm9zdGljLiBlQlBGIHdhcyB0aGUgZmlyc3QgaW5zdGFudGlh dGlvbg0KPiBmb3IgcHJhY3RpY2FsaXR5LCBidXQgbm93IHRlbiB5ZWFycyBsYXRlciBJIHRoaW5r IHdlIGNhbiByZWFsaXplIHRoZQ0KPiBpbml0aWFsIHZpc2lvbi4NCj4NCj4gVG9tDQo+DQo+DQo+ DQo+ID4NCj4gPiA+IEkgd2lsbCBiZSB3YXRjaGluZyBob3cgdGhpcyBldm9sdmVzLg0KPiA+ID4N Cj4gPiA+DQo+ID4gPg0KPiA+ID4gRGF2aWQNCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+IE9u IFR1ZXNkYXksIFNlcHRlbWJlciA5LCAyMDI1IDA2OjMyLCAiRnJhbnRpc2VrIEJvcnNpayIgPA0K PiA+ID4gZnJhbnRpc2VrLmJvcnNpa0BnbWFpbC5jb20+IHNhaWQ6DQo+ID4gPg0KPiA+ID4gPiBI ZWxsbyB0byBhbGwsDQo+ID4gPiA+DQo+ID4gPiA+IExvb2tzIGludGVyZXN0aW5nOg0KPiA+ID4g Pg0KPiA+ID4NCj4gPiBodHRwczovL2RldTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2su Y29tLz91cmw9aHR0cHMlM0ElMkYlMkZtZWRpDQo+ID4gdW0uY29tJTJGJTQwdG9tXzg0OTEyJTJG eGRwMi10aGlzLWNoYW5nZXMtZXZlcnl0aGluZy1hdC1sZWFzdC1mb3ItYWktbQ0KPiA+IGwtaW5m cmFzdHJ1Y3R1cmUtODUwYzFiYTgyNzcxJmRhdGE9MDUlN0MwMiU3Q0JlY2tXJTQwdGVsZWtvbS5k ZSU3QzI5OWQNCj4gPiA2NGI5Yjc2YjRkNGNmODhiMDhkZGYwMzllMTA1JTdDYmRlNGRmZmM0YjYw NGNmNjhiMDRhNWVlYjI1ZjVjNGYlN0MwJTdDDQo+ID4gMCU3QzYzODkzMDg1MzYwOTMwODk1MCU3 Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpGYlhCMGVVMWhjR2tpT25SeWRXVQ0KPiA+IHNJbFlp T2lJd0xqQXVNREF3TUNJc0lsQWlPaUpYYVc0ek1pSXNJa0ZPSWpvaVRXRnBiQ0lzSWxkVUlqb3lm USUzRCUzRCUNCj4gPiA3QzAlN0MlN0MlN0Mmc2RhdGE9UlRMSFRWRlI1NDBDOFBzcjczdWl1UnZr eDFzU3lqbWxVSUlDRUhGajBIQSUzRCZyZXNlDQo+ID4gcnZlZD0wDQo+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+IEFsbCB0aGUgYmVzdCwNCj4gPiA+ID4NCj4gPiA+ID4gRnJhbmsNCj4gPiA+ID4N Cj4gPiA+ID4gRnJhbnRpc2VrIChGcmFuaykgQm9yc2lrDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4g PiA+ICpJbiBsb3ZpbmcgbWVtb3J5IG9mIERhdmUgVMOkaHQ6ICoxOTY1LTIwMjUNCj4gPiA+ID4N Cj4gPiA+ID4gaHR0cHM6Ly9kZXUwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/ dXJsPWh0dHBzJTNBJTJGJTJGDQo+ID4gPiA+IGxpYnJlcW9zLmlvJTJGMjAyNSUyRjA0JTJGMDEl MkZpbi1sb3ZpbmctbWVtb3J5LW9mLWRhdmUlMkYmZGF0YT0wNQ0KPiA+ID4gPiAlN0MwMiU3Q0Jl Y2tXJTQwdGVsZWtvbS5kZSU3QzI5OWQ2NGI5Yjc2YjRkNGNmODhiMDhkZGYwMzllMTA1JTdDYmQN Cj4gPiA+ID4gZTRkZmZjNGI2MDRjZjY4YjA0YTVlZWIyNWY1YzRmJTdDMCU3QzAlN0M2Mzg5MzA4 NTM2MDkzMjMwMjclN0NVbmtuDQo+ID4gPiA+IG93biU3Q1RXRnBiR1pzYjNkOGV5SkZiWEIwZVUx aGNHa2lPblJ5ZFdVc0lsWWlPaUl3TGpBdU1EQXdNQ0lzSWxBaQ0KPiA+ID4gPiBPaUpYYVc0ek1p SXNJa0ZPSWpvaVRXRnBiQ0lzSWxkVUlqb3lmUSUzRCUzRCU3QzAlN0MlN0MlN0Mmc2RhdGE9OTgN Cj4gPiA+ID4gbXVzVUNNVFpSNElEJTJCbzZHWXhXT1g5OWFpWUJzcEJVZGglMkJOVjFmendjJTNE JnJlc2VydmVkPTANCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gaHR0cHM6Ly9kZXUwMS5zYWZl bGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGDQo+ID4gPiA+ IHd3dy5saW5rZWRpbi5jb20lMkZpbiUyRmZyYW50aXNla2JvcnNpayZkYXRhPTA1JTdDMDIlN0NC ZWNrVyU0MHRlbA0KPiA+ID4gPiBla29tLmRlJTdDMjk5ZDY0YjliNzZiNGQ0Y2Y4OGIwOGRkZjAz OWUxMDUlN0NiZGU0ZGZmYzRiNjA0Y2Y2OGIwNGENCj4gPiA+ID4gNWVlYjI1ZjVjNGYlN0MwJTdD MCU3QzYzODkzMDg1MzYwOTMzNDIzOSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhlDQo+ID4gPiA+ IHlKRmJYQjBlVTFoY0draU9uUnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpN aUlzSWtGT0lqbw0KPiA+ID4gPiBpVFdGcGJDSXNJbGRVSWpveWZRJTNEJTNEJTdDMCU3QyU3QyU3 QyZzZGF0YT0wckQ0N3pGZUxWVjFZRHFNYzVTTzANCj4gPiA+ID4geEdXRU9UckUzRk9ZdjBtT3FH RiUyRlc0JTNEJnJlc2VydmVkPTANCj4gPiA+ID4NCj4gPiA+ID4gU2lnbmFsLCBUZWxlZ3JhbSwg V2hhdHNBcHA6ICs0MjE5MTk0MTY3MTQNCj4gPiA+ID4NCj4gPiA+ID4gaU1lc3NhZ2UsIG1vYmls ZTogKzQyMDc3NTIzMDg4NQ0KPiA+ID4gPg0KPiA+ID4gPiBTa3lwZTogY2FzaW9hNTMwMmNhDQo+ ID4gPiA+DQo+ID4gPiA+IGZyYW50aXNlay5ib3JzaWtAZ21haWwuY29tDQo+ID4gPiA+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gPiA+IENha2Ug bWFpbGluZyBsaXN0IC0tIGNha2VAbGlzdHMuYnVmZmVyYmxvYXQubmV0IFRvIHVuc3Vic2NyaWJl DQo+ID4gPiA+IHNlbmQgYW4gZW1haWwgdG8gY2FrZS1sZWF2ZUBsaXN0cy5idWZmZXJibG9hdC5u ZXQNCj4gPiA+ID4NCj4gPiA+DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18NCj4gPiBDYWtlIG1haWxpbmcgbGlzdCAtLSBjYWtlQGxpc3RzLmJ1ZmZl cmJsb2F0Lm5ldCBUbyB1bnN1YnNjcmliZSBzZW5kIGFuDQo+ID4gZW1haWwgdG8gY2FrZS1sZWF2 ZUBsaXN0cy5idWZmZXJibG9hdC5uZXQNCj4gPg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXw0KPiBCbG9hdCBtYWlsaW5nIGxpc3QgLS0gYmxvYXRAbGlz dHMuYnVmZmVyYmxvYXQubmV0IFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4NCj4gZW1haWwgdG8gYmxv YXQtbGVhdmVAbGlzdHMuYnVmZmVyYmxvYXQubmV0DQo+DQo=