From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/113885 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Thomas Savary via ntg-context Newsgroups: gmane.comp.tex.context Subject: Re: Contextual removal of some ligatures using fonts.handlers.otf.addfeature (LuaTeX 1.13.2) Date: Sat, 25 Dec 2021 23:52:38 +0100 Organization: =?UTF-8?B?Q29tcG/CoDg1?= Message-ID: <5743026.tOSfQ1P3WT@debian> References: <3718224.1odTDXuOTV@debian> <3AD2C1F1-EAAA-48F6-94FE-45493BD0CF6A@scorecrow.com> Reply-To: mailing list for ConTeXt users Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0218863575383574563==" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14813"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Thomas Savary To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Sun Dec 26 00:01:46 2021 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane-mx.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n1G2r-0003gP-Kh for gctc-ntg-context-518@m.gmane-mx.org; Sun, 26 Dec 2021 00:01:45 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 672E2289012; Sun, 26 Dec 2021 00:01:15 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id X1zrBKyQRSYN; Sun, 26 Dec 2021 00:01:13 +0100 (CET) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 05BBD2868D0; Sun, 26 Dec 2021 00:01:13 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 8A31F2868D0 for ; Sun, 26 Dec 2021 00:01:11 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Z16PkxdMWj5G for ; Sun, 26 Dec 2021 00:01:10 +0100 (CET) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=46.105.47.107; helo=6.mo580.mail-out.ovh.net; envelope-from=compo85@correctionpro.fr; receiver= X-Greylist: delayed 101404 seconds by postgrey-1.36 at zapf.ntg.nl; Sun, 26 Dec 2021 00:01:09 CET Original-Received: from 6.mo580.mail-out.ovh.net (6.mo580.mail-out.ovh.net [46.105.47.107]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id 018FA2868BB for ; Sun, 26 Dec 2021 00:01:09 +0100 (CET) Original-Received: from mxplan8.mail.ovh.net (unknown [10.108.20.209]) by mo580.mail-out.ovh.net (Postfix) with ESMTPS id 362F725234 for ; Sat, 25 Dec 2021 22:52:45 +0000 (UTC) Original-Received: from correctionpro.fr (37.59.142.98) by mxplan8.mail.ovh.net (172.16.2.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2375.17; Sat, 25 Dec 2021 23:52:44 +0100 Authentication-Results: garm.ovh; auth=pass (GARM-98R00273319a79-6421-414c-a748-da3b9549f04f, A0C9E27C518F8768C6A50DDE52C5F2D84A33B3F1) smtp.auth=thomas.savary@correctionpro.fr X-OVh-ClientIp: 78.214.159.116 In-Reply-To: <3AD2C1F1-EAAA-48F6-94FE-45493BD0CF6A@scorecrow.com> X-Ovh-Tracer-GUID: bec000b9-cefd-4a22-b08f-2301cf3c3df3 X-Ovh-Tracer-Id: 11582413820917996055 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvuddruddufedgtddvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkfhojghfgggtgfesrgfureertddtjeenucfhrhhomhepvfhhohhmrghsucfurghvrghrhicuoegtohhmphhokeehsegtohhrrhgvtghtihhonhhprhhordhfrheqnecuggftrfgrthhtvghrnheptdekhfejjeeggeevgeekfedvtddvhffhieejvdetgfeghedvvddtjeffieevleegnecuffhomhgrihhnpegtohhmphhokeehrdhfrhenucfkpheptddrtddrtddrtddpfeejrdehledrudegvddrleeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhpohhuthdphhgvlhhopehmgihplhgrnhekrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghomhhpohekheestghorhhrvggtthhiohhnphhrohdrfhhrpdhrtghpthhtohepnhhtghdqtghonhhtvgigthesnhhtghdrnhhl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.26 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.io gmane.comp.tex.context:113885 Archived-At: --===============0218863575383574563== Content-Type: multipart/alternative; boundary="nextPart2840394.IdRumr9Yh8" Content-Transfer-Encoding: 7Bit --nextPart2840394.IdRumr9Yh8 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" Hi Bruce and Hans=E2=80=AF! Thank you very much for your answers, that helped me a lot. In fact, though I would love to switch to ConTeXt one day, I am still using= LuaLaTeX =E2=80=94 I am a slow=20 learner and I know it will take me months to be able to achieve what I need= for my job with=20 ConTeXt and can do with LuaLaTeX and the Memoir class for the time being (d= espite sometimes=20 being irritated by LaTeX limitations or oddities). I need the EB Garamond variable font for future jobs, but this font, provid= ed by Google Fonts, is=20 such a mess=E2=80=AF: kerning problems, unusable OpenType features that hav= e to be rewritten from=20 scratch, shifts in glyphs table=E2=80=A6 For sure, the original font by Geo= rg Duffner was much better, but I=20 need the variable version. Lots of fixing necessary, but thanks to fonts.ha= ndlers.otf.addfeature I=20 have almost succeeded to make it a usable Garamond. Of course, it would be best to help Google improving this font, but I don= =E2=80=99t have time yet. The actual problem was with the italic ligatures "a_s", "e_s", "=C3=A9_s", = "i_s" and "u_s", that should occur=20 only at the end of words and not everywhere. Instead of removing the unwant= ed ligatures, I chose=20 another way as soon as I understood how to fully use =E2=80=9Ccurrent=E2=80= =9D to describe not only a single glyph,=20 but a string if necessary=E2=80=AF=E2=80=94=E2=80=85for instance, current= =3D{ { "a", "e", "eacute", "i", "u"}, {"s"} } Thanks for this wonderful tool=E2=80=AF! Thomas Savary 1 le Grand-Plessis =46-85340 L=E2=80=99=C3=8Ele-d=E2=80=99Olonne T=C3=A9l. 06 22 82 61 34 https://compo85.fr/ Le samedi 25 d=C3=A9cembre 2021, 00:04:51 CET Bruce Horrocks a =C3=A9crit : > > On 24 Dec 2021, at 18:34, Thomas Savary via ntg-context > > wrote: > >=20 > > Hello, dear list ! > >=20 > > In order to fix a few bugs in some OpenType features included in EB > > Garamond font provided by Google Fonts, I am trying to remove some > > ligatures (erroneous in some contexts) with > > fonts.handlers.otf.addfeature. > >=20 > > I must be missing something, because I can't get it to work. > >=20 > > Here is a minimal =E2=80=94non working=E2=80=94example :-) > > (The attempted removal (=E2=80=9Cf_i=E2=80=9D =E2=86=92 =E2=80=9Cfi=E2= =80=9D only before =E2=80=9Co=E2=80=9D) is of course > > irrelevant. I chose it just for the sole purpose of this test, to > > provide a simple example. What I am trying to achieve is more > > complex, with other ligatures.) > >=20 > > fonts.handlers.otf.addfeature{ > >=20 > > name =3D "unfio", > > type =3D "chainsubstitution", > > lookups =3D { > > =20 > > { type =3D "multiple", > > data =3D { [ "f_i" ] =3D { "f", "i" } } > > } > > =20 > > } > > rules =3D { > > =20 > > { after =3D { { "o" } }, > > current =3D { { "f_i" } }, > > lookups =3D { 1 } } > > =20 > > } > > =20 > > } > >=20 > > } > >=20 > > Could someone please explain to me what I did wrong ? >=20 > Firstly, you have an extra } in the example above. >=20 > Secondly, rules need to come inside a data section. Thus (untested): >=20 > fonts.handlers.otf.addfeature{ > name =3D "unfio", > type =3D "chainsubstitution", > lookups =3D { > { > type =3D "substitution", > data =3D { > [ "f_i" ] =3D { "f", "i" } > } > } > }, > data =3D { > rules =3D { > { > after =3D { { "o" } }, --nextPart2840394.IdRumr9Yh8 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="UTF-8"

Hi Bruce and Hans=E2=80=AF!


Thank you very much for your answers, that helped me a lot.


In fact, though I would love to switch to ConTeXt one day, I am still us= ing LuaLaTeX =E2=80=94 I am a slow learner and I know it will take me month= s to be able to achieve what I need for my job with ConTeXt and can do with= LuaLaTeX and the Memoir class for the time being (despite sometimes being = irritated by LaTeX limitations or oddities).


I need the EB Garamond variable font for future jobs, but this font, pro= vided by Google Fonts, is such a mess=E2=80=AF: kerning problems, unusable = OpenType features that have to be rewritten from scratch, shifts in glyphs = table=E2=80=A6 For sure, the original font by Georg Duffner was much better= , but I need the variable version. Lots of fixing necessary, but thanks to = fonts.handlers.otf.addfeature I have almost succeeded to make it a usable G= aramond.


Of course, it would be best to help Google improving this font, but I do= n=E2=80=99t have time yet.


The actual problem was with the italic ligatures "a_s", "= e_s", "=C3=A9_s", "i_s" and "u_s", that = should occur only at the end of words and not everywhere. Instead of removi= ng the unwanted ligatures, I chose another way as soon as I understood how = to fully use =E2=80=9Ccurrent=E2=80=9D to describe not only a single glyph,= but a string if necessary=E2=80=AF=E2=80=94=E2=80=85for instance, current= =3D{ { "a", "e", "eacute", "i", &qu= ot;u"}, {"s"} }


Thanks for this wonderful tool=E2=80=AF!


Thomas Savary

1 l= e Grand-Plessis

F-8= 5340 L=E2=80=99=C3=8Ele-d=E2=80=99Olonne

T= =C3=A9l. 06 22 82 61 34

htt= ps://compo85.fr/

Le = samedi 25 d=C3=A9cembre 2021, 00:04:51 CET Bruce Horrocks a =C3=A9crit :

>= ; > On 24 Dec 2021, at 18:34, Thomas Savary via ntg-context

>= ; > <ntg-context@ntg.nl> wrote:

>= ; >

>= ; > Hello, dear list !

>= ; >

>= ; > In order to fix a few bugs in some OpenType features included in EB<= /p>

>= ; > Garamond font provided by Google Fonts, I am trying to remove some

>= ; > ligatures (erroneous in some contexts) with

>= ; > fonts.handlers.otf.addfeature.

>= ; >

>= ; > I must be missing something, because I can't get it to work.

>= ; >

>= ; > Here is a minimal =E2=80=94non working=E2=80=94example :-)

>= ; > (The attempted removal (=E2=80=9Cf_i=E2=80=9D =E2=86=92 =E2=80=9Cfi= =E2=80=9D only before =E2=80=9Co=E2=80=9D) is of course

>= ; > irrelevant. I chose it just for the sole purpose of this test, to

>= ; > provide a simple example. What I am trying to achieve is more

>= ; > complex, with other ligatures.)

>= ; >

>= ; > fonts.handlers.otf.addfeature{

>= ; >

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 name =3D "unfio= ",

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 type =3D "chain= substitution",

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 lookups =3D {

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 { type =3D "multiple",

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 data =3D { [ "f_i" ] =3D { "f", "i" } }

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 }

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 rules =3D {

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 { after =3D { { "o" } },

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 current =3D { { "f_i" } },

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 lookups =3D { 1 } }

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0

>= ; >=C2=A0=C2=A0=C2=A0=C2=A0 }

>= ; >

>= ; > }

>= ; >

>= ; > Could someone please explain to me what I did wrong ?

>= ;

>= ; Firstly, you have an extra } in the example above.

>= ;

>= ; Secondly, rules need to come inside a data section. Thus (untested):

>= ;

>= ; fonts.handlers.otf.addfeature{

>= ;=C2=A0=C2=A0=C2=A0=C2=A0 name =3D "unfio",

>= ;=C2=A0=C2=A0=C2=A0=C2=A0 type =3D "chainsubstitution",

>= ;=C2=A0=C2=A0=C2=A0=C2=A0 lookups =3D {

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 t= ype =3D "substitution",

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 d= ata =3D {

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 [ "f_i" ] =3D { "f", "i&q= uot; }

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }=

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }

>= ;=C2=A0=C2=A0=C2=A0=C2=A0 },

>= ;=C2=A0=C2=A0=C2=A0=C2=A0 data =3D {

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 rules =3D {

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {=

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 after =3D { { "o" } },

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 current =3D { { "f_i" } },

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 lookups =3D { 1 }

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }=

>= ;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }

>= ;=C2=A0=C2=A0=C2=A0=C2=A0 }

>= ; }

>= ;

>= ; Regards,

>= ; =E2=80=94

>= ; Bruce Horrocks

>= ; Hampshire, UK


Thomas Savary

1 l= e Grand-Plessis

F-8= 5340 L=E2=80=99=C3=8Ele-d=E2=80=99Olonne

T= =C3=A9l. 06 22 82 61 34

htt= ps://compo85.fr/

Le = samedi 25 d=C3=A9cembre 2021, 00:04:51 CET Bruce Horrocks a =C3=A9crit :

>= ; > On 24 Dec 2021, at 18:34, Thomas Savary via ntg-context

>= ; > <ntg-context@ntg.nl> wrote:

>= ; >

>= ; > Hello, dear list=E2=80=AF!

>= ; >

>= ; > In order to fix a few bugs in some OpenType features included in EB<= /p>

>= ; > Garamond font provided by Google Fonts, I am trying to remove some

>= ; > ligatures (erroneous in some contexts) with

>= ; > fonts.handlers.otf.addfeature.

>= ; >

>= ; > I must be missing something, because I can't get it to work.

>= ; >

>= ; > Here is a minimal =E2=80=94non working=E2=80=94example :-)

>= ; > (The attempted removal (=E2=80=9Cf_i=E2=80=9D =E2=86=92 =E2=80=9Cfi= =E2=80=9D only before =E2=80=9Co=E2=80=9D) is of course

>= ; > irrelevant. I chose it just for the sole purpose of this test, to

>= ; > provide a simple example. What I am trying to achieve is more

>= ; > complex, with other ligatures.)

>= ; >

>= ; > fonts.handlers.otf.addfeature{

>= ; >

>= ; >         name =3D "unfio= ",

>= ; >         type =3D "chain= substitution",

>= ; >         lookups =3D {

>= ; >        

>= ; >           &nb= sp; { type =3D "multiple",

>= ; >           &nb= sp; data =3D { [ "f_i" ] =3D { "f", "i" } }

>= ; >           &nb= sp; }

>= ; >        

>= ; >         }

>= ; >         rules =3D {

>= ; >        

>= ; >           &nb= sp; { after =3D { { "o" } },

>= ; >           &nb= sp; current =3D { { "f_i" } },

>= ; >           &nb= sp; lookups =3D { 1 } }

>= ; >        

>= ; >         }

>= ; >    

>= ; >     }

>= ; >

>= ; > }

>= ; >

>= ; > Could someone please explain to me what I did wrong=E2=80=AF?

>= ;

>= ; Firstly, you have an extra } in the example above.

