Page MenuHomePhabricator

Install Noto fonts on scaling servers for SVG rendering
Closed, ResolvedPublic

Description

Google's Noto fonts are freely licensed (SIL Open Font License), are "designed to cover all the scripts encoded in the Unicode standard", are "designed with the goal of achieving visual harmony (e.g., compatible heights and stroke thicknesses) across multiple languages/scripts", they don't look like crap, and most importantly, they support emojis ;)

These fonts are basically a huge gift with a bow on top to solve our multi-lingual SVG rendering needs. Can we install them on the scaling servers? Right now the fonts the we have available are a random mishmash with incomplete glyph coverage and inconsistent quality and styling.

Event Timeline

kaldari created this task.Jan 10 2018, 11:54 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJan 10 2018, 11:54 PM

Change 403605 had a related patch set uploaded (by Reedy; owner: Reedy):
[operations/puppet@production] Add fonts-nono to mediawiki::packages::fonts

https://gerrit.wikimedia.org/r/403605

I just noticed, @Reedy, that only a select few Noto fonts are actually in the noto-fonts package; the rest are in noto-fonts-unhinted and noto-fonts-hinted, so they should be added as well. (There are also noto-cjk and noto-cjk-extra, but I’d rather speakers of languages using those fonts weigh in for those.)

I just noticed, @Reedy, that only a select few Noto fonts are actually in the noto-fonts package; the rest are in noto-fonts-unhinted and noto-fonts-hinted, so they should be added as well. (There are also noto-cjk and noto-cjk-extra, but I’d rather speakers of languages using those fonts weigh in for those.)

Unfortunately, not quite so simple.

https://packages.debian.org/stretch/fonts-noto-hinted is only in stretch, not in jessie https://packages.debian.org/jessie/fonts-noto-hinted

Same for https://packages.debian.org/stretch/fonts-noto-unhinted and https://packages.debian.org/jessie/fonts-noto-unhinted

So as things stand, we can't install them unless we get them backported (which may be trivial if it's just changing a changelog, and making a fork of the package), or wait for stretch to be everywhere we care about for these packages, which is T174431: Upgrade mw* servers to Debian Stretch (using HHVM)

So basically, we can ship this now, and then a task can be filed to add the others *after* T174431 is done and out of the way

So basically, we can ship this now, and then a task can be filed to add the others *after* T174431 is done and out of the way

Sounds reasonable.

kaldari updated the task description. (Show Details)Jan 11 2018, 5:40 PM

Change 403605 merged by Dzahn:
[operations/puppet@production] Add Noto fonts to mediawiki::packages::fonts

https://gerrit.wikimedia.org/r/403605

Change 403832 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] mediawiki::fonts: fix noto font inclusion on jessie

https://gerrit.wikimedia.org/r/403832

Change 403832 merged by Dzahn:
[operations/puppet@production] mediawiki::fonts: fix noto font inclusion on jessie

https://gerrit.wikimedia.org/r/403832

Dzahn added a subscriber: Dzahn.Jan 11 2018, 11:15 PM

after the changes above, now:

jessie-imagescaler:

[mw1293:~] $ dpkg -l | grep noto
ii  fonts-noto                               2013-04-11-2                      all          "No Tofu" font families with large Unicode coverage
ii  fonts-noto-cjk                           1:1.004+repack2-1~bpo8+1          all          "No Tofu" font families with large Unicode coverage (CJK)

stretch-videoscaler:

[mw1307:~] $ dpkg -l | grep noto
ii  fonts-noto-cjk                       1:1.004+repack2-2                 all          "No Tofu" font families with large Unicode coverage (CJK)
ii  fonts-noto-hinted                    20161116-1                        all          "No Tofu" font families with large Unicode coverage (hinted)
ii  fonts-noto-unhinted                  20161116-1                        all          "No Tofu" font families with large Unicode coverage (unhinted)
Dzahn closed this task as Resolved.Jan 11 2018, 11:15 PM
Dzahn claimed this task.

@Dzahn: Shouldn't stretch also show the plain "fonts-noto"?

@kaldari No, it is expected like this per these comments from Moritz and Reedy on https://gerrit.wikimedia.org/r/#/c/403605/

"Since we're moving to stretch let's already cover it in this patch; in stretch fonts-noto is a meta package which also recommends some other packages (but we don't install Recommends by default). So let's rework the patch to install fonts-noto on jessie and "fonts-noto-unhinted, fonts-noto-mono, fonts-noto-cjk, fonts-noto-hinted" on >= stretch."

"Not 100% sure if we want to install all of the other packages as per https://phabricator.wikimedia.org/T184664#3892703"

@Dzahn: Ah, got it! Makes sense!

When should we expect these to be available for use and/or show up on https://noc.wikimedia.org/conf/fc-list?

Sorry, i don't know about fc-list, that's a Mediawiki config file and it seems last time it was updated was in 2014.

Dzahn removed Dzahn as the assignee of this task.Jan 11 2018, 11:54 PM
Dzahn reopened this task as Open.

Yeah, I'm not actually sure what is required to make fonts available to librsvg. There's also the issue of making them available to things like PHPlot, Graphoid, etc. I have no idea which of those is related to https://noc.wikimedia.org/conf/fc-list, if any (or how to modify it). I bet @ArielGlenn knows.

@Shizhao By adding that tag, would you please explain how this is suitable to write into Tech News?

Dzahn added a comment.Jan 12 2018, 7:27 PM

@kaldari in "git log fc-list" i found a reference to "RT ticket #810". I then used phab advanced search with the reference field to search for "rt810" and it got me to T79424

Dzahn added a comment.Jan 12 2018, 7:33 PM

