From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id SPdHKG/H6GWS7wAA62LTzQ:P1 (envelope-from ) for ; Wed, 06 Mar 2024 20:43:43 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id SPdHKG/H6GWS7wAA62LTzQ (envelope-from ) for ; Wed, 06 Mar 2024 20:43:43 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b=CblG3NQb; arc=pass ("zohomail.com:s=zohoarc:i=1"); 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-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1709754223; 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=QjN0ikz1x3BYYq7odjjsf/hvAPTjGUAuqlG0VHNPbDM=; b=Le6SIROsXz8uW7PIMUI6p8L/55lu3Ij2q5kPEMf3PBjk5OpxWr+DNwuzFlZVfcrfsJQaYc 02ASqUuEm/QvAa323HWFUpMLE1HIpDqlv60KihrDq+ngfP+s9C4uBB5Yej+Zw1zHQweASJ 76oYiYdVzMiEKvFMneKF8hJQJ5aYAnjfRyTsyM80a9ogj38KqS9wu14oob8Y9/AtpSMY01 rbI1HHLzHtRoojBXbQHaWGvMEQyrTJwKfLM+fkUTju6KVsTXXknCU+dAx/LOJgHWibNkG1 LN4w7EJM7Bf/8JiaZ5aJFNXCP4sHAh88WoMXNStpO1gUX6McJxsXW8mzoc05SA== ARC-Seal: i=2; s=key1; d=yhetil.org; t=1709754223; a=rsa-sha256; cv=pass; b=rR10I4ge4NwpkVAtXe5IURX59miNWsZMLCXfSPbjGsPKuQmdDvR0PsOw5f9enL4pYccqRa eK89Z+GFl/iejkSpol1F9Ohnq9zOkP+V4dN/oR4XYGDRO6AKPLVwFq5kkZFSc1VZzPohIw qhhNSp7yrbPvuUgs04l393/ccm7B00sh6vqJIZ32mN/N3r6X9vXKlBraDVTxRKozDMOxCC 3lPHqcjz8XB2lPdYFRazobnAnY1zRPnJFTsKUr7+QgEHxywG3SNiY2jXjMRfIHqhpM2YXT +g6wD6Ruyx1IKs4E4S7LA3RECZj2uGcBLugc36O23+jM/IlIM6plNEJCsv1OCw== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b=CblG3NQb; arc=pass ("zohomail.com:s=zohoarc:i=1"); 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 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 3FE8E6EC3E for ; Wed, 6 Mar 2024 20:43:43 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rhxAN-00032V-0A; Wed, 06 Mar 2024 14:43:03 -0500 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 1rhxAE-0002v6-Cl for guix-devel@gnu.org; Wed, 06 Mar 2024 14:42:55 -0500 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 1rhxAB-0006YN-O4 for guix-devel@gnu.org; Wed, 06 Mar 2024 14:42:53 -0500 ARC-Seal: i=1; a=rsa-sha256; t=1709754157; cv=none; d=zohomail.com; s=zohoarc; b=glvO3Co84ARby9SeMQemo07YJXSFLAVS9KXSnZZOgnPQ0B19GQa7QbpqvqHsjGAaESDZUD33SmO9wo7JLJqUmWuTa9mxVyHPfIctJMq417CzEB7brzD2xnrSx1vCuk98vu9hwT1a83rMRSjbIxYfXAGxhIGBbpSBXHGBKtnm//I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709754157; 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=QjN0ikz1x3BYYq7odjjsf/hvAPTjGUAuqlG0VHNPbDM=; b=VIFsZXgHKx5ODhTRNhVkVdWf5PmK/trsXJp6Tsz6CzliaA6GU20WCS5S0fdVHyOWfSoSIHL7ORqd566k4GbGgqzRxFbDt+wTrMCRyOqUBy8ZtdsIwkqIiLwIz2xlQPmHSUY4RuFRUyjbT+IMkI/sjOMebWUBk1J9drdL0dmbnA4= 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=1709754157; 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=QjN0ikz1x3BYYq7odjjsf/hvAPTjGUAuqlG0VHNPbDM=; b=CblG3NQba76VblOMAtJ2MJE8M24MJVkjxYf1Olik+0ENTldRYOAkO44iNT/3VxtU 1+raU23lrRsBQlsQGzbHx7qZ7acoVCQcY8Q2vueX49PFcCU4Kw3HLgSWdqiX30OLHTk hfkWJTyJseLrD8v7gt4rbAtHpVbC+4q0u+dKHVqs= Received: from mail.zoho.com by mx.zohomail.com with SMTP id 1709754156658511.50315018886647; Wed, 6 Mar 2024 11:42:36 -0800 (PST) Date: Wed, 06 Mar 2024 20:42:36 +0100 From: Matt To: "pelzflorian (Florian Pelz)" Cc: "Maxim Cournoyer" , "Christian Miller" , "guix-devel" , "Josselin Poiret" Message-Id: <18e154a064f.10b18ae281601105.807357574739020306@excalamus.com> In-Reply-To: <87zfvbgu3q.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> Subject: Re: doc: Removing much of Binary Installation (was: Feedback of the GNU Guix manual) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_5183778_300439604.1709754156623" Importance: Medium User-Agent: Zoho Mail X-Mailer: Zoho Mail X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-1.1.0/209.655.89 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: -7.10 X-Spam-Score: -7.10 X-Migadu-Queue-Id: 3FE8E6EC3E X-Migadu-Scanner: mx11.migadu.com X-TUID: LPZhQIIY0Gkj ------=_Part_5183778_300439604.1709754156623 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ---- On Wed, 06 Mar 2024 18:15:05 +0100 pelzflorian (Florian Pelz) wrote= --- > Thank you Matt for the suggested diff. Thank you for taking the time to review it! > > - Places directions for 'guix-install.sh' after directions to use dist= ribution-specific package managers, giving preference to those simpler inst= all processes over the more manual 'guix-install.sh' process > > I don=E2=80=99t feel qualified to judge, but is this the preference? Ar= ch wiki advises against the Arch AUR package: =E2=80=9CTherefore, after upd= ating Guix once, the AUR advantage really turns into a disadvantage, as the= re will be many unnecessary files in the /usr file tree that are part of th= e Guix AUR package but that are never used by Guix anymore. Therefore, con= sider using the manual installation.=E2=80=9D [0] > > [0] https://wiki.archlinux.org/title/Guix Good question, I wondered about this after I submitted. The current manual has instructions for using the Debian, Ubuntu, and openS= USE package managers. These instructions are given after the recommendatio= n for =3Dguix-install.sh=3D along with the transition: "If you=E2=80=99re running Debian or a derivative such as Ubuntu, you can i= nstead install the package..." "Instead" means "in place of something previously mentioned." So, as writt= en, installing with =3Dguix-install.sh=3D and installing with those specifi= c package managers have equal levels of recommendation. Since users of foreign systems are likely familiar with the corresponding f= oreign package managers, in addition to their use being one step versus fou= r, I vote that they appear first. This is good information about the situation with Arch. Maybe this is why = Arch isn't mentioned? I wonder if we should have similar concerns about the Debian and openSUSE p= ackages? > The reason of existence for these distribution packages is probably simi= lar to the reason why the Binary Installation section exists. > > As for the suggested diff where much of Binary Installation gets removed= , > > > -@item > > -@cindex substitutes, authorization thereof > > -To use substitutes from @code{@value{SUBSTITUTE-SERVER-1}}, > > -@code{@value{SUBSTITUTE-SERVER-2}} or a mirror (@pxref{Substitutes}), > > -authorize them: > > - > > -@example > > -# guix archive --authorize < \ > > - ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-1= }.pub > > -# guix archive --authorize < \ > > - ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-2= }.pub > > -@end example > > - > > -@quotation Note > > -If you do not enable substitutes, Guix will end up building > > -@emph{everything} from source on your machine, making each installati= on > > -and upgrade very expensive. @xref{On Trusting Binaries}, for a > > -discussion of reasons why one might want do disable substitutes. > > -@end quotation > > I disagree with this chunk. This must stay. Not enabling substitutes i= s an option in guix-install.sh and the Guix System installer. Users might = want to enable substitutes later on. Excellent point. I have updated the patch with the following: - Add commas in appropriate places; after "For...Ubuntu-based systems", "Li= kewise", and the 'or' within the list of substitutes - Remove ')' from after 'guix pull' - Clarify that 'guix-install.sh' guides users through the steps. Previousl= y, it was unclear if the script ran without user input. - Add the substitute server setup with the following changes: + Make explicit that the default for binary installations is to build eve= rything + Change "for a discussion of reasons why one might want do disable subst= itutes" (note the 'do' typo) to "for a discussion why this is the default".= This aims to state it positively and encourage people to consider the rea= sons. - Emphasize that the substitute authorization code is an example and may ne= ed modification ------=_Part_5183778_300439604.1709754156623 Content-Type: application/octet-stream; name=v02-refactor-binary-installation-section.diff Content-Transfer-Encoding: base64 X-ZM_AttachId: 139290469566240100 Content-Disposition: attachment; filename=v02-refactor-binary-installation-section.diff ZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmluZGV4IDg3ZmU5Zjgw M2MuLmNjOWIwN2MxNTIgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysrIGIvZG9jL2d1aXgu dGV4aQpAQCAtNjkxLDIwICs2OTEsMjUgQEAgdG8gam9pbiEgIEB4cmVme0NvbnRyaWJ1dGluZ30s IGZvciBpbmZvcm1hdGlvbiBhYm91dCBob3cgeW91IGNhbiBoZWxwLgogQGNoYXB0ZXIgSW5zdGFs bGF0aW9uCiAKIEBjaW5kZXggaW5zdGFsbGluZyBHdWl4CitAY2luZGV4IGZvcmVpZ24gZGlzdHJv CitAY2luZGV4IEd1aXggU3lzdGVtCitZb3UgY2FuIGluc3RhbGwgdGhlIEd1aXggcGFja2FnZSBt YW5hZ2VtZW50IHRvb2wgb24gdG9wIG9mIGFuIGV4aXN0aW5nCitHTlUvTGludXggb3IgR05VL0h1 cmQgc3lzdGVtLCByZWZlcnJlZCB0byBhcyBhIEBkZm57Zm9yZWlnbiBkaXN0cm99LCBvcgorYXMg YSBzdGFuZGFsb25lIG9wZXJhdGluZyBzeXN0ZW0gZGlzdHJpYnV0aW9uLCB0aGUKK0BkZm57R3Vp eEB0aWV7fVN5c3RlbX0uICBUaGlzIHNlY3Rpb24gaXMgY29uY2VybmVkIHdpdGggdGhlIGluc3Rh bGxhdGlvbgorb2YgR3VpeCBvbiBhIGZvcmVpZ24gZGlzdHJvLiAgSWYsIGluc3RlYWQsIHlvdSB3 YW50IHRvIGluc3RhbGwgdGhlCitjb21wbGV0ZSBHTlUgb3BlcmF0aW5nIHN5c3RlbSwgQHB4cmVm e1N5c3RlbSBJbnN0YWxsYXRpb259LgogCi1AcXVvdGF0aW9uIE5vdGUKLVdlIHJlY29tbWVuZCB0 aGUgdXNlIG9mIHRoaXMKLUB1cmVme2h0dHBzOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvY2dpdC9n dWl4LmdpdC9wbGFpbi9ldGMvZ3VpeC1pbnN0YWxsLnNoLAotc2hlbGwgaW5zdGFsbGVyIHNjcmlw dH0gdG8gaW5zdGFsbCBHdWl4IG9uIHRvcCBvZiBhIHJ1bm5pbmcgR05VL0xpbnV4IHN5c3RlbSwK LXRoZXJlYWZ0ZXIgY2FsbGVkIGEgQGRmbntmb3JlaWduIGRpc3Ryb30uQGZvb3Rub3Rle1RoaXMg c2VjdGlvbiBpcyBjb25jZXJuZWQKLXdpdGggdGhlIGluc3RhbGxhdGlvbiBvZiB0aGUgcGFja2Fn ZSBtYW5hZ2VyLCB3aGljaCBjYW4gYmUgZG9uZSBvbiB0b3Agb2YgYQotcnVubmluZyBHTlUvTGlu dXggc3lzdGVtLiAgSWYsIGluc3RlYWQsIHlvdSB3YW50IHRvIGluc3RhbGwgdGhlIGNvbXBsZXRl IEdOVQotb3BlcmF0aW5nIHN5c3RlbSwgQHB4cmVme1N5c3RlbSBJbnN0YWxsYXRpb259Ln0gVGhl IHNjcmlwdCBhdXRvbWF0ZXMgdGhlCi1kb3dubG9hZCwgaW5zdGFsbGF0aW9uLCBhbmQgaW5pdGlh bCBjb25maWd1cmF0aW9uIG9mIEd1aXguICBJdCBzaG91bGQgYmUgcnVuCi1hcyB0aGUgcm9vdCB1 c2VyLgorQHF1b3RhdGlvbiBJbXBvcnRhbnQKK1RoaXMgc2VjdGlvbiBvbmx5IGFwcGxpZXMgdG8g c3lzdGVtcyB3aXRob3V0IEd1aXguICBGb2xsb3dpbmcgaXQgZm9yCitleGlzdGluZyBHdWl4IGlu c3RhbGxhdGlvbnMgd2lsbCBvdmVyd3JpdGUgaW1wb3J0YW50IHN5c3RlbSBmaWxlcy4KIEBlbmQg cXVvdGF0aW9uCiAKLUBjaW5kZXggZm9yZWlnbiBkaXN0cm8KK1RoZSBmb2xsb3dpbmcgc2VjdGlv bnMgZGVzY3JpYmUgdHdvIG1ldGhvZHMgb2YgaW5zdGFsbGF0aW9uLCBiaW5hcnkKK2luc3RhbGxh dGlvbiBhbmQgYnVpbGRpbmcgZnJvbSBzb3VyY2UuICBUaGV5IGRlc2NyaWJlIHRoZSBzb2Z0d2Fy ZQorcmVxdWlyZW1lbnRzIG9mIEd1aXgsIGFzIHdlbGwgYXMgaG93IHRvIGluc3RhbGwgaXQgbWFu dWFsbHkgYW5kIGdldAorcmVhZHkgdG8gdXNlIGl0LgorCiBAY2luZGV4IGRpcmVjdG9yaWVzIHJl bGF0ZWQgdG8gZm9yZWlnbiBkaXN0cm8KIFdoZW4gaW5zdGFsbGVkIG9uIGEgZm9yZWlnbiBkaXN0 cm8sIEdOVUB0aWV7fUd1aXggY29tcGxlbWVudHMgdGhlIGF2YWlsYWJsZQogdG9vbHMgd2l0aG91 dCBpbnRlcmZlcmVuY2UuICBJdHMgZGF0YSBsaXZlcyBleGNsdXNpdmVseSBpbiB0d28gZGlyZWN0 b3JpZXMsCkBAIC03MTQsMTEgKzcxOSw2IEBAIHN1Y2ggYXMgQGZpbGV7L2V0Y30sIGFyZSBsZWZ0 IHVudG91Y2hlZC4KIE9uY2UgaW5zdGFsbGVkLCBHdWl4IGNhbiBiZSB1cGRhdGVkIGJ5IHJ1bm5p bmcgQGNvbW1hbmR7Z3VpeCBwdWxsfQogKEBweHJlZntJbnZva2luZyBndWl4IHB1bGx9KS4KIAot SWYgeW91IHByZWZlciB0byBwZXJmb3JtIHRoZSBpbnN0YWxsYXRpb24gc3RlcHMgbWFudWFsbHkg b3Igd2FudCB0byB0d2VhawotdGhlbSwgeW91IG1heSBmaW5kIHRoZSBmb2xsb3dpbmcgc3Vic2Vj dGlvbnMgdXNlZnVsLiAgVGhleSBkZXNjcmliZSB0aGUKLXNvZnR3YXJlIHJlcXVpcmVtZW50cyBv ZiBHdWl4LCBhcyB3ZWxsIGFzIGhvdyB0byBpbnN0YWxsIGl0IG1hbnVhbGx5IGFuZCBnZXQKLXJl YWR5IHRvIHVzZSBpdC4KLQogQG1lbnUKICogQmluYXJ5IEluc3RhbGxhdGlvbjo6ICAgICAgICAg R2V0dGluZyBHdWl4IHJ1bm5pbmcgaW4gbm8gdGltZSEKICogUmVxdWlyZW1lbnRzOjogICAgICAg ICAgICAgICAgU29mdHdhcmUgbmVlZGVkIHRvIGJ1aWxkIGFuZCBydW4gR3VpeC4KQEAgLTczNywy MDkgKzczNyw2MyBAQCByZWFkeSB0byB1c2UgaXQuCiBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGhv dyB0byBpbnN0YWxsIEd1aXggZnJvbSBhIHNlbGYtY29udGFpbmVkIHRhcmJhbGwKIHByb3ZpZGlu ZyBiaW5hcmllcyBmb3IgR3VpeCBhbmQgZm9yIGFsbCBpdHMgZGVwZW5kZW5jaWVzLiAgVGhpcyBp cyBvZnRlbgogcXVpY2tlciB0aGFuIGluc3RhbGxpbmcgZnJvbSBzb3VyY2UsIHdoaWNoIGlzIGRl c2NyaWJlZCBpbiB0aGUgbmV4dAotc2VjdGlvbnMuICBCaW5hcnkgaW5zdGFsbGF0aW9uIHJlcXVp cmVzIGEgc3lzdGVtIHVzaW5nIGEgSHVyZCBvciBMaW51eAota2VybmVsOyB0aGUgR05VQHRpZXt9 dGFyIGFuZCBYeiBjb21tYW5kcyBtdXN0IGFsc28gYmUgYXZhaWxhYmxlLgorc2VjdGlvbnMuCiAK IEBxdW90YXRpb24gSW1wb3J0YW50CiBUaGlzIHNlY3Rpb24gb25seSBhcHBsaWVzIHRvIHN5c3Rl bXMgd2l0aG91dCBHdWl4LiAgRm9sbG93aW5nIGl0IGZvcgogZXhpc3RpbmcgR3VpeCBpbnN0YWxs YXRpb25zIHdpbGwgb3ZlcndyaXRlIGltcG9ydGFudCBzeXN0ZW0gZmlsZXMuCitAZW5kIHF1b3Rh dGlvbgogCi1AYyBOb3RlIGR1cGxpY2F0ZWQgZnJvbSB0aGUgYGBJbnN0YWxsYXRpb24nJyBub2Rl LgotV2UgcmVjb21tZW5kIHRoZSB1c2Ugb2YgdGhpcwotQHVyZWZ7aHR0cHM6Ly9naXQuc2F2YW5u YWguZ251Lm9yZy9jZ2l0L2d1aXguZ2l0L3BsYWluL2V0Yy9ndWl4LWluc3RhbGwuc2gsCi1zaGVs bCBpbnN0YWxsZXIgc2NyaXB0fS4gIFRoZSBzY3JpcHQgYXV0b21hdGVzIHRoZSBkb3dubG9hZCwg aW5zdGFsbGF0aW9uLCBhbmQKLWluaXRpYWwgY29uZmlndXJhdGlvbiBzdGVwcyBkZXNjcmliZWQg YmVsb3cuICBJdCBzaG91bGQgYmUgcnVuIGFzIHRoZSByb290Ci11c2VyLiAgQXMgcm9vdCwgeW91 IGNhbiB0aHVzIHJ1biB0aGlzOgotCi1AZXhhbXBsZQotY2QgL3RtcAotd2dldCBodHRwczovL2dp dC5zYXZhbm5haC5nbnUub3JnL2NnaXQvZ3VpeC5naXQvcGxhaW4vZXRjL2d1aXgtaW5zdGFsbC5z aAotY2htb2QgK3ggZ3VpeC1pbnN0YWxsLnNoCi0uL2d1aXgtaW5zdGFsbC5zaAotQGVuZCBleGFt cGxlCitTb21lIGRpc3RyaWJ1dGlvbnMsIHN1Y2ggYXMgRGViaWFuLCBVYnVudHUsIGFuZCBvcGVu U1VTRSBwcm92aWRlIEd1aXgKK3Rocm91Z2ggdGhlaXIgb3duIHBhY2thZ2UgbWFuYWdlcnMuICBU aGUgdmVyc2lvbiBvZiBHdWl4IG1heSBiZSBvbGRlcgordGhhbiBAdmFsdWV7VkVSU0lPTn0gYnV0 IHlvdSBjYW4gdXBkYXRlIGl0IGFmdGVyd2FyZHMgYnkgcnVubmluZworQHNhbXB7Z3VpeCBwdWxs fS4KIAotSWYgeW91J3JlIHJ1bm5pbmcgRGViaWFuIG9yIGEgZGVyaXZhdGl2ZSBzdWNoIGFzIFVi dW50dSwgeW91IGNhbiBpbnN0ZWFkCi1pbnN0YWxsIHRoZSBwYWNrYWdlIChpdCBtaWdodCBiZSBh IHZlcnNpb24gb2xkZXIgdGhhbiBAdmFsdWV7VkVSU0lPTn0KLWJ1dCB5b3UgY2FuIHVwZGF0ZSBp dCBhZnRlcndhcmRzIGJ5IHJ1bm5pbmcgQHNhbXB7Z3VpeCBwdWxsfSk6CitGb3IgRGViaWFuIGFu ZCBVYnVudHUtYmFzZWQgc3lzdGVtcywgY2FsbDoKIAogQGV4YW1wbGUKIHN1ZG8gYXB0IGluc3Rh bGwgZ3VpeAogQGVuZCBleGFtcGxlCiAKLUxpa2V3aXNlIG9uIG9wZW5TVVNFOgorTGlrZXdpc2Us IG9uIG9wZW5TVVNFOgogCiBAZXhhbXBsZQogc3VkbyB6eXBwZXIgaW5zdGFsbCBndWl4CiBAZW5k IGV4YW1wbGUKIAotV2hlbiB5b3UncmUgZG9uZSwgQHB4cmVme0FwcGxpY2F0aW9uIFNldHVwfSBm b3IgZXh0cmEgY29uZmlndXJhdGlvbiB5b3UKLW1pZ2h0IG5lZWQsIGFuZCBAcmVme0dldHRpbmcg U3RhcnRlZH0gZm9yIHlvdXIgZmlyc3Qgc3RlcHMhCi1AZW5kIHF1b3RhdGlvbgotCi1JbnN0YWxs aW5nIGdvZXMgYWxvbmcgdGhlc2UgbGluZXM6Ci0KLUBlbnVtZXJhdGUKLUBpdGVtCi1AY2luZGV4 IGRvd25sb2FkaW5nIEd1aXggYmluYXJ5Ci1Eb3dubG9hZCB0aGUgYmluYXJ5IHRhcmJhbGwgZnJv bQotQGluZGljYXRldXJse0B2YWx1ZXtCQVNFLVVSTH0vZ3VpeC1iaW5hcnktQHZhbHVle1ZFUlNJ T059Lng4Nl82NC1saW51eC50YXIueHp9LAotd2hlcmUgQGNvZGV7eDg2XzY0LWxpbnV4fSBjYW4g YmUgcmVwbGFjZWQgd2l0aCBAY29kZXtpNjg2LWxpbnV4fSBmb3IgYW4KLUBjb2Rle2k2ODZ9ICgz Mi1iaXRzKSBtYWNoaW5lIGFscmVhZHkgcnVubmluZyB0aGUga2VybmVsIExpbnV4LCBhbmQgc28g b24KLShAcHhyZWZ7R05VIERpc3RyaWJ1dGlvbn0pLgotCi1AYyBUaGUgZm9sbG93aW5nIGlzIHNv bWV3aGF0IGR1cGxpY2F0ZWQgaW4gYGBTeXN0ZW0gSW5zdGFsbGF0aW9uJycuCi1NYWtlIHN1cmUg dG8gZG93bmxvYWQgdGhlIGFzc29jaWF0ZWQgQGZpbGV7LnNpZ30gZmlsZSBhbmQgdG8gdmVyaWZ5 IHRoZQotYXV0aGVudGljaXR5IG9mIHRoZSB0YXJiYWxsIGFnYWluc3QgaXQsIGFsb25nIHRoZXNl IGxpbmVzOgotCi1AZXhhbXBsZQotJCB3Z2V0IEB2YWx1ZXtCQVNFLVVSTH0vZ3VpeC1iaW5hcnkt QHZhbHVle1ZFUlNJT059Lng4Nl82NC1saW51eC50YXIueHouc2lnCi0kIGdwZyAtLXZlcmlmeSBn dWl4LWJpbmFyeS1AdmFsdWV7VkVSU0lPTn0ueDg2XzY0LWxpbnV4LnRhci54ei5zaWcKLUBlbmQg ZXhhbXBsZQotCi1JZiB0aGF0IGNvbW1hbmQgZmFpbHMgYmVjYXVzZSB5b3UgZG8gbm90IGhhdmUg dGhlIHJlcXVpcmVkIHB1YmxpYyBrZXksCi10aGVuIHJ1biB0aGlzIGNvbW1hbmQgdG8gaW1wb3J0 IGl0OgotCi1AZXhhbXBsZQotJCB3Z2V0ICdAdmFsdWV7T1BFTlBHUC1TSUdOSU5HLUtFWS1VUkx9 JyBcCi0gICAgICAtcU8gLSB8IGdwZyAtLWltcG9ydCAtCi1AZW5kIGV4YW1wbGUKLQotQG5vaW5k ZW50Ci1hbmQgcmVydW4gdGhlIEBjb2Rle2dwZyAtLXZlcmlmeX0gY29tbWFuZC4KK1RoZSBHdWl4 IHByb2plY3QgYWxzbyBwcm92aWRlcyBhIHNoZWxsIHNjcmlwdCwgQGZpbGV7Z3VpeC1pbnN0YWxs LnNofSwKK3doaWNoIGF1dG9tYXRlcyB0aGUgYmluYXJ5IGluc3RhbGxhdGlvbiBwcm9jZXNzIHdp dGhvdXQgdXNlIG9mIGEgZm9yZWlnbgorZGlzdHJvIHBhY2thZ2UKK21hbmFnZXJAZm9vdG5vdGV7 QHVyZWZ7aHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9jZ2l0L2d1aXguZ2l0L3BsYWluL2V0 Yy9ndWl4LWluc3RhbGwuc2h9fS4KK1VzZSBvZiBAZmlsZXtndWl4LWluc3RhbGwuc2h9IHJlcXVp cmVzIEJhc2gsIEdOVUB0aWV7fXRhciwgd2dldCwgYW5kIFh6LgogCi1UYWtlIG5vdGUgdGhhdCBh IHdhcm5pbmcgbGlrZSBgYFRoaXMga2V5IGlzIG5vdCBjZXJ0aWZpZWQgd2l0aCBhIHRydXN0ZWQK LXNpZ25hdHVyZSEnJyBpcyBub3JtYWwuCitUaGUgc2NyaXB0IGd1aWRlcyB5b3UgdGhyb3VnaCB0 aGUgZm9sbG93aW5nOgogCi1AYyBlbmQgYXV0aGVudGljYXRpb24gcGFydAorQGl0ZW1pemUKK0Bp dGVtIERvd25sb2FkIGFuZCBleHRyYWN0IHRoZSBiaW5hcnkgdGFyYmFsbAorQGl0ZW0gU2V0IHVw IHRoZSBidWlsZCBkYWVtb24KK0BpdGVtIE1ha2UgdGhlIOKAmGd1aXjigJkgY29tbWFuZCBhdmFp bGFibGUgdG8gbm9uLXJvb3QgdXNlcnMKK0BpdGVtIENvbmZpZ3VyZSBzdWJzdGl0dXRlIHNlcnZl cnMKK0BlbmQgaXRlbWl6ZQogCi1AaXRlbQotTm93LCB5b3UgbmVlZCB0byBiZWNvbWUgdGhlIEBj b2Rle3Jvb3R9IHVzZXIuICBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24sCi15b3UgbWF5 IGhhdmUgdG8gcnVuIEBjb2Rle3N1IC19IG9yIEBjb2Rle3N1ZG8gLWl9LiAgQXMgQGNvZGV7cm9v dH0sIHJ1bjoKK0FzIHJvb3QsIHJ1bjoKIAogQGV4YW1wbGUKICMgY2QgL3RtcAotIyB0YXIgLS13 YXJuaW5nPW5vLXRpbWVzdGFtcCAteGYgXAotICAgICAvcGF0aC90by9ndWl4LWJpbmFyeS1AdmFs dWV7VkVSU0lPTn0ueDg2XzY0LWxpbnV4LnRhci54egotIyBtdiB2YXIvZ3VpeCAvdmFyLyAmJiBt diBnbnUgLwotQGVuZCBleGFtcGxlCi0KLVRoaXMgY3JlYXRlcyBAZmlsZXsvZ251L3N0b3JlfSAo QHB4cmVme1RoZSBTdG9yZX0pIGFuZCBAZmlsZXsvdmFyL2d1aXh9LgotVGhlIGxhdHRlciBjb250 YWlucyBhIHJlYWR5LXRvLXVzZSBwcm9maWxlIGZvciBAY29kZXtyb290fSAoc2VlIG5leHQKLXN0 ZXApLgotCi1EbyBAZW1waHtub3R9IHVucGFjayB0aGUgdGFyYmFsbCBvbiBhIHdvcmtpbmcgR3Vp eCBzeXN0ZW0gc2luY2UgdGhhdAotd291bGQgb3ZlcndyaXRlIGl0cyBvd24gZXNzZW50aWFsIGZp bGVzLgotCi1UaGUgQG9wdGlvbnstLXdhcm5pbmc9bm8tdGltZXN0YW1wfSBvcHRpb24gbWFrZXMg c3VyZSBHTlVAdGlle310YXIgZG9lcwotbm90IGVtaXQgd2FybmluZ3MgYWJvdXQgYGBpbXBsYXVz aWJseSBvbGQgdGltZSBzdGFtcHMnJyAoc3VjaAotd2FybmluZ3Mgd2VyZSB0cmlnZ2VyZWQgYnkg R05VQHRpZXt9dGFyIDEuMjYgYW5kIG9sZGVyOyByZWNlbnQKLXZlcnNpb25zIGFyZSBmaW5lKS4K LVRoZXkgc3RlbSBmcm9tIHRoZSBmYWN0IHRoYXQgYWxsIHRoZQotZmlsZXMgaW4gdGhlIGFyY2hp dmUgaGF2ZSB0aGVpciBtb2RpZmljYXRpb24gdGltZSBzZXQgdG8gMSAod2hpY2gKLW1lYW5zIEph bnVhcnkgMXN0LCAxOTcwKS4gIFRoaXMgaXMgZG9uZSBvbiBwdXJwb3NlIHRvIG1ha2Ugc3VyZSB0 aGUKLWFyY2hpdmUgY29udGVudCBpcyBpbmRlcGVuZGVudCBvZiBpdHMgY3JlYXRpb24gdGltZSwg dGh1cyBtYWtpbmcgaXQKLXJlcHJvZHVjaWJsZS4KLQotQGl0ZW0KLU1ha2UgdGhlIHByb2ZpbGUg YXZhaWxhYmxlIHVuZGVyIEBmaWxle35yb290Ly5jb25maWcvZ3VpeC9jdXJyZW50fSwgd2hpY2gg aXMKLXdoZXJlIEBjb21tYW5ke2d1aXggcHVsbH0gd2lsbCBpbnN0YWxsIHVwZGF0ZXMgKEBweHJl ZntJbnZva2luZyBndWl4IHB1bGx9KToKLQotQGV4YW1wbGUKLSMgbWtkaXIgLXAgfnJvb3QvLmNv bmZpZy9ndWl4Ci0jIGxuIC1zZiAvdmFyL2d1aXgvcHJvZmlsZXMvcGVyLXVzZXIvcm9vdC9jdXJy ZW50LWd1aXggXAotICAgICAgICAgfnJvb3QvLmNvbmZpZy9ndWl4L2N1cnJlbnQKLUBlbmQgZXhh bXBsZQotCi1Tb3VyY2UgQGZpbGV7ZXRjL3Byb2ZpbGV9IHRvIGF1Z21lbnQgQGVudntQQVRIfSBh bmQgb3RoZXIgcmVsZXZhbnQKLWVudmlyb25tZW50IHZhcmlhYmxlczoKLQotQGV4YW1wbGUKLSMg R1VJWF9QUk9GSUxFPSJgZWNobyB+cm9vdGAvLmNvbmZpZy9ndWl4L2N1cnJlbnQiIDsgXAotICBz b3VyY2UgJEdVSVhfUFJPRklMRS9ldGMvcHJvZmlsZQotQGVuZCBleGFtcGxlCi0KLUBpdGVtCi1D cmVhdGUgdGhlIGdyb3VwIGFuZCB1c2VyIGFjY291bnRzIGZvciBidWlsZCB1c2VycyBhcyBleHBs YWluZWQgYmVsb3cKLShAcHhyZWZ7QnVpbGQgRW52aXJvbm1lbnQgU2V0dXB9KS4KLQotQGl0ZW0K LVJ1biB0aGUgZGFlbW9uLCBhbmQgc2V0IGl0IHRvIGF1dG9tYXRpY2FsbHkgc3RhcnQgb24gYm9v dC4KLQotSWYgeW91ciBob3N0IGRpc3RybyB1c2VzIHRoZSBzeXN0ZW1kIGluaXQgc3lzdGVtLCB0 aGlzIGNhbiBiZSBhY2hpZXZlZAotd2l0aCB0aGVzZSBjb21tYW5kczoKLQotQGMgVmVyc2lvbnMg b2Ygc3lzdGVtZCB0aGF0IHN1cHBvcnRlZCBzeW1saW5rZWQgc2VydmljZSBmaWxlcyBhcmUgbm90 Ci1AYyB5ZXQgd2lkZWx5IGRlcGxveWVkLCBzbyB3ZSBzaG91bGQgc3VnZ2VzdCB0aGF0IHVzZXJz IGNvcHkgdGhlIHNlcnZpY2UKLUBjIGZpbGVzIGludG8gcGxhY2UuCi1AYwotQGMgU2VlIHRoaXMg dGhyZWFkIGZvciBtb3JlIGluZm9ybWF0aW9uOgotQGMgaHR0cHM6Ly9saXN0cy5nbnUub3JnL2Fy Y2hpdmUvaHRtbC9ndWl4LWRldmVsLzIwMTctMDEvbXNnMDExOTkuaHRtbAotCi1AZXhhbXBsZQot IyBjcCB+cm9vdC8uY29uZmlnL2d1aXgvY3VycmVudC9saWIvc3lzdGVtZC9zeXN0ZW0vZ251LXN0 b3JlLm1vdW50IFwKLSAgICAgfnJvb3QvLmNvbmZpZy9ndWl4L2N1cnJlbnQvbGliL3N5c3RlbWQv c3lzdGVtL2d1aXgtZGFlbW9uLnNlcnZpY2UgXAotICAgICAvZXRjL3N5c3RlbWQvc3lzdGVtLwot IyBzeXN0ZW1jdGwgZW5hYmxlIC0tbm93IGdudS1zdG9yZS5tb3VudCBndWl4LWRhZW1vbgotQGVu ZCBleGFtcGxlCi0KLVlvdSBtYXkgYWxzbyB3YW50IHRvIGFycmFuZ2UgZm9yIEBjb21tYW5ke2d1 aXggZ2N9IHRvIHJ1biBwZXJpb2RpY2FsbHk6Ci0KLUBleGFtcGxlCi0jIGNwIH5yb290Ly5jb25m aWcvZ3VpeC9jdXJyZW50L2xpYi9zeXN0ZW1kL3N5c3RlbS9ndWl4LWdjLnNlcnZpY2UgXAotICAg ICB+cm9vdC8uY29uZmlnL2d1aXgvY3VycmVudC9saWIvc3lzdGVtZC9zeXN0ZW0vZ3VpeC1nYy50 aW1lciBcCi0gICAgIC9ldGMvc3lzdGVtZC9zeXN0ZW0vCi0jIHN5c3RlbWN0bCBlbmFibGUgLS1u b3cgZ3VpeC1nYy50aW1lcgotQGVuZCBleGFtcGxlCi0KLVlvdSBtYXkgd2FudCB0byBlZGl0IEBm aWxle2d1aXgtZ2Muc2VydmljZX0gdG8gYWRqdXN0IHRoZSBjb21tYW5kIGxpbmUKLW9wdGlvbnMg dG8gZml0IHlvdXIgbmVlZHMgKEBweHJlZntJbnZva2luZyBndWl4IGdjfSkuCi0KLUlmIHlvdXIg aG9zdCBkaXN0cm8gdXNlcyB0aGUgVXBzdGFydCBpbml0IHN5c3RlbToKLQotQGV4YW1wbGUKLSMg aW5pdGN0bCByZWxvYWQtY29uZmlndXJhdGlvbgotIyBjcCB+cm9vdC8uY29uZmlnL2d1aXgvY3Vy cmVudC9saWIvdXBzdGFydC9zeXN0ZW0vZ3VpeC1kYWVtb24uY29uZiBcCi0gICAgIC9ldGMvaW5p dC8KLSMgc3RhcnQgZ3VpeC1kYWVtb24KLUBlbmQgZXhhbXBsZQotCi1PdGhlcndpc2UsIHlvdSBj YW4gc3RpbGwgc3RhcnQgdGhlIGRhZW1vbiBtYW51YWxseSB3aXRoOgotCi1AZXhhbXBsZQotIyB+ cm9vdC8uY29uZmlnL2d1aXgvY3VycmVudC9iaW4vZ3VpeC1kYWVtb24gXAotICAgICAgIC0tYnVp bGQtdXNlcnMtZ3JvdXA9Z3VpeGJ1aWxkCi1AZW5kIGV4YW1wbGUKLQotQGl0ZW0KLU1ha2UgdGhl IEBjb21tYW5ke2d1aXh9IGNvbW1hbmQgYXZhaWxhYmxlIHRvIG90aGVyIHVzZXJzIG9uIHRoZSBt YWNoaW5lLAotZm9yIGluc3RhbmNlIHdpdGg6Ci0KLUBleGFtcGxlCi0jIG1rZGlyIC1wIC91c3Iv bG9jYWwvYmluCi0jIGNkIC91c3IvbG9jYWwvYmluCi0jIGxuIC1zIC92YXIvZ3VpeC9wcm9maWxl cy9wZXItdXNlci9yb290L2N1cnJlbnQtZ3VpeC9iaW4vZ3VpeAorIyB3Z2V0IGh0dHBzOi8vZ2l0 LnNhdmFubmFoLmdudS5vcmcvY2dpdC9ndWl4LmdpdC9wbGFpbi9ldGMvZ3VpeC1pbnN0YWxsLnNo CisjIGNobW9kICt4IGd1aXgtaW5zdGFsbC5zaAorIyAuL2d1aXgtaW5zdGFsbC5zaAogQGVuZCBl eGFtcGxlCiAKLUl0IGlzIGFsc28gYSBnb29kIGlkZWEgdG8gbWFrZSB0aGUgSW5mbyB2ZXJzaW9u IG9mIHRoaXMgbWFudWFsIGF2YWlsYWJsZQotdGhlcmU6Ci0KLUBleGFtcGxlCi0jIG1rZGlyIC1w IC91c3IvbG9jYWwvc2hhcmUvaW5mbwotIyBjZCAvdXNyL2xvY2FsL3NoYXJlL2luZm8KLSMgZm9y IGkgaW4gL3Zhci9ndWl4L3Byb2ZpbGVzL3Blci11c2VyL3Jvb3QvY3VycmVudC1ndWl4L3NoYXJl L2luZm8vKiA7Ci0gIGRvIGxuIC1zICRpIDsgZG9uZQotQGVuZCBleGFtcGxlCi0KLVRoYXQgd2F5 LCBhc3N1bWluZyBAZmlsZXsvdXNyL2xvY2FsL3NoYXJlL2luZm99IGlzIGluIHRoZSBzZWFyY2gg cGF0aCwKLXJ1bm5pbmcgQGNvbW1hbmR7aW5mbyBndWl4fSB3aWxsIG9wZW4gdGhpcyBtYW51YWwg KEBweHJlZntPdGhlciBJbmZvCi1EaXJlY3RvcmllcywsLCB0ZXhpbmZvLCBHTlUgVGV4aW5mb30s IGZvciBtb3JlIGRldGFpbHMgb24gY2hhbmdpbmcgdGhlCi1JbmZvIHNlYXJjaCBwYXRoKS4KK0Bx dW90YXRpb24gTm90ZQorQnkgZGVmYXVsdCwgYmluYXJ5IGluc3RhbGxhdGlvbnMgb2YgR3VpeCBi dWlsZCBAZW1waHtldmVyeXRoaW5nfSBmcm9tCitzb3VyY2UuICBUaGlzIG1ha2VzIGVhY2ggaW5z dGFsbGF0aW9uIGFuZCB1cGdyYWRlIHZlcnkgZXhwZW5zaXZlLgorQHhyZWZ7T24gVHJ1c3Rpbmcg QmluYXJpZXN9IGZvciBhIGRpc2N1c3Npb24gb2Ygd2h5IHRoaXMgaXMgdGhlIGRlZmF1bHQuCiAK LUBpdGVtCiBAY2luZGV4IHN1YnN0aXR1dGVzLCBhdXRob3JpemF0aW9uIHRoZXJlb2YKIFRvIHVz ZSBzdWJzdGl0dXRlcyBmcm9tIEBjb2Rle0B2YWx1ZXtTVUJTVElUVVRFLVNFUlZFUi0xfX0sCi1A Y29kZXtAdmFsdWV7U1VCU1RJVFVURS1TRVJWRVItMn19IG9yIGEgbWlycm9yIChAcHhyZWZ7U3Vi c3RpdHV0ZXN9KSwKLWF1dGhvcml6ZSB0aGVtOgorQGNvZGV7QHZhbHVle1NVQlNUSVRVVEUtU0VS VkVSLTJ9fSwgb3IgYSBtaXJyb3IgKEBweHJlZntTdWJzdGl0dXRlc30pLAoreW91IG11c3QgYXV0 aG9yaXplIHRoZW0uICBGb3IgZXhhbXBsZSwKIAogQGV4YW1wbGUKICMgZ3VpeCBhcmNoaXZlIC0t YXV0aG9yaXplIDwgXApAQCAtOTQ3LDQ0ICs4MDEsMTEgQEAgYXV0aG9yaXplIHRoZW06CiAjIGd1 aXggYXJjaGl2ZSAtLWF1dGhvcml6ZSA8IFwKICAgICAgfnJvb3QvLmNvbmZpZy9ndWl4L2N1cnJl bnQvc2hhcmUvZ3VpeC9AdmFsdWV7U1VCU1RJVFVURS1TRVJWRVItMn0ucHViCiBAZW5kIGV4YW1w bGUKLQotQHF1b3RhdGlvbiBOb3RlCi1JZiB5b3UgZG8gbm90IGVuYWJsZSBzdWJzdGl0dXRlcywg R3VpeCB3aWxsIGVuZCB1cCBidWlsZGluZwotQGVtcGh7ZXZlcnl0aGluZ30gZnJvbSBzb3VyY2Ug b24geW91ciBtYWNoaW5lLCBtYWtpbmcgZWFjaCBpbnN0YWxsYXRpb24KLWFuZCB1cGdyYWRlIHZl cnkgZXhwZW5zaXZlLiAgQHhyZWZ7T24gVHJ1c3RpbmcgQmluYXJpZXN9LCBmb3IgYQotZGlzY3Vz c2lvbiBvZiByZWFzb25zIHdoeSBvbmUgbWlnaHQgd2FudCBkbyBkaXNhYmxlIHN1YnN0aXR1dGVz LgogQGVuZCBxdW90YXRpb24KIAotQGl0ZW0KLUVhY2ggdXNlciBtYXkgbmVlZCB0byBwZXJmb3Jt IGEgZmV3IGFkZGl0aW9uYWwgc3RlcHMgdG8gbWFrZSB0aGVpciBHdWl4Ci1lbnZpcm9ubWVudCBy ZWFkeSBmb3IgdXNlLCBAcHhyZWZ7QXBwbGljYXRpb24gU2V0dXB9LgotQGVuZCBlbnVtZXJhdGUK LQotVm9pbMOgLCB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlIQotCi1Zb3UgY2FuIGNvbmZp cm0gdGhhdCBHdWl4IGlzIHdvcmtpbmcgYnkgaW5zdGFsbGluZyBhIHNhbXBsZSBwYWNrYWdlIGlu dG8KLXRoZSByb290IHByb2ZpbGU6Ci0KLUBleGFtcGxlCi0jIGd1aXggaW5zdGFsbCBoZWxsbwot QGVuZCBleGFtcGxlCi0KLVRoZSBiaW5hcnkgaW5zdGFsbGF0aW9uIHRhcmJhbGwgY2FuIGJlIChy ZSlwcm9kdWNlZCBhbmQgdmVyaWZpZWQgc2ltcGx5Ci1ieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcg Y29tbWFuZCBpbiB0aGUgR3VpeCBzb3VyY2UgdHJlZToKLQotQGV4YW1wbGUKLW1ha2UgZ3VpeC1i aW5hcnkuQHZhcntzeXN0ZW19LnRhci54egotQGVuZCBleGFtcGxlCi0KLUBub2luZGVudAotLi4u QDogd2hpY2gsIGluIHR1cm4sIHJ1bnM6Ci0KLUBleGFtcGxlCi1ndWl4IHBhY2sgLXMgQHZhcntz eXN0ZW19IC0tbG9jYWxzdGF0ZWRpciBcCi0gIC0tcHJvZmlsZS1uYW1lPWN1cnJlbnQtZ3VpeCBn dWl4Ci1AZW5kIGV4YW1wbGUKLQotQHhyZWZ7SW52b2tpbmcgZ3VpeCBwYWNrfSwgZm9yIG1vcmUg aW5mbyBvbiB0aGlzIGhhbmR5IHRvb2wuCitXaGVuIHlvdSdyZSBkb25lIGluc3RhbGxpbmcgR3Vp eCwgQHB4cmVme0FwcGxpY2F0aW9uIFNldHVwfSBmb3IgZXh0cmEKK2NvbmZpZ3VyYXRpb24geW91 IG1pZ2h0IG5lZWQsIGFuZCBAcmVme0dldHRpbmcgU3RhcnRlZH0gZm9yIHlvdXIgZmlyc3QKK3N0 ZXBzIQogCiBAbm9kZSBSZXF1aXJlbWVudHMKIEBzZWN0aW9uIFJlcXVpcmVtZW50cwo= ------=_Part_5183778_300439604.1709754156623--