>= ;

>= ; Secondly, rules need to come inside a data section. Thus (untested):

>= ;

>= ; fonts.handlers.otf.addfeature{

>= ;     name =3D "unfio",

>= ;     type =3D "chainsubstitution",

>= ;     lookups =3D {

>= ;         {

>= ;             t= ype =3D "substitution",

>= ;             d= ata =3D {

>= ;            &n= bsp;    [ "f_i" ] =3D { "f", "i&quo= t; }

>= ;             }=

>= ;         }

>= ;     },

>= ;     data =3D {

>= ;         rules =3D {

>= ;             {=

>= ;            &n= bsp;    after =3D { { "o" } },

>= ;            &n= bsp;    current =3D { { "f_i" } },

>= ;            &n= bsp;    lookups =3D { 1 }

>= ;             }=

>= ;         }

>= ;     }

>= ; }

>= ;

>= ; Regards,

>= ; =E2=80=94

>= ; Bruce Horrocks

>= ; Hampshire, UK



--nextPart2840394.IdRumr9Yh8-- --===============0218863575383574563== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSWYgeW91ciBxdWVzdGlvbiBpcyBvZiBpbnRlcmVz dCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBlbnRyeSB0byB0aGUgV2lraSEKCm1h aWxsaXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cDovL3d3dy5udGcubmwvbWFpbG1hbi9s aXN0aW5mby9udGctY29udGV4dAp3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAv IGh0dHA6Ly9jb250ZXh0LmFhbmhldC5uZXQKYXJjaGl2ZSAgOiBodHRwczovL2JpdGJ1Y2tldC5v cmcvcGhnL2NvbnRleHQtbWlycm9yL2NvbW1pdHMvCndpa2kgICAgIDogaHR0cDovL2NvbnRleHRn YXJkZW4ubmV0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCg== --===============0218863575383574563==--