From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF5BB22627 for ; Wed, 24 May 2023 21:06:49 +0000 (UTC) Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F2912E6 for ; Wed, 24 May 2023 14:06:32 -0700 (PDT) Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q1vgk-0000Tf-3O; Wed, 24 May 2023 17:06:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=KckZTmo9Gc7wmnUqu5f/ww3uf3YmM1kpN4TCRRyqEOY=; b=Gcb3/Hc5igTEL+rpd29U Xbs6MS002bwiHmoIl/95jpHSlySpcbkjGn33002bm1DpZYwMbXD+CI4Q3/FGhLtLANkB2AmR4chjo JurOkdCIKnhBDIca7Y6jJmGVwUBBILD8TeL7POlXHDRjk2rBaYz3FAslJZIS+NmVrF1OjMprNLo9y 2HZAf17leaPlcJ8S7YJ7PYuNUmHufogR6urZw3e/w9knyJwfxUbzOT2qe0dAh5+1G5fF9VV+AfQje /92XC8FuqKPPfoTnhh91uTghtVX9/3ybqBsJKh3dzugYW5C510T4N13czx95LC2Vrn/NZ4uGi+TfK Wn/BmGmU5CXe+w==; Received: from dynamic-077-015-107-011.77.15.pool.telefonica.de ([77.15.107.11] helo=termi) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q1vgj-0000lh-KZ; Wed, 24 May 2023 17:06:29 -0400 From: "Jose E. Marchesi" To: Suresh Krishnan Cc: David Vernet , Michael Richardson , "bpf@ietf.org" , bpf , Alexei Starovoitov , Erik Kline , "Suresh Krishnan (sureshk)" , Christoph Hellwig , Dave Thaler Subject: Re: [Bpf] IETF BPF working group draft charter In-Reply-To: <8FA12EFB-DB5A-4C6B-83BC-A3CBBE44F80B@gmail.com> (Suresh Krishnan's message of "Wed, 24 May 2023 16:38:12 -0400") References: <87v8grkn67.fsf@gnu.org> <87r0rdy26o.fsf@gnu.org> <20230523163200.GD20100@maniforge> <18272.1684864698@localhost> <20230523202827.GA33347@maniforge> <8FA12EFB-DB5A-4C6B-83BC-A3CBBE44F80B@gmail.com> Date: Wed, 24 May 2023 23:06:23 +0200 Message-ID: <87a5xto2wg.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net > Hi David, > I just want to provide a quick clarification from the IETF side > regarding categories of RFCs. Not all the RFCs we produce are > standards. On a broad level we have standards track and informational > documents (among others; more details in RFC2026). I do believe there > is value in *documenting* some of the items that belong in an ABI such > as the calling convention (similar to what is in Section 2 of the ISA > draft). Similarly, there is value in documenting conventions and > guidelines for creating portable binaries if we believe that is a > useful goal, even though there will be a lot of programs that will not > be portable (e.g. using cgroups). I would not expect these to be > Standards track documents but rather Informational specifications to > help implementers. If that sounds reasonable we can keep the text in > the charter (with some minor rewording) and work on categorizing > potential deliverables by Document Status (as would anyway be > necessitated by =C3=89ric Vyncke=E2=80=99s BLOCK). I wonder. Lets suppose the ABI and ELF extensions are maintained and evolved in the usual way it is done for all other architectures, i.e. in the kernel git repository or a dedicatd public one, in textual form, under a free software license, not requiring copyright assignments nor bureocratic processes to be updated, etc. Could then the WG edit and publish "snapshots" whenever considered appropriate, and release them as subsequent versions of an IETF Informational specification, or some other suitable kind of IETF document? If something like that would be doable, maybe we could concile the practicality of the usual approach with the more formal character of an IETF document? > Regards > Suresh > >> On May 23, 2023, at 4:28 PM, David Vernet wrote: >>=20 >> On Tue, May 23, 2023 at 01:58:18PM -0400, Michael Richardson wrote: >>>=20 >>> David Vernet > wrote: >>>> As far as I know (please correct me if I'm wrong), there isn't really a >>>> precedence for standardizing ABIs like this. For example, x86 calling >>>=20 >>> All of the eBPF work seems unprecedented. >>> I don't see having this in the charter is a problem. >>>=20 >>> We may fail to get consensus on it, and not make a milestone, but I don= 't see >>> a reason not to be allowed to talk about this. >>> (and maybe in the end, it's a no-op) >>=20 >> Hi Michael, >>=20 >> So apologies in advance if my lack of experience with IETF proceedings >> is glaringly obvious, and I'd appreciate clarification in any situation >> in which I'm mistaken. >>=20 >> My understanding based on the conversations that I've had thus far is >> that part of the goal of arriving at the finalized WG charter is to >> determine what's in scope and out of scope. It's a bit of a murky >> proposition because some things that we think _could_ be in scope, such >> as in this case topics related to psABI, may not end up having a >> document if we can't get consensus. In other words, being in the WG >> charter doesn't imply that something is in-scope and will have a >> document written, but _not_ being in the charter does preclude it from >> being discussed in this iteration of the WG because of this line: >>=20 >>> The working group shall not adopt new work until these >>> documents have progressed to working group last call. >>=20 >> The implication of this is that it's not necessarily a problem to have >> some false-positives in terms of what we cover, but it can be >> problematic if we leave out something important because we'll have to >> cover all of the other topics first. I'd imagine this would tend to make >> the default behavior for deciding scope in WG charters to be permissive >> rather than dissmive, which makes sense to me. >>=20 >> Assuming I haven't already gone off the rails in terms of my >> understanding, let me try to clarify why despite all that, I still think >> it's warranted for us to remove psABI as part of the scope of the WG. >> There are really two main reasons: >>=20 >> 1. As is hopefully clear at this point, there is a wide and historical >> industry precedence for not standardizing on psABI. For example, to >> my knowledge, RISC-V [0] develops and ratifies the RISC-V ISA through >> the RISC-V International Technical Working Groups, but there is no >> such ratified standard or specification for RISC-V calling >> conventions (the operative word of course being "convention"). The >> same is true (to my knowledge) of _all_ psABI ELF extensions, as Jose >> pointed out earlier in the conversation. >>=20 >> [0]: https://riscv.org/technical/specifications/ >>=20 >> With all that said, unless there's more context behind why we think we >> need to standardize psABI which hasn't yet been brought forward, I >> don't see any way we'd achieve consensus when we discuss it in the >> WG. And the reason I specifically think that's the case for ABI (ELF >> or otherwise) is that there's such a well-established precedence >> already for not standardizing it. I guess it's true that there's no >> harm in including it and discussing it, but as things currently >> stand, it also doesn't seem very productive to include it if there's >> already (IMHO) reasonably clear evidence that it's out of scope. To >> go back to my claim made in another email, I think the onus is on the >> folks who think it's in scope to explain why, rather than the folks >> who think we should follow industry precedence to justify that. >>=20 >> 2. Assuming that I'm wrong, and ABI / ELF are in scope for >> standardization, we would still have to do a lot of premliminary >> work to determine that. For example, we may end up wanting to >> standardize that maps are put into .maps sections in an ELF file, but >> that would only make sense if we created a document standardizing >> cross-platform map types. The same holds true for cross-platform >> program types, etc. The dependency DAG for discussing ELF has a depth >> of at least 2, and given that it's as-yet unclear whether ELF / psABI >> is an appropriate topic for standardization in the first place, it >> really feels to me like leaving it out of the WG is the right move. >>=20 >> Thanks, >> David >>=20 >>>=20 >>> -- >>> Michael Richardson . o O ( IPv6 I=C3=B8T cons= ulting ) >>> Sandelman Software Works Inc, Ottawa and Worldwide >>>=20 >>>=20 >>>=20 >>>=20 >>=20 >>=20 >>=20 >>> --=20 >>> Bpf mailing list >>> Bpf@ietf.org >>> https://www.ietf.org/mailman/listinfo/bpf >>=20 >> --=20 >> Bpf mailing list >> Bpf@ietf.org >> https://www.ietf.org/mailman/listinfo/bpf From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B9501DDC0 for ; Thu, 25 May 2023 17:44:52 +0000 (UTC) Received: from mail.ietf.org (mail.ietf.org [50.223.129.194]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 944AC10C1 for ; Thu, 25 May 2023 10:44:23 -0700 (PDT) Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id D6564C16B5BD for ; Thu, 25 May 2023 10:43:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1685036619; bh=4i8qnzb50aqMT6pHEDC5KJcn/VKPs/VVdq3LOISfHgA=; h=From:To:Cc:In-Reply-To:References:Date:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe; b=tz3nNhJBe+LD8gTr4GT7Zdjewy5fLfKAFQDjxuMU6/sRDr9c34ybOtuzHycKXfcY0 n9uiMJEYlOOIuSAsU0ktmRb89L9EapcGwLqDUErvwhE8lo07ByWp45eQMZr8hjths/ dGO2GGRaPFHDSA0N8JNz6S79C7PWuyiRUtUp9tMQ= X-Mailbox-Line: From bpf-bounces@ietf.org Thu May 25 10:43:39 2023 Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 8CDEAC13739E; Thu, 25 May 2023 10:43:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1685036619; bh=4i8qnzb50aqMT6pHEDC5KJcn/VKPs/VVdq3LOISfHgA=; h=From:To:Cc:In-Reply-To:References:Date:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe; b=tz3nNhJBe+LD8gTr4GT7Zdjewy5fLfKAFQDjxuMU6/sRDr9c34ybOtuzHycKXfcY0 n9uiMJEYlOOIuSAsU0ktmRb89L9EapcGwLqDUErvwhE8lo07ByWp45eQMZr8hjths/ dGO2GGRaPFHDSA0N8JNz6S79C7PWuyiRUtUp9tMQ= Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D81ECC1519B8 for ; Wed, 24 May 2023 14:06:37 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Score: -4.399 X-Spam-Level: X-Spam-Status: No, score=-5.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gnu.org Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ALfTHleBxUpf for ; Wed, 24 May 2023 14:06:33 -0700 (PDT) Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D84F7C15199B for ; Wed, 24 May 2023 14:06:33 -0700 (PDT) Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q1vgk-0000Tf-3O; Wed, 24 May 2023 17:06:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=KckZTmo9Gc7wmnUqu5f/ww3uf3YmM1kpN4TCRRyqEOY=; b=Gcb3/Hc5igTEL+rpd29U Xbs6MS002bwiHmoIl/95jpHSlySpcbkjGn33002bm1DpZYwMbXD+CI4Q3/FGhLtLANkB2AmR4chjo JurOkdCIKnhBDIca7Y6jJmGVwUBBILD8TeL7POlXHDRjk2rBaYz3FAslJZIS+NmVrF1OjMprNLo9y 2HZAf17leaPlcJ8S7YJ7PYuNUmHufogR6urZw3e/w9knyJwfxUbzOT2qe0dAh5+1G5fF9VV+AfQje /92XC8FuqKPPfoTnhh91uTghtVX9/3ybqBsJKh3dzugYW5C510T4N13czx95LC2Vrn/NZ4uGi+TfK Wn/BmGmU5CXe+w==; Received: from dynamic-077-015-107-011.77.15.pool.telefonica.de ([77.15.107.11] helo=termi) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q1vgj-0000lh-KZ; Wed, 24 May 2023 17:06:29 -0400 From: "Jose E. Marchesi" To: Suresh Krishnan Cc: David Vernet , Michael Richardson , "bpf@ietf.org" , bpf , Alexei Starovoitov , Erik Kline , "Suresh Krishnan (sureshk)" , Christoph Hellwig , Dave Thaler In-Reply-To: <8FA12EFB-DB5A-4C6B-83BC-A3CBBE44F80B@gmail.com> (Suresh Krishnan's message of "Wed, 24 May 2023 16:38:12 -0400") References: <87v8grkn67.fsf@gnu.org> <87r0rdy26o.fsf@gnu.org> <20230523163200.GD20100@maniforge> <18272.1684864698@localhost> <20230523202827.GA33347@maniforge> <8FA12EFB-DB5A-4C6B-83BC-A3CBBE44F80B@gmail.com> Date: Wed, 24 May 2023 23:06:23 +0200 Message-ID: <87a5xto2wg.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Archived-At: X-Mailman-Approved-At: Thu, 25 May 2023 10:43:38 -0700 Subject: Re: [Bpf] IETF BPF working group draft charter X-BeenThere: bpf@ietf.org X-Mailman-Version: 2.1.39 Precedence: list List-Id: Discussion of BPF/eBPF standardization efforts within the IETF List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: bpf-bounces@ietf.org Sender: "Bpf" X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Message-ID: <20230524210623.KD-CzZe2PLENJOunX1ircuq_hUvjfGxLZdA9ij5Qc2o@z> Cj4gSGkgRGF2aWQsCj4gICBJIGp1c3Qgd2FudCB0byBwcm92aWRlIGEgcXVpY2sgY2xhcmlmaWNh dGlvbiBmcm9tIHRoZSBJRVRGIHNpZGUKPiByZWdhcmRpbmcgY2F0ZWdvcmllcyBvZiBSRkNzLiBO b3QgYWxsIHRoZSBSRkNzIHdlIHByb2R1Y2UgYXJlCj4gc3RhbmRhcmRzLiBPbiBhIGJyb2FkIGxl dmVsIHdlIGhhdmUgc3RhbmRhcmRzIHRyYWNrIGFuZCBpbmZvcm1hdGlvbmFsCj4gZG9jdW1lbnRz IChhbW9uZyBvdGhlcnM7IG1vcmUgZGV0YWlscyBpbiBSRkMyMDI2KS4gSSBkbyBiZWxpZXZlIHRo ZXJlCj4gaXMgdmFsdWUgaW4gKmRvY3VtZW50aW5nKiBzb21lIG9mIHRoZSBpdGVtcyB0aGF0IGJl bG9uZyBpbiBhbiBBQkkgc3VjaAo+IGFzIHRoZSBjYWxsaW5nIGNvbnZlbnRpb24gKHNpbWlsYXIg dG8gd2hhdCBpcyBpbiBTZWN0aW9uIDIgb2YgdGhlIElTQQo+IGRyYWZ0KS4gU2ltaWxhcmx5LCB0 aGVyZSBpcyB2YWx1ZSBpbiBkb2N1bWVudGluZyBjb252ZW50aW9ucyBhbmQKPiBndWlkZWxpbmVz IGZvciBjcmVhdGluZyBwb3J0YWJsZSBiaW5hcmllcyBpZiB3ZSBiZWxpZXZlIHRoYXQgaXMgYQo+ IHVzZWZ1bCBnb2FsLCBldmVuIHRob3VnaCB0aGVyZSB3aWxsIGJlIGEgbG90IG9mIHByb2dyYW1z IHRoYXQgd2lsbCBub3QKPiBiZSBwb3J0YWJsZSAoZS5nLiB1c2luZyBjZ3JvdXBzKS4gSSB3b3Vs ZCBub3QgZXhwZWN0IHRoZXNlIHRvIGJlCj4gU3RhbmRhcmRzIHRyYWNrIGRvY3VtZW50cyBidXQg cmF0aGVyIEluZm9ybWF0aW9uYWwgc3BlY2lmaWNhdGlvbnMgdG8KPiBoZWxwIGltcGxlbWVudGVy cy4gSWYgdGhhdCBzb3VuZHMgcmVhc29uYWJsZSB3ZSBjYW4ga2VlcCB0aGUgdGV4dCBpbgo+IHRo ZSBjaGFydGVyICh3aXRoIHNvbWUgbWlub3IgcmV3b3JkaW5nKSBhbmQgd29yayBvbiBjYXRlZ29y aXppbmcKPiBwb3RlbnRpYWwgZGVsaXZlcmFibGVzIGJ5IERvY3VtZW50IFN0YXR1cyAoYXMgd291 bGQgYW55d2F5IGJlCj4gbmVjZXNzaXRhdGVkIGJ5IMOJcmljIFZ5bmNrZeKAmXMgQkxPQ0spLgoK SSB3b25kZXIuICBMZXRzIHN1cHBvc2UgdGhlIEFCSSBhbmQgRUxGIGV4dGVuc2lvbnMgYXJlIG1h aW50YWluZWQgYW5kCmV2b2x2ZWQgaW4gdGhlIHVzdWFsIHdheSBpdCBpcyBkb25lIGZvciBhbGwg b3RoZXIgYXJjaGl0ZWN0dXJlcywgaS5lLgppbiB0aGUga2VybmVsIGdpdCByZXBvc2l0b3J5IG9y IGEgZGVkaWNhdGQgcHVibGljIG9uZSwgaW4gdGV4dHVhbCBmb3JtLAp1bmRlciBhIGZyZWUgc29m dHdhcmUgbGljZW5zZSwgbm90IHJlcXVpcmluZyBjb3B5cmlnaHQgYXNzaWdubWVudHMgbm9yCmJ1 cmVvY3JhdGljIHByb2Nlc3NlcyB0byBiZSB1cGRhdGVkLCBldGMuICBDb3VsZCB0aGVuIHRoZSBX RyBlZGl0IGFuZApwdWJsaXNoICJzbmFwc2hvdHMiIHdoZW5ldmVyIGNvbnNpZGVyZWQgYXBwcm9w cmlhdGUsIGFuZCByZWxlYXNlIHRoZW0gYXMKc3Vic2VxdWVudCB2ZXJzaW9ucyBvZiBhbiBJRVRG IEluZm9ybWF0aW9uYWwgc3BlY2lmaWNhdGlvbiwgb3Igc29tZQpvdGhlciBzdWl0YWJsZSBraW5k IG9mIElFVEYgZG9jdW1lbnQ/CgpJZiBzb21ldGhpbmcgbGlrZSB0aGF0IHdvdWxkIGJlIGRvYWJs ZSwgbWF5YmUgd2UgY291bGQgY29uY2lsZSB0aGUKcHJhY3RpY2FsaXR5IG9mIHRoZSB1c3VhbCBh cHByb2FjaCB3aXRoIHRoZSBtb3JlIGZvcm1hbCBjaGFyYWN0ZXIgb2YgYW4KSUVURiBkb2N1bWVu dD8KCj4gUmVnYXJkcwo+IFN1cmVzaAo+Cj4+IE9uIE1heSAyMywgMjAyMywgYXQgNDoyOCBQTSwg RGF2aWQgVmVybmV0IDx2b2lkQG1hbmlmYXVsdC5jb20+IHdyb3RlOgo+PiAKPj4gT24gVHVlLCBN YXkgMjMsIDIwMjMgYXQgMDE6NTg6MThQTSAtMDQwMCwgTWljaGFlbCBSaWNoYXJkc29uIHdyb3Rl Ogo+Pj4gCj4+PiBEYXZpZCBWZXJuZXQgPHZvaWRAbWFuaWZhdWx0LmNvbSA8bWFpbHRvOnZvaWRA bWFuaWZhdWx0LmNvbT4+IHdyb3RlOgo+Pj4+IEFzIGZhciBhcyBJIGtub3cgKHBsZWFzZSBjb3Jy ZWN0IG1lIGlmIEknbSB3cm9uZyksIHRoZXJlIGlzbid0IHJlYWxseSBhCj4+Pj4gcHJlY2VkZW5j ZSBmb3Igc3RhbmRhcmRpemluZyBBQklzIGxpa2UgdGhpcy4gRm9yIGV4YW1wbGUsIHg4NiBjYWxs aW5nCj4+PiAKPj4+IEFsbCBvZiB0aGUgZUJQRiB3b3JrIHNlZW1zIHVucHJlY2VkZW50ZWQuCj4+ PiBJIGRvbid0IHNlZSBoYXZpbmcgdGhpcyBpbiB0aGUgY2hhcnRlciBpcyBhIHByb2JsZW0uCj4+ PiAKPj4+IFdlIG1heSBmYWlsIHRvIGdldCBjb25zZW5zdXMgb24gaXQsIGFuZCBub3QgbWFrZSBh IG1pbGVzdG9uZSwgYnV0IEkgZG9uJ3Qgc2VlCj4+PiBhIHJlYXNvbiBub3QgdG8gYmUgYWxsb3dl ZCB0byB0YWxrIGFib3V0IHRoaXMuCj4+PiAoYW5kIG1heWJlIGluIHRoZSBlbmQsIGl0J3MgYSBu by1vcCkKPj4gCj4+IEhpIE1pY2hhZWwsCj4+IAo+PiBTbyBhcG9sb2dpZXMgaW4gYWR2YW5jZSBp ZiBteSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBJRVRGIHByb2NlZWRpbmdzCj4+IGlzIGdsYXJp bmdseSBvYnZpb3VzLCBhbmQgSSdkIGFwcHJlY2lhdGUgY2xhcmlmaWNhdGlvbiBpbiBhbnkgc2l0 dWF0aW9uCj4+IGluIHdoaWNoIEknbSBtaXN0YWtlbi4KPj4gCj4+IE15IHVuZGVyc3RhbmRpbmcg YmFzZWQgb24gdGhlIGNvbnZlcnNhdGlvbnMgdGhhdCBJJ3ZlIGhhZCB0aHVzIGZhciBpcwo+PiB0 aGF0IHBhcnQgb2YgdGhlIGdvYWwgb2YgYXJyaXZpbmcgYXQgdGhlIGZpbmFsaXplZCBXRyBjaGFy dGVyIGlzIHRvCj4+IGRldGVybWluZSB3aGF0J3MgaW4gc2NvcGUgYW5kIG91dCBvZiBzY29wZS4g SXQncyBhIGJpdCBvZiBhIG11cmt5Cj4+IHByb3Bvc2l0aW9uIGJlY2F1c2Ugc29tZSB0aGluZ3Mg dGhhdCB3ZSB0aGluayBfY291bGRfIGJlIGluIHNjb3BlLCBzdWNoCj4+IGFzIGluIHRoaXMgY2Fz ZSB0b3BpY3MgcmVsYXRlZCB0byBwc0FCSSwgbWF5IG5vdCBlbmQgdXAgaGF2aW5nIGEKPj4gZG9j dW1lbnQgaWYgd2UgY2FuJ3QgZ2V0IGNvbnNlbnN1cy4gSW4gb3RoZXIgd29yZHMsIGJlaW5nIGlu IHRoZSBXRwo+PiBjaGFydGVyIGRvZXNuJ3QgaW1wbHkgdGhhdCBzb21ldGhpbmcgaXMgaW4tc2Nv cGUgYW5kIHdpbGwgaGF2ZSBhCj4+IGRvY3VtZW50IHdyaXR0ZW4sIGJ1dCBfbm90XyBiZWluZyBp biB0aGUgY2hhcnRlciBkb2VzIHByZWNsdWRlIGl0IGZyb20KPj4gYmVpbmcgZGlzY3Vzc2VkIGlu IHRoaXMgaXRlcmF0aW9uIG9mIHRoZSBXRyBiZWNhdXNlIG9mIHRoaXMgbGluZToKPj4gCj4+PiBU aGUgd29ya2luZyBncm91cCBzaGFsbCBub3QgYWRvcHQgbmV3IHdvcmsgdW50aWwgdGhlc2UKPj4+ IGRvY3VtZW50cyBoYXZlIHByb2dyZXNzZWQgdG8gd29ya2luZyBncm91cCBsYXN0IGNhbGwuCj4+ IAo+PiBUaGUgaW1wbGljYXRpb24gb2YgdGhpcyBpcyB0aGF0IGl0J3Mgbm90IG5lY2Vzc2FyaWx5 IGEgcHJvYmxlbSB0byBoYXZlCj4+IHNvbWUgZmFsc2UtcG9zaXRpdmVzIGluIHRlcm1zIG9mIHdo YXQgd2UgY292ZXIsIGJ1dCBpdCBjYW4gYmUKPj4gcHJvYmxlbWF0aWMgaWYgd2UgbGVhdmUgb3V0 IHNvbWV0aGluZyBpbXBvcnRhbnQgYmVjYXVzZSB3ZSdsbCBoYXZlIHRvCj4+IGNvdmVyIGFsbCBv ZiB0aGUgb3RoZXIgdG9waWNzIGZpcnN0LiBJJ2QgaW1hZ2luZSB0aGlzIHdvdWxkIHRlbmQgdG8g bWFrZQo+PiB0aGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgZGVjaWRpbmcgc2NvcGUgaW4gV0cgY2hh cnRlcnMgdG8gYmUgcGVybWlzc2l2ZQo+PiByYXRoZXIgdGhhbiBkaXNzbWl2ZSwgd2hpY2ggbWFr ZXMgc2Vuc2UgdG8gbWUuCj4+IAo+PiBBc3N1bWluZyBJIGhhdmVuJ3QgYWxyZWFkeSBnb25lIG9m ZiB0aGUgcmFpbHMgaW4gdGVybXMgb2YgbXkKPj4gdW5kZXJzdGFuZGluZywgbGV0IG1lIHRyeSB0 byBjbGFyaWZ5IHdoeSBkZXNwaXRlIGFsbCB0aGF0LCBJIHN0aWxsIHRoaW5rCj4+IGl0J3Mgd2Fy cmFudGVkIGZvciB1cyB0byByZW1vdmUgcHNBQkkgYXMgcGFydCBvZiB0aGUgc2NvcGUgb2YgdGhl IFdHLgo+PiBUaGVyZSBhcmUgcmVhbGx5IHR3byBtYWluIHJlYXNvbnM6Cj4+IAo+PiAxLiBBcyBp cyBob3BlZnVsbHkgY2xlYXIgYXQgdGhpcyBwb2ludCwgdGhlcmUgaXMgYSB3aWRlIGFuZCBoaXN0 b3JpY2FsCj4+ICAgaW5kdXN0cnkgcHJlY2VkZW5jZSBmb3Igbm90IHN0YW5kYXJkaXppbmcgb24g cHNBQkkuIEZvciBleGFtcGxlLCB0bwo+PiAgIG15IGtub3dsZWRnZSwgUklTQy1WIFswXSBkZXZl bG9wcyBhbmQgcmF0aWZpZXMgdGhlIFJJU0MtViBJU0EgdGhyb3VnaAo+PiAgIHRoZSBSSVNDLVYg SW50ZXJuYXRpb25hbCBUZWNobmljYWwgV29ya2luZyBHcm91cHMsIGJ1dCB0aGVyZSBpcyBubwo+ PiAgIHN1Y2ggcmF0aWZpZWQgc3RhbmRhcmQgb3Igc3BlY2lmaWNhdGlvbiBmb3IgUklTQy1WIGNh bGxpbmcKPj4gICBjb252ZW50aW9ucyAodGhlIG9wZXJhdGl2ZSB3b3JkIG9mIGNvdXJzZSBiZWlu ZyAiY29udmVudGlvbiIpLiBUaGUKPj4gICBzYW1lIGlzIHRydWUgKHRvIG15IGtub3dsZWRnZSkg b2YgX2FsbF8gcHNBQkkgRUxGIGV4dGVuc2lvbnMsIGFzIEpvc2UKPj4gICBwb2ludGVkIG91dCBl YXJsaWVyIGluIHRoZSBjb252ZXJzYXRpb24uCj4+IAo+PiBbMF06IGh0dHBzOi8vcmlzY3Yub3Jn L3RlY2huaWNhbC9zcGVjaWZpY2F0aW9ucy8gPGh0dHBzOi8vcmlzY3Yub3JnL3RlY2huaWNhbC9z cGVjaWZpY2F0aW9ucy8+Cj4+IAo+PiAgIFdpdGggYWxsIHRoYXQgc2FpZCwgdW5sZXNzIHRoZXJl J3MgbW9yZSBjb250ZXh0IGJlaGluZCB3aHkgd2UgdGhpbmsgd2UKPj4gICBuZWVkIHRvIHN0YW5k YXJkaXplIHBzQUJJIHdoaWNoIGhhc24ndCB5ZXQgYmVlbiBicm91Z2h0IGZvcndhcmQsIEkKPj4g ICBkb24ndCBzZWUgYW55IHdheSB3ZSdkIGFjaGlldmUgY29uc2Vuc3VzIHdoZW4gd2UgZGlzY3Vz cyBpdCBpbiB0aGUKPj4gICBXRy4gQW5kIHRoZSByZWFzb24gSSBzcGVjaWZpY2FsbHkgdGhpbmsg dGhhdCdzIHRoZSBjYXNlIGZvciBBQkkgKEVMRgo+PiAgIG9yIG90aGVyd2lzZSkgaXMgdGhhdCB0 aGVyZSdzIHN1Y2ggYSB3ZWxsLWVzdGFibGlzaGVkIHByZWNlZGVuY2UKPj4gICBhbHJlYWR5IGZv ciBub3Qgc3RhbmRhcmRpemluZyBpdC4gSSBndWVzcyBpdCdzIHRydWUgdGhhdCB0aGVyZSdzIG5v Cj4+ICAgaGFybSBpbiBpbmNsdWRpbmcgaXQgYW5kIGRpc2N1c3NpbmcgaXQsIGJ1dCBhcyB0aGlu Z3MgY3VycmVudGx5Cj4+ICAgc3RhbmQsIGl0IGFsc28gZG9lc24ndCBzZWVtIHZlcnkgcHJvZHVj dGl2ZSB0byBpbmNsdWRlIGl0IGlmIHRoZXJlJ3MKPj4gICBhbHJlYWR5IChJTUhPKSByZWFzb25h Ymx5IGNsZWFyIGV2aWRlbmNlIHRoYXQgaXQncyBvdXQgb2Ygc2NvcGUuIFRvCj4+ICAgZ28gYmFj ayB0byBteSBjbGFpbSBtYWRlIGluIGFub3RoZXIgZW1haWwsIEkgdGhpbmsgdGhlIG9udXMgaXMg b24gdGhlCj4+ICAgZm9sa3Mgd2hvIHRoaW5rIGl0J3MgaW4gc2NvcGUgdG8gZXhwbGFpbiB3aHks IHJhdGhlciB0aGFuIHRoZSBmb2xrcwo+PiAgIHdobyB0aGluayB3ZSBzaG91bGQgZm9sbG93IGlu ZHVzdHJ5IHByZWNlZGVuY2UgdG8ganVzdGlmeSB0aGF0Lgo+PiAKPj4gMi4gQXNzdW1pbmcgdGhh dCBJJ20gd3JvbmcsIGFuZCBBQkkgLyBFTEYgYXJlIGluIHNjb3BlIGZvcgo+PiAgIHN0YW5kYXJk aXphdGlvbiwgd2Ugd291bGQgc3RpbGwgaGF2ZSB0byBkbyBhIGxvdCBvZiBwcmVtbGltaW5hcnkK Pj4gICB3b3JrIHRvIGRldGVybWluZSB0aGF0LiBGb3IgZXhhbXBsZSwgd2UgbWF5IGVuZCB1cCB3 YW50aW5nIHRvCj4+ICAgc3RhbmRhcmRpemUgdGhhdCBtYXBzIGFyZSBwdXQgaW50byAubWFwcyBz ZWN0aW9ucyBpbiBhbiBFTEYgZmlsZSwgYnV0Cj4+ICAgdGhhdCB3b3VsZCBvbmx5IG1ha2Ugc2Vu c2UgaWYgd2UgY3JlYXRlZCBhIGRvY3VtZW50IHN0YW5kYXJkaXppbmcKPj4gICBjcm9zcy1wbGF0 Zm9ybSBtYXAgdHlwZXMuIFRoZSBzYW1lIGhvbGRzIHRydWUgZm9yIGNyb3NzLXBsYXRmb3JtCj4+ ICAgcHJvZ3JhbSB0eXBlcywgZXRjLiBUaGUgZGVwZW5kZW5jeSBEQUcgZm9yIGRpc2N1c3Npbmcg RUxGIGhhcyBhIGRlcHRoCj4+ICAgb2YgYXQgbGVhc3QgMiwgYW5kIGdpdmVuIHRoYXQgaXQncyBh cy15ZXQgdW5jbGVhciB3aGV0aGVyIEVMRiAvIHBzQUJJCj4+ICAgaXMgYW4gYXBwcm9wcmlhdGUg dG9waWMgZm9yIHN0YW5kYXJkaXphdGlvbiBpbiB0aGUgZmlyc3QgcGxhY2UsIGl0Cj4+ICAgcmVh bGx5IGZlZWxzIHRvIG1lIGxpa2UgbGVhdmluZyBpdCBvdXQgb2YgdGhlIFdHIGlzIHRoZSByaWdo dCBtb3ZlLgo+PiAKPj4gVGhhbmtzLAo+PiBEYXZpZAo+PiAKPj4+IAo+Pj4gLS0KPj4+IE1pY2hh ZWwgUmljaGFyZHNvbiA8bWNyK0lFVEZAc2FuZGVsbWFuLmNhPiAgIC4gbyBPICggSVB2NiBJw7hU IGNvbnN1bHRpbmcgKQo+Pj4gICAgICAgICAgIFNhbmRlbG1hbiBTb2Z0d2FyZSBXb3JrcyBJbmMs IE90dGF3YSBhbmQgV29ybGR3aWRlCj4+PiAKPj4+IAo+Pj4gCj4+PiAKPj4gCj4+IAo+PiAKPj4+ IC0tIAo+Pj4gQnBmIG1haWxpbmcgbGlzdAo+Pj4gQnBmQGlldGYub3JnCj4+PiBodHRwczovL3d3 dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2JwZgo+PiAKPj4gLS0gCj4+IEJwZiBtYWlsaW5n IGxpc3QKPj4gQnBmQGlldGYub3JnIDxtYWlsdG86QnBmQGlldGYub3JnPgo+PiBodHRwczovL3d3 dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2JwZiA8aHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFp bG1hbi9saXN0aW5mby9icGY+CgotLSAKQnBmIG1haWxpbmcgbGlzdApCcGZAaWV0Zi5vcmcKaHR0 cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9icGYK