From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id WMBkCgJ59WX7EQEAe85BDQ:P1 (envelope-from ) for ; Sat, 16 Mar 2024 11:48:34 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id WMBkCgJ59WX7EQEAe85BDQ (envelope-from ) for ; Sat, 16 Mar 2024 11:48:34 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b=bCfIPhUX; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none; arc=pass ("zohomail.com:s=zohoarc:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1710586114; h=from:from:sender:sender:reply-to:subject:subject: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:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=L9IR0VqoN1nwCRCj9PzTDltD+V48O6y11GDXOZ7Wz30=; b=sCCal1OH3LoDkKNTgslsj/kttV5nyMvvEkQTbJGUovfzsKCPQOUCr1kaeCdJqNambaOkAN WqJjJlNUVr6hqJ5oxu4GbDJeYN8wk24nfIMoHvRULx8Kbu+b9rCvbFIJzNOBaM4muvBoMv S5mr8ITTOasdi5eJt6YrtpQkeYVhQ1a1GfM41zDFzjxX9jWyIC3jaHS6zbtPiTofYznDl4 qfH+7IT8J5CB1OMMg3n4nXl+5VKeP/2bKhlY5IkNt5RRn0pxI+WQqWTCVmMkkgFJabJG10 6g6MEIuz0xw0im+WM1GtfbYvN1VkDrKUU/nrQq3eJRocHJBkQcLn8lccwxDBLg== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b=bCfIPhUX; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none; arc=pass ("zohomail.com:s=zohoarc:i=1") ARC-Seal: i=2; s=key1; d=yhetil.org; t=1710586114; a=rsa-sha256; cv=pass; b=WWcelejYfzcOsHA3/VdsijZ2jK8aFDVQ2vBLD+dc+nor263mgujX9j8R66eD9wOLcFW29h mnOj0nidPhVcbtsD4aQZfioOnI5/1qdfKx+0LhWVnySW13WeDBvt2St45z2flOA92ie72T wP8vEON3UG3XPNKCEvMWO/iu4Rd9l/nYi4IOUq1RpP+9HfK190Nl6R72tUT/cB1vfhkjB1 zp9fqYxcHdwgOzZo9n8dpNxAJ8C5rU0pDOH5MI+tnLu3phNbJEZj54AAhPz2BloXKp+Sri 8m+nFDsoGtnwRVReLADKwP77aaOWMTmnaQpAgzyLmAv3pSHtRqxvVlczLhl/Vw== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id AB7BD14F64 for ; Sat, 16 Mar 2024 11:48:33 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rlRaG-0005zd-Sw; Sat, 16 Mar 2024 06:48:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rlRaE-0005zP-4C for guix-devel@gnu.org; Sat, 16 Mar 2024 06:48:10 -0400 Received: from sender4-pp-f112.zoho.com ([136.143.188.112]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rlRaB-0004ep-GZ for guix-devel@gnu.org; Sat, 16 Mar 2024 06:48:09 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1710586077; cv=none; d=zohomail.com; s=zohoarc; b=ZYSfR5Zc3nAyoz9m89rHhTiX9l5juRnbZNMRkwsstDQw8e0kuzBg8evPiZ4yxvDGi/0Kq5xxjpcPEangUJM1dSgr+uBp0Cm+NgXFmqtdZIwUWcbwPmjvUfCkCkyAKeWp/jtTR65bj9rI7VAlUo5h9U+pHpj1IO1OrJodU3NmSIo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710586077; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=L9IR0VqoN1nwCRCj9PzTDltD+V48O6y11GDXOZ7Wz30=; b=QtOeVsTsDq4VDo+SkOHAgXEBhcQoxeuMCNsntIvjFuy1TfbsSKTLMDD3WbklE2kVFZrHl3H9cBISN8XO5Slt7WYUCxBdhZlZF1jFIXWWpZJ/hG7XczK9YS8wYpogu+mv96ijzb7Seab3zDb3rUqeNam5xilPSZHDaOVUebrN37U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=excalamus.com; spf=pass smtp.mailfrom=matt@excalamus.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1710586077; s=zmail; d=excalamus.com; i=matt@excalamus.com; h=Date:Date:From:From:To:To:Cc:Cc:Message-Id:Message-Id:In-Reply-To:References:Subject:Subject:MIME-Version:Content-Type:Reply-To; bh=L9IR0VqoN1nwCRCj9PzTDltD+V48O6y11GDXOZ7Wz30=; b=bCfIPhUX/vLUB8hgEO/FUHIEUxWa7itGg6k012VcXHKStTdoF/+zJdz3/GIX4o7U aEZdaH8v63I+NMDBMDATuMGk6FRC/PobOU4wObbYHiGAqZ+zwTLhO7FnV6RXwBSXRM3 e5LM0DkA2wr3WMtQRJcfvB5IRs6Q36VBfH41ry/g= Received: from mail.zoho.com by mx.zohomail.com with SMTP id 1710586074414119.30595761018651; Sat, 16 Mar 2024 03:47:54 -0700 (PDT) Date: Sat, 16 Mar 2024 11:47:54 +0100 From: Matt To: "pelzflorian (Florian Pelz)" Cc: "Maxim Cournoyer" , "Christian Miller" , "guix-devel" , "Josselin Poiret" Message-Id: <18e46e0150a.126718be4584704.7946677375549431621@excalamus.com> In-Reply-To: <87le6ou5ly.fsf@pelzflorian.de> References: <87a5p8yn4p.fsf@dadoes.de> <18d0e410102.e16898001715108.8020629039859398477@excalamus.com> <878r4ml93e.fsf@gmail.com> <18d23870de2.119d4f41c239950.5543896370981537109@excalamus.com> <18d48373140.10c55a4722276191.1969374822318990762@excalamus.com> <87r0h5ray4.fsf@gmail.com> <18dccf417d0.ca418748214075.562011919630800442@excalamus.com> <87y1bboq2i.fsf@gmail.com> <18dd741c397.eb3e3c20130225.478777462592413812@excalamus.com> <18dff5f7ac0.12981499e295073.4475195706110749663@excalamus.com> <87zfvbgu3q.fsf_-_@pelzflorian.de> <18e154a064f.10b18ae281601105.807357574739020306@excalamus.com> <87bk7qnfd5.fsf@pelzflorian.de> <18e280dc65a.fb9272352515573.111358157668309553@excalamus.com> <87le6ou5ly.fsf@pelzflorian.de> Subject: Re: doc: installation: fix ~root confusion (was Re: doc: Removing much of Binary Installation) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_1910636_704032598.1710586074379" Importance: Medium User-Agent: Zoho Mail X-Mailer: Zoho Mail X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-1.1.0/210.582.53 Received-SPF: pass client-ip=136.143.188.112; envelope-from=matt@excalamus.com; helo=sender4-pp-f112.zoho.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -8.71 X-Spam-Score: -8.71 X-Migadu-Queue-Id: AB7BD14F64 X-Migadu-Scanner: mx13.migadu.com X-TUID: ncBHS58xEppc ------=_Part_1910636_704032598.1710586074379 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable There are several actions which we have deferred and other topics which still need to be addressed, such as those raised by Vagrant and Suhail. My hope is to 1) resolve and merge this immediate patch, as we appear to be converging on a consensus, 2) discuss how we could better handle documentation changes than how I've handled them here (that is, in one ever evolving diff), 3) compile a list of deferred actions, 4) compile a list of deferred topics, and 5) address points 3 and 4 according to 2. ---- On Mon, 11 Mar 2024 16:54:01 +0100 pelzflorian (Florian Pelz) wrote = --- > Hi Matt. I would almost want to push your changes, but we still > disagree on some wordings. I'm glad to hear the suggested changes are more acceptable than not. Let's do what we need to get things right. > Yes, however the removal means that we should move the sections > > * 2.2 Requirements > * 2.3 Running the Test Suite > > to the Contributing manual in doc/contributing.texi. WDYT? You said, > it could be a separate discussion, but in my opinion it would be part of > the same patch. I was thinking of the opposite, of moving "Building from Git" into Installation. What you say makes more sense and I agree. Since the suggested patch is already quite complex, I have not added moving Sections 2.2 and 2.3 to the changes. I propose we make the move in a separate commit. > > +@cindex foreign distro > > +@cindex Guix System > > =E2=80=9C@cindex Guix System=E2=80=9D is inappropriate, because instructi= ons on Guix > System are not here. Removed. Good catch! > > +You can install the Guix package management tool on top of an existing > > +GNU/Linux or GNU/Hurd system@footnote{Currently only the Linux-libre > > +kernel is fully supported. [=E2=80=A6] > > No. > > First of all, using guix-install.sh as per your instructions, one > installs the Guix distribution *and* package management tool. Either > say =E2=80=9CYou can install the Guix package management tool and distrib= ution=E2=80=9D > or =E2=80=9CYou can install Guix=E2=80=9D. I'm afraid I don't follow. Where do you see the suggested changes confusing the installation process for Guix as a distribution and Guix as a package management tool? The sentence you quote is the suggested first sentence for the Chapter 2: Installation. The complete sentence reads, "You can install the Guix package management tool on top of an existing GNU/Linux or GNU/Hurd system(1), referred to as a "foreign distro", or as a standalone operating system distribution, the "Guix System"." It literally says Guix is a package manager or a distribution. No mention of 'guix-install.sh' is made on that page. The current "introduction" to Chapter 2: Installation is this: "Note: We recommend the use of this to install Guix on top of a running GNU/Linux system, thereafter called a foreign distro. The script automates the download, installation, and initial configuration of Guix. It should be run as the root user." https://guix.gnu.org/en/manual/devel/en/html_node/Installation.html Maybe the diff didn't apply correctly? Maybe it's confusing how the Texinfo syntax puts the footnote markup in the middle of the source sentence, even though footnotes render at the bottom of the page? > Next, I believe Guix cannot currently be built on existing GNU/Hurd > systems, because guile-fibers does not work. I do not really know > enough, but I would not mention Hurd support. The are two issues here, what is said and what should be said. Regarding what is said, the section we're talking about is for installing not building. You *can* install the Guix package management tool on top of an existing GNU/Hurd system. This is exactly what the suggested changes say, minus the emphasis. As far as I know, it's true: 1. https://guix.gnu.org/en/blog/2020/a-hello-world-virtual-machine-running-= the-hurd/ 2. https://guix.gnu.org/en/blog/2020/childhurds-and-substitutes/ Further, the manual already mentions Hurd support: https://guix.gnu.org/en/manual/devel/en/html_node/operating_002dsystem-Refe= rence.html Beyond the manual, there are two blog posts (linked above) which have expli= cit sections about why it makes sense to develop for Hurd. Code for Hurd is mainlined with 80 files in the master branch providing Hurd support. I get it, it's the Hurd. Running Guix on Hurd was part of a joke. Correct me if I'm wrong, though: Hurd support wasn't the punchline, ending support for Linux was. The part that said, "running on the Hurd was always a goal for Guix" is sincere. So, what should be said is that Hurd support is limited. Any errors are bugs, either for Guix or for upstream. I've updated the footnote to warn that Hurd support is currently limited. > Additionally =E2=80=9Conly the Linux-libre kernel=E2=80=9D is incorrect, = because > running Guix on non-libre Linux is fully supported. Running Guix > System there is not supported (by us). Excellent point: the package manager is indeed supported on non-free distros. I had carelessly copied the footnote, and the text containing thi= s issue, from another section. The update on the previous point, regarding Hurd support, removes this issue by removing mention of Linux. > >> Therefore, the sentence would have to be removed: =E2=80=9CThe followi= ng > >> sections describe two methods of installation, binary installation > >> and building from source.=E2=80=9D > > > > I've removed that sentence for a different reason. I also revised the > > sentence, "This is often quicker than installing from source, which is > > described in the next sections", to simply, "described later". > > > > The reason is that Chapter 2 doesn't currently explain building or > > installing from source. Building and installing from source is > > currently covered much later in Section 22.1. Whether or not the > > Installation section should cover building from source is a separate > > issue and shouldn't be part of this discussion. > > This could be: > > described later (@pxref{Building from Git}). Updated. > >> Matt matt@excalamus.com> writes: > >> > - Add commas in appropriate places; after "For...Ubuntu-based > >> > systems", "Likewise", and the 'or' within the list of substitutes > >> > >> I=E2=80=99m not a native speaker, but I believe the commas are not > >> necessary. There particularly does not need to be an Oxford comma > >> before =E2=80=98or=E2=80=99. There could be, but there is no reason t= o change it. > > > > Ah, the One True Brace Style of natural language :) > > > > I think there's already enough controversy in this thread. I've change= d it back :) > > :D However, please also do not change: > > > -Likewise on openSUSE: > > +Likewise, on openSUSE: Corrected. > >> Similarly, IMO the nuances are more appropriate in the old wording > >> =E2=80=9CFor Debian or a derivative such as Ubuntu,=E2=80=9D rather th= an your change > >> =E2=80=9CFor Debian and Ubuntu-based systems=E2=80=9D. > > > > The current wording is, "If you're running Debian or a derivative such > > as Ubuntu..." None of the suggested changes include the wording you > > give. > > > > What are the nuances? If they matter, we should probably make them exp= licit. > > The nuance is that Ubuntu is a derivative of Debian. It can be > bootstrapped with Debian=E2=80=99s dpkg, although I did not follow a rece= nt > e-mail thread on how to do this from a Guix-provided dpkg. Unless there's something about this nuance which directly affects the installation process, I don't think the distinction warrants mention. I opted to ignore the distinction and use "Debian and Ubuntu-based systems" because many popular distros, such as Ubuntu, Linux Mint, Zorin OS, Elementary OS, Linux Lite, and Pop!_OS, are known for being "based on Ubuntu." The relevant information for users of these systems is not that they're derivatives of Debian, it's that this is the installation process for such systems. > > +@quotation Note > > +By default, binary installations of Guix build @emph{everything} from > > +source. This makes each installation and upgrade very expensive. > > +@xref{On Trusting Binaries} for a discussion of why this is the defaul= t. > > [=E2=80=A6] > > - > > -@quotation Note > > -If you do not enable substitutes, Guix will end up building > > -@emph{everything} from source on your machine, making each installatio= n > > -and upgrade very expensive. @xref{On Trusting Binaries}, for a > > -discussion of reasons why one might want do disable substitutes. > > @end quotation > > Better not change the wording? I believe enabling substitutes is not > the default. My assumption is that the vast majority of readers are not installing Guix on distros whose default is to compile from source. The concept and jargon of substitutes, let alone the idea of compiling from source, is likely completely unknown to most readers. Readers likely expect, what we would call, substitutes to be enabled. As far as I understand, the default behavior is opposite what most readers would expect: substitutes are *not* enabled by default for binary installations of Guix. The suggested wording avoids the jargon of "substitutes" in favor of simpler language which directly addresses what the reader likely cares about: the default Guix behavior is to compile from source which takes a long time. It also frames the discussion of "On Trusting Binaries" from the perspective of "the expensive default was decided by careful consideration." The current wording, "why one might want to disable substitutes," involves jargon (substitutes) and a negative (disable) which requires understanding what a substitute is, what the default is, and whether "disabling" is contrary to the default. That complexity is unnecessary, as I believe the suggested changes demonstrate. I think a valid critique of the suggested changes is "why say 'very expensive' instead of 'takes a long time'?" The suggestion uses the phrase "very expensive" instead of "takes a long time" because 1) "very expensive" is the current language and 2) wall time is only one of several expenses; others are energy and CPU cycles. This is a situation where I think it's okay to be non-specific. The point is "the default behavior may seem undesirable" and the word "expensive" is typically considered undesirable. > IMHO The discussion about whether Upgrading Guix should recommend to > edit the systemd service of the Debian guix package is for a > separate second patch. Agreed. ------=_Part_1910636_704032598.1710586074379 Content-Type: application/octet-stream; name=v04-refactor-binary-installation-section.diff Content-Transfer-Encoding: base64 X-ZM_AttachId: 139298788743800740 Content-Disposition: attachment; filename=v04-refactor-binary-installation-section.diff ZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmluZGV4IDc5NmFjMDAy OGYuLjg0NGU4ZGYxMzUgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysrIGIvZG9jL2d1aXgu dGV4aQpAQCAtNjkxLDIwICs2OTEsMjAgQEAgdG8gam9pbiEgIEB4cmVme0NvbnRyaWJ1dGluZ30s IGZvciBpbmZvcm1hdGlvbiBhYm91dCBob3cgeW91IGNhbiBoZWxwLgogQGNoYXB0ZXIgSW5zdGFs bGF0aW9uCiAKIEBjaW5kZXggaW5zdGFsbGluZyBHdWl4CitAY2luZGV4IGZvcmVpZ24gZGlzdHJv CitZb3UgY2FuIGluc3RhbGwgdGhlIEd1aXggcGFja2FnZSBtYW5hZ2VtZW50IHRvb2wgb24gdG9w IG9mIGFuIGV4aXN0aW5nCitHTlUvTGludXggb3IgR05VL0h1cmQgc3lzdGVtQGZvb3Rub3Rle0h1 cmQgc3VwcG9ydCBpcyBjdXJyZW50bHkKK2xpbWl0ZWQufSwgcmVmZXJyZWQgdG8gYXMgYSBAZGZu e2ZvcmVpZ24gZGlzdHJvfSwgb3IgYXMgYSBzdGFuZGFsb25lCitvcGVyYXRpbmcgc3lzdGVtIGRp c3RyaWJ1dGlvbiwgdGhlIEBkZm57R3VpeEB0aWV7fVN5c3RlbX0uICBUaGlzIHNlY3Rpb24KK2lz IGNvbmNlcm5lZCB3aXRoIHRoZSBpbnN0YWxsYXRpb24gb2YgR3VpeCBvbiBhIGZvcmVpZ24gZGlz dHJvLiAgSWYsCitpbnN0ZWFkLCB5b3Ugd2FudCB0byBpbnN0YWxsIHRoZSBjb21wbGV0ZSBHTlUg b3BlcmF0aW5nIHN5c3RlbSwKK0BweHJlZntTeXN0ZW0gSW5zdGFsbGF0aW9ufS4KIAotQHF1b3Rh dGlvbiBOb3RlCi1XZSByZWNvbW1lbmQgdGhlIHVzZSBvZiB0aGlzCi1AdXJlZntodHRwczovL2dp dC5zYXZhbm5haC5nbnUub3JnL2NnaXQvZ3VpeC5naXQvcGxhaW4vZXRjL2d1aXgtaW5zdGFsbC5z aCwKLXNoZWxsIGluc3RhbGxlciBzY3JpcHR9IHRvIGluc3RhbGwgR3VpeCBvbiB0b3Agb2YgYSBy dW5uaW5nIEdOVS9MaW51eCBzeXN0ZW0sCi10aGVyZWFmdGVyIGNhbGxlZCBhIEBkZm57Zm9yZWln biBkaXN0cm99LkBmb290bm90ZXtUaGlzIHNlY3Rpb24gaXMgY29uY2VybmVkCi13aXRoIHRoZSBp bnN0YWxsYXRpb24gb2YgdGhlIHBhY2thZ2UgbWFuYWdlciwgd2hpY2ggY2FuIGJlIGRvbmUgb24g dG9wIG9mIGEKLXJ1bm5pbmcgR05VL0xpbnV4IHN5c3RlbS4gIElmLCBpbnN0ZWFkLCB5b3Ugd2Fu dCB0byBpbnN0YWxsIHRoZSBjb21wbGV0ZSBHTlUKLW9wZXJhdGluZyBzeXN0ZW0sIEBweHJlZntT eXN0ZW0gSW5zdGFsbGF0aW9ufS59IFRoZSBzY3JpcHQgYXV0b21hdGVzIHRoZQotZG93bmxvYWQs IGluc3RhbGxhdGlvbiwgYW5kIGluaXRpYWwgY29uZmlndXJhdGlvbiBvZiBHdWl4LiAgSXQgc2hv dWxkIGJlIHJ1bgotYXMgdGhlIHJvb3QgdXNlci4KK0BxdW90YXRpb24gSW1wb3J0YW50CitUaGlz IHNlY3Rpb24gb25seSBhcHBsaWVzIHRvIHN5c3RlbXMgd2l0aG91dCBHdWl4LiAgRm9sbG93aW5n IGl0IGZvcgorZXhpc3RpbmcgR3VpeCBpbnN0YWxsYXRpb25zIHdpbGwgb3ZlcndyaXRlIGltcG9y dGFudCBzeXN0ZW0gZmlsZXMuCiBAZW5kIHF1b3RhdGlvbgogCi1AY2luZGV4IGZvcmVpZ24gZGlz dHJvCiBAY2luZGV4IGRpcmVjdG9yaWVzIHJlbGF0ZWQgdG8gZm9yZWlnbiBkaXN0cm8KIFdoZW4g aW5zdGFsbGVkIG9uIGEgZm9yZWlnbiBkaXN0cm8sIEdOVUB0aWV7fUd1aXggY29tcGxlbWVudHMg dGhlIGF2YWlsYWJsZQogdG9vbHMgd2l0aG91dCBpbnRlcmZlcmVuY2UuICBJdHMgZGF0YSBsaXZl cyBleGNsdXNpdmVseSBpbiB0d28gZGlyZWN0b3JpZXMsCkBAIC03MTQsMTEgKzcxNCw2IEBAIHN1 Y2ggYXMgQGZpbGV7L2V0Y30sIGFyZSBsZWZ0IHVudG91Y2hlZC4KIE9uY2UgaW5zdGFsbGVkLCBH dWl4IGNhbiBiZSB1cGRhdGVkIGJ5IHJ1bm5pbmcgQGNvbW1hbmR7Z3VpeCBwdWxsfQogKEBweHJl ZntJbnZva2luZyBndWl4IHB1bGx9KS4KIAotSWYgeW91IHByZWZlciB0byBwZXJmb3JtIHRoZSBp bnN0YWxsYXRpb24gc3RlcHMgbWFudWFsbHkgb3Igd2FudCB0byB0d2VhawotdGhlbSwgeW91IG1h eSBmaW5kIHRoZSBmb2xsb3dpbmcgc3Vic2VjdGlvbnMgdXNlZnVsLiAgVGhleSBkZXNjcmliZSB0 aGUKLXNvZnR3YXJlIHJlcXVpcmVtZW50cyBvZiBHdWl4LCBhcyB3ZWxsIGFzIGhvdyB0byBpbnN0 YWxsIGl0IG1hbnVhbGx5IGFuZCBnZXQKLXJlYWR5IHRvIHVzZSBpdC4KLQogQG1lbnUKICogQmlu YXJ5IEluc3RhbGxhdGlvbjo6ICAgICAgICAgR2V0dGluZyBHdWl4IHJ1bm5pbmcgaW4gbm8gdGlt ZSEKICogUmVxdWlyZW1lbnRzOjogICAgICAgICAgICAgICAgU29mdHdhcmUgbmVlZGVkIHRvIGJ1 aWxkIGFuZCBydW4gR3VpeC4KQEAgLTczNiwzMSArNzMxLDIwIEBAIHJlYWR5IHRvIHVzZSBpdC4K IEBjaW5kZXggaW5zdGFsbGVyIHNjcmlwdAogVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgdG8g aW5zdGFsbCBHdWl4IGZyb20gYSBzZWxmLWNvbnRhaW5lZCB0YXJiYWxsCiBwcm92aWRpbmcgYmlu YXJpZXMgZm9yIEd1aXggYW5kIGZvciBhbGwgaXRzIGRlcGVuZGVuY2llcy4gIFRoaXMgaXMgb2Z0 ZW4KLXF1aWNrZXIgdGhhbiBpbnN0YWxsaW5nIGZyb20gc291cmNlLCB3aGljaCBpcyBkZXNjcmli ZWQgaW4gdGhlIG5leHQKLXNlY3Rpb25zLiAgQmluYXJ5IGluc3RhbGxhdGlvbiByZXF1aXJlcyBh IHN5c3RlbSB1c2luZyBhIEh1cmQgb3IgTGludXgKLWtlcm5lbDsgdGhlIEdOVUB0aWV7fXRhciBh bmQgWHogY29tbWFuZHMgbXVzdCBhbHNvIGJlIGF2YWlsYWJsZS4KK3F1aWNrZXIgdGhhbiBpbnN0 YWxsaW5nIGZyb20gc291cmNlLCBkZXNjcmliZWQgbGF0ZXIgKEBweHJlZntCdWlsZGluZworZnJv bSBHaXR9KS4KIAogQHF1b3RhdGlvbiBJbXBvcnRhbnQKIFRoaXMgc2VjdGlvbiBvbmx5IGFwcGxp ZXMgdG8gc3lzdGVtcyB3aXRob3V0IEd1aXguICBGb2xsb3dpbmcgaXQgZm9yCiBleGlzdGluZyBH dWl4IGluc3RhbGxhdGlvbnMgd2lsbCBvdmVyd3JpdGUgaW1wb3J0YW50IHN5c3RlbSBmaWxlcy4K K0BlbmQgcXVvdGF0aW9uCiAKLUBjIE5vdGUgZHVwbGljYXRlZCBmcm9tIHRoZSBgYEluc3RhbGxh dGlvbicnIG5vZGUuCi1XZSByZWNvbW1lbmQgdGhlIHVzZSBvZiB0aGlzCi1AdXJlZntodHRwczov L2dpdC5zYXZhbm5haC5nbnUub3JnL2NnaXQvZ3VpeC5naXQvcGxhaW4vZXRjL2d1aXgtaW5zdGFs bC5zaCwKLXNoZWxsIGluc3RhbGxlciBzY3JpcHR9LiAgVGhlIHNjcmlwdCBhdXRvbWF0ZXMgdGhl IGRvd25sb2FkLCBpbnN0YWxsYXRpb24sIGFuZAotaW5pdGlhbCBjb25maWd1cmF0aW9uIHN0ZXBz IGRlc2NyaWJlZCBiZWxvdy4gIEl0IHNob3VsZCBiZSBydW4gYXMgdGhlIHJvb3QKLXVzZXIuICBB cyByb290LCB5b3UgY2FuIHRodXMgcnVuIHRoaXM6Ci0KLUBleGFtcGxlCi1jZCAvdG1wCi13Z2V0 IGh0dHBzOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvY2dpdC9ndWl4LmdpdC9wbGFpbi9ldGMvZ3Vp eC1pbnN0YWxsLnNoCi1jaG1vZCAreCBndWl4LWluc3RhbGwuc2gKLS4vZ3VpeC1pbnN0YWxsLnNo Ci1AZW5kIGV4YW1wbGUKK1NvbWUgR05VL0xpbnV4IGRpc3RyaWJ1dGlvbnMsIHN1Y2ggYXMgRGVi aWFuLCBVYnVudHUsIGFuZCBvcGVuU1VTRQorcHJvdmlkZSBHdWl4IHRocm91Z2ggdGhlaXIgb3du IHBhY2thZ2UgbWFuYWdlcnMuICBUaGUgdmVyc2lvbiBvZiBHdWl4CittYXkgYmUgb2xkZXIgdGhh biBAdmFsdWV7VkVSU0lPTn0gYnV0IHlvdSBjYW4gdXBkYXRlIGl0IGFmdGVyd2FyZHMgYnkKK3J1 bm5pbmcgQHNhbXB7Z3VpeCBwdWxsfS4KIAotSWYgeW91J3JlIHJ1bm5pbmcgRGViaWFuIG9yIGEg ZGVyaXZhdGl2ZSBzdWNoIGFzIFVidW50dSwgeW91IGNhbiBpbnN0ZWFkCi1pbnN0YWxsIHRoZSBw YWNrYWdlIChpdCBtaWdodCBiZSBhIHZlcnNpb24gb2xkZXIgdGhhbiBAdmFsdWV7VkVSU0lPTn0K LWJ1dCB5b3UgY2FuIHVwZGF0ZSBpdCBhZnRlcndhcmRzIGJ5IHJ1bm5pbmcgQHNhbXB7Z3VpeCBw dWxsfSk6CitGb3IgRGViaWFuIGFuZCBVYnVudHUtYmFzZWQgc3lzdGVtcywgY2FsbDoKIAogQGV4 YW1wbGUKIHN1ZG8gYXB0IGluc3RhbGwgZ3VpeApAQCAtNzcyLDE3NCArNzU2LDQwIEBAIExpa2V3 aXNlIG9uIG9wZW5TVVNFOgogc3VkbyB6eXBwZXIgaW5zdGFsbCBndWl4CiBAZW5kIGV4YW1wbGUK IAotV2hlbiB5b3UncmUgZG9uZSwgQHB4cmVme0FwcGxpY2F0aW9uIFNldHVwfSBmb3IgZXh0cmEg Y29uZmlndXJhdGlvbiB5b3UKLW1pZ2h0IG5lZWQsIGFuZCBAcmVme0dldHRpbmcgU3RhcnRlZH0g Zm9yIHlvdXIgZmlyc3Qgc3RlcHMhCi1AZW5kIHF1b3RhdGlvbgotCi1JbnN0YWxsaW5nIGdvZXMg YWxvbmcgdGhlc2UgbGluZXM6Ci0KLUBlbnVtZXJhdGUKLUBpdGVtCi1AY2luZGV4IGRvd25sb2Fk aW5nIEd1aXggYmluYXJ5Ci1Eb3dubG9hZCB0aGUgYmluYXJ5IHRhcmJhbGwgZnJvbQotQGluZGlj YXRldXJse0B2YWx1ZXtCQVNFLVVSTH0vZ3VpeC1iaW5hcnktQHZhbHVle1ZFUlNJT059Lng4Nl82 NC1saW51eC50YXIueHp9LAotd2hlcmUgQGNvZGV7eDg2XzY0LWxpbnV4fSBjYW4gYmUgcmVwbGFj ZWQgd2l0aCBAY29kZXtpNjg2LWxpbnV4fSBmb3IgYW4KLUBjb2Rle2k2ODZ9ICgzMi1iaXRzKSBt YWNoaW5lIGFscmVhZHkgcnVubmluZyB0aGUga2VybmVsIExpbnV4LCBhbmQgc28gb24KLShAcHhy ZWZ7R05VIERpc3RyaWJ1dGlvbn0pLgotCi1AYyBUaGUgZm9sbG93aW5nIGlzIHNvbWV3aGF0IGR1 cGxpY2F0ZWQgaW4gYGBTeXN0ZW0gSW5zdGFsbGF0aW9uJycuCi1NYWtlIHN1cmUgdG8gZG93bmxv YWQgdGhlIGFzc29jaWF0ZWQgQGZpbGV7LnNpZ30gZmlsZSBhbmQgdG8gdmVyaWZ5IHRoZQotYXV0 aGVudGljaXR5IG9mIHRoZSB0YXJiYWxsIGFnYWluc3QgaXQsIGFsb25nIHRoZXNlIGxpbmVzOgot Ci1AZXhhbXBsZQotJCB3Z2V0IEB2YWx1ZXtCQVNFLVVSTH0vZ3VpeC1iaW5hcnktQHZhbHVle1ZF UlNJT059Lng4Nl82NC1saW51eC50YXIueHouc2lnCi0kIGdwZyAtLXZlcmlmeSBndWl4LWJpbmFy eS1AdmFsdWV7VkVSU0lPTn0ueDg2XzY0LWxpbnV4LnRhci54ei5zaWcKLUBlbmQgZXhhbXBsZQot Ci1JZiB0aGF0IGNvbW1hbmQgZmFpbHMgYmVjYXVzZSB5b3UgZG8gbm90IGhhdmUgdGhlIHJlcXVp cmVkIHB1YmxpYyBrZXksCi10aGVuIHJ1biB0aGlzIGNvbW1hbmQgdG8gaW1wb3J0IGl0OgotCi1A ZXhhbXBsZQotJCB3Z2V0ICdAdmFsdWV7T1BFTlBHUC1TSUdOSU5HLUtFWS1VUkx9JyBcCi0gICAg ICAtcU8gLSB8IGdwZyAtLWltcG9ydCAtCi1AZW5kIGV4YW1wbGUKLQotQG5vaW5kZW50Ci1hbmQg cmVydW4gdGhlIEBjb2Rle2dwZyAtLXZlcmlmeX0gY29tbWFuZC4KK1RoZSBHdWl4IHByb2plY3Qg YWxzbyBwcm92aWRlcyBhIHNoZWxsIHNjcmlwdCwgQGZpbGV7Z3VpeC1pbnN0YWxsLnNofSwKK3do aWNoIGF1dG9tYXRlcyB0aGUgYmluYXJ5IGluc3RhbGxhdGlvbiBwcm9jZXNzIHdpdGhvdXQgdXNl IG9mIGEgZm9yZWlnbgorZGlzdHJvIHBhY2thZ2UKK21hbmFnZXJAZm9vdG5vdGV7QHVyZWZ7aHR0 cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9jZ2l0L2d1aXguZ2l0L3BsYWluL2V0Yy9ndWl4LWlu c3RhbGwuc2h9fS4KK1VzZSBvZiBAZmlsZXtndWl4LWluc3RhbGwuc2h9IHJlcXVpcmVzIEJhc2gs IEdudVBHLCBHTlVAdGlle310YXIsIHdnZXQsCithbmQgWHouCiAKLVRha2Ugbm90ZSB0aGF0IGEg d2FybmluZyBsaWtlIGBgVGhpcyBrZXkgaXMgbm90IGNlcnRpZmllZCB3aXRoIGEgdHJ1c3RlZAot c2lnbmF0dXJlIScnIGlzIG5vcm1hbC4KK1RoZSBzY3JpcHQgZ3VpZGVzIHlvdSB0aHJvdWdoIHRo ZSBmb2xsb3dpbmc6CiAKLUBjIGVuZCBhdXRoZW50aWNhdGlvbiBwYXJ0CitAaXRlbWl6ZQorQGl0 ZW0gRG93bmxvYWQgYW5kIGV4dHJhY3QgdGhlIGJpbmFyeSB0YXJiYWxsCitAaXRlbSBTZXQgdXAg dGhlIGJ1aWxkIGRhZW1vbgorQGl0ZW0gTWFrZSB0aGUg4oCYZ3VpeOKAmSBjb21tYW5kIGF2YWls YWJsZSB0byBub24tcm9vdCB1c2VycworQGl0ZW0gQ29uZmlndXJlIHN1YnN0aXR1dGUgc2VydmVy cworQGVuZCBpdGVtaXplCiAKLUBpdGVtCi1Ob3csIHlvdSBuZWVkIHRvIGJlY29tZSB0aGUgQGNv ZGV7cm9vdH0gdXNlci4gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbiwKLXlvdSBtYXkg aGF2ZSB0byBydW4gQGNvZGV7c3UgLX0gb3IgQGNvZGV7c3VkbyAtaX0uICBBcyBAY29kZXtyb290 fSwgcnVuOgorQXMgcm9vdCwgcnVuOgogCiBAZXhhbXBsZQogIyBjZCAvdG1wCi0jIHRhciAtLXdh cm5pbmc9bm8tdGltZXN0YW1wIC14ZiBcCi0gICAgIC9wYXRoL3RvL2d1aXgtYmluYXJ5LUB2YWx1 ZXtWRVJTSU9OfS54ODZfNjQtbGludXgudGFyLnh6Ci0jIG12IHZhci9ndWl4IC92YXIvICYmIG12 IGdudSAvCi1AZW5kIGV4YW1wbGUKLQotVGhpcyBjcmVhdGVzIEBmaWxley9nbnUvc3RvcmV9IChA cHhyZWZ7VGhlIFN0b3JlfSkgYW5kIEBmaWxley92YXIvZ3VpeH0uCi1UaGUgbGF0dGVyIGNvbnRh aW5zIGEgcmVhZHktdG8tdXNlIHByb2ZpbGUgZm9yIEBjb2Rle3Jvb3R9IChzZWUgbmV4dAotc3Rl cCkuCi0KLURvIEBlbXBoe25vdH0gdW5wYWNrIHRoZSB0YXJiYWxsIG9uIGEgd29ya2luZyBHdWl4 IHN5c3RlbSBzaW5jZSB0aGF0Ci13b3VsZCBvdmVyd3JpdGUgaXRzIG93biBlc3NlbnRpYWwgZmls ZXMuCi0KLVRoZSBAb3B0aW9uey0td2FybmluZz1uby10aW1lc3RhbXB9IG9wdGlvbiBtYWtlcyBz dXJlIEdOVUB0aWV7fXRhciBkb2VzCi1ub3QgZW1pdCB3YXJuaW5ncyBhYm91dCBgYGltcGxhdXNp Ymx5IG9sZCB0aW1lIHN0YW1wcycnIChzdWNoCi13YXJuaW5ncyB3ZXJlIHRyaWdnZXJlZCBieSBH TlVAdGlle310YXIgMS4yNiBhbmQgb2xkZXI7IHJlY2VudAotdmVyc2lvbnMgYXJlIGZpbmUpLgot VGhleSBzdGVtIGZyb20gdGhlIGZhY3QgdGhhdCBhbGwgdGhlCi1maWxlcyBpbiB0aGUgYXJjaGl2 ZSBoYXZlIHRoZWlyIG1vZGlmaWNhdGlvbiB0aW1lIHNldCB0byAxICh3aGljaAotbWVhbnMgSmFu dWFyeSAxc3QsIDE5NzApLiAgVGhpcyBpcyBkb25lIG9uIHB1cnBvc2UgdG8gbWFrZSBzdXJlIHRo ZQotYXJjaGl2ZSBjb250ZW50IGlzIGluZGVwZW5kZW50IG9mIGl0cyBjcmVhdGlvbiB0aW1lLCB0 aHVzIG1ha2luZyBpdAotcmVwcm9kdWNpYmxlLgotCi1AaXRlbQotTWFrZSB0aGUgcHJvZmlsZSBh dmFpbGFibGUgdW5kZXIgQGZpbGV7fnJvb3QvLmNvbmZpZy9ndWl4L2N1cnJlbnR9LCB3aGljaCBp cwotd2hlcmUgQGNvbW1hbmR7Z3VpeCBwdWxsfSB3aWxsIGluc3RhbGwgdXBkYXRlcyAoQHB4cmVm e0ludm9raW5nIGd1aXggcHVsbH0pOgotCi1AZXhhbXBsZQotIyBta2RpciAtcCB+cm9vdC8uY29u ZmlnL2d1aXgKLSMgbG4gLXNmIC92YXIvZ3VpeC9wcm9maWxlcy9wZXItdXNlci9yb290L2N1cnJl bnQtZ3VpeCBcCi0gICAgICAgICB+cm9vdC8uY29uZmlnL2d1aXgvY3VycmVudAotQGVuZCBleGFt cGxlCi0KLVNvdXJjZSBAZmlsZXtldGMvcHJvZmlsZX0gdG8gYXVnbWVudCBAZW52e1BBVEh9IGFu ZCBvdGhlciByZWxldmFudAotZW52aXJvbm1lbnQgdmFyaWFibGVzOgotCi1AZXhhbXBsZQotIyBH VUlYX1BST0ZJTEU9ImBlY2hvIH5yb290YC8uY29uZmlnL2d1aXgvY3VycmVudCIgOyBcCi0gIHNv dXJjZSAkR1VJWF9QUk9GSUxFL2V0Yy9wcm9maWxlCi1AZW5kIGV4YW1wbGUKLQotQGl0ZW0KLUNy ZWF0ZSB0aGUgZ3JvdXAgYW5kIHVzZXIgYWNjb3VudHMgZm9yIGJ1aWxkIHVzZXJzIGFzIGV4cGxh aW5lZCBiZWxvdwotKEBweHJlZntCdWlsZCBFbnZpcm9ubWVudCBTZXR1cH0pLgotCi1AaXRlbQot UnVuIHRoZSBkYWVtb24sIGFuZCBzZXQgaXQgdG8gYXV0b21hdGljYWxseSBzdGFydCBvbiBib290 LgotCi1JZiB5b3VyIGhvc3QgZGlzdHJvIHVzZXMgdGhlIHN5c3RlbWQgaW5pdCBzeXN0ZW0sIHRo aXMgY2FuIGJlIGFjaGlldmVkCi13aXRoIHRoZXNlIGNvbW1hbmRzOgotCi1AYyBWZXJzaW9ucyBv ZiBzeXN0ZW1kIHRoYXQgc3VwcG9ydGVkIHN5bWxpbmtlZCBzZXJ2aWNlIGZpbGVzIGFyZSBub3QK LUBjIHlldCB3aWRlbHkgZGVwbG95ZWQsIHNvIHdlIHNob3VsZCBzdWdnZXN0IHRoYXQgdXNlcnMg Y29weSB0aGUgc2VydmljZQotQGMgZmlsZXMgaW50byBwbGFjZS4KLUBjCi1AYyBTZWUgdGhpcyB0 aHJlYWQgZm9yIG1vcmUgaW5mb3JtYXRpb246Ci1AYyBodHRwczovL2xpc3RzLmdudS5vcmcvYXJj aGl2ZS9odG1sL2d1aXgtZGV2ZWwvMjAxNy0wMS9tc2cwMTE5OS5odG1sCi0KLUBleGFtcGxlCi0j IGNwIH5yb290Ly5jb25maWcvZ3VpeC9jdXJyZW50L2xpYi9zeXN0ZW1kL3N5c3RlbS9nbnUtc3Rv cmUubW91bnQgXAotICAgICB+cm9vdC8uY29uZmlnL2d1aXgvY3VycmVudC9saWIvc3lzdGVtZC9z eXN0ZW0vZ3VpeC1kYWVtb24uc2VydmljZSBcCi0gICAgIC9ldGMvc3lzdGVtZC9zeXN0ZW0vCi0j IHN5c3RlbWN0bCBlbmFibGUgLS1ub3cgZ251LXN0b3JlLm1vdW50IGd1aXgtZGFlbW9uCi1AZW5k IGV4YW1wbGUKLQotWW91IG1heSBhbHNvIHdhbnQgdG8gYXJyYW5nZSBmb3IgQGNvbW1hbmR7Z3Vp eCBnY30gdG8gcnVuIHBlcmlvZGljYWxseToKLQotQGV4YW1wbGUKLSMgY3AgfnJvb3QvLmNvbmZp Zy9ndWl4L2N1cnJlbnQvbGliL3N5c3RlbWQvc3lzdGVtL2d1aXgtZ2Muc2VydmljZSBcCi0gICAg IH5yb290Ly5jb25maWcvZ3VpeC9jdXJyZW50L2xpYi9zeXN0ZW1kL3N5c3RlbS9ndWl4LWdjLnRp bWVyIFwKLSAgICAgL2V0Yy9zeXN0ZW1kL3N5c3RlbS8KLSMgc3lzdGVtY3RsIGVuYWJsZSAtLW5v dyBndWl4LWdjLnRpbWVyCi1AZW5kIGV4YW1wbGUKLQotWW91IG1heSB3YW50IHRvIGVkaXQgQGZp bGV7Z3VpeC1nYy5zZXJ2aWNlfSB0byBhZGp1c3QgdGhlIGNvbW1hbmQgbGluZQotb3B0aW9ucyB0 byBmaXQgeW91ciBuZWVkcyAoQHB4cmVme0ludm9raW5nIGd1aXggZ2N9KS4KLQotSWYgeW91ciBo b3N0IGRpc3RybyB1c2VzIHRoZSBVcHN0YXJ0IGluaXQgc3lzdGVtOgotCi1AZXhhbXBsZQotIyBp bml0Y3RsIHJlbG9hZC1jb25maWd1cmF0aW9uCi0jIGNwIH5yb290Ly5jb25maWcvZ3VpeC9jdXJy ZW50L2xpYi91cHN0YXJ0L3N5c3RlbS9ndWl4LWRhZW1vbi5jb25mIFwKLSAgICAgL2V0Yy9pbml0 LwotIyBzdGFydCBndWl4LWRhZW1vbgotQGVuZCBleGFtcGxlCi0KLU90aGVyd2lzZSwgeW91IGNh biBzdGlsbCBzdGFydCB0aGUgZGFlbW9uIG1hbnVhbGx5IHdpdGg6Ci0KLUBleGFtcGxlCi0jIH5y b290Ly5jb25maWcvZ3VpeC9jdXJyZW50L2Jpbi9ndWl4LWRhZW1vbiBcCi0gICAgICAgLS1idWls ZC11c2Vycy1ncm91cD1ndWl4YnVpbGQKLUBlbmQgZXhhbXBsZQotCi1AaXRlbQotTWFrZSB0aGUg QGNvbW1hbmR7Z3VpeH0gY29tbWFuZCBhdmFpbGFibGUgdG8gb3RoZXIgdXNlcnMgb24gdGhlIG1h Y2hpbmUsCi1mb3IgaW5zdGFuY2Ugd2l0aDoKLQotQGV4YW1wbGUKLSMgbWtkaXIgLXAgL3Vzci9s b2NhbC9iaW4KLSMgY2QgL3Vzci9sb2NhbC9iaW4KLSMgbG4gLXMgL3Zhci9ndWl4L3Byb2ZpbGVz L3Blci11c2VyL3Jvb3QvY3VycmVudC1ndWl4L2Jpbi9ndWl4CisjIHdnZXQgaHR0cHM6Ly9naXQu c2F2YW5uYWguZ251Lm9yZy9jZ2l0L2d1aXguZ2l0L3BsYWluL2V0Yy9ndWl4LWluc3RhbGwuc2gK KyMgY2htb2QgK3ggZ3VpeC1pbnN0YWxsLnNoCisjIC4vZ3VpeC1pbnN0YWxsLnNoCiBAZW5kIGV4 YW1wbGUKIAotSXQgaXMgYWxzbyBhIGdvb2QgaWRlYSB0byBtYWtlIHRoZSBJbmZvIHZlcnNpb24g b2YgdGhpcyBtYW51YWwgYXZhaWxhYmxlCi10aGVyZToKLQotQGV4YW1wbGUKLSMgbWtkaXIgLXAg L3Vzci9sb2NhbC9zaGFyZS9pbmZvCi0jIGNkIC91c3IvbG9jYWwvc2hhcmUvaW5mbwotIyBmb3Ig aSBpbiAvdmFyL2d1aXgvcHJvZmlsZXMvcGVyLXVzZXIvcm9vdC9jdXJyZW50LWd1aXgvc2hhcmUv aW5mby8qIDsKLSAgZG8gbG4gLXMgJGkgOyBkb25lCi1AZW5kIGV4YW1wbGUKLQotVGhhdCB3YXks IGFzc3VtaW5nIEBmaWxley91c3IvbG9jYWwvc2hhcmUvaW5mb30gaXMgaW4gdGhlIHNlYXJjaCBw YXRoLAotcnVubmluZyBAY29tbWFuZHtpbmZvIGd1aXh9IHdpbGwgb3BlbiB0aGlzIG1hbnVhbCAo QHB4cmVme090aGVyIEluZm8KLURpcmVjdG9yaWVzLCwsIHRleGluZm8sIEdOVSBUZXhpbmZvfSwg Zm9yIG1vcmUgZGV0YWlscyBvbiBjaGFuZ2luZyB0aGUKLUluZm8gc2VhcmNoIHBhdGgpLgorQHF1 b3RhdGlvbiBOb3RlCitCeSBkZWZhdWx0LCBiaW5hcnkgaW5zdGFsbGF0aW9ucyBvZiBHdWl4IGJ1 aWxkIEBlbXBoe2V2ZXJ5dGhpbmd9IGZyb20KK3NvdXJjZS4gIFRoaXMgbWFrZXMgZWFjaCBpbnN0 YWxsYXRpb24gYW5kIHVwZ3JhZGUgdmVyeSBleHBlbnNpdmUuCitAeHJlZntPbiBUcnVzdGluZyBC aW5hcmllc30gZm9yIGEgZGlzY3Vzc2lvbiBvZiB3aHkgdGhpcyBpcyB0aGUgZGVmYXVsdC4KIAot QGl0ZW0KIEBjaW5kZXggc3Vic3RpdHV0ZXMsIGF1dGhvcml6YXRpb24gdGhlcmVvZgogVG8gdXNl IHN1YnN0aXR1dGVzIGZyb20gQGNvZGV7QHZhbHVle1NVQlNUSVRVVEUtU0VSVkVSLTF9fSwKIEBj b2Rle0B2YWx1ZXtTVUJTVElUVVRFLVNFUlZFUi0yfX0gb3IgYSBtaXJyb3IgKEBweHJlZntTdWJz dGl0dXRlc30pLAotYXV0aG9yaXplIHRoZW06Cit5b3UgbXVzdCBhdXRob3JpemUgdGhlbS4gIEZv ciBleGFtcGxlLAogCiBAZXhhbXBsZQogIyBndWl4IGFyY2hpdmUgLS1hdXRob3JpemUgPCBcCkBA IC05NDcsNDQgKzc5NywxMSBAQCBhdXRob3JpemUgdGhlbToKICMgZ3VpeCBhcmNoaXZlIC0tYXV0 aG9yaXplIDwgXAogICAgICB+cm9vdC8uY29uZmlnL2d1aXgvY3VycmVudC9zaGFyZS9ndWl4L0B2 YWx1ZXtTVUJTVElUVVRFLVNFUlZFUi0yfS5wdWIKIEBlbmQgZXhhbXBsZQotCi1AcXVvdGF0aW9u IE5vdGUKLUlmIHlvdSBkbyBub3QgZW5hYmxlIHN1YnN0aXR1dGVzLCBHdWl4IHdpbGwgZW5kIHVw IGJ1aWxkaW5nCi1AZW1waHtldmVyeXRoaW5nfSBmcm9tIHNvdXJjZSBvbiB5b3VyIG1hY2hpbmUs IG1ha2luZyBlYWNoIGluc3RhbGxhdGlvbgotYW5kIHVwZ3JhZGUgdmVyeSBleHBlbnNpdmUuICBA eHJlZntPbiBUcnVzdGluZyBCaW5hcmllc30sIGZvciBhCi1kaXNjdXNzaW9uIG9mIHJlYXNvbnMg d2h5IG9uZSBtaWdodCB3YW50IGRvIGRpc2FibGUgc3Vic3RpdHV0ZXMuCiBAZW5kIHF1b3RhdGlv bgogCi1AaXRlbQotRWFjaCB1c2VyIG1heSBuZWVkIHRvIHBlcmZvcm0gYSBmZXcgYWRkaXRpb25h bCBzdGVwcyB0byBtYWtlIHRoZWlyIEd1aXgKLWVudmlyb25tZW50IHJlYWR5IGZvciB1c2UsIEBw eHJlZntBcHBsaWNhdGlvbiBTZXR1cH0uCi1AZW5kIGVudW1lcmF0ZQotCi1Wb2lsw6AsIHRoZSBp bnN0YWxsYXRpb24gaXMgY29tcGxldGUhCi0KLVlvdSBjYW4gY29uZmlybSB0aGF0IEd1aXggaXMg d29ya2luZyBieSBpbnN0YWxsaW5nIGEgc2FtcGxlIHBhY2thZ2UgaW50bwotdGhlIHJvb3QgcHJv ZmlsZToKLQotQGV4YW1wbGUKLSMgZ3VpeCBpbnN0YWxsIGhlbGxvCi1AZW5kIGV4YW1wbGUKLQot VGhlIGJpbmFyeSBpbnN0YWxsYXRpb24gdGFyYmFsbCBjYW4gYmUgKHJlKXByb2R1Y2VkIGFuZCB2 ZXJpZmllZCBzaW1wbHkKLWJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIHRoZSBH dWl4IHNvdXJjZSB0cmVlOgotCi1AZXhhbXBsZQotbWFrZSBndWl4LWJpbmFyeS5AdmFye3N5c3Rl bX0udGFyLnh6Ci1AZW5kIGV4YW1wbGUKLQotQG5vaW5kZW50Ci0uLi5AOiB3aGljaCwgaW4gdHVy biwgcnVuczoKLQotQGV4YW1wbGUKLWd1aXggcGFjayAtcyBAdmFye3N5c3RlbX0gLS1sb2NhbHN0 YXRlZGlyIFwKLSAgLS1wcm9maWxlLW5hbWU9Y3VycmVudC1ndWl4IGd1aXgKLUBlbmQgZXhhbXBs ZQotCi1AeHJlZntJbnZva2luZyBndWl4IHBhY2t9LCBmb3IgbW9yZSBpbmZvIG9uIHRoaXMgaGFu ZHkgdG9vbC4KK1doZW4geW91J3JlIGRvbmUgaW5zdGFsbGluZyBHdWl4LCBAcHhyZWZ7QXBwbGlj YXRpb24gU2V0dXB9IGZvciBleHRyYQorY29uZmlndXJhdGlvbiB5b3UgbWlnaHQgbmVlZCwgYW5k IEByZWZ7R2V0dGluZyBTdGFydGVkfSBmb3IgeW91ciBmaXJzdAorc3RlcHMhCiAKIEBub2RlIFJl cXVpcmVtZW50cwogQHNlY3Rpb24gUmVxdWlyZW1lbnRzCkBAIC0xNzY0Myw2ICsxNzQ2MCw3IEBA IGNvbmZpZ3VyYXRpb24gKEBweHJlZntVc2luZyB0aGUgQ29uZmlndXJhdGlvbiBTeXN0ZW19KS4K IAogQHRhYmxlIEBhc2lzCiBAaXRlbSBAY29kZXtrZXJuZWx9IChkZWZhdWx0OiBAY29kZXtsaW51 eC1saWJyZX0pCitAYyBmb290bm90ZSBkdXBsaWNhdGVkIGluIEBweHJlZntJbnN0YWxsYXRpb259 CiBUaGUgcGFja2FnZSBvYmplY3Qgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIHRvCiB1 c2VAZm9vdG5vdGV7Q3VycmVudGx5IG9ubHkgdGhlIExpbnV4LWxpYnJlIGtlcm5lbCBpcyBmdWxs eSBzdXBwb3J0ZWQuCiBVc2luZyBHTlVAdGlle31tYWNoIHdpdGggdGhlIEdOVUB0aWV7fUh1cmQg aXMgZXhwZXJpbWVudGFsIGFuZCBvbmx5Cg== ------=_Part_1910636_704032598.1710586074379--