From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 10.28.91.67 with SMTP id p64csp3845828wmb; Tue, 20 Mar 2018 06:38:47 -0700 (PDT) X-Google-Smtp-Source: AG47ELvWlisfRIabDip38CY0RaMCHAsz3pLecCuwftp5O3gkBuZr2DAzdqDGKwRxlVaVz6/xyOez X-Received: by 10.233.235.2 with SMTP id b2mr24039248qkg.27.1521553127036; Tue, 20 Mar 2018 06:38:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521553127; cv=none; d=google.com; s=arc-20160816; b=ToTMORxMFXchXna8b6j4zi4O/+dfuQn2/VnrEgN68YSZ0PE+7LNLJUosZdV62zwdX3 +A/2pkGA+sZuLtsg0/lzG0EE2j5TXvcjR4xOqs1NbzggsDvimppDanpFc4XLfbLhSHqe WoRrhAkDdog/aHSWcjBaJHbBWWd2HGgsQ/AN73IKs6m0OQqQ8ef6TqCGk2teDaiBOjqo pR6MvClmXPQgl71auctHFYgoy6cCKfrjao7ughYHqX62IGsSZG1rMT8ko4q/AklUaWVV 63fvCCyol+QikHw7wfkHyJZm9LoUhpGYisyrlZBqg1qC+7Pn9Dex/+csCcieK6iVWS7F 7UtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:to:from:date :arc-authentication-results; bh=JX5RWl98bFHz6f1fma9sZNxSl1W1BphOUlaXdtO0ZWw=; b=cYo274POI9buyknSTWq/P1pQ4nBoikSFVZ6h3IJmmBAypZuXVRckdItpz5l4TwWPdB XPGf7RKvVjqhPENXNU/V9XZ7fJ+5XZbG7gncu20aAVEqfWbO3bmPCjzt7SNsJFFLGtZN 08gxFB1s2tJivMroEIuPPqcBNHbyX6en0U2//RDBEKHOy2prMYoPCKW026ZI5VYiaHwQ /v2t/XtDcbczZZB3PWZ2sT/13iL2MZA+ynA0Sg9/D27Nu7Td+7YvrxpUaC+yAOxqretG fWH3WNGg4CNmfJmSa4fReuzQvM3Y6Fw/cdbhVDl6uL4wTsxKLwJMO7n0DkRLWXygdWyb rEtA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id b26si2006133qtc.317.2018.03.20.06.38.46 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 20 Mar 2018 06:38:47 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1]:48637 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyHTS-0000oh-J0 for alex.bennee@linaro.org; Tue, 20 Mar 2018 09:38:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38033) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyGEM-0001zp-UC for qemu-arm@nongnu.org; Tue, 20 Mar 2018 08:19:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eyGEI-0004oD-EX for qemu-arm@nongnu.org; Tue, 20 Mar 2018 08:19:06 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:52168 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eyGEI-0004nW-7G; Tue, 20 Mar 2018 08:19:02 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C0FDC8D774; Tue, 20 Mar 2018 12:18:59 +0000 (UTC) Received: from redhat.com (unknown [10.33.36.46]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6D5E3215CDB7; Tue, 20 Mar 2018 12:18:43 +0000 (UTC) Date: Tue, 20 Mar 2018 12:18:41 +0000 From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= To: "Michael S. Tsirkin" Message-ID: <20180320121841.GN4530@redhat.com> References: <1521510562-529051-1-git-send-email-mst@redhat.com> <8f06e1e3-4823-d8e8-43bd-c092c523849e@vivier.eu> <20180320094406.GD4530@redhat.com> <20180320141107-mutt-send-email-mst@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20180320141107-mutt-send-email-mst@kernel.org> User-Agent: Mutt/1.9.2 (2017-12-15) X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Tue, 20 Mar 2018 12:19:00 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Tue, 20 Mar 2018 12:19:00 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'berrange@redhat.com' RCPT:'' Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.187.233.73 X-Mailman-Approved-At: Tue, 20 Mar 2018 09:28:26 -0400 Subject: Re: [Qemu-arm] [PATCH] qemu: include generated files with <> and not "" X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Cc: Peter Maydell , Dmitry Fleytman , sheepdog@lists.wpkg.org, Ronnie Sahlberg , Li Zhijian , David Hildenbrand , Jeff Cody , Zhang Chen , Mark Cave-Ayland , qemu-devel@nongnu.org, "Richard W.M. Jones" , Keith Busch , Max Filippov , Gerd Hoffmann , Jiri Pirko , Subbaraya Sundeep , Eric Blake , Michael Roth , Marcelo Tosatti , Josh Durgin , Stefano Stabellini , Alberto Garcia , zhanghailiang , Ben Warren , Marcel Apfelbaum , Yongbok Kim , Markus Armbruster , Stefan Berger , Christian Borntraeger , kvm@vger.kernel.org, =?utf-8?B?SGVydsOp?= Poussineau , Shannon Zhao , Anthony Perard , Liu Yuan , David Gibson , Andrzej Zaborowski , Jason Wang , Artyom Tarasenko , Thomas Huth , Riku Voipio , Fam Zheng , Eduardo Habkost , Corey Minyard , Amit Shah , Pavel Dovgalyuk , Stefan Weil , Xie Changlong , Alistair Francis , Peter Lieven , "Dr. David Alan Gilbert" , Fabien Chouteau , Greg Kurz , =?utf-8?Q?Marc-Andr=C3=A9?= Lureau , Alex Williamson , qemu-arm@nongnu.org, Peter Chubb , Yuval Shaia , Stefan Hajnoczi , Paolo Bonzini , xen-devel@lists.xenproject.org, BALATON Zoltan , John Snow , Richard Henderson , Kevin Wolf , Alexander Graf , qemu-block@nongnu.org, Hitoshi Mitake , Wen Congyang , qemu-s390x@nongnu.org, Cornelia Huck , Laurent Vivier , Juan Quintela , Max Reitz , Michael Walle , qemu-ppc@nongnu.org, Andreas =?utf-8?Q?F=C3=A4rber?= , Igor Mammedov , Hannes Reinecke , Aurelien Jarno , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: EMyv+p63ZyCG On Tue, Mar 20, 2018 at 02:12:24PM +0200, Michael S. Tsirkin wrote: > On Tue, Mar 20, 2018 at 09:44:06AM +0000, Daniel P. Berrang=C3=A9 wrote= : > > On Tue, Mar 20, 2018 at 09:58:23AM +0100, Laurent Vivier wrote: > > > Le 20/03/2018 =C3=A0 02:54, Michael S. Tsirkin a =C3=A9crit=C2=A0: > > > > QEMU coding style at the moment asks for all non-system > > > > include files to be used with #include "foo.h". > > > > However this rule actually does not make sense and > > > > creates issues for when the included file is generated. > > >=20 > > > If you change that, we can have issue when a system include has the= same > > > name as our local include. With "", system header are taken f= irst. > >=20 > > > > In C, include "file" means look in current directory, > > > > then on include search path. Current directory here > > > > means the source file directory. > > > > By comparison include means look on include search path. > > >=20 > > > Not exactly, there is the notion of "system header" too. > > >=20 > > > https://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html > > >=20 > > > #include > > > This variant is used for system header files. It searches for a fil= e > > > named file in a standard list of system directories. You can prepen= d > > > directories to this list with the -I option (see Invocation). > > >=20 > > > #include "file" > > > This variant is used for header files of your own program. It searc= hes > > > for a file named file first in the directory containing the current > > > file, then in the quote directories and then the same directories u= sed > > > for . You can prepend directories to the list of quote direct= ories > > > with the -iquote option. > > >=20 > > > > As generated files are not in the search directory (unless the bu= ild > > > > directory happens to match the source directory), it does not mak= e sense > > > > to include them with "" - doing so is merely more work for prepro= cessor > > > > and a source or errors if a stale file happens to exist in the so= urce > > > > directory. > > >=20 > > > I agree there is a problem with stale files. But linux, for instanc= e, > > > asks for a "make mrproper" to avoid this. > >=20 > > We can follow what autoconf does, and add a check to configure to see= if > > there are generated files left in the source dir, when configuring wi= th > > builddir !=3D srcdir, and exit with error, telling user to clean thei= r > > src dir first. > >=20 > > > > This changes include directives for all generated files, across t= he > > > > tree. The idea is to avoid sending a huge amount of email. But w= hen > > > > merging, the changes will be split with one commit per file, e.g.= for > > > > ease of bisect in case of build failures, and to ease merging. > > > >=20 > > > > Note that should some generated files be missed by this tree-wide > > > > refactoring, it isn't a big deal - this merely maintains the stat= us quo, > > > > and this can be addressed by a separate patch on top. > > > >=20 > > > > Signed-off-by: Michael S. Tsirkin > > >=20 > > > I think your idea conflicts with what Markus has started to do: > >=20 > > Yes, I don't think we should revert what Markus started. Both ways = of > > referencing QEMU headers have downsides, but I think "..." has fewer > > downsides that "<....">. >=20 > Could you please explain what the advantage of "" is? > It seems to be gone since we moved headers away from > source. We moved *some* headers into the include/ directory tree. I still count 650+ headers which are alongside the .c files. Regards, Daniel --=20 |: https://berrange.com -o- https://www.flickr.com/photos/dberran= ge :| |: https://libvirt.org -o- https://fstop138.berrange.c= om :| |: https://entangle-photo.org -o- https://www.instagram.com/dberran= ge :| From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Subject: Re: [PATCH] qemu: include generated files with <> and not "" Date: Tue, 20 Mar 2018 12:18:41 +0000 Message-ID: <20180320121841.GN4530@redhat.com> References: <1521510562-529051-1-git-send-email-mst@redhat.com> <8f06e1e3-4823-d8e8-43bd-c092c523849e@vivier.eu> <20180320094406.GD4530@redhat.com> <20180320141107-mutt-send-email-mst@kernel.org> Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1eyGEH-00028K-Jj for xen-devel@lists.xenproject.org; Tue, 20 Mar 2018 12:19:01 +0000 Content-Disposition: inline In-Reply-To: <20180320141107-mutt-send-email-mst@kernel.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: "Michael S. Tsirkin" Cc: Peter Maydell , Dmitry Fleytman , sheepdog@lists.wpkg.org, Ronnie Sahlberg , Li Zhijian , David Hildenbrand , Jeff Cody , Zhang Chen , Mark Cave-Ayland , qemu-devel@nongnu.org, "Richard W.M. Jones" , Keith Busch , Max Filippov , Gerd Hoffmann , "Edgar E. Iglesias" , Jiri Pirko , Subbaraya Sundeep , Eric Blake , Michael Roth , Marcelo Tosatti , Josh Durgin , Stefano Stabellini , Alberto Garcia , zhanghailiang List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBNYXIgMjAsIDIwMTggYXQgMDI6MTI6MjRQTSArMDIwMCwgTWljaGFlbCBTLiBUc2ly a2luIHdyb3RlOgo+IE9uIFR1ZSwgTWFyIDIwLCAyMDE4IGF0IDA5OjQ0OjA2QU0gKzAwMDAsIERh bmllbCBQLiBCZXJyYW5nw6kgd3JvdGU6Cj4gPiBPbiBUdWUsIE1hciAyMCwgMjAxOCBhdCAwOTo1 ODoyM0FNICswMTAwLCBMYXVyZW50IFZpdmllciB3cm90ZToKPiA+ID4gTGUgMjAvMDMvMjAxOCDD oCAwMjo1NCwgTWljaGFlbCBTLiBUc2lya2luIGEgw6ljcml0wqA6Cj4gPiA+ID4gUUVNVSBjb2Rp bmcgc3R5bGUgYXQgdGhlIG1vbWVudCBhc2tzIGZvciBhbGwgbm9uLXN5c3RlbQo+ID4gPiA+IGlu Y2x1ZGUgZmlsZXMgdG8gYmUgdXNlZCB3aXRoICNpbmNsdWRlICJmb28uaCIuCj4gPiA+ID4gSG93 ZXZlciB0aGlzIHJ1bGUgYWN0dWFsbHkgZG9lcyBub3QgbWFrZSBzZW5zZSBhbmQKPiA+ID4gPiBj cmVhdGVzIGlzc3VlcyBmb3Igd2hlbiB0aGUgaW5jbHVkZWQgZmlsZSBpcyBnZW5lcmF0ZWQuCj4g PiA+IAo+ID4gPiBJZiB5b3UgY2hhbmdlIHRoYXQsIHdlIGNhbiBoYXZlIGlzc3VlIHdoZW4gYSBz eXN0ZW0gaW5jbHVkZSBoYXMgdGhlIHNhbWUKPiA+ID4gbmFtZSBhcyBvdXIgbG9jYWwgaW5jbHVk ZS4gV2l0aCAiPEZJTEU+Iiwgc3lzdGVtIGhlYWRlciBhcmUgdGFrZW4gZmlyc3QuCj4gPiAKPiA+ ID4gPiBJbiBDLCBpbmNsdWRlICJmaWxlIiBtZWFucyBsb29rIGluIGN1cnJlbnQgZGlyZWN0b3J5 LAo+ID4gPiA+IHRoZW4gb24gaW5jbHVkZSBzZWFyY2ggcGF0aC4gQ3VycmVudCBkaXJlY3Rvcnkg aGVyZQo+ID4gPiA+IG1lYW5zIHRoZSBzb3VyY2UgZmlsZSBkaXJlY3RvcnkuCj4gPiA+ID4gQnkg Y29tcGFyaXNvbiBpbmNsdWRlIDxmaWxlPiBtZWFucyBsb29rIG9uIGluY2x1ZGUgc2VhcmNoIHBh dGguCj4gPiA+IAo+ID4gPiBOb3QgZXhhY3RseSwgdGhlcmUgaXMgdGhlIG5vdGlvbiBvZiAic3lz dGVtIGhlYWRlciIgdG9vLgo+ID4gPiAKPiA+ID4gaHR0cHM6Ly9nY2MuZ251Lm9yZy9vbmxpbmVk b2NzL2NwcC9JbmNsdWRlLVN5bnRheC5odG1sCj4gPiA+IAo+ID4gPiAjaW5jbHVkZSA8ZmlsZT4K PiA+ID4gVGhpcyB2YXJpYW50IGlzIHVzZWQgZm9yIHN5c3RlbSBoZWFkZXIgZmlsZXMuIEl0IHNl YXJjaGVzIGZvciBhIGZpbGUKPiA+ID4gbmFtZWQgZmlsZSBpbiBhIHN0YW5kYXJkIGxpc3Qgb2Yg c3lzdGVtIGRpcmVjdG9yaWVzLiBZb3UgY2FuIHByZXBlbmQKPiA+ID4gZGlyZWN0b3JpZXMgdG8g dGhpcyBsaXN0IHdpdGggdGhlIC1JIG9wdGlvbiAoc2VlIEludm9jYXRpb24pLgo+ID4gPiAKPiA+ ID4gI2luY2x1ZGUgImZpbGUiCj4gPiA+IFRoaXMgdmFyaWFudCBpcyB1c2VkIGZvciBoZWFkZXIg ZmlsZXMgb2YgeW91ciBvd24gcHJvZ3JhbS4gSXQgc2VhcmNoZXMKPiA+ID4gZm9yIGEgZmlsZSBu YW1lZCBmaWxlIGZpcnN0IGluIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgY3VycmVudAo+ ID4gPiBmaWxlLCB0aGVuIGluIHRoZSBxdW90ZSBkaXJlY3RvcmllcyBhbmQgdGhlbiB0aGUgc2Ft ZSBkaXJlY3RvcmllcyB1c2VkCj4gPiA+IGZvciA8ZmlsZT4uIFlvdSBjYW4gcHJlcGVuZCBkaXJl Y3RvcmllcyB0byB0aGUgbGlzdCBvZiBxdW90ZSBkaXJlY3Rvcmllcwo+ID4gPiB3aXRoIHRoZSAt aXF1b3RlIG9wdGlvbi4KPiA+ID4gCj4gPiA+ID4gQXMgZ2VuZXJhdGVkIGZpbGVzIGFyZSBub3Qg aW4gdGhlIHNlYXJjaCBkaXJlY3RvcnkgKHVubGVzcyB0aGUgYnVpbGQKPiA+ID4gPiBkaXJlY3Rv cnkgaGFwcGVucyB0byBtYXRjaCB0aGUgc291cmNlIGRpcmVjdG9yeSksIGl0IGRvZXMgbm90IG1h a2Ugc2Vuc2UKPiA+ID4gPiB0byBpbmNsdWRlIHRoZW0gd2l0aCAiIiAtIGRvaW5nIHNvIGlzIG1l cmVseSBtb3JlIHdvcmsgZm9yIHByZXByb2Nlc3Nvcgo+ID4gPiA+IGFuZCBhIHNvdXJjZSBvciBl cnJvcnMgaWYgYSBzdGFsZSBmaWxlIGhhcHBlbnMgdG8gZXhpc3QgaW4gdGhlIHNvdXJjZQo+ID4g PiA+IGRpcmVjdG9yeS4KPiA+ID4gCj4gPiA+IEkgYWdyZWUgdGhlcmUgaXMgYSBwcm9ibGVtIHdp dGggc3RhbGUgZmlsZXMuIEJ1dCBsaW51eCwgZm9yIGluc3RhbmNlLAo+ID4gPiBhc2tzIGZvciBh ICJtYWtlIG1ycHJvcGVyIiB0byBhdm9pZCB0aGlzLgo+ID4gCj4gPiBXZSBjYW4gZm9sbG93IHdo YXQgYXV0b2NvbmYgZG9lcywgYW5kIGFkZCBhIGNoZWNrIHRvIGNvbmZpZ3VyZSB0byBzZWUgaWYK PiA+IHRoZXJlIGFyZSBnZW5lcmF0ZWQgZmlsZXMgbGVmdCBpbiB0aGUgc291cmNlIGRpciwgd2hl biBjb25maWd1cmluZyB3aXRoCj4gPiBidWlsZGRpciAhPSBzcmNkaXIsIGFuZCBleGl0IHdpdGgg ZXJyb3IsIHRlbGxpbmcgdXNlciB0byBjbGVhbiB0aGVpcgo+ID4gc3JjIGRpciBmaXJzdC4KPiA+ IAo+ID4gPiA+IFRoaXMgY2hhbmdlcyBpbmNsdWRlIGRpcmVjdGl2ZXMgZm9yIGFsbCBnZW5lcmF0 ZWQgZmlsZXMsIGFjcm9zcyB0aGUKPiA+ID4gPiB0cmVlLiBUaGUgaWRlYSBpcyB0byBhdm9pZCBz ZW5kaW5nIGEgaHVnZSBhbW91bnQgb2YgZW1haWwuICBCdXQgd2hlbgo+ID4gPiA+IG1lcmdpbmcs IHRoZSBjaGFuZ2VzIHdpbGwgYmUgc3BsaXQgd2l0aCBvbmUgY29tbWl0IHBlciBmaWxlLCBlLmcu IGZvcgo+ID4gPiA+IGVhc2Ugb2YgYmlzZWN0IGluIGNhc2Ugb2YgYnVpbGQgZmFpbHVyZXMsIGFu ZCB0byBlYXNlIG1lcmdpbmcuCj4gPiA+ID4gCj4gPiA+ID4gTm90ZSB0aGF0IHNob3VsZCBzb21l IGdlbmVyYXRlZCBmaWxlcyBiZSBtaXNzZWQgYnkgdGhpcyB0cmVlLXdpZGUKPiA+ID4gPiByZWZh Y3RvcmluZywgaXQgaXNuJ3QgYSBiaWcgZGVhbCAtIHRoaXMgbWVyZWx5IG1haW50YWlucyB0aGUg c3RhdHVzIHF1bywKPiA+ID4gPiBhbmQgdGhpcyBjYW4gYmUgYWRkcmVzc2VkIGJ5IGEgc2VwYXJh dGUgcGF0Y2ggb24gdG9wLgo+ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwg Uy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+Cj4gPiA+IAo+ID4gPiBJIHRoaW5rIHlvdXIgaWRl YSBjb25mbGljdHMgd2l0aCB3aGF0IE1hcmt1cyBoYXMgc3RhcnRlZCB0byBkbzoKPiA+IAo+ID4g WWVzLCBJIGRvbid0IHRoaW5rIHdlIHNob3VsZCByZXZlcnQgd2hhdCBNYXJrdXMgc3RhcnRlZC4g ICBCb3RoIHdheXMgb2YKPiA+IHJlZmVyZW5jaW5nIFFFTVUgaGVhZGVycyBoYXZlIGRvd25zaWRl cywgYnV0IEkgdGhpbmsgIi4uLiIgaGFzIGZld2VyCj4gPiBkb3duc2lkZXMgdGhhdCAiPC4uLi4i Pi4KPiAKPiBDb3VsZCB5b3UgcGxlYXNlIGV4cGxhaW4gd2hhdCB0aGUgYWR2YW50YWdlIG9mICIi IGlzPwo+IEl0IHNlZW1zIHRvIGJlIGdvbmUgc2luY2Ugd2UgbW92ZWQgaGVhZGVycyBhd2F5IGZy b20KPiBzb3VyY2UuCgpXZSBtb3ZlZCAqc29tZSogaGVhZGVycyBpbnRvIHRoZSBpbmNsdWRlLyBk aXJlY3RvcnkgdHJlZS4KCkkgc3RpbGwgY291bnQgNjUwKyBoZWFkZXJzIHdoaWNoIGFyZSBhbG9u Z3NpZGUgdGhlIC5jIGZpbGVzLgoKUmVnYXJkcywKRGFuaWVsCi0tIAp8OiBodHRwczovL2JlcnJh bmdlLmNvbSAgICAgIC1vLSAgICBodHRwczovL3d3dy5mbGlja3IuY29tL3Bob3Rvcy9kYmVycmFu Z2UgOnwKfDogaHR0cHM6Ly9saWJ2aXJ0Lm9yZyAgICAgICAgIC1vLSAgICAgICAgICAgIGh0dHBz Oi8vZnN0b3AxMzguYmVycmFuZ2UuY29tIDp8Cnw6IGh0dHBzOi8vZW50YW5nbGUtcGhvdG8ub3Jn ICAgIC1vLSAgICBodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2RiZXJyYW5nZSA6fAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==