Skip to content

Commit

Permalink
Libuninameslist version 20210917
Browse files Browse the repository at this point in the history
Unicode 14.0 was released September 14th, 2021. This release contains
NamesList.txt 14.0, ListeDesNoms 13.0+, and uninameslist.py ver0.2.

Also cleaned-up some warnings and enabled some more default warnings.
  • Loading branch information
JoesCat committed Sep 17, 2021
1 parent 6b58bb7 commit e4b2fc9
Show file tree
Hide file tree
Showing 9 changed files with 493 additions and 296 deletions.
28 changes: 17 additions & 11 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
- 2021-Sep-17
* Version 1.9, Unicode 14.0. French version 1.4 is at Unicode 13.1.
Unicode has changed cadence to release later for this year. This
contains Official 14.0 NamesList.txt codes released on 2021sep14.
Unicode 14.0 adds 838 characters for total of 144,697 characters.
Several edits, and improvements were added to the French library.

- 2021-Jun-26
* Unicode 14.0_Beta (Nameslist.txt 14_Beta for review until Jul08).
* PR#24 "Remove .libs from linker paths". Bug found using slibtool.
* Add code to reduce need for 'make clean' after ./configure steps.

- 2020-Apr-13
* Version 1.7, Unicode 13.0, French version 1.3 is at Unicode 13.0,
* Version 1.7, Unicode 13.0. French version 1.3 is at Unicode 13.0,
and including python library wrapper 'uninameslist', version 0.2.
The French version was updated from version 10.0 to 13.0 shortly
after Unicode's release - this is a big effort and congratulation
Expand All @@ -17,21 +24,21 @@
which is necessary for scripting, and/or file-sharing purposes.

- 2020-Mar-13
* Version 1.6, Unicode 13.0, French version 1.2 is at Unicode 10.0.
* Version 1.6, Unicode 13.0. French version 1.2 is at Unicode 10.0.
Unicode has changed cadence to release earlier in the year. This
contains Official 13.0 NamesList.txt codes released on 2020mar05.

- 2019-Jul-01
* Version 1.5, Unicode 12.1, French version 1.2 is at Unicode 10.0.
* Version 1.5, Unicode 12.1. French version 1.2 is at Unicode 10.0.
Contains Official 12.1 codes.

- 2019-Mar-05
* Version 1.4, Unicode 12.1, French version 1.2 is at Unicode 10.0.
* Version 1.4, Unicode 12.1. French version 1.2 is at Unicode 10.0.
Not completely 12.1.0, created too early before official version
was announced later in month. This version contains beta 12.1.0d1

- 2018-Jul-01
* Version 1.3, Unicode 11.0, French version 1.2 is at Unicode 10.0.
* Version 1.3, Unicode 11.0. French version 1.2 is at Unicode 10.0.
* Library internal definitions personalized to allow more than one
library to be loaded at a time. Base library maintains same names
for backwards compatibility with older programs.
Expand All @@ -43,21 +50,20 @@
* Added Python wrapper and names2 functions.

- 2017-Aug-07
* Version 1.2, Unicode 10.0, French version is now also 10.0.0.
* Added function calls to French version to allow use of one or more
libraries at the same (Dynamic library linking needs testing since
added 'FR' may be issue with older programs expecting same name).
* Version 1.2, Unicode 10.0. French version is now also at 10.0.0.
* Add function calls to French version to allow use of one or more
libraries at the same time (Dynamic library links needs testing).
* Added more "make check" to include checking French library.

- 2017-Jul-01
* Version 1.1, Unicode 10.0, French version is 7.0(2014-06-22).
* Version 1.1, Unicode 10.0. French version still 7.0(2014-06-22).
* Added "make check" to allow for automatic library test and verify.

- 2017-Mar-19
* Unicode 10.0_Beta (Nameslist.txt 10_Beta for review until Apr30).

- 2016-Jul-01
* Version 1.0, Unicode 9.0, French version is 7.0(2014-06-22).
* Version 1.0, Unicode 9.0. French version still 7.0(2014-06-22).
* Corrected library to report correctly as next version up. This is
probably a significant change, therefore bumped both libraries to
start at 1.0 even though backwards compatibility remains the same,
Expand Down
2 changes: 1 addition & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ libtool: $(LIBTOOL_DEPS)
$(SHELL) ./config.status libtool

