# CAN_0_area.properties Mon Jul 10 17:02:27 EDT 2006
# This file contains area values for Canada
#/*******************************************************************************
# * 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
# *******************************************************************************/

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

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

# The administration level of the graph data
ADMIN_LEVEL = 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 =  https://www.cia.gov/cia/publications/factbook/geos/ca.html

# The key is the ISO-3166-1 alpha3 three letter identifier of the country
# The units are square kilometers
CAN = 9017698
