# PER_0_PER_1.properties 
#/*******************************************************************************
# * Copyright (c) 2007 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
# *******************************************************************************/

# 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.RelativePhysicalGeographicRelationshipPropertyFileSpecification

# The title of the relationship
TITLE = Physical containment of PER level (1) by PER (0)

# This is the date range for which the 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.ibm.com

# ISO3166-1 alpha3 keys and levels of relationship
ISOKEY_0 = PER
ISOKEY_0_LEVEL = 0
ISOKEY_1 = PER
ISOKEY_1_LEVEL = 1

# Record Number = Key1, Key2, relationship
1 = PER, PE-UCA, Contains
2 = PER, PE-PUN, Contains
3 = PER, PE-LOR, Contains
4 = PER, PE-LAM, Contains
5 = PER, PE-CAJ, Contains
6 = PER, PE-PIU, Contains
7 = PER, PE-TAC, Contains
8 = PER, PE-SAM, Contains
9 = PER, PE-AYA, Contains
10 = PER, PE-HUC, Contains
11 = PER, PE-MDD, Contains
12 = PER, PE-JUN, Contains
13 = PER, PE-LAL, Contains
14 = PER, PE-HUV, Contains
15 = PER, PE-MOQ, Contains
16 = PER, PE-APU, Contains
17 = PER, PE-CUS, Contains
18 = PER, PE-ICA, Contains
19 = PER, PE-TUM, Contains
20 = PER, PE-ARE, Contains
21 = PER, PE-ANC, Contains
22 = PER, PE-LIM, Contains
23 = PER, PE-AMA, Contains
24 = PER, PE-PAS, Contains