NamesList.txt:
$(WGET) "https://www.unicode.org/Public/14.0.0/ucd/NamesList-14.0.0d9.txt" -O NamesList.txt
$(WGET) "http://www.unicode.org/Public/UNIDATA/NamesList.txt" -O NamesList.txt

ListeDesNoms.txt:
$(WGET) "http://hapax.qc.ca/ListeNoms-13.0.0.txt" -O ListeDesNoms.txt
Expand Down
16 changes: 9 additions & 7 deletions buildnameslist.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "buildnameslist.h"

#define UNUSED_PARAMETER(x) ((void)x)
#define BBUFFSIZE 2000

/* Build this program using: make buildnameslist */

Expand Down Expand Up @@ -135,7 +136,7 @@ static void InitArrays(void) {
int i,j;
for (i=0; i<2; i++) for (j=0; j<17*65536; j++) {
uninames[i][j] = uniannot[i][j] = NULL;
names2pt[i][j] = names2ln[i][j] = -1;
names2pt[i][j] = names2ln[i][j] = (char)(127);
}
names2cnt[0] = names2cnt[1] = 0;
}
Expand All @@ -156,15 +157,15 @@ static void FreeArrays(void) {
}

static int ReadNamesList(void) {
char buffer[2000];
char buffer[BBUFFSIZE];
FILE *nl;
long int a_char = -1, first, last;
char *end, *namestart, *pt, *temp;
struct block *cur;
int i, j;
static char *nameslistfiles[] = { "NamesList.txt", "ListeDesNoms.txt", NULL };
static char *nameslistlocs[] = {
"https://www.unicode.org/versions/Unicode14.0.0/UNIDATA/NamesList-14.0.0d9.txt",
"http://www.unicode.org/Public/UNIDATA/NamesList.txt",
"http://hapax.qc.ca/ListeNoms-13.0.0.txt (latin base char set)"
};

Expand All @@ -175,7 +176,7 @@ static int ReadNamesList(void) {
fprintf( stderr, "Cannot find %s. Please copy it from\n\t%s\n", nameslistfiles[i], nameslistlocs[i] );
goto errorReadNamesListFO;
}
while ( myfgets(buffer,sizeof(buffer),nl)!=NULL ) {
while ( myfgets(buffer,BBUFFSIZE-1,nl)!=NULL ) {
if ( buffer[0]=='@' ) {
if ( buffer[1]=='+' && buffer[2]=='\t' ) {
/* This is a Notice_line, @+ */
Expand Down Expand Up @@ -260,7 +261,7 @@ static int ReadNamesList(void) {
pt = uniannot[i][a_char];
if ( *pt=='\t' && *++pt=='%' && *++pt==' ' ) {
for ( j=-1; *pt!='\n' && *pt!='\0'; ++j,++pt );
if ( j>0 && j<128 ) {
if ( j>0 && j<127 ) {
names2pt[i][a_char] = 3;
names2ln[i][a_char] = (char)(j);
names2cnt[i]++;
Expand Down Expand Up @@ -305,6 +306,7 @@ static int dumpinit(FILE *out, FILE *header, int is_fr) {
fprintf( out, "#include \"uninameslist.h\"\n" );
else
fprintf( out, "#include \"uninameslist-fr.h\"\n" );
/* note dll follows uninameslist*.h file */
fprintf( out, "#include \"nameslist-dll.h\"\n\n" );

fprintf( out, "/* This file was generated using the program 'buildnameslist.c' */\n\n" );
Expand Down Expand Up @@ -361,7 +363,7 @@ static int dumpinit(FILE *out, FILE *header, int is_fr) {
if ( names2cnt[l]>0 ) {
fprintf( out, "static const unsigned long unicode_name2code%s[] = {", lg[l] );
for ( i=0,a_char=0; i<names2cnt[l] && a_char<0x110000; ++a_char ) {
if ( names2pt[l][a_char]>=0 ) {
if ( names2pt[l][a_char]>=0 && names2pt[l][a_char]<127) {
if ( i&7 ) fprintf( out, " " ); else fprintf( out, "\n\t" );
if ( a_char<=0xffff )
fprintf( out, "0x%04X", (int)(a_char) );
Expand All @@ -374,7 +376,7 @@ static int dumpinit(FILE *out, FILE *header, int is_fr) {

fprintf( out, "static const char unicode_name2vals%s[] = {", lg[l] );
for ( i=0,a_char=0; i<names2cnt[l] && a_char<0x110000; ++a_char ) {
if ( names2pt[l][a_char]>=0 ) {
if ( names2pt[l][a_char]>=0 && names2pt[l][a_char]<127) {
if ( i&7 ) fprintf( out, " " ); else fprintf( out, "\n\t" );
fprintf( out, "%d,%d%s", names2pt[l][a_char], names2ln[l][a_char], ++i!=names2cnt[l]?",":"" );
}
Expand Down
23 changes: 12 additions & 11 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,24 @@ AC_PREREQ([2.64])
#-------------------------------------------
# PackageTimestamp, major version, minor version, and Nameslist.txt version
# Libraries have a "package" version of the form major.minor.micro.
m4_define([uninameslist_package_stamp], [20210626]) dnl yyyymmdd
m4_define([uninameslist_major_version], [13]) dnl Nameslist.txt
m4_define([uninameslist_minor_version], [9])
m4_define([uninameslist_package_stamp], [20210917]) dnl yyyymmdd
m4_define([uninameslist_major_version], [14]) dnl Nameslist.txt
m4_define([uninameslist_minor_version], [0])
m4_define([uninameslist_nameslist_ver], [uninameslist_major_version.uninameslist_minor_version])
# Libraries have a "libtool" version of the form current:revision:age.
m4_define([uninameslist_current], [1])
m4_define([uninameslist_revision],[8])
m4_define([uninameslist_revision],[9])
m4_define([uninameslist_age], [0])
m4_define([uninameslist_libver],
[uninameslist_current:uninameslist_revision:uninameslist_age])

# These values below are kept for backwards compatibility with older programs
# that are using the French namesList. This increments with ListeDesNoms.txt.
m4_define([fr_major_version], [13]) dnl latest ListeDesNoms.txt = ver13.0
m4_define([fr_minor_version], [0])
m4_define([fr_minor_version], [1])
m4_define([uninameslist_fr_nameslist_ver], [fr_major_version.fr_minor_version])
m4_define([uninameslist_fr_current], [1])
m4_define([uninameslist_fr_revision],[3])
m4_define([uninameslist_fr_revision],[4])
m4_define([uninameslist_fr_age], [0])
m4_define([uninameslist_fr_libver],
[uninameslist_fr_current:uninameslist_fr_revision:uninameslist_fr_age])
Expand Down Expand Up @@ -171,16 +171,17 @@ AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes],[WCFLAGS="$WCFLAGS -Wmissing-protot
AX_CHECK_COMPILE_FLAG([-Wmissing-declarations],[WCFLAGS="$WCFLAGS -Wmissing-declarations"])
AX_CHECK_COMPILE_FLAG([-Wstrict-prototypes],[WCFLAGS="$WCFLAGS -Wstrict-prototypes"])
AX_CHECK_COMPILE_FLAG([-Wunused],[WCFLAGS="$WCFLAGS -Wunused"])
AX_CHECK_COMPILE_FLAG([-Woverlength-strings],[WCFLAGS="$WCFLAGS -Woverlength-strings"])
AX_CHECK_COMPILE_FLAG([-Wtype-limits],[WCFLAGS="$WCFLAGS -Wtype-limits"])
AX_CHECK_COMPILE_FLAG([-Wpointer-arith],[WCFLAGS="$WCFLAGS -Wpointer-arith"])
AX_CHECK_COMPILE_FLAG([-Wcast-qual],[WCFLAGS="$WCFLAGS -Wcast-qual"])
AX_CHECK_COMPILE_FLAG([-Wcast-align],[WCFLAGS="$WCFLAGS -Wcast-align"])
AX_CHECK_COMPILE_FLAG([-Wpadded],[WCFLAGS="$WCFLAGS -Wpadded"])

dnl currently for extra testing
dnl AX_CHECK_COMPILE_FLAG([-fPIC],[WCFLAGS="$WCFLAGS -fPIC"])
dnl AX_CHECK_COMPILE_FLAG([-fstack-protector-strong],[WCFLAGS="$WCFLAGS -fstack-protector-strong"])
dnl AX_CHECK_COMPILE_FLAG([-Wstrict-overflow],[WCFLAGS="$WCFLAGS -Wstrict-overflow"])
dnl AX_CHECK_COMPILE_FLAG([-Wpointer-arith],[WCFLAGS="$WCFLAGS -Wpointer-arith"])
dnl AX_CHECK_COMPILE_FLAG([-Wcast-qual],[WCFLAGS="$WCFLAGS -Wcast-qual"])
dnl AX_CHECK_COMPILE_FLAG([-Wcast-align],[WCFLAGS="$WCFLAGS -Wcast-align"])
dnl AX_CHECK_COMPILE_FLAG([-Wpadded],[WCFLAGS="$WCFLAGS -Wpadded"])
dnl AX_CHECK_COMPILE_FLAG([-Woverlength-strings],[WCFLAGS="$WCFLAGS -Woverlength-strings"])

dnl reduce exported symbol list for dynamic library
dnl AX_CHECK_COMPILE_FLAG([-fvisibility=hidden],[WCFLAGS="$WCFLAGS -fvisibility=hidden"])
Expand Down
36 changes: 18 additions & 18 deletions nameslist-fr.c
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#include <stdio.h>
#include "nameslist-dll.h"
#include "uninameslist-fr.h"
#include "nameslist-dll.h"

/* This file was generated using the program 'buildnameslist.c' */


/*
; Standard Unicode 13.0 ou
; Standard Unicode 13.1 ou
; Norme internationale ISO/CEI 10646:2017
;
; Ces noms français sont utilisés pour confectionner
Expand All @@ -16,7 +16,7 @@
; est normative. La présente liste est informative, jusqu’à ce que
; l’ISO/CEI 10646 ait été remise à niveau en français.
;
; Contributions à la version 13.0 française des noms de caractère :
; Contributions à la version 13.1 française des noms de caractère :
; Jacques André, France
; Patrick Andries, Canada (Québec)
; Bernard Chauvois, France
Expand Down Expand Up @@ -50,7 +50,7 @@ const char *uniNamesList_annotFR(unsigned long uni) {
/* Retrieve Nameslist.txt version number. */
UN_DLL_EXPORT
const char *uniNamesList_NamesListVersionFR(void) {
return( "Nameslist-Version: 13.0" );
return( "Nameslist-Version: 13.1" );
}


Expand Down Expand Up @@ -401,7 +401,7 @@ const struct unicode_block UnicodeBlockFR[] = {
{ 0x2300, 0x23ff, "Signes techniques divers" },
{ 0x2400, 0x243f, "Pictogrammes de commande" },
{ 0x2440, 0x245f, "Reconnaissance optique de caractères" },
{ 0x2460, 0x24ff, "Symboles alphanumériques bornés ou entourés" },
{ 0x2460, 0x24ff, "Symboles alphanumériques délimités" },
{ 0x2500, 0x257f, "Filets" },
{ 0x2580, 0x259f, "Pavés" },
{ 0x25a0, 0x25ff, "Formes géométriques" },
Expand Down Expand Up @@ -434,7 +434,7 @@ const struct unicode_block UnicodeBlockFR[] = {
{ 0x31a0, 0x31bf, "Bopomofo étendu" },
{ 0x31c0, 0x31ef, "Traits CJC" },
{ 0x31f0, 0x31ff, "Supplément phonétique katakana" },
{ 0x3200, 0x32ff, "Lettres et mois CJC bornés ou entourés" },
{ 0x3200, 0x32ff, "Lettres et mois CJC délimités" },
{ 0x3300, 0x33ff, "Compatibilité CJC" },
{ 0x3400, 0x4dbf, "Supplément A aux idéogrammes unifiés CJC" },
{ 0x4dc0, 0x4dff, "Hexagrammes du Classique des mutations ou Yi-king" },
Expand Down Expand Up @@ -603,8 +603,8 @@ const struct unicode_block UnicodeBlockFR[] = {
{ 0x1f000, 0x1f02f, "Tuiles de majong" },
{ 0x1f030, 0x1f09f, "Dominos" },
{ 0x1f0a0, 0x1f0ff, "Cartes à jouer" },
{ 0x1f100, 0x1f1ff, "Supplément de symboles alphanumériques bornés ou entourés" },
{ 0x1f200, 0x1f2ff, "Supplément d’idéogrammes bornés ou entourés" },
{ 0x1f100, 0x1f1ff, "Supplément de symboles alphanumériques délimités" },
{ 0x1f200, 0x1f2ff, "Supplément d’idéogrammes délimités" },
{ 0x1f300, 0x1f5ff, "Divers symboles et pictogrammes" },
{ 0x1f600, 0x1f64f, "Émoticônes" },
{ 0x1f650, 0x1f67f, "Casseau ornemental" },
Expand Down Expand Up @@ -2257,13 +2257,13 @@ static const struct unicode_nameannot unaFR_00_02[] = {

static const struct unicode_nameannot unaFR_00_03[] = {
/* 0300 */ { "DIACRITIQUE ACCENT GRAVE"," = accent grave grec (varia)\n"
" * Pinyin : marque le quatrième ton du chinois mandarin\n"
" * pinyin : marque le quatrième ton du chinois mandarin\n"
" x (accent grave - 0060)\n"
" x (lettre modificative accent grave - 02CB)"},
/* 0301 */ { "DIACRITIQUE ACCENT AIGU"," = accent tonique\n"
" = accent aigu grec (du système polytonique)\n"
" = accent grec (du système monotonique)\n"
" * Pinyin : marque le deuxième ton du chinois mandarin\n"
" * pinyin : marque le deuxième ton du chinois mandarin\n"
" x (apostrophe - 0027)\n"
" x (accent aigu - 00B4)\n"
" x (lettre modificative prime - 02B9)\n"
Expand All @@ -2277,7 +2277,7 @@ static const struct unicode_nameannot unaFR_00_03[] = {
" x (tilde - 007E)\n"
" x (petit tilde - 02DC)"},
/* 0304 */ { "DIACRITIQUE MACRON"," = long\n"
" * Pinyin : marque le premier ton du chinois mandarin\n"
" * pinyin : marque le premier ton du chinois mandarin\n"
" * à distinguer du caractère suivant\n"
" x (macron - 00AF)\n"
" x (lettre modificative macron - 02C9)"},
Expand Down Expand Up @@ -2307,7 +2307,7 @@ static const struct unicode_nameannot unaFR_00_03[] = {
" x (lettre modificative seconde - 02BA)\n"
" x (double accent aigu - 02DD)"},
/* 030C */ { "DIACRITIQUE CARON"," = hatchek, chevron suscrit, accent hirondelle\n"
" * Pinyin : marque le troisième ton du chinois mandarin\n"
" * pinyin : marque le troisième ton du chinois mandarin\n"
" x (caron - 02C7)"},
/* 030D */ { "DIACRITIQUE LIGNE VERTICALE EN CHEF"," * il ne s'agit pas de l'accent grec (tonos)\n"
" * marshallais\n"
Expand Down Expand Up @@ -4515,11 +4515,11 @@ static const struct unicode_nameannot unaFR_00_0A[] = {
/* 0A31 */ { NULL,NULL},
/* 0A32 */ { "LETTRE GOURMOUKHÎ LA",NULL},
/* 0A33 */ { "LETTRE GOURMOUKHÎ LLA"," : 0A32 0A3C\n"
" Cette consonne munie dun noukta figure dans le fichier CompositionExclusions.txt. Cela signifie quelle ne se recompose pas au moment de la normalisation. La forme NFC est identique à la séquence décomposée."},
" Cette consonne munie d'un noukta figure dans le fichier CompositionExclusions.txt. Cela signifie qu'elle ne se recompose pas au moment de la normalisation. La forme NFC est identique à la séquence décomposée."},
/* 0A34 */ { NULL,NULL},
/* 0A35 */ { "LETTRE GOURMOUKHÎ VA",NULL},
/* 0A36 */ { "LETTRE GOURMOUKHÎ ÇA"," : 0A38 0A3C\n"
" Cette consonne munie dun noukta figure dans le fichier CompositionExclusions.txt. Cela signifie quelle ne se recompose pas au moment de la normalisation. La forme NFC est identique à la séquence décomposée."},
" Cette consonne munie d'un noukta figure dans le fichier CompositionExclusions.txt. Cela signifie qu'elle ne se recompose pas au moment de la normalisation. La forme NFC est identique à la séquence décomposée."},
/* 0A37 */ { NULL,NULL},
/* 0A38 */ { "LETTRE GOURMOUKHÎ SA",NULL},
/* 0A39 */ { "LETTRE GOURMOUKHÎ HA",NULL},
Expand Down Expand Up @@ -6454,7 +6454,7 @@ static const struct unicode_nameannot unaFR_00_11[] = {
/* 110B */ { "TCH'ÔSONG HANGÛL IÛNG"," * zéro phonique"},
/* 110C */ { "TCH'ÔSONG HANGÛL TCHIÛTCH"," = TCH\n"
" * affriquée alvéolaire sourde ou sonore lenis"},
/* 110D */ { "TCH'ÔSONG HANGÛL SSANGTCHIÛTCH"," = TCHTCH\n"
/* 110D */ { "TCH'ÔSONG HANGÛL SSANGTCHIÛTCH"," = TTCH\n"
" * affriquée alvéolaire sourde non aspirée fortis"},
/* 110E */ { "TCH'ÔSONG HANGÛL TCH'IÛTCH'"," = TCH'\n"
" * affriquée alvéolaire sourde aspirée"},
Expand Down Expand Up @@ -13829,7 +13829,7 @@ static const struct unicode_nameannot unaFR_00_29[] = {
/* 29BE */ { "PUCE BLANCHE CERCLÉE"," x (opérateur rond cerclé - 229A)\n"
" x (symbole de fonction apl beigne - 233E)\n"
" x (deux cercles concentriques - 25CE)"},
/* 29BF */ { "PUCE CERCLÉE"," * fait partie d'un jeu étalonné de cercles dont le cercle noir intérieur varie en taille\n"
/* 29BF */ { "PUCE CERCLÉE"," * fait partie d'un jeu étalonné de cercles dont le cercle plein intérieur varie en taille\n"
" x (opérateur point cerclé - 2299)\n"
" x (cercle blanc évidé - 25C9)\n"
" x (opérateur point cerclé n-aire - 2A00)"},
Expand Down Expand Up @@ -19306,7 +19306,7 @@ static const struct unicode_nameannot unaFR_00_A7[] = {
/* A7F6 */ { "LETTRE MINUSCULE LATINE MOITIÉ DE H RÉFLÉCHIE",NULL},
/* A7F7 */ { "LETTRE LATINE ÉPIGRAPHIQUE I COUCHÉ"," * inscriptions celtiques"},
/* A7F8 */ { "LETTRE MODIFICATIVE MAJUSCULE H BARRÉ"," # <exp> 0126\n"
" Une distinction typographique entre les formes majuscule et petite capitale na aucune fonction de différenciation dans cette utilisation de lAPI.\n"
" Une distinction typographique entre les formes majuscule et petite capitale n'a aucune fonction de différenciation dans cette utilisation de l'API.\n"
" x (lettre latine petite capitale h - 029C)"},
/* A7F9 */ { "LETTRE MODIFICATIVE MINUSCULE LIGATURE OE"," # <exp> 0153"},
/* A7FA */ { "LETTRE LATINE PETITE CAPITALE M CULBUTÉ",NULL},
Expand Down Expand Up @@ -29259,7 +29259,7 @@ static const struct unicode_nameannot unaFR_01_19[] = {
/* 11922 */ { "LETTRE DIVES AKURU BA",NULL},
/* 11923 */ { "LETTRE DIVES AKURU BHA",NULL},
/* 11924 */ { "LETTRE DIVES AKURU MA",NULL},
/* 11925 */ { "LETTRE DIVES AKURU YA"," * également utilisé comme support de voyelle"},
/* 11925 */ { "LETTRE DIVES AKURU YA"," * également utilisée comme support de voyelle"},
/* 11926 */ { "LETTRE DIVES AKURU YYA",NULL},
/* 11927 */ { "LETTRE DIVES AKURU RA",NULL},
/* 11928 */ { "LETTRE DIVES AKURU LA",NULL},
Expand Down
Loading

0 comments on commit e4b2fc9

Please sign in to comment.