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.129.124]) by mail.toke.dk (Postfix) with ESMTPS id 5B8CD9A9D1B for ; Tue, 11 Oct 2022 13:57:43 +0200 (CEST) Authentication-Results: mail.toke.dk; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Ynj8xJbG DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665489462; 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=hx8VYBfOo97s7JqgJ8RxYkCcwtrkc30xw9K5nM/Rsyc=; b=Ynj8xJbG/RvLNNTC5fhnwQtEPwNQSe48JJkrGgwb+SpDtMC5wxe+hofpXW9Dh7lCWf+DOW LN0y7TksUNKWMXUJrWs9sOSEmudvIuU6RFHrXHBUWk3RpevbiidrHgd3LYLOiMd/VRwL9k 0dji0xp35HqD7zkk5bhuRUxQQkCBVio= Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-237-JkcIoUKiOqKthD22C31AFg-1; Tue, 11 Oct 2022 07:57:41 -0400 X-MC-Unique: JkcIoUKiOqKthD22C31AFg-1 Received: by mail-ej1-f70.google.com with SMTP id sh33-20020a1709076ea100b0078d28567b70so5810199ejc.16 for ; Tue, 11 Oct 2022 04:57:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:references:to :content-language:subject:cc:user-agent:mime-version:date:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hx8VYBfOo97s7JqgJ8RxYkCcwtrkc30xw9K5nM/Rsyc=; b=u86THMFHVldDkG6eUzBQMOaJIlTH3BU4yHQYvzTTKct4QCFIN4UvVRh11lVMG0oyIi FRCEDYsCr/NShzyx1VAEiy0OFwj5O+ddMVl8+xXO8k2yhkuhp8o0nvW41iB554rFGQd9 hYp/tZkujbcd2Ofhlj2eE+616BA0X6WBAaneSyL5GHb3+tZOeyet2j1YVmAhdc3cAe1H vbCOh/XtwpTW6cuk1q3Omy+th4ov9ZD9k8zQww/NygG1VbPhAbAvn7i4HrsO4EaeUcaO yIZLaNUDGPtVV9RpnCPPId7J6JkaARqVivH21zyxzUVBtUBBMUYVrc5CybdpQpSUYBEm ZT6Q== X-Gm-Message-State: ACrzQf0PqJY+Q88PDAdcxd5UXYdjlu1+d5x84EYX1T7Ev3K1CWVXTnDX V0BF+SaEkIUzt+aGapLOpU/q2Sh/5W5LKnlhU1ydrhUOJlS6NDEc+NexI82IerMEjgIsXDK8S1x 3anzVw9gErCbCY49gpBsl X-Received: by 2002:a17:906:730d:b0:782:a4e0:bb54 with SMTP id di13-20020a170906730d00b00782a4e0bb54mr18879433ejc.659.1665489460214; Tue, 11 Oct 2022 04:57:40 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6r6+NLk1bapBg7twZGRxaCDC8DC7D8M2O1fue98kxpCQ1GcL42pTAJDG9lqZbtBsS6jplWbg== X-Received: by 2002:a17:906:730d:b0:782:a4e0:bb54 with SMTP id di13-20020a170906730d00b00782a4e0bb54mr18879403ejc.659.1665489459918; Tue, 11 Oct 2022 04:57:39 -0700 (PDT) Received: from [192.168.41.81] (83-90-141-187-cable.dk.customer.tdc.net. [83.90.141.187]) by smtp.gmail.com with ESMTPSA id s19-20020aa7d793000000b00459d0df08f0sm9115628edq.75.2022.10.11.04.57.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 11 Oct 2022 04:57:39 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: Date: Tue, 11 Oct 2022 13:57:36 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 To: Martin KaFai Lau , Jesper Dangaard Brouer , Magnus Karlsson References: <166256538687.1434226.15760041133601409770.stgit@firesoul> <35fcfb25-583a-e923-6eee-e8bbcc19db17@redhat.com> <5ccff6fa-0d50-c436-b891-ab797fe7e3c4@linux.dev> <20221004175952.6e4aade7@kernel.org> <20221004182451.6804b8ca@kernel.org> In-Reply-To: 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: 7IATLXCT5YW7OYQNXTLCQMLKF4EBPSYL X-Message-ID-Hash: 7IATLXCT5YW7OYQNXTLCQMLKF4EBPSYL X-MailFrom: jbrouer@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: brouer@redhat.com, Stanislav Fomichev , bpf@vger.kernel.org, netdev@vger.kernel.org, xdp-hints@xdp-project.net, larysa.zaremba@intel.com, memxor@gmail.com, Lorenzo Bianconi , mtahhan@redhat.com, Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , dave@dtucker.co.uk, Magnus Karlsson , bjorn@kernel.org, Jakub Kicinski X-Mailman-Version: 3.3.5 Precedence: list Subject: [xdp-hints] Re: [PATCH RFCv2 bpf-next 00/18] XDP-hints: XDP gaining access to HW offload hints via BTF List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDExLzEwLzIwMjIgMDguMjksIE1hcnRpbiBLYUZhaSBMYXUgd3JvdGU6DQo+IE9uIDEw LzYvMjIgODoyOSBBTSwgSmVzcGVyIERhbmdhYXJkIEJyb3VlciB3cm90ZToNCj4+DQo+PiBPbiAw Ni8xMC8yMDIyIDExLjE0LCBNYWdudXMgS2FybHNzb24gd3JvdGU6DQo+Pj4gT24gV2VkLCBPY3Qg NSwgMjAyMiBhdCA5OjI3IFBNIE1hcnRpbiBLYUZhaSBMYXUgDQo+Pj4gPG1hcnRpbi5sYXVAbGlu dXguZGV2PiB3cm90ZToNCj4+Pj4NCj4+Pj4gT24gMTAvNC8yMiA3OjE1IFBNLCBTdGFuaXNsYXYg Rm9taWNoZXYgd3JvdGU6DQo+Pj4+PiBPbiBUdWUsIE9jdCA0LCAyMDIyIGF0IDY6MjQgUE0gSmFr dWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4gd3JvdGU6DQo+Pj4+Pj4NCj4+Pj4+PiBPbiBU dWUsIDQgT2N0IDIwMjIgMTg6MDI6NTYgLTA3MDAgU3RhbmlzbGF2IEZvbWljaGV2IHdyb3RlOg0K Pj4+Pj4+PiArMSwgc291bmRzIGxpa2UgYSBnb29kIGFsdGVybmF0aXZlIChnb3QgeW91ciByZXBs eSB3aGlsZSB0eXBpbmcpDQo+Pj4+Pj4+IEknbSBub3QgdG9vIHZlcnNlZCBpbiB0aGUgcnhfZGVz Yy9yeF9xdWV1ZSBhcmVhLCBidXQgc2VlbXMgbGlrZSB3b3JzdA0KPj4+Pj4+PiBjYXNlIHRoYXQg YnBmX3hkcF9nZXRfaHd0c3RhbXAgY2FuIHByb2JhYmx5IHJlY2VpdmUgYSB4ZHBfbWQgY3R4IGFu ZA0KPj4+Pj4+PiBwYXJzZSBpdCBvdXQgZnJvbSB0aGUgcHJlLXBvcHVsYXRlZCBtZXRhZGF0YT8N Cj4+Pj4+Pg0KPj4+Pj4+IEknZCB0aGluayBzbywgd29yc3QgY2FzZSB0aGUgZHJpdmVyIGNhbiBw dXQgeGRwX21kIGludG8gYSBzdHJ1Y3QNCj4+Pj4+PiBhbmQgY29udGFpbmVyX29mKCkgdG8gZ2V0 IHRvIGl0cyBvd24gc3RhY2sgd2l0aCB3aGF0ZXZlciBmaWVsZHMNCj4+Pj4+PiBpdCBuZWVkcy4N Cj4+Pj4+DQo+Pj4+PiBBY2ssIHNlZW1zIGxpa2Ugc29tZXRoaW5nIHdvcnRoIGV4cGxvcmluZyB0 aGVuLg0KPj4+Pj4NCj4+Pj4+IFRoZSBvbmx5IGlzc3VlIEkgc2VlIHdpdGggdGhhdCBpcyB0aGF0 IHdlJ2QgcHJvYmFibHkgaGF2ZSB0byBleHRlbmQNCj4+Pj4+IHRoZSBsb2FkaW5nIGFwaSB0byBw YXNzIHRhcmdldCB4ZHAgZGV2aWNlIHNvIHdlIGNhbiBwcmUtZ2VuZXJhdGUNCj4+Pj4+IHBlci1k ZXZpY2UgYnl0ZWNvZGUgZm9yIHRob3NlIGtmdW5jcz8NCj4+Pj4NCj4+Pj4gVGhlcmUgaXMgYW4g ZXhpc3RpbmcgYXR0ci0+cHJvZ19pZmluZGV4IGZvciBkZXYgb2ZmbG9hZCBwdXJwb3NlLiAgDQo+ Pj4+IE1heSBiZSB3ZSBjYW4NCj4+Pj4gcmUtcHVycG9zZS9yZS11c2Ugc29tZSBvZiB0aGUgb2Zm bG9hZCBBUEkuwqAgSG93IHRoaXMga2Z1bmMgY2FuIGJlIA0KPj4+PiBwcmVzZW50ZWQgYWxzbw0K Pj4+PiBuZWVkcyBzb21lIHRob3VnaHRzLCBjb3VsZCBiZSBhIG5ldyBuZG9feHh4Li4uLiBub3Qg c3VyZS4NCj4+Pj4+IEFuZCB0aGlzIHBvdGVudGlhbGx5IHdpbGwgYmxvY2sgYXR0YWNoaW5nIHRo ZSBzYW1lIHByb2dyYW0NCj4+Pj4gwqAgPiB0byBkaWZmZXJlbnQgZHJpdmVycy9kZXZpY2VzPw0K Pj4+Pj4gT3IsIE1hcnRpbiwgZGlkIHlvdSBtYXliZSBoYXZlIHNvbWV0aGluZyBiZXR0ZXIgaW4g bWluZD8NCj4+Pj4NCj4+Pj4gSWYgdGhlIGtmdW5jL2hlbHBlciBpcyBpbmxpbmUsIHRoZW4gaXQg d2lsbCBoYXZlIHRvIGJlIHBlciBkZXZpY2UuICANCj4+Pj4gVW5sZXNzIHRoZQ0KPj4+PiBicGYg cHJvZyBjaG9vc2VzIG5vdCB0byBpbmxpbmUgd2hpY2ggY291bGQgYmUgYW4gb3B0aW9uIGJ1dCBJ IGFtIA0KPj4+PiBhbHNvIG5vdCBzdXJlDQo+Pj4+IGhvdyBvZnRlbiB0aGUgdXNlciB3YW50cyB0 byAnYXR0YWNoJyBhIGxvYWRlZCB4ZHAgcHJvZyB0byBhIA0KPj4+PiBkaWZmZXJlbnQgZGV2aWNl Lg0KPj4+PiBUbyBzb21lIGV4dGVuZCwgdGhlIENPLVJFIGhpbnRzLWxvYWRpbmctY29kZSB3aWxs IGhhdmUgdG8gYmUgcGVyIA0KPj4+PiBkZXZpY2UgYWxzbywgbm8/DQo+Pj4+DQo+Pj4+IFdoeSBJ IGFza2VkIHRoZSBrZnVuYy9oZWxwZXIgYXBwcm9hY2ggaXMgYmVjYXVzZSwgZnJvbSB0aGUgc2V0 LCBpdCANCj4+Pj4gc2VlbXMgdGhlDQo+Pj4+IGhpbnRzIGhhcyBhbHJlYWR5IGJlZW4gYXZhaWxh YmxlIGF0IHRoZSBkcml2ZXIuwqAgVGhlIHNwZWNpZmljIA0KPj4+PiBrbm93bGVkZ2UgdGhhdCB0 aGUNCj4+Pj4geGRwIHByb2cgbWlzc2luZyBpcyBob3cgdG8gZ2V0IHRoZSBoaW50cyBmcm9tIHRo ZSByeF9kZXNjL3J4X3F1ZXVlLiAgDQo+Pj4+IFRoZQ0KPj4+PiBzdHJhaWdodCBmb3J3YXJkIHdh eSB0byBtZSBpcyB0byBtYWtlIHRoZW0gKHJ4X2Rlc2MvcnhfcXVldWUpIA0KPj4+PiBhdmFpbGFi bGUgdG8geGRwDQo+Pj4+IHByb2cgYW5kIGhhdmUga2Z1bmMvaGVscGVyIHRvIGV4dHJhY3QgdGhl IGhpbnRzIGZyb20gdGhlbSBvbmx5IGlmIA0KPj4+PiB0aGUgeGRwIHByb2cNCj4+Pj4gbmVlZHMg aXQuwqAgVGhlIHhkcCBwcm9nIGNhbiBzZWxlY3RpdmVseSBnZXQgd2hhdCBoaW50cyBpdCBuZWVk cyBhbmQgDQo+Pj4+IHRoZW4NCj4+Pj4gb3B0aW9uYWxseSBzdG9yZSB0aGVtIGludG8gdGhlIG1l dGEgYXJlYSBpbiBhbnkgbGF5b3V0Lg0KPj4+DQo+Pj4gVGhpcyBzb3VuZHMgbGlrZSBhIHJlYWxs eSBnb29kIGlkZWEgdG8gbWUsIHdlbGwgd29ydGggZXhwbG9yaW5nLiBUbw0KPj4+IG9ubHkgaGF2 ZSB0byBwYXksIHBlcmZvcm1hbmNlIHdpc2UsIGZvciB0aGUgbWV0YWRhdGEgeW91IGFjdHVhbGx5 IHVzZQ0KPj4+IGlzIHZlcnkgaW1wb3J0YW50LiBJIGRpZCBzb21lIGV4cGVyaW1lbnRzIFsxXSBv biB0aGUgcHJldmlvdXMgcGF0Y2gNCj4+PiBzZXQgb2YgSmVzcGVyJ3MgYW5kIHRoZXJlIGlzIHN1 YnN0YW50aWFsIG92ZXJoZWFkIGFkZGVkIGZvciBlYWNoDQo+Pj4gbWV0YWRhdGEgZW5hYmxlZCAo YW5kIGZldGNoZWQgZnJvbSB0aGUgTklDKS4gVGhpcyBpcyBlc3BlY2lhbGx5DQo+Pj4gaW1wb3J0 YW50IGZvciBBRl9YRFAgaW4gemVyby1jb3B5IG1vZGUgd2hlcmUgbW9zdCBwYWNrZXRzIGFyZSBk aXJlY3RlZA0KPj4+IHRvIHVzZXItc3BhY2UgKGlmIG5vdCwgeW91IHNob3VsZCBiZSB1c2luZyB0 aGUgcmVndWxhciBkcml2ZXIgdGhhdCBpcw0KPj4+IG9wdGltaXplZCBmb3IgcGFzc2luZyBwYWNr ZXRzIHRvIHRoZSBzdGFjayBvciByZWRpcmVjdGluZyB0byBvdGhlcg0KPj4+IGRldmljZXMpLiBJ biB0aGlzIGNhc2UsIHRoZSB1c2VyIGtub3dzIGV4YWN0bHkgd2hhdCBtZXRhZGF0YSBpdCB3YW50 cw0KPj4+IGFuZCB3aGVyZSBpbiB0aGUgbWV0YWRhdGEgYXJlYSBpdCBzaG91bGQgYmUgbG9jYXRl ZCBpbiBvcmRlciB0byBvZmZlcg0KPj4+IHRoZSBiZXN0IHBlcmZvcm1hbmNlIGZvciB0aGUgYXBw bGljYXRpb24gaW4gcXVlc3Rpb24uIEJ1dCBhcyB5b3Ugc2F5LA0KPj4+IHlvdXIgc3VnZ2VzdGlv biBjb3VsZCBwb3RlbnRpYWxseSBvZmZlciBhIGdvb2QgcGVyZm9ybWFuY2UgdXBzaWRlIHRvDQo+ Pj4gdGhlIHJlZ3VsYXIgWERQIHBhdGggdG9vLg0KPiANCj4gWWVhaCwgc2luY2Ugd2UgYXJlIG9u IHRoaXMgZmxleGlibGUgaGludCBsYXlvdXQsIGFmdGVyIHJlYWRpbmcgdGhlIA0KPiByZXBsaWVz IGluIG90aGVyIHRocmVhZHMsIG5vdyBJIGFtIGFsc28gbm90IHN1cmUgd2h5IHdlIG5lZWQgYSAN Cj4geGRwX2hpbnRzX2NvbW1vbiBhbmQgcHJvYmFibHkgSSBhbSBtaXNzaW5nIHNvbWV0aGluZyBh bHNvLsKgIEl0IHNlZW1zIHRvIA0KPiBiZSBtb3N0IHVzZWZ1bCBpbiBfX3hkcF9idWlsZF9za2Jf ZnJvbV9mcmFtZS7CoEhvd2V2ZXIsIHRoZSB4ZHAgcHJvZyBjYW4gDQo+IGFsc28gZmlsbCBpbiB0 aGUgeGRwX2hpbnRzX2NvbW1vbiBieSBpdHNlbGYgb25seSB3aGVuIG5lZWRlZCBpbnN0ZWFkIG9m IA0KPiBoYXZpbmcgdGhlIGRyaXZlciBhbHdheXMgZmlsbGluZyBpdCBpbi4NCj4gDQoNCkkgKndh bnQqIHRoZSBYRFAtaGludHMgdG8gYmUgcG9wdWxhdGVkIGV2ZW4gd2hlbiBubyBYRFAtcHJvZyBp cyBydW5uaW5nLg0KVGhlIHhkcF9mcmFtZSAqaXMqIHRoZSBtaW5pLVNLQiBjb25jZXB0LiBUaGVz ZSBYRFAtaGludHMgYXJlIGFib3V0DQphZGRpbmcgSFcgb2ZmbG9hZCBoaW50cyB0byB0aGlzIG1p bmktU0tCLCB0byBhbGxvdyBpdCBncm93IGludG8gYQ0KZnVsbC1TS0Igd2l0aCB0aGVzZSBvZmZs b2Fkcy4NCg0KSSBjb3VsZCBhZGQgdGhpcyBwdXJlbHkgYXMgYSBuZXRzdGFjayBmZWF0dXJlLCB2 aWEgZXh0ZW5kaW5nIHhkcF9mcmFtZQ0KYXJlYSB3aXRoIGEgY29tbW9uIHN0cnVjdC4gRm9yIFhE UC1wcm9nIGFjY2VzcyBJIGNvdWxkIGV4dGVuZCB4ZHBfbWQNCndpdGggZmllbGRzIHRoYXQgZ2V0 cyBVQVBJIHJld3JpdGUgbWFwcGVkIHRvIGFjY2VzcyB0aGVzZSBmaWVsZHMuIEZvcg0KdGhlIEFG X1hEUCB1c2VycyB0aGlzIGRhdGEgYmVjb21lcyBoYXJkZXIgdG8gYWNjZXNzLCBidXQgYW4gWERQ LXByb2cNCmNvdWxkIChzcGVuZCBjeWNsZXMpIG1vdmluZyB0aGVzZSBvZmZsb2FkcyBpbnRvIHRo ZSBtZXRhZGF0YSBhcmVhLCBidXQNCndoeSBub3QgcGxhY2UgdGhlbSB0aGVyZSBpcyB0aGUgZmly c3QgcGxhY2UuDQoNCkkgdGhpbmsgdGhlIG1haW4gcG9pbnQgaXMgdGhhdCBJIGRvbid0IHNlZSB0 aGUgWERQLXByb2cgYXMgdGhlIHByaW1hcnkNCmNvbnN1bWVyIG9mIHRoZXNlIGhpbnRzLg0KT25l IHJlYXNvbi91c2UtY2FzZSBmb3IgbGV0dGluZyBYRFAtcHJvZyBhY2Nlc3MgdGhlc2UgaGludHMg cHJpb3IgdG8NCmNyZWF0aW5nIGEgZnVsbC1TS0IgaXMgdG8gaGVscCBmaXhpbmcgdXAgKG9yIHBy b3ZpZGluZykgb2ZmbG9hZCBoaW50cy4NClRoZSBtdm5ldGEgZHJpdmVyIHBhdGNoIGhpZ2hsaWdo dCB0aGlzIGFzIEhXIGhhdmUgbGltaXRlZCBoaW50cywgd2hpY2gNCmFuIFhEUC1wcm9nIGNhbiBw cm92aWRlIHByaW9yIHRvIGNhbGxpbmcgbmV0c3RhY2suDQoNCkluIHRoaXMgcGF0Y2hzZXQgSSdt IHRyeWluZyB0byBiYWxhbmNlIHRoZSBkaWZmZXJlbnQgdXNlcnMuIEFuZCB2aWEgQlRGDQpJJ20g dHJ5aW5nIGhhcmQgbm90IHRvIGNyZWF0ZSBtb3JlIFVBUEkgKGUuZy4gbW9yZSBmaXhlZCBmaWVs ZHMgYXZhaWwgaW4NCnhkcF9tZCB0aGF0IHdlIGNhbm5vdCBnZXQgcmlkIG9mKS4gQW5kIHRyeWlu ZyB0byBhZGQgZHJpdmVyIGZsZXhpYmlsaXR5DQpvbi10b3Agb2YgdGhlIGNvbW1vbiBzdHJ1Y3Qu ICBUaGlzIGZsZXhpYmlsaXR5IHNlZW1zIHRvIGJlIHN0YWxsaW5nIHRoZQ0KcGF0Y2hzZXQgYXMg d2UgaGF2ZW4ndCBmb3VuZCB0aGUgcGVyZmVjdCB3YXkgdG8gZXhwcmVzcyB0aGlzICh5ZXQpIGdp dmVuDQpCVEYgbGF5b3V0IGlzIHBlciBkcml2ZXIuDQoNCg0KPj4NCj4+IE9rYXksIGxldHMgcmV2 aXNpdCB0aGlzIGFnYWluLsKgIEFuZCBsZXQgbWUgZXhwbGFpbiB3aHkgSSBiZWxpZXZlIHRoaXMN Cj4+IGlzbid0IGdvaW5nIHRvIGZseS4NCj4+DQo+PiBJIHdhcyBhbHNvIG15IGluaXRpYWwgdGhv dWdoLCBsZXRzIGp1c3QgZ2l2ZSBYRFAgQlBGLXByb2cgZGlyZWN0IGFjY2Vzcw0KPj4gdG8gdGhl IE5JQyByeF9kZXNjcmlwdG9yLCBvciBhbm90aGVyIEJQRi1wcm9nIHBvcHVsYXRlIFhEUC1oaW50 cyBwcmlvcg0KPj4gdG8gY2FsbGluZyBYRFAtcHJvZy7CoCBHb2luZyBkb3duIHRoaXMgcGF0aCAo cHJldmlvdXNseSkgSSBsZWFybmVkIHRocmVlDQo+PiB0aGluZ3M6DQo+Pg0KPj4gKDEpIFVuZGVy c3RhbmRpbmcvZGVjb2RpbmcgcnhfZGVzY3JpcHRvciByZXF1aXJlcyBhY2Nlc3MgdG8gdGhlDQo+ PiBwcm9ncmFtbWVycyBkYXRhc2hlZXQsIGJlY2F1c2UgaXQgaXMgdmVyeSBjb21wYWN0ZWQgYW5k IHRoZSBtZWFuIG9mIHRoZQ0KPj4gYml0cyBkZXBlbmQgb24gb3RoZXIgYml0cyBhbmQgcGx1cyBj dXJyZW50IGNvbmZpZ3VyYXRpb24gc3RhdHVzIG9mIHRoZSANCj4+IEhXLg0KPj4NCj4+ICgyKSBI VyBoYXZlIGJ1Z3MgYW5kIGZvciBjZXJ0YWluIGNoaXAgcmV2aXNpb25zIGRyaXZlciB3aWxsIHNr aXAgc29tZQ0KPj4gb2ZmbG9hZCBoaW50cy7CoCBUaHVzLCBjaGlwIHJldmlzaW9ucyBuZWVkIHRv IGJlIGV4cG9ydGVkIHRvIEJQRi1wcm9ncw0KPj4gYW5kIGhhbmRsZWQgYXBwcm9wcmlhdGVseS4N Cj4+DQo+PiAoMykgU29tZXRpbWVzIHRoZSBpbmZvIGlzIGFjdHVhbGx5IG5vdCBhdmFpbGFibGUg aW4gdGhlIHJ4X2Rlc2NyaXB0b3IuDQo+PiBPZnRlbiBmb3IgSFcgdGltZXN0YW1wcywgdGhlIHRp bWVzdGFtcCBuZWVkIHRvIGJlIHJlYWQgZnJvbSBhIEhXDQo+PiByZWdpc3Rlci7CoCBIb3cgZG8g d2UgZXhwb3NlIHRoaXMgdG8gdGhlIEJQRi1wcm9nPw0KPiANCj4gaG1tLi4uLiBtYXkgYmUgSSBh bSBtaXNzaW5nIHRob3NlIGh3IHNwZWNpZmljIGRldGFpbHMgaGVyZS7CoCBIb3cgd291bGQgDQo+ IHRoZSBkcml2ZXIgaGFuZGxlIHRoZSBhYm92ZSBjYXNlcyBhbmQgZmlsbCBpbiB0aGUgeGRwX2hp bnRzIGluIHRoZSANCj4gbWV0YT/CoCBDYW4gdGhlIHNhbWUgY29kZSBiZSBjYWxsZWQgYnkgdGhl IHhkcCBwcm9nPw0KPg0KDQpBcyBJIG1lbnRpb25lZCBhYm92ZSwgSSB3YW50IHRoZSBYRFAtaGlu dHMgdG8gYmUgcG9wdWxhdGVkIGV2ZW4gd2hlbiBubyANClhEUC1wcm9nIGlzIHJ1bm5pbmcuIEkg ZG9uJ3Qgd2FudCB0aGUgZGVwZW5kZW5jeSBvbiBsb2FkaW5nIGFuIFhEUC1wcm9nIA0KdG8gZ2V0 IHRoZSBoaW50cyBwb3B1bGF0ZWQsIGFzIGUuZy4gbmV0c3RhY2sgaXMgb25lIG9mIHRoZSB1c2Vy cy4NCg0KDQo+Pg0KPj4gTm90aWNlIHRoYXQgdGhpcyBwYXRjaHNldCBkb2Vzbid0IGJsb2NrIHRo aXMgaWRlYSwgYXMgaXQgaXMgb3J0aG9nb25hbC4NCj4+IEFmdGVyIHdlIGhhdmUgZXN0YWJsaXNo ZWQgYSB3YXkgdG8gZXhwcmVzcyB4ZHBfaGludHMgbGF5b3V0cyB2aWEgQlRGLA0KPj4gdGhlbiB3 ZSBjYW4gc3RpbGwgYWRkIGEgcHJlLVhEUCBCUEYtcHJvZyB0aGF0IHBvcHVsYXRlcyB0aGUgWERQ LWhpbnRzLA0KPj4gYW5kIHNxdWVlemUgb3V0IG1vcmUgcGVyZm9ybWFuY2UgYnkgc2tpcHBpbmcg c29tZSBvZiB0aGUgb2ZmbG9hZHMgdGhhdA0KPj4geW91ci1zcGVjaWZpYy1YRFAtcHJvZyBhcmUg bm90IGludGVyZXN0ZWQgaW4uDQo+Pg0KPj4gLS1KZXNwZXINCj4+DQo+IA0KDQo=