# messages_en_US_CA.properties
# Californian
# /*******************************************************************************
# * 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
# *******************************************************************************/

# SimulationManager
SimMgr.Deserialization_Error=Problem reading in a serialized Scenario from URI \"{0}\"
SimMgr.Start_Sim=Starting simulation

# Simulation
Sim.Time_Error=Time to stop before starting.  Current time is: {0}, Stopping time is: {1}