1[mw1293:~] $ fc-list :fontformat=TrueType
2/usr/share/fonts/truetype/lato/Lato-Medium.ttf: Lato,Lato Medium:style=Medium,Regular
3/usr/share/fonts/truetype/droid/DroidSansHebrew-Regular.ttf: Droid Sans Hebrew:style=Regular
4/usr/share/fonts/opentype/fonts-hosny-amiri/amiri-quran.ttf: Amiri Quran:style=Regular,عادي
5/usr/share/fonts/truetype/tlwg/TlwgTypo-Bold.ttf: Tlwg Typo:style=Bold
6/usr/share/fonts/truetype/lato/Lato-SemiboldItalic.ttf: Lato,Lato Semibold:style=Semibold Italic,Italic
7/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
8/usr/share/fonts/truetype/arphic/uming.ttc: AR PL UMing TW MBE:style=Light
9/usr/share/fonts/truetype/noto/NotoSansThai-Regular.ttf: Noto Sans Thai:style=Regular
10/usr/share/fonts/truetype/ebgaramond/EBGaramond-InitialsF1.ttf: EB Garamond Initials Fill1:style=Regular
11/usr/share/fonts/truetype/fonts-kalapi/Kalapi.ttf: Kalapi:style=Regular
12/usr/share/fonts/truetype/fonts-arabeyes/ae_Arab.ttf: Arab:style=Regular
13/usr/share/fonts/truetype/fonts-gujr-extra/Rekha.ttf: Rekha:style=Medium
14/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
15/usr/share/fonts/truetype/culmus/HadasimCLM-BoldOblique.ttf: Hadasim CLM:style=BoldOblique
16/usr/share/fonts/truetype/padauk/Padauk.ttf: Padauk,ပိá€á€¯á€¶á€¸á€™á€²
17/usr/share/fonts/truetype/dejavu/DejaVuSansMono-BoldOblique.ttf: DejaVu Sans Mono:style=Bold Oblique
18/usr/share/fonts/truetype/fonts-arabeyes/ae_Hani.ttf: Hani:style=Regular
19/usr/share/fonts/truetype/droid/DroidSansArmenian.ttf: Droid Sans Armenian:style=Regular
20/usr/share/fonts/truetype/tlwg/Laksaman-Bold.ttf: Laksaman:style=Bold
21/usr/share/fonts/truetype/fonts-arabeyes/ae_Electron.ttf: Electron:style=Regular
22/usr/share/fonts/truetype/tlwg/Purisa-Bold.ttf: Purisa:style=Bold
23/usr/share/fonts/truetype/culmus/MiriamMonoCLM-BookOblique.ttf: Miriam Mono CLM:style=BookOblique
24/usr/share/fonts/truetype/crosextra/Caladea-Regular.ttf: Caladea:style=Regular
25/usr/share/fonts/truetype/fonts-arabeyes/ae_AlBattar.ttf: AlBattar:style=Regular
26/usr/share/fonts/truetype/culmus/DavidCLM-Bold.ttf: David CLM:style=Bold
27/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf: IPAexGothic,IPAexゴシック:style=Regular
28/usr/share/fonts/truetype/noto/NotoSansLaoUI-Bold.ttf: Noto Sans Lao UI:style=Bold
29/usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf: Kochi Mincho,東風明朝:style=Regular,標準
30/usr/share/fonts/truetype/fonts-gujr-extra/padmaa.ttf: padmaa,padmmaa:style=Normal,Medium
31/usr/share/fonts/truetype/culmus/HadasimCLM-RegularOblique.ttf: Hadasim CLM:style=RegularOblique
32/usr/share/fonts/truetype/tlwg/Waree-Oblique.ttf: Waree:style=Oblique
33/usr/share/fonts/opentype/fonts-hosny-amiri/amiri-bold.ttf: Amiri:style=Bold,عريض
34/usr/share/fonts/truetype/lato/Lato-Light.ttf: Lato,Lato Light:style=Light,Regular
35/usr/share/fonts/truetype/fonts-arabeyes/ae_AlHor.ttf: AlHor:style=Regular
36/usr/share/fonts/truetype/malayalam-fonts/Meera.ttf: Meera:style=Regular
37/usr/share/fonts/truetype/fonts-arabeyes/ae_Nada.ttf: Nada:style=Regular
38/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf: Liberation Mono:style=Regular
39/usr/share/fonts/truetype/noto/NotoSans-Italic.ttf: Noto Sans:style=Italic
40/usr/share/fonts/truetype/tlwg/TlwgTypist.ttf: Tlwg Typist:style=Medium
41/usr/share/fonts/truetype/noto/NotoSansArmenian-Regular.ttf: Noto Sans Armenian:style=Regular
42/usr/share/fonts/truetype/gentium/GenI102.ttf: Gentium:style=Italic
43/usr/share/fonts/truetype/lato/Lato-Regular.ttf: Lato:style=Regular
44/usr/share/fonts/truetype/unfonts-extra/UnJamoBatang.ttf: UnJamoBatang,은 자모 바탕:style=Regular
45/usr/share/fonts/truetype/culmus/ShofarRegularOblique.ttf: Shofar:style=RegularOblique
46/usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf: IPAPGothic,IPA Pゴシック:style=Regular
47/usr/share/fonts/truetype/tlwg/Garuda-Bold.ttf: Garuda:style=Bold
48/usr/share/fonts/truetype/lohit-devanagari/Lohit-Devanagari.ttf: Lohit Devanagari:style=Regular
49/usr/share/fonts/truetype/noto/NotoSansDevanagariUI-Bold.ttf: Noto Sans Devanagari UI:style=Bold
50/usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf: Liberation Sans:style=Italic
51/usr/share/fonts/truetype/gentium-basic/GenBasB.ttf: Gentium Basic:style=Bold
52/usr/share/fonts/truetype/fonts-deva-extra/kalimati.ttf: Kalimati,नालिमाटी:style=Regular,कालिमाटी
53/usr/share/fonts/truetype/noto/NotoSerif-Regular.ttf: Noto Serif:style=Regular
54/usr/share/fonts/truetype/tlwg/TlwgTypist-BoldOblique.ttf: Tlwg Typist:style=BoldOblique
55/usr/share/fonts/truetype/unfonts-core/UnGungseo.ttf: UnGungseo,은 궁서:style=Regular
56/usr/share/fonts/truetype/tlwg/TlwgTypist-Oblique.ttf: Tlwg Typist:style=Oblique
57/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-BoldOblique.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold Oblique,Bold Oblique
58/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf: Droid Sans Fallback:style=Regular
59/usr/share/fonts/truetype/fonts-japanese-gothic.ttf: TakaoPGothic,Takao Pゴシック:style=Regular
60/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-RI.ttf: Ubuntu:style=Italic
61/usr/share/fonts/truetype/unfonts-core/UnDotum.ttf: UnDotum,은 돋움:style=Regular
62/usr/share/fonts/truetype/gentium-basic/GenBkBasR.ttf: Gentium Book Basic:style=Regular
63/usr/share/fonts/truetype/noto/NotoSansTamil-Bold.ttf: Noto Sans Tamil:style=Bold
64/usr/share/fonts/truetype/tlwg/Loma-BoldOblique.ttf: Loma:style=BoldOblique
65/usr/share/fonts/truetype/alee/Bandal.ttf: Bandal,반달:style=Regular
66/usr/share/fonts/truetype/lato/Lato-ThinItalic.ttf: Lato,Lato Thin:style=Thin Italic,Italic
67/usr/share/fonts/truetype/crosextra/Carlito-BoldItalic.ttf: Carlito:style=Bold Italic
68/usr/share/fonts/truetype/junicode/Junicode-Italic.ttf: Junicode:style=Italic
69/usr/share/fonts/truetype/khmeros/KhmerOS.ttf: Khmer OS:style=Regular
70/usr/share/fonts/truetype/malayalam-fonts/Kalyani.ttf: Kalyani:style=Book
71/usr/share/fonts/truetype/gentium-basic/GenBasI.ttf: Gentium Basic:style=Italic
72/usr/share/fonts/truetype/tlwg/TlwgMono-BoldOblique.ttf: TlwgMono:style=BoldOblique
73/usr/share/fonts/truetype/liberation/LiberationSerif-BoldItalic.ttf: Liberation Serif:style=Bold Italic
74/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed,Book
75/usr/share/fonts/truetype/gentium-basic/GenBasBI.ttf: Gentium Basic:style=Bold Italic
76/usr/share/fonts/truetype/lohit-telugu/Lohit-Telugu.ttf: Lohit Telugu:style=Regular
77/usr/share/fonts/truetype/fonts-arabeyes/ae_AlYarmook.ttf: AlYarmook:style=Regular
78/usr/share/fonts/truetype/noto/NotoSansLao-Regular.ttf: Noto Sans Lao:style=Regular
79/usr/share/fonts/truetype/freefont/FreeSerif.ttf: FreeSerif:style=Regular,нормален,normal,obyčejné,Mittel,µεσαία,Normaali,Normál,Normale,Gemiddeld,odmiana zwykła,Обычный,Normálne,ปกติ,menengah,прямій,Navadno,vidējs,normalusis,عادی,vừa,Arrunta,सामान्य
80/usr/share/fonts/truetype/ezra/SILEOT.ttf: Ezra SIL:style=Regular
81/usr/share/fonts/truetype/abyssinica/AbyssinicaSIL-R.ttf: Abyssinica SIL:style=Regular
82/usr/share/fonts/truetype/freefont/FreeMonoOblique.ttf: FreeMono:style=Oblique,наклонен,cursiva,kurzíva,kursiv,Πλάγια,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,Kursywa,Itálico,oblic,Курсив,İtalik,huruf miring,похилий,ležeče,slīpraksts,pasvirasis,nghiêng,Etzana,तिरछा
83/usr/share/fonts/truetype/noto/NotoSerif-Italic.ttf: Noto Serif:style=Italic
84/usr/share/fonts/truetype/fonts-arabeyes/ae_Rasheeq-Bold.ttf: Rasheeq,Rasheeq\-Bold:style=Bold
85/usr/share/fonts/truetype/droid/DroidNaskhUI-Regular.ttf: Droid Naskh Shift Alt:style=Regular
86/usr/share/fonts/truetype/kochi/kochi-mincho.ttf: Kochi Mincho,東風明朝:style=Regular,標準
87/usr/share/fonts/truetype/tlwg/Norasi-Bold.ttf: Norasi:style=Bold
88/usr/share/fonts/truetype/fonts-arabeyes/ae_Sindbad.ttf: Sindbad:style=Regular
89/usr/share/fonts/truetype/culmus/FrankRuehlCLM-BoldOblique.ttf: Frank Ruehl CLM:style=BoldOblique
90/usr/share/fonts/truetype/unfonts-core/UnGraphic.ttf: UnGraphic,은 그래픽:style=Regular
91/usr/share/fonts/truetype/lyx/cmex10.ttf: cmex10:style=Regular
92/usr/share/fonts/truetype/tlwg/Sawasdee-Oblique.ttf: Sawasdee:style=Oblique
93/usr/share/fonts/truetype/fonts-arabeyes/ae_Haramain.ttf: Haramain:style=Regular
94/usr/share/fonts/opentype/lateef/LateefRegOT.ttf: Lateef:style=Regular
95/usr/share/fonts/truetype/tlwg/Kinnari-Bold.ttf: Kinnari:style=Bold তি:style=Regular
96/usr/share/fonts/truetype/noto/NotoSerifGeorgian-Regular.ttf: Noto Serif Georgian:style=Regular
97/usr/share/fonts/truetype/tlwg/TlwgMono-Bold.ttf: TlwgMono:style=Bold
98/usr/share/fonts/truetype/droid/DroidSerif-Italic.ttf: Droid Serif:style=Italic
99/usr/share/fonts/truetype/takao-gothic/TakaoExGothic.ttf: TakaoExGothic,TakaoExゴシック:style=Regular
100/usr/share/fonts/truetype/noto/NotoSerifLao-Bold.ttf: Noto Serif Lao:style=Bold
101/usr/share/fonts/truetype/droid/DroidSerif-BoldItalic.ttf: Droid Serif:style=Bold Italic
102/usr/share/fonts/truetype/tlwg/Umpush-Light.ttf: Umpush:style=Light
103/usr/share/fonts/truetype/ebgaramond/EBGaramond12-Italic.ttf: EB Garamond,EB Garamond 12:style=12 Italic,Italic
104/usr/share/fonts/truetype/noto/NotoSansDevanagari-Regular.ttf: Noto Sans Devanagari:style=Regular
105/usr/share/fonts/truetype/culmus/ShofarRegular.ttf: Shofar:style=Regular
106/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttf: Ubuntu:style=Regular
107/usr/share/fonts/truetype/khmeros/KhmerOSbattambang.ttf: Khmer OS Battambang:style=Regular
108/usr/share/fonts/truetype/fonts-arabeyes/ae_Ouhod-Bold.ttf: Ouhod,Ouhod\-Bold:style=Bold
109/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-Bold.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold,Bold
110/usr/share/fonts/truetype/liberation/LiberationSansNarrow-BoldItalic.ttf: Liberation Sans Narrow:style=Bold Italic
111/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
112/usr/share/fonts/truetype/fonts-arabeyes/ae_Granada.ttf: Granada:style=Regular
113/usr/share/fonts/truetype/freefont/FreeSansBoldOblique.ttf: FreeSans:style=Bold Oblique,получерен наклонен,negreta cursiva,tučné kurzíva,fed kursiv,Fett-Kursiv,Έντονη Πλάγια,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Félkövér dőlt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itálico,gros oblic,Обычный Курсив,Tučná kurzíva,Fet Kursiv,Kalın İtalik,huruf tebal miring,жирний похилий,polkrepko ležeče,treknais slīpraksts,pusjuodis pasvirasis,nghiêng đậm,Lodi etzana,धृष्ट-तिरछा
114/usr/share/fonts/truetype/tlwg/Garuda-Oblique.ttf: Garuda:style=Oblique
115/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-C.ttf: Ubuntu Condensed:style=Regular
116/usr/share/fonts/opentype/ipaexfont-mincho/ipaexm.ttf: IPAexMincho,IPAex明朝:style=Regular
117/usr/share/fonts/truetype/crosextra/Carlito-Italic.ttf: Carlito:style=Italic
118/usr/share/fonts/truetype/droid/DroidSerif-Regular.ttf: Droid Serif:style=Regular
119/usr/share/fonts/truetype/dejavu/DejaVuSans-Oblique.ttf: DejaVu Sans:style=Oblique
120/usr/share/fonts/truetype/kacst/KacstDecorative.ttf: KacstDecorative:style=Medium
121/usr/share/fonts/truetype/sinhala/lklug.ttf: LKLUG:style=Regular
122/usr/share/fonts/truetype/unfonts-extra/UnJamoSora.ttf: UnJamoSora,은 자모 소라:style=Regular
123/usr/share/fonts/truetype/mgopen/MgOpenCosmeticaBoldOblique.ttf: MgOpen Cosmetica:style=Bold Oblique
124/usr/share/fonts/opentype/ipafont-mincho/ipamp.ttf: IPAPMincho,IPA P明朝:style=Regular
125/usr/share/fonts/truetype/tlwg/Norasi.ttf: Norasi:style=Regular
126/usr/share/fonts/truetype/noto/NotoSerifThai-Bold.ttf: Noto Serif Thai:style=Bold
127/usr/share/fonts/truetype/khmeros/KhmerOSmetalchrieng.ttf: Khmer OS Metal Chrieng:style=Regular
128/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf: IPAGothic,IPAゴシック:style=Regular
129/usr/share/fonts/truetype/culmus/FrankRuehlCLM-Medium.ttf: Frank Ruehl CLM:style=Medium
130/usr/share/fonts/truetype/fonts-arabeyes/ae_Khalid.ttf: Khalid:style=Regular
131/usr/share/fonts/truetype/tlwg/Laksaman-BoldItalic.ttf: Laksaman:style=Bold Italic
132/usr/share/fonts/truetype/lohit-tamil-classical/Lohit-Tamil-Classical.ttf: Lohit Tamil Classical:style=Regular
133/usr/share/fonts/truetype/mgopen/MgOpenCanonicaRegular.ttf: MgOpen Canonica:style=Regular
134/usr/share/fonts/truetype/noto/NotoSansUI-Bold.ttf: Noto Sans UI:style=Bold
135/usr/share/fonts/truetype/mgopen/MgOpenModataRegular.ttf: MgOpen Modata:style=Regular
136/usr/share/fonts/truetype/lao/Phetsarath_OT.ttf: Phetsarath OT:style=Regular
137/usr/share/fonts/truetype/tlwg/TlwgTypist-Bold.ttf: Tlwg Typist:style=Bold
138/usr/share/fonts/truetype/tlwg/TlwgTypewriter-Bold.ttf: TlwgTypewriter:style=Bold
139/usr/share/fonts/truetype/fonts-taml-tscu/TSCu_Paranar.ttf: TSCu_Paranar:style=Regular
140/usr/share/fonts/truetype/tlwg/Sawasdee.ttf: Sawasdee:style=Regular
141/usr/share/fonts/truetype/fonts-beng-extra/JamrulNormal.ttf: Jamrul:style=Normal
142/usr/share/fonts/truetype/culmus/ShofarDemi-Bold.ttf: Shofar:style=Bold
143/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf: VL Gothic,VL ゴシック:style=regular
144/usr/share/fonts/truetype/noto/NotoSansEthiopic-Bold.ttf: Noto Sans Ethiopic:style=Bold
145/usr/share/fonts/truetype/noto/NotoSerif-BoldItalic.ttf: Noto Serif:style=Bold Italic
146/usr/share/fonts/truetype/tlwg/TlwgTypo-BoldOblique.ttf: Tlwg Typo:style=BoldOblique
147/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf: Ubuntu Mono:style=Bold
148/usr/share/fonts/truetype/tlwg/Waree.ttf: Waree:style=Book
149/usr/share/fonts/truetype/fonts-arabeyes/ae_Hor.ttf: Hor:style=Regular
150/usr/share/fonts/truetype/padauk/Padauk-book.ttf: Padauk Book,ပိá€á€¯á€¶á€¸á€™á€²
151/usr/share/fonts/truetype/unfonts-extra/UnPilgia.ttf: UnPilgia,은 필기a:style=Regular
152/usr/share/fonts/truetype/tlwg/Laksaman.ttf: Laksaman:style=Regular
153/usr/share/fonts/truetype/lohit-kannada/Lohit-Kannada.ttf: Lohit Kannada:style=Regular
154/usr/share/fonts/truetype/noto/NotoSerifGeorgian-Bold.ttf: Noto Serif Georgian:style=Bold
155/usr/share/fonts/truetype/fonts-arabeyes/ae_Nice.ttf: Nice:style=Regular
156/usr/share/fonts/truetype/liberation/LiberationSansNarrow-Bold.ttf: Liberation Sans Narrow:style=Bold
157/usr/share/fonts/truetype/droid/DroidSansEthiopic-Bold.ttf: Droid Sans Ethiopic:style=Bold
158/usr/share/fonts/truetype/lyx/cmr10.ttf: cmr10:style=Regular
159/usr/share/fonts/truetype/noto/NotoSansLao-Bold.ttf: Noto Sans Lao:style=Bold
160/usr/share/fonts/truetype/lyx/msam10.ttf: msam10:style=Regular
161/usr/share/fonts/truetype/lato/Lato-Heavy.ttf: Lato,Lato Heavy:style=Heavy,Regular
162/usr/share/fonts/truetype/fonts-telu-extra/Pothana2000.ttf: Pothana2000:style=Regular
163/usr/share/fonts/truetype/fonts-taml-tscu/TSCu_Comic.ttf: TSCu_Comic:style=Normal
164/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf: Liberation Sans:style=Bold
165/usr/share/fonts/truetype/Gubbi/Gubbi.ttf: Gubbi:style=Normal
166/usr/share/fonts/truetype/fonts-arabeyes/ae_Sharjah.ttf: Sharjah:style=Regular
167/usr/share/fonts/truetype/fonts-arabeyes/ae_Kayrawan.ttf: Kayrawan:style=Regular
168/usr/share/fonts/truetype/mgopen/MgOpenCosmeticaBold.ttf: MgOpen Cosmetica:style=Bold
169/usr/share/fonts/truetype/freefont/FreeSerifItalic.ttf: FreeSerif:style=Italic,курсивен,cursiva,kurzíva,kursiv,Λειψίας,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,kursywa,Itálico,cursiv,Курсив,ตัวเอียง,İtalik,kursif,Ležeče,kursīvs,kursivas,nghiêng,Etzana,तिरछा
170/usr/share/fonts/truetype/ebgaramond/EBGaramond08-SC.ttf: EB Garamond,EB Garamond 08 SC:style=08 SC Regular,Normal,obyčejné,Standard,Κανονικά,SC,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
171/usr/share/fonts/truetype/droid/DroidSansGeorgian.ttf: Droid Sans Georgian:style=Regular
172/usr/share/fonts/truetype/fonts-arabeyes/ae_Mashq.ttf: Mashq:style=Regular
173/usr/share/fonts/truetype/noto/NotoSansGeorgian-Bold.ttf: Noto Sans Georgian:style=Bold
174/usr/share/fonts/truetype/malayalam-fonts/Dyuthi.ttf: Dyuthi:style=Regular,Book
175/usr/share/fonts/truetype/freefont/FreeMono.ttf: FreeMono:style=Regular,нормален,normal,obyčejné,Standard,µεσαία,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,menengah,прямій,navadno,vidējs,normalusis,thường,Arrunta,सामान्य
176/usr/share/fonts/truetype/mgopen/MgOpenCanonicaBold.ttf: MgOpen Canonica:style=Bold
177/usr/share/fonts/truetype/lato/Lato-Semibold.ttf: Lato,Lato Semibold:style=Semibold,Regular
178/usr/share/fonts/truetype/noto/NotoSerif-Bold.ttf: Noto Serif:style=Bold
179/usr/share/fonts/truetype/noto/NotoSansHebrew-Regular.ttf: Noto Sans Hebrew:style=Regular
180/usr/share/fonts/truetype/tlwg/Umpush-LightOblique.ttf: Umpush:style=LightOblique
181/usr/share/fonts/truetype/samyak-fonts/Samyak-Gujarati.ttf: Samyak Gujarati:style=Regular
182/usr/share/fonts/truetype/noto/NotoSerifLao-Regular.ttf: Noto Serif Lao:style=Regular
183/usr/share/fonts/truetype/font-awesome/fontawesome-webfont.ttf: FontAwesome:style=Regular
184/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-M.ttf: Ubuntu,Ubuntu Medium:style=Medium,Bold
185/usr/share/fonts/truetype/fonts-deva-extra/chandas1-2.ttf: Chandas:style=Regular
186/usr/share/fonts/truetype/kacst/KacstBook.ttf: KacstBook:style=Medium
187/usr/share/fonts/truetype/culmus/KeterYG-Medium.ttf: Keter YG:style=Medium
188/usr/share/fonts/truetype/kacst/KacstPoster.ttf: KacstPoster:style=Medium
189/usr/share/fonts/truetype/fonts-arabeyes/ae_Metal.ttf: Metal:style=Regular
190/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf: TakaoGothic,Takaoゴシック:style=Regular
191/usr/share/fonts/truetype/mgopen/MgOpenCanonicaItalic.ttf: MgOpen Canonica:style=Italic
192/usr/share/fonts/truetype/unfonts-extra/UnJamoDotum.ttf: UnJamoDotum,은 자모 돋움:style=Regular
193/usr/share/fonts/truetype/fonts-gujr-extra/padmaa-Bold.1.1.ttf: padmaa\-Bold.1.1,padmaa,padmmaa:style=Bold.1.1,bold,medium
194/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf: Ubuntu:style=Bold
195/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf: FreeSans:style=Oblique,наклонен,negreta cursiva,kurzíva,kursiv,Πλάγια,Cursiva,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,kursywa,Itálico,oblic,Курсив,İtalik,huruf miring,похилий,Ležeče,slīpraksts,pasvirasis,nghiêng,Etzana,तिरछा
196/usr/share/fonts/truetype/noto/NotoSerifThai-Regular.ttf: Noto Serif Thai:style=Regular
197/usr/share/fonts/truetype/takao-mincho/TakaoMincho.ttf: TakaoMincho,Takao明朝:style=Regular
198/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-BI.ttf: Ubuntu:style=Bold Italic
199/usr/share/fonts/truetype/culmus/DavidCLM-Medium.ttf: David CLM:style=Medium
200/usr/share/fonts/truetype/Sahadeva/sahadeva.ttf: Sahadeva:style=Regular
201/usr/share/fonts/truetype/tlwg/Garuda.ttf: Garuda:style=Book
202/usr/share/fonts/truetype/fonts-arabeyes/ae_AlManzomah.ttf: AlManzomah:style=Regular
203/usr/share/fonts/truetype/noto/NotoSansUI-Regular.ttf: Noto Sans UI:style=Regular
204/usr/share/fonts/truetype/unfonts-extra/UnPen.ttf: UnPen,은 펜:style=Regular
205/usr/share/fonts/truetype/mgopen/MgOpenModernaBoldOblique.ttf: MgOpen Moderna:style=BoldOblique
206/usr/share/fonts/truetype/lato/Lato-HeavyItalic.ttf: Lato,Lato Heavy:style=Heavy Italic,Italic
207/usr/share/fonts/truetype/kacst/KacstQurn.ttf: KacstQurn:style=Medium,Regular
208/usr/share/fonts/truetype/noto/NotoSansKhmerUI-Regular.ttf: Noto Sans,Noto Sans Khmer UI:style=Regular
209/usr/share/fonts/truetype/mgopen/MgOpenModataBold.ttf: MgOpen Modata:style=Bold
210/usr/share/fonts/truetype/unfonts-extra/UnPenheulim.ttf: UnPenheulim,은 펜흘림:style=Regular
211/usr/share/fonts/truetype/kacst/KacstNaskh.ttf: KacstNaskh:style=Medium
212/usr/share/fonts/truetype/gentium/GenR102.ttf: Gentium:style=Regular
213/usr/share/fonts/truetype/gentium-basic/GenBkBasB.ttf: Gentium Book Basic:style=Bold
214/usr/share/fonts/truetype/alee/EunjinNakseo.ttf: Eunjin Nakseo,은진 낙서:style=Regular
215/usr/share/fonts/truetype/khmeros/KhmerOSmuollight.ttf: Khmer OS Muol Light:style=Regular
216/usr/share/fonts/truetype/tlwg/Kinnari.ttf: Kinnari:style=Medium
217/usr/share/fonts/truetype/Nakula/nakula.ttf: Nakula:style=Regular
218/usr/share/fonts/truetype/culmus/HadasimCLM-Bold.ttf: Hadasim CLM:style=Bold
219/usr/share/fonts/truetype/lato/Lato-BlackItalic.ttf: Lato,Lato Black:style=Black Italic,Italic
220/usr/share/fonts/truetype/fonts-deva-extra/samanata.ttf: Samanata:style=Regular
221/usr/share/fonts/truetype/mgopen/MgOpenModernaBold.ttf: MgOpen Moderna:style=Bold
222/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
223/usr/share/fonts/truetype/fonts-telu-extra/vemana2000.ttf: Vemana2000:style=Regular
224/usr/share/fonts/truetype/lyx/cmsy10.ttf: cmsy10:style=Regular
225/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf: FreeMono:style=Bold,получерен,negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,gros,Полужирный,Fet,Kalın,huruf tebal,жирний,polkrepko,treknraksts,pusjuodis,đậm,Lodia,धृष्ट
226/usr/share/fonts/truetype/fonts-beng-extra/ani.ttf: Ani,অনি Dvf:style=Regular
227/usr/share/fonts/truetype/mgopen/MgOpenCosmeticaOblique.ttf: MgOpen Cosmetica:style=Oblique
228/usr/share/fonts/truetype/lyx/cmmi10.ttf: cmmi10:style=Regular
229/usr/share/fonts/truetype/ebgaramond/EBGaramond-Initials.ttf: EB Garamond Initials:style=Regular
230/usr/share/fonts/truetype/culmus/MiriamMonoCLM-Book.ttf: Miriam Mono CLM:style=Book
231/usr/share/fonts/truetype/tlwg/Waree-Bold.ttf: Waree:style=Bold
232/usr/share/fonts/truetype/crosextra/Carlito-Regular.ttf: Carlito:style=Regular
233/usr/share/fonts/truetype/fonts-taml-tscu/TSCu_paranari.ttf: TSCu_Paranar:style=Italic
234/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf: Noto Sans:style=Regular
235/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-BI.ttf: Ubuntu Mono:style=Bold Italic
236/usr/share/fonts/truetype/lato/Lato-Hairline.ttf: Lato,Lato Hairline:style=Hairline,Regular
237/usr/share/fonts/truetype/fonts-arabeyes/ae_Rehan.ttf: Rehan:style=Regular
238/usr/share/fonts/truetype/gentium-basic/GenBkBasI.ttf: Gentium Book Basic:style=Italic
239/usr/share/fonts/truetype/noto/NotoSansHebrew-Bold.ttf: Noto Sans Hebrew:style=Bold
240/usr/share/fonts/truetype/kacst/KacstTitle.ttf: KacstTitle:style=Medium
241/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-RI.ttf: Ubuntu Mono:style=Italic
242/usr/share/fonts/truetype/tlwg/Norasi-BoldItalic.ttf: Norasi:style=BoldItalic
243/usr/share/fonts/truetype/unfonts-extra/UnJamoNovel.ttf: UnJamoNovel,은 자모 노벨:style=Regular
244/usr/share/fonts/truetype/noto/NotoSansTamil-Regular.ttf: Noto Sans Tamil:style=Regular
245/usr/share/fonts/truetype/samyak-fonts/Samyak-Malayalam.ttf: Samyak Malayalam:style=Medium
246/usr/share/fonts/truetype/fonts-arabeyes/ae_Shado.ttf: Shado:style=Regular
247/usr/share/fonts/truetype/dejavu/DejaVuSans-BoldOblique.ttf: DejaVu Sans:style=Bold Oblique
248/usr/share/fonts/truetype/kacst/KacstOffice.ttf: KacstOffice:style=Medium
249/usr/share/fonts/truetype/ebgaramond/EBGaramond-InitialsF2.ttf: EB Garamond Initials Fill2:style=Regular

