# BEN_2_node.properties 
# /*********************************************************************************************
# * Copyright (c) 2006 IBM Corporation and others.
# * All rights reserved. This program and the accompanying materials
# * are made available under the terms of the Eclipse Public License v1.0
# * which accompanies this distribution, and is available at
# * http://www.eclipse.org/legal/epl-v10.html
# *
# * Contributors:
# *     IBM Corporation - initial API and implementation
# ***********************************************************************************************/

# /**********************************************************************************************
# * Key Format: 
# * 
# * 	 For level 1 data, the key is the ISO3166-2 code. An ISO3166-2 code is composed as follows: 
# * a two letter country code followed by up to three alphanumeric characters for the level 1 administration.
# *
# * 	 For level 2 data, the key is the ISO3166-2 code followed by six digits. The leftmost two digits indicate
# * the level 1 container of a level 2 administration (i.e. California is a level 1 container for Orange County
# * which is a level 2 administration).  The two digits were taken from a lexicographic sorting of all the
# * level 1 administrations within a country. Similarly, the four leftmost digits indicate a level 2 administration.
# * Again, these four digits are an index into the lexicographic sorting of all level 2 administrations within 
# * a level 1 administration. 
# ************************************************************************************************/

# This is the name of the class that will interpret the rest of the file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CountryNodePropertyFileSpecification

# The ISO-3166-1 alpha3 code for the country
ISOKEY = BEN

# The administration level of the node data
ADMIN_LEVEL = 2

# This is the date range for which the area values in this file are valid 
# See http://purl.org/dc/terms/1.1/valid
VALID = start=1900-01-01;

# This is the source of the data
SOURCE = http://www.iso.org/iso/home.htm
# SOURCE = http://www.iso.org/iso/home.htm

# The file that contains the latitude/longitude data for the node 
SPATIAL_URI = platform:/plugin/org.eclipse.stem.data.geography/resources/data/geo/country/BEN/BEN_2_MAP.xml

# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040006 = KARIMAMA ). 
BJ-BO-G040006 = KARIMAMA
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040007 = MALANVILLE ). 
BJ-BO-G040007 = MALANVILLE
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040001 = BANIKOARA ). 
BJ-BO-G040001 = BANIKOARA
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040005 = KANDI ). 
BJ-BO-G040005 = KANDI
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020013 = TANGUIETA ). 
BJ-AK-G020013 = TANGUIETA
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020007 = KEROU ). 
BJ-AK-G020007 = KEROU
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040012 = SEGBANA ). 
BJ-BO-G040012 = SEGBANA
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040003 = GOGOUNOU ). 
BJ-BO-G040003 = GOGOUNOU
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020009 = MATERI ). 
BJ-AK-G020009 = MATERI
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020008 = KOUANDE ). 
BJ-AK-G020008 = KOUANDE
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020014 = TCHOUKOUTOUNA ). 
BJ-AK-G020014 = TCHOUKOUTOUNA
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020003 = COBLI ). 
BJ-AK-G020003 = COBLI
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040004 = KALALE ). 
BJ-BO-G040004 = KALALE
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040002 = BEMBEREKE ). 
BJ-BO-G040002 = BEMBEREKE
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040013 = SINENDE ). 
BJ-BO-G040013 = SINENDE
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020012 = PEHONKO ). 
BJ-AK-G020012 = PEHONKO
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020002 = BOUKOUMBE ). 
BJ-AK-G020002 = BOUKOUMBE
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020010 = NATINGOU ). 
BJ-AK-G020010 = NATINGOU
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040009 = NIKKI ). 
BJ-BO-G040009 = NIKKI
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020005 = DJOUGOU RURAL ). 
BJ-AK-G020005 = DJOUGOU RURAL
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020004 = COPARGO ). 
BJ-AK-G020004 = COPARGO
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040008 = NDALI ). 
BJ-BO-G040008 = NDALI
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040011 = PERERE ). 
BJ-BO-G040011 = PERERE
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020011 = OUAKE ). 
BJ-AK-G020011 = OUAKE
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020006 = DJOUGOU URBAN ). 
BJ-AK-G020006 = DJOUGOU URBAN
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040014 = TCHAOUROU ). 
BJ-BO-G040014 = TCHAOUROU
# Generated key details :  Level 1 ( BJ-AK = ATAKORA ). Level 2 ( 020001 = BASSILA ). 
BJ-AK-G020001 = BASSILA
# Generated key details :  Level 1 ( BJ-BO = BORGOU ). Level 2 ( 040010 = PARAKOU ). 
BJ-BO-G040010 = PARAKOU
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120009 = OUESSE ). 
BJ-ZO-G120009 = OUESSE
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120003 = BANTE ). 
BJ-ZO-G120003 = BANTE
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120008 = GLAZOUE ). 
BJ-ZO-G120008 = GLAZOUE
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120012 = SAVE ). 
BJ-ZO-G120012 = SAVE
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120011 = SAVALOU ). 
BJ-ZO-G120011 = SAVALOU
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120006 = DASSA ). 
BJ-ZO-G120006 = DASSA
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100010 = KETOU ). 
BJ-OU-G100010 = KETOU
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120007 = DJIDJA ). 
BJ-ZO-G120007 = DJIDJA
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120005 = COVE ). 
BJ-ZO-G120005 = COVE
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120014 = ZANGNANADO ). 
BJ-ZO-G120014 = ZANGNANADO
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090001 = APLAHOUE ). 
BJ-MO-G090001 = APLAHOUE
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120013 = ZA KPOTA ). 
BJ-ZO-G120013 = ZA KPOTA
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120004 = BOHICON ). 
BJ-ZO-G120004 = BOHICON
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120001 = ABOMEY ). 
BJ-ZO-G120001 = ABOMEY
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100011 = POBE ). 
BJ-OU-G100011 = POBE
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090009 = KLOUEKANME ). 
BJ-MO-G090009 = KLOUEKANME
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120010 = OUINHI ). 
BJ-ZO-G120010 = OUINHI
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100009 = IKPINLE (ADJA-OUERE) ). 
BJ-OU-G100009 = IKPINLE (ADJA-OUERE)
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120002 = AGBANGNIZOUN ). 
BJ-ZO-G120002 = AGBANGNIZOUN
# Generated key details :  Level 1 ( BJ-ZO = ZOU ). Level 2 ( 120015 = ZOGBODOME ). 
BJ-ZO-G120015 = ZOGBODOME
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090010 = LALO ). 
BJ-MO-G090010 = LALO
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100006 = BONOU ). 
BJ-OU-G100006 = BONOU
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090005 = DJAKOTOME ). 
BJ-MO-G090005 = DJAKOTOME
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090011 = TOVIKLIN ). 
BJ-MO-G090011 = TOVIKLIN
# Generated key details :  Level 1 ( BJ-AQ = ATLANTIQUE ). Level 2 ( 030007 = TOFFO ). 
BJ-AQ-G030007 = TOFFO
# Generated key details :  Level 1 ( BJ-AQ = ATLANTIQUE ). Level 2 ( 030009 = ZE ). 
BJ-AQ-G030009 = ZE
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100013 = SAKETE ). 
BJ-OU-G100013 = SAKETE
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090006 = DOGBO-TOTA ). 
BJ-MO-G090006 = DOGBO-TOTA
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100002 = ADJOHOUN ). 
BJ-OU-G100002 = ADJOHOUN
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090002 = ATHIEME ). 
BJ-MO-G090002 = ATHIEME
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090003 = BOPA ). 
BJ-MO-G090003 = BOPA
# Generated key details :  Level 1 ( BJ-AQ = ATLANTIQUE ). Level 2 ( 030002 = ALLADA ). 
BJ-AQ-G030002 = ALLADA
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100008 = IFANGNI ). 
BJ-OU-G100008 = IFANGNI
# Generated key details :  Level 1 ( BJ-AQ = ATLANTIQUE ). Level 2 ( 030001 = ABOMEY-CALAVI ). 
BJ-AQ-G030001 = ABOMEY-CALAVI
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090008 = HOUEYOGBE ). 
BJ-MO-G090008 = HOUEYOGBE
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100004 = AKPRO-MISSERETE ). 
BJ-OU-G100004 = AKPRO-MISSERETE
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100007 = DANGBO ). 
BJ-OU-G100007 = DANGBO
# Generated key details :  Level 1 ( BJ-AQ = ATLANTIQUE ). Level 2 ( 030006 = SO-AVA ). 
BJ-AQ-G030006 = SO-AVA
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100005 = AVRANKOU ). 
BJ-OU-G100005 = AVRANKOU
# Generated key details :  Level 1 ( BJ-AQ = ATLANTIQUE ). Level 2 ( 030008 = TORI-BOSSITO ). 
BJ-AQ-G030008 = TORI-BOSSITO
# Generated key details :  Level 1 ( BJ-AQ = ATLANTIQUE ). Level 2 ( 030004 = KPOMASSE ). 
BJ-AQ-G030004 = KPOMASSE
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100003 = AGUEGUE ). 
BJ-OU-G100003 = AGUEGUE
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100001 = ADJARRA ). 
BJ-OU-G100001 = ADJARRA
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100012 = PORTO NOVO ). 
BJ-OU-G100012 = PORTO NOVO
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090004 = COME ). 
BJ-MO-G090004 = COME
# Generated key details :  Level 1 ( BJ-AQ = ATLANTIQUE ). Level 2 ( 030005 = OUIDAH ). 
BJ-AQ-G030005 = OUIDAH
# Generated key details :  Level 1 ( BJ-MO = MONO ). Level 2 ( 090007 = GRAND-POPO ). 
BJ-MO-G090007 = GRAND-POPO
# Generated key details :  Level 1 ( BJ-OU = OUEME ). Level 2 ( 100014 = SEME-KPODJI ). 
BJ-OU-G100014 = SEME-KPODJI
# Generated key details :  Level 1 ( BJ-AQ = ATLANTIQUE ). Level 2 ( 030003 = COTONOU ). 
BJ-AQ-G030003 = COTONOU