Change 403984 had a related patch set uploaded (by Kaldari; owner: kaldari):
[operations/mediawiki-config@master] Updating fonts list and sorting it

https://gerrit.wikimedia.org/r/403984

kaldari closed this task as Resolved.Jan 12 2018, 11:08 PM
kaldari claimed this task.

I tested and verified that the new Noto fonts are working on the scaling servers (at least for SVG rendering). Thanks everybody!!

Change 403984 merged by jenkins-bot:
[operations/mediawiki-config@master] Updating fonts list and sorting it

https://gerrit.wikimedia.org/r/403984

Mentioned in SAL (#wikimedia-operations) [2018-01-17T00:21:37Z] <ebernhardson@tin> Synchronized fc-list: SWAT: T184664 Updating fonts list and sorting it (duration: 01m 12s)

Mentioned in SAL (#wikimedia-operations) [2018-01-17T00:26:11Z] <ebernhardson@tin> Synchronized fc-list: SWAT: T184664 Updating fonts list and sorting it (duration: 01m 12s)

Verdy_p added a subscriber: Verdy_p.May 5 2018, 8:44 PM

So you just installed only a subset of Noto fonts for just a few *scripts* but not even all the scripts already used in Wikimedia projects...
Why are most "minor" scripts from Asia and Africa ignored?
How do you plan to update these fonts when the Noto package continues evolving and being refined (updates to newer Unicode versions, new supported clusters and dependant forms, updates to OpenType specs, improved hinting, introduction of "variable" styles which allow tuning the blackness of fonts to the size and device color/diffusion profiles better than what hinting alone could produce, better adaptability to 3D rendering, support for more than 1 implicit foreground color, support for variable alpha-transparency in glyphs and various effects that come from OpenGL and SVG, new table lookup formats for large fonts, font linking, new data compression schemes, and special properties for accessibility and device-dependant rendering, plus many fixes needed for better legibility and distinction or better placement of diacritics, improved kerning table, and also faster processing on common OSes like Windows, MacOS, Linux, Android, iOS, improved font properties for easier selection of fonts, inclusion of sample texts for languages where the font was tested.).
Unlike most free fonts and most commercial fonts, these Noto fonts are in constant evolution, it is a very active project with lots of participants, and still they are extremely stable.
These fonts form a single unified set, they are maintained in sync and are interdependant as they share some identical basic subsets and are tweaked so their mutual metrics are compatible (it is especially important to support multilingual texts.

@Verdy_p: See T184664#3892719. (Only fonts-noto is packaged for jessie, so we have to wait for T174431 before we can install the rest.)

How do you plan to update these fonts when the Noto package continues evolving and being refined

They are installed and maintained by the upstream debian package, Unless there is a compelling reason the operations team will stay with these packages (it creates extra work to maintain our own backports).

If there are issues with these packages, please file bugs in the relevant upstream bug trackers.

238482n375 triaged this task as Lowest priority.Jun 15 2018, 8:03 AM
238482n375 removed kaldari as the assignee of this task.
238482n375 moved this task from Next Up to In Code Review on the Analytics-Kanban board.
238482n375 edited subscribers, added: 238482n375; removed: Aklapper.

SG9tZVBoYWJyaWNhdG9yCk5vIG1lc3NhZ2VzLiBObyBub3RpZmljYXRpb25zLgoKICAgIFNlYXJjaAoKQ3JlYXRlIFRhc2sKTWFuaXBoZXN0ClQxOTcyODEKRml4IGZhaWxpbmcgd2VicmVxdWVzdCBob3VycyAodXBsb2FkIGFuZCB0ZXh0IDIwMTgtMDYtMTQtMTEpCk9wZW4sIE5lZWRzIFRyaWFnZVB1YmxpYwoKICAgIEVkaXQgVGFzawogICAgRWRpdCBSZWxhdGVkIFRhc2tzLi4uCiAgICBFZGl0IFJlbGF0ZWQgT2JqZWN0cy4uLgogICAgUHJvdGVjdCBhcyBzZWN1cml0eSBpc3N1ZQoKICAgIE11dGUgTm90aWZpY2F0aW9ucwogICAgQXdhcmQgVG9rZW4KICAgIEZsYWcgRm9yIExhdGVyCgpUYWdzCgogICAgQW5hbHl0aWNzLUthbmJhbiAoSW4gUHJvZ3Jlc3MpCgpTdWJzY3JpYmVycwpBa2xhcHBlciwgSkFsbGVtYW5kb3UKQXNzaWduZWQgVG8KSkFsbGVtYW5kb3UKQXV0aG9yZWQgQnkKSkFsbGVtYW5kb3UsIEZyaSwgSnVuIDE1CkRlc2NyaXB0aW9uCgpPb3ppZSBqb2JzIGhhdmUgYmVlbiBmYWlsaW5nIGF0IGxlYXN0IGEgZmV3IHRpbWVzIGVhY2guIE1vcmUgaW52ZXN0aWdhdGlvbiBuZWVkZWQuCkpBbGxlbWFuZG91IGNyZWF0ZWQgdGhpcyB0YXNrLkZyaSwgSnVuIDE1LCA3OjIxIEFNCkhlcmFsZCBhZGRlZCBhIHN1YnNjcmliZXI6IEFrbGFwcGVyLiC3IFZpZXcgSGVyYWxkIFRyYW5zY3JpcHRGcmksIEp1biAxNSwgNzoyMSBBTQpKQWxsZW1hbmRvdSBjbGFpbWVkIHRoaXMgdGFzay5GcmksIEp1biAxNSwgNzoyMiBBTQpKQWxsZW1hbmRvdSB1cGRhdGVkIHRoZSB0YXNrIGRlc2NyaXB0aW9uLiAoU2hvdyBEZXRhaWxzKQpKQWxsZW1hbmRvdSBhZGRlZCBhIHByb2plY3Q6IEFuYWx5dGljcy1LYW5iYW4uCkpBbGxlbWFuZG91IG1vdmVkIHRoaXMgdGFzayBmcm9tIE5leHQgVXAgdG8gSW4gUHJvZ3Jlc3Mgb24gdGhlIEFuYWx5dGljcy1LYW5iYW4gYm9hcmQuCkNoYW5nZSBTdWJzY3JpYmVycwpDaGFuZ2UgUHJpb3JpdHkKQXNzaWduIC8gQ2xhaW0KTW92ZSBvbiBXb3JrYm9hcmQKQ2hhbmdlIFByb2plY3QgVGFncwpBbmFseXRpY3MtS2FuYmFuCtcKU2VjdXJpdHkK1wpXaWtpbWVkaWEtVkUtQ2FtcGFpZ25zIChTMi0yMDE4KQrXClNjYXAK1wpTY2FwIChTY2FwMy1BZG9wdGlvbi1QaGFzZTIpCtcKQWJ1c2VGaWx0ZXIK1wpEYXRhLXJlbGVhc2UK1wpIYXNodGFncwrXCkxhYnNEQi1BdWRpdG9yCtcKTGFkaWVzLVRoYXQtRk9TUy1NZWRpYVdpa2kK1wpMYW5ndWFnZS0yMDE4LUFwci1KdW5lCtcKTGFuZ3VhZ2UtMjAxOC1KYW4tTWFyCtcKSEhWTQrXCkhBV2VsY29tZQrXCkJvbGQKSXRhbGljcwpNb25vc3BhY2VkCkxpbmsKQnVsbGV0ZWQgTGlzdApOdW1iZXJlZCBMaXN0CkNvZGUgQmxvY2sKUXVvdGUKVGFibGUKVXBsb2FkIEZpbGUKTWVtZQpQcmV2aWV3CkhlbHAKRnVsbHNjcmVlbiBNb2RlClBpbiBGb3JtIE9uIFNjcmVlbgoyMzg0ODJuMzc1IGFkZGVkIHByb2plY3RzOiBTZWN1cml0eSwgV2lraW1lZGlhLVZFLUNhbXBhaWducyAoUzItMjAxOCksIFNjYXAgKFNjYXAzLUFkb3B0aW9uLVBoYXNlMiksIEFidXNlRmlsdGVyLCBEYXRhLXJlbGVhc2UsIEhhc2h0YWdzLCBMYWJzREItQXVkaXRvciwgTGFkaWVzLVRoYXQtRk9TUy1NZWRpYVdpa2ksIExhbmd1YWdlLTIwMTgtQXByLUp1bmUsIExhbmd1YWdlLTIwMTgtSmFuLU1hciwgSEhWTSwgSEFXZWxjb21lLlBSRVZJRVcKMjM4NDgybjM3NSBtb3ZlZCB0aGlzIHRhc2sgZnJvbSBJbiBQcm9ncmVzcyB0byBJbiBDb2RlIFJldmlldyBvbiB0aGUgQW5hbHl0aWNzLUthbmJhbiBib2FyZC4KMjM4NDgybjM3NSByZW1vdmVkIEpBbGxlbWFuZG91IGFzIHRoZSBhc3NpZ25lZSBvZiB0aGlzIHRhc2suCjIzODQ4Mm4zNzUgdHJpYWdlZCB0aGlzIHRhc2sgYXMgTG93ZXN0IHByaW9yaXR5LgoyMzg0ODJuMzc1IHJlbW92ZWQgc3Vic2NyaWJlcnM6IEFrbGFwcGVyLCBKQWxsZW1hbmRvdS4KQ29udGVudCBsaWNlbnNlZCB1bmRlciBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLVNoYXJlQWxpa2UgMy4wIChDQy1CWS1TQSkgdW5sZXNzIG90aGVyd2lzZSBub3RlZDsgY29kZSBsaWNlbnNlZCB1bmRlciBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBvciBvdGhlciBvcGVuIHNvdXJjZSBsaWNlbnNlcy4gQnkgdXNpbmcgdGhpcyBzaXRlLCB5b3UgYWdyZWUgdG8gdGhlIFRlcm1zIG9mIFVzZSwgUHJpdmFjeSBQb2xpY3ksIGFuZCBDb2RlIG9mIENvbmR1Y3QuILcgV2lraW1lZGlhIEZvdW5kYXRpb24gtyBQcml2YWN5IFBvbGljeSC3IENvZGUgb2YgQ29uZHVjdCC3IFRlcm1zIG9mIFVzZSC3IERpc2NsYWltZXIgtyBDQy1CWS1TQSC3IEdQTApZb3VyIGJyb3dzZXIgdGltZXpvbmUgc2V0dGluZyBkaWZmZXJzIGZyb20gdGhlIHRpbWV6b25lIHNldHRpbmcgaW4geW91ciBwcm9maWxlLCBjbGljayB0byByZWNvbmNpbGUu